From ff2a920934de892295457f9cfe5cc1569052cfd7 Mon Sep 17 00:00:00 2001
From: PQZ <pangqingzhou@gmail.com>
Date: Tue, 25 Mar 2025 17:35:36 +0800
Subject: [PATCH] 1

---
 src/views/member/order/index.vue | 221 +++++++++++++++++++++----------
 1 file changed, 150 insertions(+), 71 deletions(-)

diff --git a/src/views/member/order/index.vue b/src/views/member/order/index.vue
index 26b6442..68d31d1 100644
--- a/src/views/member/order/index.vue
+++ b/src/views/member/order/index.vue
@@ -17,21 +17,65 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="是否已支付" prop="isPay">
-        <el-input
-          v-model="queryParams.isPay"
-          placeholder="请输入是否已支付"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="身份类型" prop="userType">
+        <el-select v-model="queryParams.userType" placeholder="请选择身份类型" clearable>
+          <el-option
+            v-for="dict in dict.type.dl_user_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
       </el-form-item>
-      <el-form-item label="是否退款(0未退款|1已退款)" prop="isRefund">
-        <el-input
-          v-model="queryParams.isRefund"
-          placeholder="请输入是否退款(0未退款|1已退款)"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="订单类型" prop="orderType">
+        <el-select v-model="queryParams.orderType" placeholder="请选择身份类型" clearable>
+          <el-option
+            v-for="dict in dict.type.dl_order_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="支付方式" prop="payWay">
+        <el-select v-model="queryParams.payWay" placeholder="请选择支付方式" clearable>
+          <el-option
+            v-for="dict in dict.type.dl_pay_way"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="退款方式" prop="refundWay">
+        <el-select v-model="queryParams.refundWay" placeholder="请选择退款方式" clearable>
+          <el-option
+            v-for="dict in dict.type.dl_pay_way"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="支付状态" prop="isPay">
+        <el-select v-model="queryParams.isPay" placeholder="请选择是否已支付">
+          <el-option
+            v-for="item in payOption"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="退款状态" prop="isRefund">
+        <el-select v-model="queryParams.isRefund" placeholder="请选择是否退款">
+          <el-option
+            v-for="item in refundOption"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -48,7 +92,8 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['member:order:add']"
-        >新增</el-button>
+        >新增
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -59,7 +104,8 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['member:order:edit']"
-        >修改</el-button>
+        >修改
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -70,7 +116,8 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['member:order:remove']"
-        >删除</el-button>
+        >删除
+        </el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -80,42 +127,55 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['member:order:export']"
-        >导出</el-button>
+        >导出
+        </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="orderList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="唯一主键" align="center" prop="id" />
-      <el-table-column label="用户id" align="center" prop="userId" />
-      <el-table-column label="用户类型" align="center" prop="userType" />
-      <el-table-column label="用户昵称" align="center" prop="nickname" />
-      <el-table-column label="订单编号" align="center" prop="orderNo" />
-      <el-table-column label="订单类型" align="center" prop="orderType" />
-      <el-table-column label="商品id(前期就是会员卡id、通告券id)" align="center" prop="goodsId" />
-      <el-table-column label="商品数量" align="center" prop="goodsNum" />
-      <el-table-column label="订单总价" align="center" prop="goodsPrice" />
+      <el-table-column label="用户类型" align="center" prop="userType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.dl_user_type" :value="scope.row.userType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="用户昵称" align="center" prop="nickname"/>
+      <el-table-column label="订单编号" align="center" prop="orderNo"/>
+      <el-table-column label="订单类型" align="center" prop="orderType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.dl_order_type" :value="scope.row.orderType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品数量" align="center" prop="goodsNum"/>
+      <el-table-column label="订单总价" align="center" prop="goodsPrice"/>
       <el-table-column label="支付时间" align="center" prop="payTime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.payTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="下单描述" align="center" prop="content" />
-      <el-table-column label="支付方式(数据字典:dl_pay_way)" align="center" prop="payWay" />
-      <el-table-column label="是否已支付" align="center" prop="isPay" />
-      <el-table-column label="是否退款(0未退款|1已退款)" align="center" prop="isRefund" />
-      <el-table-column label="退款人id" align="center" prop="refundUserId" />
-      <el-table-column label="退款方式(数据字典:dl_pay_way)" align="center" prop="refundWay" />
-      <el-table-column label="退款单号" align="center" prop="refundNo" />
-      <el-table-column label="退款发起时间" align="center" prop="refundApplyTime" width="180">
+      <el-table-column label="支付方式" align="center" prop="payWay">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.refundApplyTime, '{y}-{m}-{d}') }}</span>
+          <dict-tag :options="dict.type.dl_pay_way" :value="scope.row.payWay"/>
         </template>
       </el-table-column>
-      <el-table-column label="退款到账时间" align="center" prop="refundReceiveTime" />
-      <el-table-column label="退款理由" align="center" prop="refundReason" />
-      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="是否支付" align="center" prop="isPay">
+        <template slot-scope="scope">
+          <span v-if="scope.row.isPay == 0">待支付</span>
+          <span v-if="scope.row.isPay == 1">已支付</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否退款" align="center" prop="isRefund">
+        <template slot-scope="scope">
+          <span v-if="scope.row.isPay == 0">未退款</span>
+          <span v-if="scope.row.isPay == 1">已退款</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="退款方式" align="center" prop="refundWay">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.dl_pay_way" :value="scope.row.refundWay"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="退款单号" align="center" prop="refundNo"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -124,14 +184,16 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['member:order:edit']"
-          >修改</el-button>
+          >修改
+          </el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['member:order:remove']"
-          >删除</el-button>
+          >删除
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -148,68 +210,68 @@
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="用户id" prop="userId">
-          <el-input v-model="form.userId" placeholder="请输入用户id" />
+          <el-input v-model="form.userId" placeholder="请输入用户id"/>
         </el-form-item>
         <el-form-item label="用户昵称" prop="nickname">
-          <el-input v-model="form.nickname" placeholder="请输入用户昵称" />
+          <el-input v-model="form.nickname" placeholder="请输入用户昵称"/>
         </el-form-item>
         <el-form-item label="订单编号" prop="orderNo">
-          <el-input v-model="form.orderNo" placeholder="请输入订单编号" />
+          <el-input v-model="form.orderNo" placeholder="请输入订单编号"/>
         </el-form-item>
         <el-form-item label="商品id(前期就是会员卡id、通告券id)" prop="goodsId">
-          <el-input v-model="form.goodsId" placeholder="请输入商品id(前期就是会员卡id、通告券id)" />
+          <el-input v-model="form.goodsId" placeholder="请输入商品id(前期就是会员卡id、通告券id)"/>
         </el-form-item>
         <el-form-item label="商品数量" prop="goodsNum">
-          <el-input v-model="form.goodsNum" placeholder="请输入商品数量" />
+          <el-input v-model="form.goodsNum" placeholder="请输入商品数量"/>
         </el-form-item>
         <el-form-item label="订单总价" prop="goodsPrice">
-          <el-input v-model="form.goodsPrice" placeholder="请输入订单总价" />
+          <el-input v-model="form.goodsPrice" placeholder="请输入订单总价"/>
         </el-form-item>
         <el-form-item label="支付时间" prop="payTime">
           <el-date-picker clearable
-            v-model="form.payTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择支付时间">
+                          v-model="form.payTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择支付时间">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="下单描述">
           <editor v-model="form.content" :min-height="192"/>
         </el-form-item>
         <el-form-item label="支付方式(数据字典:dl_pay_way)" prop="payWay">
-          <el-input v-model="form.payWay" placeholder="请输入支付方式(数据字典:dl_pay_way)" />
+          <el-input v-model="form.payWay" placeholder="请输入支付方式(数据字典:dl_pay_way)"/>
         </el-form-item>
         <el-form-item label="是否已支付" prop="isPay">
-          <el-input v-model="form.isPay" placeholder="请输入是否已支付" />
+          <el-input v-model="form.isPay" placeholder="请输入是否已支付"/>
         </el-form-item>
         <el-form-item label="是否退款(0未退款|1已退款)" prop="isRefund">
-          <el-input v-model="form.isRefund" placeholder="请输入是否退款(0未退款|1已退款)" />
+          <el-input v-model="form.isRefund" placeholder="请输入是否退款(0未退款|1已退款)"/>
         </el-form-item>
         <el-form-item label="退款人id" prop="refundUserId">
-          <el-input v-model="form.refundUserId" placeholder="请输入退款人id" />
+          <el-input v-model="form.refundUserId" placeholder="请输入退款人id"/>
         </el-form-item>
         <el-form-item label="退款方式(数据字典:dl_pay_way)" prop="refundWay">
-          <el-input v-model="form.refundWay" placeholder="请输入退款方式(数据字典:dl_pay_way)" />
+          <el-input v-model="form.refundWay" placeholder="请输入退款方式(数据字典:dl_pay_way)"/>
         </el-form-item>
         <el-form-item label="退款单号" prop="refundNo">
-          <el-input v-model="form.refundNo" placeholder="请输入退款单号" />
+          <el-input v-model="form.refundNo" placeholder="请输入退款单号"/>
         </el-form-item>
         <el-form-item label="退款发起时间" prop="refundApplyTime">
           <el-date-picker clearable
-            v-model="form.refundApplyTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择退款发起时间">
+                          v-model="form.refundApplyTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="请选择退款发起时间">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="退款到账时间" prop="refundReceiveTime">
-          <el-input v-model="form.refundReceiveTime" placeholder="请输入退款到账时间" />
+          <el-input v-model="form.refundReceiveTime" placeholder="请输入退款到账时间"/>
         </el-form-item>
         <el-form-item label="退款理由" prop="refundReason">
-          <el-input v-model="form.refundReason" type="textarea" placeholder="请输入内容" />
+          <el-input v-model="form.refundReason" type="textarea" placeholder="请输入内容"/>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
+          <el-input v-model="form.remark" placeholder="请输入备注"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -221,10 +283,11 @@
 </template>
 
 <script>
-import { listOrder, getOrder, delOrder, addOrder, updateOrder } from "@/api/member/order";
+import {listOrder, getOrder, delOrder, addOrder, updateOrder} from "@/api/member/order";
 
 export default {
   name: "Order",
+  dicts: ['dl_user_type', 'dl_order_type', 'dl_pay_way'],
   data() {
     return {
       // 遮罩层
@@ -245,6 +308,20 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      payOption: [{
+        value: 0,
+        label: '待支付'
+      }, {
+        value: 1,
+        label: '已支付'
+      }],
+      refundOption: [{
+        value: 0,
+        label: '未退款'
+      }, {
+        value: 1,
+        label: '已退款'
+      }],
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -253,14 +330,15 @@ export default {
         nickname: null,
         orderNo: null,
         orderType: null,
+        payWay: null,
+        refundWay: null,
         isPay: null,
         isRefund: null,
       },
       // 表单参数
       form: {},
       // 表单校验
-      rules: {
-      }
+      rules: {}
     };
   },
   created() {
@@ -326,7 +404,7 @@ export default {
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
@@ -368,12 +446,13 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除订单编号为"' + ids + '"的数据项?').then(function() {
+      this.$modal.confirm('是否确认删除订单编号为"' + ids + '"的数据项?').then(function () {
         return delOrder(ids);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      }).catch(() => {
+      });
     },
     /** 导出按钮操作 */
     handleExport() {