Procházet zdrojové kódy

20241025防御性提交 -zzx

zouzexu před 7 měsíci
rodič
revize
50e2de18f0

binární
dist.zip


+ 22 - 1
src/router/index.js

@@ -2,7 +2,7 @@
  * @Author: wenjie 1454560336@qq.com
  * @Date: 2024-03-05 11:36:07
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-09-20 09:55:47
+ * @LastEditTime: 2024-10-23 11:20:49
  * @FilePath: \admin-manage\src\router\index.js
  * @Description:
  *
@@ -1426,6 +1426,27 @@ export let constantRoutes = [{
           // },
         ]
       },
+      // {
+      //   id: 0,
+      //   path: '/userManage/userList',
+      //   component: operationLayout,
+      //   redirect: '/userManage/userList',
+      //   meta: {
+      //     title: '会员管理',
+      //     icon: ''
+      //   },
+      //   children: [{
+      //       id: 1,
+      //       path: '/userManage/userList/index',
+      //       name: '/userManage/userList/index',
+      //       component: () => import('@/views/userManage/userList/index.vue'),
+      //       meta: {
+      //         title: '用户列表',
+      //         icon: ''
+      //       },
+      //     },
+      //   ]
+      // },
     ]
   },
 

+ 1 - 1
src/utils/config.js

@@ -2,7 +2,7 @@
  * @Author: wj 1454560336@qq.com
  * @Date: 2024-01-05 16:08:18
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-10-14 11:23:43
+ * @LastEditTime: 2024-10-23 11:20:56
  * @FilePath: \admin-manage\src\utils\config.js
  * @Description: 124234
  * 

+ 51 - 45
src/views/operationManage/comboManage/vipActivation.vue

@@ -26,21 +26,6 @@
           placeholder="请输入订单号"
           class="item-width-200 ml10"
         ></el-input>
-        <!-- <el-select
-          v-model="query.miniApp"
-          size="small"
-          clearable
-          class="item-width-200 ml10"
-          placeholder="请选择所属小程序"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select> -->
         <el-select
           v-model="query.groupType"
           size="small"
@@ -166,7 +151,7 @@
       </el-table-column>
       <el-table-column align="center" label="未激活数量" show-overflow-tooltip>
         <template slot-scope="scope">
-          {{ scope.row.totalTicket-scope.row.useTicket || "--" }}
+          {{ scope.row.totalTicket - scope.row.useTicket || "--" }}
         </template>
       </el-table-column>
       <el-table-column align="center" label="已激活数量" show-overflow-tooltip>
@@ -222,7 +207,12 @@
       >
       </el-pagination>
     </div>
-    <el-dialog title="生成激活码" :visible.sync="vipDialogVisible" :before-close="closeVipDialog" width="50%">
+    <el-dialog
+      title="生成激活码"
+      :visible.sync="vipDialogVisible"
+      :before-close="closeVipDialog"
+      width="50%"
+    >
       <el-descriptions class="margin-top" :column="3" border>
         <el-descriptions-item>
           <template slot="label"> 计费号 </template>
@@ -260,6 +250,8 @@
         <el-form-item label="激活码有效期:" prop="validDay">
           <el-input
             v-model="setQuery.validDay"
+            onkeyup="this.value=this.value.replace(/\D/g,'')"
+            onafterpaste="this.value=this.value.replace(/\D/g,'')"
             class="item-width-100"
           ></el-input>
@@ -300,6 +292,8 @@
           <div v-if="setQuery.activationType == '天数'">
             <el-input
               v-model="setQuery.activationDay"
+              onkeyup="this.value=this.value.replace(/\D/g,'')"
+              onafterpaste="this.value=this.value.replace(/\D/g,'')"
               class="item-width-100"
             ></el-input>
@@ -318,10 +312,12 @@
         <el-form-item label="激活码数量:">
           <el-input
             v-model="setQuery.totalTicket"
+            onkeyup="this.value=this.value.replace(/\D/g,'')"
+            onafterpaste="this.value=this.value.replace(/\D/g,'')"
             class="item-width-100"
           ></el-input>
           <span style="color: red; font-size: 12px; margin-left: 10px"
-            >注:默认为订购数量,激活码数量必须大于订购数量</span
+            >注:默认为订购数量,激活码数量必须大于订购数量,输入数字须为整数</span
           >
         </el-form-item>
         <el-form-item label="激活码开头:" prop="startString">
@@ -330,7 +326,7 @@
             class="item-width-100"
           ></el-input>
           <span style="color: red; font-size: 12px; margin-left: 10px"
-            >注:只能输入大小写英文和数字,创建激活码放在激活码开头</span
+            >注:只能输入大小写英文和数字,创建激活码放在激活码开头</span
           >
         </el-form-item>
       </el-form>
@@ -417,13 +413,21 @@ export default {
       },
       rules: {
         validDay: [
-          { required: true, message: "请输入激活码有效期", trigger: "blur" },
+          {
+            required: true,
+            message: "请输入激活码有效期且必须为整数",
+            trigger: "blur",
+          },
         ],
         selectType: [
           { required: true, message: "请选择会员套餐", trigger: "change" },
         ],
         activationType: [
-          { required: true, message: "请选择有效期", trigger: "change" },
+          {
+            required: true,
+            message: "请选择有效期(天数必须为整数)",
+            trigger: "change",
+          },
         ],
         endTime: [
           {
@@ -432,7 +436,9 @@ export default {
             trigger: "change",
           },
         ],
-        startString: [{ required: true, message: "请输入激活码开头", trigger: "blur" },],
+        startString: [
+          { required: true, message: "请输入激活码开头", trigger: "blur" },
+        ],
       },
       vipDialogVisible: false,
 
@@ -465,13 +471,13 @@ export default {
   filters: {},
   methods: {
     // 重置表单
-    activationCancel(){
+    activationCancel() {
       this.$refs["setQuery"].resetFields();
       this.vipDialogVisible = false;
     },
-    closeVipDialog(done){
+    closeVipDialog(done) {
       this.$refs["setQuery"].resetFields();
-      done()
+      done();
     },
     //  生成弹窗
     gotoGenerating(item) {
@@ -479,7 +485,7 @@ export default {
       this.vipDialogVisible = true;
       this.codeData = item;
       this.setQuery.groupOrderNo = item.orderNo;
-      this.setQuery.totalTicket=item.orderNum      
+      this.setQuery.totalTicket = Math.floor(item.orderNum);
     },
 
     // 套餐选择
@@ -494,11 +500,11 @@ export default {
       this.$refs[formName].validate((valid) => {
         if (valid) {
           delete this.setQuery.selectType;
-          if(this.setQuery.totalTicket!=''){
-            if( this.codeData.orderNum>this.setQuery.totalTicket){
-            this.$message.error("激活码数量必须大于订购数量");
-            return
-          }
+          if (this.setQuery.totalTicket != "") {
+            if (this.codeData.orderNum > this.setQuery.totalTicket) {
+              this.$message.error("激活码数量必须大于订购数量");
+              return;
+            }
           }
           this.updataLoading = true;
           if (this.setQuery.activationType == "时间段") {
@@ -506,7 +512,7 @@ export default {
           } else {
             this.setQuery.activationType = 2;
           }
-          this.submit_generateCode()
+          this.submit_generateCode();
         } else {
           console.log("error submit!!");
           return false;
@@ -515,19 +521,19 @@ export default {
     },
 
     // 提交接口调用
-    submit_generateCode(){
+    submit_generateCode() {
       generateCode(this.setQuery).then((res) => {
-            this.updataLoading = false;
-            if (res.state == "Success") {
-              this.vipDialogVisible = false;
-              this.getList();
-              this.setQuery.validDay = "";
-              this.setQuery.activationType = "";
-              this.date = "";
-              this.setQuery.totalTicket = "";
-              setQuery.startString = "";
-            }
-          });
+        this.updataLoading = false;
+        if (res.state == "Success") {
+          this.vipDialogVisible = false;
+          this.getList();
+          this.setQuery.validDay = "";
+          this.setQuery.activationType = "";
+          this.date = "";
+          this.setQuery.totalTicket = "";
+          setQuery.startString = "";
+        }
+      });
     },
 
     // 查看激活码
@@ -544,7 +550,7 @@ export default {
     get_setmealList() {
       this.loading = true;
       getList().then((res) => {
-      this.loading = false;
+        this.loading = false;
         if (res.state == "Success") {
           this.optionsList = res.content.records;
         }

+ 1 - 0
src/views/operationManage/equitiesManage/addEquities.vue

@@ -754,6 +754,7 @@ export default {
     // 获取视频会员商品
     getGoodsList(){
       getGoodsList({
+          title:'',
 					productType:['Recharge'],
           regionCode:'520100',
 					page:0,

+ 1 - 0
src/views/operationManage/goodsManage/productLibrary.vue

@@ -188,6 +188,7 @@
             <el-input
             v-model.number="setQuery.regionCode"
             class="item-width-300"
+            :disabled="title == '编辑'"
             ></el-input>
         </el-form-item>
          <el-form-item label="经度" >

+ 1 - 1
src/views/operationManage/luckyDrawManage/addLuckyDraw.vue

@@ -298,7 +298,7 @@
         <el-form-item label="奖品名称"  prop="prizeName">
             <el-input
             v-model="form.prizeName"
-            :maxlength="6"
+            :maxlength="8"
             show-word-limit
             class="item-width-300"
             ></el-input>

+ 16 - 0
src/views/operationManage/orderManage/index.vue

@@ -291,6 +291,22 @@ export default {
             goodsName:goodsModelList[0].goodsInfo.goodsName,
             price:goodsModelList[0].goodsInfo.originPrice
           }
+        }else if(goodsModelList[0].jobFlowMap == 'video2'){
+          return {
+            goodsName:goodsModelList[0].goodsInfo.goodsName,
+            price:goodsModelList[0].goodsInfo.originPrice
+          }
+        }else if(goodsModelList[0].jobFlowMap == 'QiuXiang'){
+          return {
+            goodsName:goodsModelList[0].goodsInfo.goodsName,
+            price:goodsModelList[0].goodsInfo.originPrice
+          }
+        }
+        else if(goodsModelList[0].jobFlowMap == 'Kfc'){
+          return {
+            goodsName:goodsModelList[0].goodsInfo.goodsName,
+            price:goodsModelList[0].goodsInfo.products[0].sellPrice
+          }
         }else{
           return {
             goodsName:goodsModelList[0].goodsInfo.goodsName,

+ 55 - 11
src/views/operationManage/orderManage/list.vue

@@ -114,8 +114,10 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        <img src="@/assets/recharge.png" v-if="scope.row.goodsModelList[0].jobFlowMap == 'video2'" alt="" class="icon">
-        <img v-else :src="scope.row.goodsModelList[0].goodsInfo.activityCover||scope.row.goodsModelList[0].goodsInfo.goodsPath" alt="" class="icon">
+        <img :src="formatType(scope.row).icon" alt="" class="icon">
+
+        <!-- <img src="@/assets/recharge.png" v-if="scope.row.goodsModelList[0].jobFlowMap == 'video2'" alt="" class="icon">
+        <img v-else :src="scope.row.goodsModelList[0].goodsInfo.activityCover||scope.row.goodsModelList[0].goodsInfo.goodsPath" alt="" class="icon"> -->
       </template>
       </el-table-column>
       <el-table-column
@@ -125,7 +127,8 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        {{scope.row.goodsModelList[0].goodsInfo.activityName||scope.row.goodsModelList[0].goodsInfo.goodsName}}
+        <!-- {{scope.row.goodsModelList[0].goodsInfo.activityName||scope.row.goodsModelList[0].goodsInfo.goodsName }} -->
+        {{ formatType(scope.row).goodsName}}
       </template>
       </el-table-column>
       <el-table-column
@@ -135,7 +138,7 @@
         show-overflow-tooltip
       >
        <template slot-scope="scope">
-        {{goodsTypeObj[scope.row.goodsModelList[0].goodsInfo.goodsType] || formatType(scope.row) }}
+        {{goodsTypeObj[scope.row.goodsModelList[0].goodsInfo.goodsType] || formatType(scope.row).type }}
       </template>
       </el-table-column>
     
@@ -358,19 +361,60 @@ export default {
   methods: {
     formatType(row){
         if(row.goodsModelList[0].jobFlowMap == 'XiaoJu'){
-            return '加油充电'
+
+            return {
+                icon:row.goodsModelList[0].goodsInfo.goodsPath,
+                type:'加油充电',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
         }else if(row.goodsModelList[0].jobFlowMap == 'Activity'){
-            return '活动报名'
+            return {
+                icon:row.goodsModelList[0].goodsInfo.activityCover,
+                type:'活动报名',
+                goodsName:row.goodsModelList[0].goodsInfo.activityName
+              }
         }else if(row.goodsModelList[0].jobFlowMap == 'Ticket'){
-            return '景区门票'
+             return {
+                icon:row.goodsModelList[0].goodsInfo.goodsPath,
+                type:'景区门票',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
         }else if(row.goodsModelList[0].jobFlowMap == 'Hotel'){
-            return '酒店住宿'
+            return {
+                icon:row.goodsModelList[0].goodsInfo.goodsPath,
+                type:'酒店住宿',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
         }else if(row.goodsModelList[0].jobFlowMap == 'YPP'){
-            return '电影票'
+             return {
+                icon:row.goodsModelList[0].goodsInfo.goodsPath,
+                type:'电影票',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
         }else if(row.goodsModelList[0].jobFlowMap == 'video2'){
-            return '视频会员'
+             return {
+                icon:require('@/assets/recharge.png'),
+                type:'视频会员',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
+        }else if(row.goodsModelList[0].jobFlowMap == 'QiuXiang'){
+             return {
+                icon:row.goodsModelList[0].goodsInfo.goodsPath,
+                type:'秋香代驾',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
+        }else if(row.goodsModelList[0].jobFlowMap == 'Kfc'){
+             return {
+                icon:row.goodsModelList[0].goodsInfo.products[0].imageUrl,
+                type:'大牌点餐',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
         }else{
-            return '-'
+           return {
+                icon:row.goodsModelList[0].goodsInfo.goodsPath,
+                type:'-',
+                goodsName:row.goodsModelList[0].goodsInfo.goodsName
+              }
         }
     },
     handleSearch(){

+ 99 - 4
src/views/operationManage/orderManage/orderDetail.vue

@@ -2,7 +2,7 @@
  * @Author: wj 1454560336@qq.com
  * @Date: 2023-11-01 14:21:43
  * @LastEditors: wenjie 1454560336@qq.com
- * @LastEditTime: 2024-09-18 18:22:30
+ * @LastEditTime: 2024-10-23 14:53:16
  * @FilePath: \admin-manage\src\views\operationManage\orderManage\orderDetail.vue
  * @Description:
  *
@@ -118,12 +118,66 @@
 
     <div class="title">商品信息</div>
 
+    <el-table
+      :data="tableData[0].goodsList[0].goodsInfo.products"
+      tooltip-effect="dark"
+      border
+      v-loading="loading"
+      style="width: 100%"
+      v-if="tableData[0].goodsList[0].jobFlowMap == 'Kfc'"
+    >
+      <el-table-column
+        prop="shopName"
+        align="center"
+        label="商品图"
+        show-overflow-tooltip
+      >
+      <template slot-scope="scope">
+        <img :src="scope.row.imageUrl" alt="" class="icon">
+
+        <!-- <img src="@/assets/recharge.png" v-if="scope.row.goodsList[0].jobFlowMap == 'video2'" alt="" class="icon">
+        <img v-else :src="scope.row.goodsList[0].goodsInfo.activityCover||scope.row.goodsList[0].goodsInfo.goodsPath" alt="" class="icon"> -->
+      </template>
+      </el-table-column>
+      <el-table-column
+        prop="shopName"
+        align="center"
+        label="商品名"
+        show-overflow-tooltip
+      >
+      <template slot-scope="scope">
+        {{scope.row.nameCn + '  x  ' + scope.row.quantity}}
+      </template>
+      </el-table-column>
+      <el-table-column
+        prop="goodsAmount"
+        align="center"
+        label="售价"
+        show-overflow-tooltip
+      >
+       <template slot-scope="scope">
+        {{scope.row.sellPrice }}
+      </template>
+      </el-table-column>
+       <el-table-column
+        prop="createTime"
+        align="center"
+        label="商品类型"
+        show-overflow-tooltip
+      >
+       <template slot-scope="scope">
+        {{formatData(tableData[0]).type }}
+      </template>
+      </el-table-column>
+    </el-table>
+
     <el-table
       :data="tableData"
       tooltip-effect="dark"
       border
       v-loading="loading"
       style="width: 100%"
+      v-else
     >
       <el-table-column
         prop="shopName"
@@ -132,8 +186,10 @@
         show-overflow-tooltip
       >
       <template slot-scope="scope">
-        <img src="@/assets/recharge.png" v-if="scope.row.goodsList[0].jobFlowMap == 'video2'" alt="" class="icon">
-        <img v-else :src="scope.row.goodsList[0].goodsInfo.activityCover||scope.row.goodsList[0].goodsInfo.goodsPath" alt="" class="icon">
+        <img :src="formatData(scope.row).icon" alt="" class="icon">
+
+        <!-- <img src="@/assets/recharge.png" v-if="scope.row.goodsList[0].jobFlowMap == 'video2'" alt="" class="icon">
+        <img v-else :src="scope.row.goodsList[0].goodsInfo.activityCover||scope.row.goodsList[0].goodsInfo.goodsPath" alt="" class="icon"> -->
       </template>
       </el-table-column>
       <el-table-column
@@ -163,7 +219,7 @@
         show-overflow-tooltip
       >
        <template slot-scope="scope">
-        {{goodsTypeObj[scope.row.goodsList[0].goodsInfo.goodsType]  || formatType(scope.row) }}
+        {{goodsTypeObj[scope.row.goodsList[0].goodsInfo.goodsType]  || formatData(scope.row).type }}
       </template>
       </el-table-column>
     </el-table>
@@ -466,6 +522,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                     return '电影票'
                 }else if(row.goodsList[0].jobFlowMap == 'video2'){
                     return '视频会员'
+                }else if(row.goodsList[0].jobFlowMap == 'video2'){
+                    return '视频会员'
                 }else{
                     return '-'
                 }
@@ -474,6 +532,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                 if(row.goodsList[0].jobFlowMap == 'XiaoJu'){
                     if(row.goodsList[0].extend.hasOwnProperty('notifyOrderInfo')){
                         return {
+                            type:'加油充电',
+                            icon:row.goodsList[0].goodsInfo.goodsPath,
                             paymentTime:row.goodsList[0].extend.notifyOrderInfo.payTime,
                             paymentWay:'-',
                             price:(row.goodsList[0].goodsInfo.storePrice/100).toFixed(2) +'/L',
@@ -482,6 +542,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                         }
                     }else{
                         return {
+                            type:'加油充电',
+                            icon:row.goodsList[0].goodsInfo.goodsPath,
                             paymentTime:'-',
                             paymentWay:'',
                             price:(row.goodsList[0].goodsInfo.storePrice/100).toFixed(2) +'/L',
@@ -491,6 +553,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                     }
                 }else if(row.goodsList[0].jobFlowMap == 'Activity'){
                     return {
+                        type:'活动报名',
+                        icon:row.goodsList[0].goodsInfo.activityCover,
                         paymentTime:row.payment?row.payment.paymentTime:'',
                         paymentWay:row.payment?row.payment.paymentWay:'',
                         price:row.goodsList[0].goodsInfo.price,
@@ -499,6 +563,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                     }
                 }else if(row.goodsList[0].jobFlowMap == 'Ticket'){
                     return {
+                        type:'景区门票',
+                        icon:row.goodsList[0].goodsInfo.goodsPath,
                         paymentTime:row.payment?row.payment.paymentTime:'',
                         paymentWay:row.payment?row.payment.paymentWay:'',
                         price:row.goodsList[0].goodsInfo.salePrice,
@@ -507,6 +573,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                     }
                 }else if(row.goodsList[0].jobFlowMap == 'Hotel'){
                     return {
+                        type:'酒店住宿',
+                        icon:row.goodsList[0].goodsInfo.goodsPath,
                         paymentTime:row.payment?row.payment.paymentTime:'',
                         paymentWay:row.payment?row.payment.paymentWay:'',
                         price:row.goodsList[0].goodsInfo.totalPrice/row.goodsList[0].goodsInfo.numberofRooms,
@@ -516,6 +584,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                 }
                 else if(row.goodsList[0].jobFlowMap == 'YPP'){
                     return {
+                        type:'电影票',
+                        icon:row.goodsList[0].goodsInfo.goodsPath,
                         paymentTime:row.payment?row.payment.paymentTime:'',
                         paymentWay:row.payment?row.payment.paymentWay:'',
                         price:row.goodsList[0].goodsInfo.originPrice,
@@ -525,6 +595,8 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
                 }
                 else if(row.goodsList[0].jobFlowMap == 'video2'){
                     return {
+                        type:'视频会员',
+                        icon:require('@/assets/recharge.png'),
                         paymentTime:row.payment?row.payment.paymentTime:'',
                         paymentWay:row.payment?row.payment.paymentWay:'',
                         price:row.goodsList[0].payAmount,
@@ -532,8 +604,31 @@ import {auditRefund,transfer,orderDetail,subOrdersConfirm,getReserve} from '@/ap
 
                     }
                 }
+                else if(row.goodsList[0].jobFlowMap == 'QiuXiang'){
+                    return {
+                        type:'秋香代驾',
+                        icon:row.goodsList[0].goodsInfo.goodsPath,
+                        paymentTime:row.payment?row.payment.paymentTime:'',
+                        paymentWay:row.payment?row.payment.paymentWay:'',
+                        price:row.goodsList[0].goodsInfo.realPrice,
+                        goodsName:row.goodsList[0].goodsInfo.goodsName,
+
+                    }
+                }
+                else if(row.goodsList[0].jobFlowMap == 'Kfc'){
+                    return {
+                        type:'大牌点餐',
+                        icon:row.goodsList[0].goodsInfo.goodsPath,
+                        paymentTime:row.payment?row.payment.paymentTime:'',
+                        paymentWay:row.payment?row.payment.paymentWay:'',
+                        price:row.goodsList[0].goodsInfo.realPrice,
+                        goodsName:row.goodsList[0].goodsInfo.goodsName,
+                    }
+                }
                 else{
                     return {
+                        type:'-',
+                        icon:row.goodsList[0].goodsInfo.goodsPath,
                         paymentTime:row.payment?row.payment.paymentTime:'',
                         paymentWay:row.payment?row.payment.paymentWay:'',
                         price:row.goodsList[0].goodsInfo.realPrice,

+ 319 - 0
src/views/userManage/userList/index.vue

@@ -0,0 +1,319 @@
+
+<template>
+  <div class="userList app-container">
+    <div class="search">
+      <div>
+        <el-input
+          v-model="query.userIdOrPhone"
+          size="small"
+          placeholder="请输入用户ID或手机号"
+          class="item-width-200"
+        ></el-input>
+        <el-select
+          v-model="query.setMealId"
+          size="small"
+          clearable
+          class="item-width-200 ml10"
+          placeholder="请选择套餐"
+        >
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+         <el-select
+          v-model="query.platformType"
+          size="small"
+          class="item-width-200 ml10"
+          placeholder="请选择注册平台"
+        >
+          <el-option
+            v-for="item in options1"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+        <el-button
+        class="ml10"
+        type="primary"
+        size="small"
+        icon="el-icon-search"
+        @click="handleSearch"
+      >
+        搜索
+      </el-button>
+      </div>
+    
+    </div>
+
+    <el-table
+      :data="tableData"
+      tooltip-effect="dark"
+      border
+      v-loading="loading"
+      style="width: 100%"
+    >
+      <el-table-column
+        align="center"
+        label="用户ID"
+        prop="userId"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      <el-table-column
+        prop="phone"
+        align="center"
+        label="姓名"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        align="center"
+        label="登录账号"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      <el-table-column
+        align="center"
+        prop="useMoney"
+        label="角色"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+       <el-table-column
+        align="center"
+        prop="useMoney"
+        label="状态"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+       <el-table-column
+        align="center"
+        prop="useMoney"
+        label="创建人"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      
+      <el-table-column
+        align="center"
+        prop="createTime"
+        label="创建时间"
+        show-overflow-tooltip
+      >
+      </el-table-column>
+      <el-table-column align="center" property="address" label="操作">
+         <template slot-scope="scope">
+          <el-button type="text" size="small" @click="handleAccountEdit(scope.row,scope.row.accesser_user_id)"
+            >编辑</el-button
+          >
+           <el-button type="text" size="small" @click="handleAccountDetail(scope.row,scope.row.accesser_user_id)"
+            >修改密码</el-button
+          >
+          <el-button type="text" size="small" @click="handleAccountDel(scope.row.accesser_user_id)"
+            >禁用</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="page-box">
+      <el-pagination
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        background
+        :current-page="query.currentPage"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="query.pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+      >
+      </el-pagination>
+    </div>
+
+    <el-dialog :title="title" width="750px" :visible.sync="dialogFormVisible">
+    <el-form label-width="130px" :model="form"
+      ref="form"
+      :rules="rules">
+     
+        <el-form-item label="姓名"  prop="prizeName">
+            <el-input
+            v-model="form.prizeName"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+        <el-form-item label="登录账号"  prop="prizeName">
+            <el-input
+            v-model="form.prizeName"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+        <el-form-item label="登录密码"  prop="prizeName">
+            <el-input
+            v-model="form.prizeName"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+        <el-form-item label="确认密码"  prop="prizeName">
+            <el-input
+            v-model="form.prizeName"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+        <el-form-item label="角色"  prop="prizeName">
+            <el-input
+            v-model="form.prizeName"
+            class="item-width-300"
+            ></el-input>
+        </el-form-item>
+        
+         <el-form-item label="状态:">
+          <el-radio-group v-model="form.prizeType">
+              <el-radio :label="1">启用</el-radio>
+              <el-radio :label="2">禁用</el-radio>
+          </el-radio-group>
+        </el-form-item>
+
+    </el-form>
+  <div slot="footer" class="dialog-footer">
+    <el-button @click="dialogFormVisible = false">取 消</el-button>
+    <el-button type="primary" @click="save">确 定</el-button>
+  </div>
+</el-dialog>
+
+
+  </div>
+</template>
+  
+  <script>
+import { debounce } from "@/utils/index";
+import { userList } from "@/api/user";
+import { getSetMealNameAndId } from "@/api/common";
+export default {
+  name: "userList",
+  data() {
+    return {
+      title:'添加用户',
+      dialogFormVisible:false,
+      form:{},
+      rules:{
+          prizeContent: [
+            { required: true, message: "请选择", trigger: "change" },
+          ],
+      },
+      that: this,
+      tableData: [],
+      options: [],
+      options1: [
+        {
+          label:'慧研学惠生活',
+          value:1
+        },
+        {
+          label:'印象贵大',
+          value:2
+        }
+      ],
+      loading: false,
+      query: {
+        platformType:1,
+        setMealId: "",
+        userIdOrPhone: "",
+        currentPage: 1,
+        pageSize: 10,
+      },
+      total: 0,
+    };
+  },
+  // watch: {
+  //   query: {
+  //     handler: debounce(function (val) {
+  //       this.getList();
+
+  //       console.log(1);
+  //     }),
+  //     deep: true,
+  //   },
+  // },
+  filters: {
+    filterMeal: function (val, that) {
+      let msg;
+      that.options.map((item) => {
+        if (val == item.value) {
+          msg = item.label;
+        }
+      });
+      return msg || "无套餐";
+    },
+  },
+  methods: {
+    handleSearch(){
+      this.query.currentPage = 1
+      this.getList();
+
+    },
+    handleSizeChange(val) {
+      this.query.currentPage = 1;
+      this.query.pageSize = val;
+      this.getList();
+    },
+    handleCurrentChange(val) {
+      this.query.currentPage = val;
+      this.getList();
+    },
+    getList() {
+      this.loading = true;
+      userList(this.query).then((res) => {
+        this.loading = false;
+        if (res.state == "Success") {
+          this.tableData = res.content.records;
+          this.total = res.content.total;
+        }
+      });
+    },
+    getMeal() {
+      getSetMealNameAndId().then((res) => {
+        if (res.state == "Success") {
+          for (const key in res.content) {
+            if (Object.hasOwnProperty.call(res.content, key)) {
+              this.options.push({
+                label: res.content[key],
+                value: key,
+              });
+            }
+          }
+        }
+      });
+    },
+    save(){
+        this.$refs.form.validate((v) => {
+            if (v) {
+
+            }
+
+        })
+    }
+  },
+  created() {
+    this.getList();
+    this.getMeal();
+  },
+};
+</script>
+  
+<style lang="scss" scoped>
+.userList {
+  .search {
+    justify-content: space-between;
+    .add-btn {
+      // margin-right: 20px;
+    }
+  }
+}
+</style>
+