Эх сурвалжийг харах

Merge branch 'dev' of http://120.79.166.78:19005/zhongzheng-edu/saas_masterPlatform into dev

谢杰标 2 жил өмнө
parent
commit
0da955ddf7

+ 3 - 0
src/api/api.js

@@ -84,10 +84,13 @@ import poster from '../fxApi/poster'//海报列表
 import temp from '../fxApi/temp'//分销活动列表
 import orderManageList from '../fxApi/orderManageList'//订单管理
 
+//积分管理
+import integral from "../fxApi/integral"
 
 
 // 导入对应模块------------------------
 export default {
+    ...integral,
     ...orderManageList,
     ...poster,
     ...temp,

+ 50 - 0
src/fxApi/integral.js

@@ -0,0 +1,50 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //新增商户店铺管理
+    addmallstore(data) {
+        return request({
+            url: '/mall/store', 
+            method: 'post',
+            data
+        })
+    },
+    //修改商户店铺管理
+    editmallstore(data) {
+        return request({
+            url: '/mall/store/edit',
+            method: 'post',
+            data
+        })
+    },
+    //查询商户店铺管理列表
+    mallstorelist(data) {
+        return request({
+            url: '/mall/store/list',
+            method: 'get',
+            params: data
+        })
+    },
+    //获取商户店铺管理详细信息
+    mallstoredata(data) {
+        return request({
+            url: `/mall/store/` + data,
+            method: 'get',
+        })
+    },
+    //商户恢复密码
+    mallstorerestorePwd(data) {
+        return request({
+            url: '/mall/store/restorePwd',
+            method: 'post',
+            data
+        })
+    },
+    //商户修改密码
+    mallstoreupdatePwd(data) {
+        return request({
+            url: '/mall/store/updatePwd',
+            method: 'post',
+            data
+        })
+    },
+}

+ 2 - 1
src/fxApi/orderManageList.js

@@ -66,8 +66,9 @@ export default {
     //订单应付审核详情
     systemtoporderdividedetail(data) {
         return request({
-            url: '/system/top/order/divide/detail/' + data,
+            url: '/system/top/order/divide/detail',
             method: 'get',
+            params: data
         })
     },
     //获取订单成本设置

+ 1 - 1
src/utils/request.js

@@ -7,7 +7,7 @@ import { paramMate } from "@/utils/common";
 
 axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
 // 创建axios实例
-// export const baseURL = process.env.VUE_APP_BASE_API
+export const baseURL = process.env.VUE_APP_BASE_API
 // export const baseURL = 'https://ptapi.gdzzkj.net/'
 export const baseURL = "http://192.168.1.222:7077/";
 export const BASE_IMG_URL = process.env.VUE_APP_IMG_API;

+ 16 - 0
src/views/financed/arap/index.vue

@@ -152,6 +152,7 @@
       :dialogVisible.sync="examineDialogVisible"
       @search="search"
       :info="activeOrderInfo"
+      @update="update"
     ></dislog-set>
     <!-- 坏账设置 -->
     <dislog-bad-bill
@@ -613,6 +614,7 @@ export default {
       roleList: [],
       countInfo: {},
       spanData: {},
+      maps: new Map(),
     };
   },
   created() {
@@ -666,6 +668,7 @@ export default {
     },
     openDialog(data, type) {
       this.activeOrderInfo = data;
+      this.activeOrderInfo.checkFrom = type + 1;
       this[
         ["tip", "examine", "remark", "order", "badBill"][type] + "DialogVisible"
       ] = true;
@@ -700,6 +703,7 @@ export default {
       return index + 1;
     },
     changeSearch() {
+      this.maps.clear()
       this.search(2);
     },
     getDataList() {
@@ -741,6 +745,18 @@ export default {
         .catch(() => {
           resolve([]);
         });
+      this.maps.set(tree.id, { tree, treeNode, resolve });
+    },
+    update(parentId) {
+      const { tree, treeNode, resolve } = this.maps.get(parentId);
+      this.$set(
+        this.$refs.tableList.$refs.pagerset.store.states.lazyTreeNodeMap,
+        parentId,
+        []
+      );
+      if (tree) {
+        this.load(tree, treeNode, resolve);
+      }
     },
     // 切换已付待付
     backStatus({ row, column }) {

+ 2 - 1
src/views/financed/components/audit/dislogSet.vue

@@ -185,7 +185,7 @@ export default {
       this.resetForm();
       this.$api[
         this.info.orderSn ? "systemtoporderdividedetail" : "dividelogdata"
-      ](this.info.orderSn ? this.info.orderSn : this.info.id).then((res) => {
+      ](this.info.orderSn ? {orderSn:this.info.orderSn,checkFrom:this.info.checkFrom} : this.info.id).then((res) => {
         this.form = res.data;
         this.$api.systemtenantbankId(res.data.tenantId).then((e) => {
           this.bankList = e.data || [];
@@ -254,6 +254,7 @@ export default {
               })
               .then((res) => {
                 this.isShow = false;
+                this.$emit("update",this.info.divideLogId)
                 this.$emit("search");
               })
               .finally(() => {

+ 3 - 2
src/views/financed/components/dislogOrderDetails.vue

@@ -94,6 +94,7 @@
         :orderSn="orderSn"
         :orderFrom="orderFrom"
         :ShowStatus="ShowStatus"
+        :checkStatus="detailInfo.checkStatus"
       ></student-details>
     </BaseDialog>
   </div>
@@ -255,8 +256,8 @@ export default {
               orderSn: this.orderSn,
             })
             .then((res) => {
-              this.init();
               this.$message.success("操作成功");
+              this.submitForm();
             });
         })
         .catch(() => {});
@@ -275,8 +276,8 @@ export default {
               orderSn: this.orderSn,
             })
             .then((res) => {
-              this.init();
               this.$message.success("操作成功");
+              this.submitForm();
             });
         })
         .catch(() => {});

+ 28 - 3
src/views/financed/components/studentDetails.vue

@@ -51,10 +51,18 @@
             >查询</el-button
           >
           <el-button size="small" @click="search('init')">重置</el-button>
-          <el-button v-if="ShowStatus" type="success" size="small" @click="orderCheck(1,'')"
+          <el-button
+            v-if="ShowStatus && isShow"
+            type="success"
+            size="small"
+            @click="orderCheck(1, '')"
             >学员审核通过</el-button
           >
-          <el-button v-if="ShowStatus" type="danger" size="small" @click="orderCheck(2, '不')"
+          <el-button
+            v-if="ShowStatus && isShow"
+            type="danger"
+            size="small"
+            @click="orderCheck(2, '不')"
             >学员审核不通过</el-button
           >
         </div>
@@ -107,6 +115,10 @@ export default {
       type: Boolean,
       default: false,
     },
+    checkStatus: {
+      type: Number,
+      default: null,
+    },
   },
   data() {
     return {
@@ -329,10 +341,23 @@ export default {
       tabType: "1",
     };
   },
+  computed: {
+    isShow: {
+      get() {
+        if (this.checkStatus === 1) {
+          return true;
+        } else {
+          return true;
+        }
+      },
+    },
+  },
   created() {
     this.search("init");
   },
-  mounted() {},
+  mounted() {
+    console.log(this.checkStatus, "--checkStatus");
+  },
 
   methods: {
     orderCheck(e, ch) {

+ 15 - 2
src/views/financed/orderManageList/index.vue

@@ -273,7 +273,12 @@ export default {
         {
           prop: "roleId",
           placeholder: "角色分类",
-          scope: "roleList",
+          scope: "select",
+          options: [
+            { label: "会计", value: 0 },
+            { label: "财务", value: 1 },
+            { label: "出纳", value: 2 },
+          ],
         },
         // {
         //   prop: "businessFullName",
@@ -308,7 +313,7 @@ export default {
           ],
         },
         {
-          prop: "refundStatusList",
+          prop: "refundStatus",
           placeholder: "退款状态",
           scope: "select",
           options: [
@@ -511,6 +516,8 @@ export default {
       return str;
     },
     exportExcel() {
+      var b = 1
+      var a = "0,1"
       if (this.$refs.tableList.allCheckData.length === 0) {
         this.$message.error("请勾选数据");
         return;
@@ -662,6 +669,12 @@ export default {
         };
       }
       var data = JSON.parse(JSON.stringify(this.formData));
+      if(data.roleId === 0 || data.roleId === 1){
+        data.refundStatusList = "0,3,4"
+      }
+      if(data.roleId === 2){
+        data.refundStatusList = "2,3"
+      }
       if (this.formData.startTime) {
         data.startTime = parseInt(data.startTime / 1000);
       }

+ 268 - 0
src/views/integralManagement/chargeManagement/dislog.vue

@@ -0,0 +1,268 @@
+<template>
+  <div>
+    <BaseDialog
+      width="800px"
+      :isShow.sync="isShow"
+      :title="activeData.tenantId ? '修改' : '新增'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="机构名称:" prop="tenantName">
+          <el-input
+            clearable
+            v-model="formData.tenantName"
+            placeholder="输入机构名称"
+          ></el-input> </el-form-item
+        ><el-form-item label="h5域名:" prop="hostH5"
+          ><el-input
+            clearable
+            v-model="formData.hostH5"
+            placeholder="输入h5域名"
+          ></el-input></el-form-item
+        ><el-form-item label="PC域名:" prop="hostPc"
+          ><el-input
+            clearable
+            v-model="formData.hostPc"
+            placeholder="输入PC域名"
+          ></el-input
+        ></el-form-item>
+        <el-form-item label="账期设置:" required>
+          <el-col :span="9">
+            <el-form-item label="" prop="billType">
+              <el-select
+                v-model="formData.billType"
+                placeholder="选择账期类型"
+                clearable
+              >
+                <el-option label="月度" :value="1"> </el-option
+                ><el-option label="季度" :value="2"> </el-option
+                ><el-option label="半年" :value="3"> </el-option>
+                <el-option label="年度" :value="4"> </el-option>
+              </el-select> </el-form-item
+          ></el-col>
+          <el-col :span="9"
+            ><el-form-item label="" prop="billDay">
+              <el-select
+                v-model="formData.billDay"
+                placeholder="选择次月"
+                clearable
+              >
+                <el-option
+                  v-for="(item, index) in days"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select> </el-form-item
+          ></el-col>
+        </el-form-item>
+        <el-form-item label="收款账号:" required>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.openingName'"
+              :rules="rules['openingName']"
+            >
+              <el-input
+                clearable
+                v-model="formData.accountList[0].openingName"
+                placeholder="输入开户名"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.openingBank'"
+              :rules="rules['openingBank']"
+            >
+              <el-input
+                clearable
+                v-model="formData.accountList[0].openingBank"
+                placeholder="输入开户行"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.proceedsAccount'"
+              :rules="rules['proceedsAccount']"
+            >
+              <el-input
+                style="margin-top: 20px"
+                clearable
+                v-model="formData.accountList[0].proceedsAccount"
+                placeholder="输入账号"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form-item>
+        <el-form-item label="开票信息:" required>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'invoiceType'"
+              :rules="rules['invoiceType']"
+            >
+              <el-select
+                v-model="formData.invoiceBo.invoiceType"
+                placeholder="选择发票类型"
+                clearable
+              >
+                <el-option label="普票" :value="1"> </el-option
+                ><el-option label="专票" :value="2"> </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'invoice'"
+              :rules="rules['invoice']"
+              ><el-input
+                clearable
+                v-model="formData.invoiceBo.invoice"
+                placeholder="输入发票抬头(企业或个人)"
+              ></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'taxpayer'"
+              :rules="rules['taxpayer']"
+            >
+              <el-input
+                style="margin-top: 20px"
+                clearable
+                v-model="formData.invoiceBo.taxpayer"
+                placeholder="输入纳税人"
+              ></el-input> </el-form-item
+          ></el-col>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {
+        accountList: [{}],
+        invoiceBo: {},
+      },
+      rules: {
+        tenantName: [
+          { required: true, message: "请输入机构名称", trigger: "blur" },
+        ],
+        billType: [
+          { required: true, message: "请选择账期类型", trigger: "change" },
+        ],
+        billDay: [
+          { required: true, message: "请选择次月日期", trigger: "change" },
+        ],
+        openingName: [
+          { required: true, message: "请输入开户名", trigger: "blur" },
+        ],
+        openingBank: [
+          { required: true, message: "请输入开户行", trigger: "blur" },
+        ],
+        proceedsAccount: [
+          { required: true, message: "请输入账号", trigger: "blur" },
+        ],
+        invoiceType: [
+          { required: true, message: "请选择发票类型", trigger: "change" },
+        ],
+        invoice: [
+          { required: true, message: "请输入发票抬头", trigger: "blur" },
+        ],
+        taxpayer: [
+          { required: true, message: "请输入纳税人", trigger: "blur" },
+        ],
+      },
+      days: [],
+    };
+  },
+  mounted() {
+    this.getDays();
+  },
+
+  methods: {
+    //获取天数 从第6天算起 至31日
+    getDays() {
+      for (let i = 6; i <= 31; i++) {
+        this.days.push({ label: i + "日", value: i });
+      }
+    },
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+      this.formData.accountList = this.formData.accountList || [{}];
+      this.formData.invoiceBo = this.formData.invoiceBo || {};
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api[
+            this.activeData.tenantId ? "systemtenantedittop" : "systemtenantadd"
+          ](this.formData).then((res) => {
+            this.$message.success("成功");
+            this.isShow = false;
+            this.$emit("search");
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 185 - 0
src/views/integralManagement/chargeManagement/index.vue

@@ -0,0 +1,185 @@
+<template>
+  <div id="">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      rowKey="id"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-button> 导出excel </el-button>
+      </template>
+      <template slot="integral" slot-scope="props">
+        {{ props.scope.row["g"] }}积分
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></dislog>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "",
+  components: { searchBoxNew, tableList, pagination, dislog },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "核销管理",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: false,
+        addHide: true,
+        custom: false,
+        tableHide: true,
+      },
+      formList: [
+        {
+          prop: "tenantid",
+          placeholder: "请选择机构名称",
+        },
+      ],
+      formData: {},
+      tableSet: [
+        {
+          label: "合作商户",
+          prop: "a",
+          hidden: true,
+        },
+        {
+          label: "会员手机号",
+          prop: "b",
+          hidden: true,
+        },
+        {
+          label: "会员名称",
+          prop: "c",
+          hidden: true,
+        },
+        {
+          label: "核销人",
+          prop: "d",
+          hidden: true,
+        },
+        {
+          label: "核销时间",
+          prop: "e",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "付款方式",
+          prop: "f",
+          hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "扫码付款",
+              value: 1,
+            },
+            {
+              label: "现金支付",
+              value: 2,
+            },
+          ],
+        },
+        {
+          label: "消费积分",
+          prop: "g",
+          hidden: true,
+          scope: "solt",
+          soltName: "integral",
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      activeData: {},
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    addClick(data) {
+      this.activeData = data || {};
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.tableData = [
+        {
+          a: "深圳桥恩心理咨询有限公司",
+          b: 13800138000,
+          c: "张三",
+          d: "李四",
+          e: 1234567891,
+          f: 1,
+          g: 2000,
+        },
+      ];
+      //   this.loading = true;
+      //   if (v === 2) {
+      //     this.formData = {
+      //       pageSize: 10,
+      //       pageNum: 1,
+      //     };
+      //   }
+      //   this.$api
+      //     .xxx(this.formData)
+      //     .then((res) => {
+      //       this.tableData = res.rows;
+      //       this.total = res.total;
+      //       this.navText.index = res.total;
+      //     })
+      //     .finally(() => {
+      //       this.loading = false;
+      //     });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+        .then(() => {})
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 268 - 0
src/views/integralManagement/exchangeRules/dislog.vue

@@ -0,0 +1,268 @@
+<template>
+  <div>
+    <BaseDialog
+      width="800px"
+      :isShow.sync="isShow"
+      :title="activeData.tenantId ? '修改' : '新增'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="机构名称:" prop="tenantName">
+          <el-input
+            clearable
+            v-model="formData.tenantName"
+            placeholder="输入机构名称"
+          ></el-input> </el-form-item
+        ><el-form-item label="h5域名:" prop="hostH5"
+          ><el-input
+            clearable
+            v-model="formData.hostH5"
+            placeholder="输入h5域名"
+          ></el-input></el-form-item
+        ><el-form-item label="PC域名:" prop="hostPc"
+          ><el-input
+            clearable
+            v-model="formData.hostPc"
+            placeholder="输入PC域名"
+          ></el-input
+        ></el-form-item>
+        <el-form-item label="账期设置:" required>
+          <el-col :span="9">
+            <el-form-item label="" prop="billType">
+              <el-select
+                v-model="formData.billType"
+                placeholder="选择账期类型"
+                clearable
+              >
+                <el-option label="月度" :value="1"> </el-option
+                ><el-option label="季度" :value="2"> </el-option
+                ><el-option label="半年" :value="3"> </el-option>
+                <el-option label="年度" :value="4"> </el-option>
+              </el-select> </el-form-item
+          ></el-col>
+          <el-col :span="9"
+            ><el-form-item label="" prop="billDay">
+              <el-select
+                v-model="formData.billDay"
+                placeholder="选择次月"
+                clearable
+              >
+                <el-option
+                  v-for="(item, index) in days"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select> </el-form-item
+          ></el-col>
+        </el-form-item>
+        <el-form-item label="收款账号:" required>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.openingName'"
+              :rules="rules['openingName']"
+            >
+              <el-input
+                clearable
+                v-model="formData.accountList[0].openingName"
+                placeholder="输入开户名"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.openingBank'"
+              :rules="rules['openingBank']"
+            >
+              <el-input
+                clearable
+                v-model="formData.accountList[0].openingBank"
+                placeholder="输入开户行"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.proceedsAccount'"
+              :rules="rules['proceedsAccount']"
+            >
+              <el-input
+                style="margin-top: 20px"
+                clearable
+                v-model="formData.accountList[0].proceedsAccount"
+                placeholder="输入账号"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form-item>
+        <el-form-item label="开票信息:" required>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'invoiceType'"
+              :rules="rules['invoiceType']"
+            >
+              <el-select
+                v-model="formData.invoiceBo.invoiceType"
+                placeholder="选择发票类型"
+                clearable
+              >
+                <el-option label="普票" :value="1"> </el-option
+                ><el-option label="专票" :value="2"> </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'invoice'"
+              :rules="rules['invoice']"
+              ><el-input
+                clearable
+                v-model="formData.invoiceBo.invoice"
+                placeholder="输入发票抬头(企业或个人)"
+              ></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'taxpayer'"
+              :rules="rules['taxpayer']"
+            >
+              <el-input
+                style="margin-top: 20px"
+                clearable
+                v-model="formData.invoiceBo.taxpayer"
+                placeholder="输入纳税人"
+              ></el-input> </el-form-item
+          ></el-col>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {
+        accountList: [{}],
+        invoiceBo: {},
+      },
+      rules: {
+        tenantName: [
+          { required: true, message: "请输入机构名称", trigger: "blur" },
+        ],
+        billType: [
+          { required: true, message: "请选择账期类型", trigger: "change" },
+        ],
+        billDay: [
+          { required: true, message: "请选择次月日期", trigger: "change" },
+        ],
+        openingName: [
+          { required: true, message: "请输入开户名", trigger: "blur" },
+        ],
+        openingBank: [
+          { required: true, message: "请输入开户行", trigger: "blur" },
+        ],
+        proceedsAccount: [
+          { required: true, message: "请输入账号", trigger: "blur" },
+        ],
+        invoiceType: [
+          { required: true, message: "请选择发票类型", trigger: "change" },
+        ],
+        invoice: [
+          { required: true, message: "请输入发票抬头", trigger: "blur" },
+        ],
+        taxpayer: [
+          { required: true, message: "请输入纳税人", trigger: "blur" },
+        ],
+      },
+      days: [],
+    };
+  },
+  mounted() {
+    this.getDays();
+  },
+
+  methods: {
+    //获取天数 从第6天算起 至31日
+    getDays() {
+      for (let i = 6; i <= 31; i++) {
+        this.days.push({ label: i + "日", value: i });
+      }
+    },
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+      this.formData.accountList = this.formData.accountList || [{}];
+      this.formData.invoiceBo = this.formData.invoiceBo || {};
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api[
+            this.activeData.tenantId ? "systemtenantedittop" : "systemtenantadd"
+          ](this.formData).then((res) => {
+            this.$message.success("成功");
+            this.isShow = false;
+            this.$emit("search");
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 133 - 0
src/views/integralManagement/exchangeRules/index.vue

@@ -0,0 +1,133 @@
+<template>
+  <div id="">
+    <div>
+      <h4>积分规则:</h4>
+      <div class="dis_fx">
+        <el-checkbox v-model="checked"></el-checkbox> 1、一个自然年自动清零
+      </div>
+      <el-button type="primary" @click="submit">确定</el-button>
+      <el-button @click="record">修改记录</el-button>
+      <el-divider></el-divider>
+    </div>
+    <div>
+      <h4>积分兑换:</h4>
+      <div class="dis_fx">
+        <el-checkbox v-model="checked"></el-checkbox> 1、1元 =
+        <el-input-number
+          :controls="false"
+          v-model="formData.a"
+          placeholder="输入积分"
+          :min="0"
+          :precision="0"
+        /><span>积分</span>
+      </div>
+      <el-button type="primary" @click="submit">确定</el-button>
+      <el-button @click="record">修改记录</el-button>
+      <el-divider></el-divider>
+    </div>
+    <div>
+      <h4>积分奖励:</h4>
+      <div class="dis_fx">
+        <el-checkbox v-model="checked"></el-checkbox> 1、下单满<el-input-number
+          :controls="false"
+          v-model="formData.a"
+          placeholder="输入金额"
+          :min="0"
+          :precision="2"
+        />元,送<el-input-number
+          :controls="false"
+          v-model="formData.a"
+          placeholder="输入积分"
+          :min="0"
+          :precision="0"
+        />积分
+      </div>
+      <div class="dis_fx">
+        <el-checkbox v-model="checked"></el-checkbox>
+        2、e管证证书上传,送<el-input-number
+          :controls="false"
+          v-model="formData.a"
+          placeholder="输入积分"
+          :min="0"
+          :precision="0"
+        />积分
+      </div>
+      <div class="dis_fx">
+        <el-checkbox v-model="checked"></el-checkbox>
+        3、分享商品,送<el-input-number
+          :controls="false"
+          v-model="formData.a"
+          placeholder="输入积分"
+          :min="0"
+          :precision="0"
+        />积分
+      </div>
+      <el-button type="primary" @click="submit">确定</el-button>
+      <el-button @click="record">修改记录</el-button>
+    </div>
+    <record
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></record>
+  </div>
+</template>
+
+<script>
+import record from "./record.vue";
+export default {
+  name: "",
+  components: { record },
+  data() {
+    return {
+      checked: false,
+      dialogVisible: false,
+      activeData: {},
+      formData: {},
+    };
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    submit() {
+      this.$alert("确定更改兑换规则吗?", "提示", {
+        dangerouslyUseHTMLString: true,
+      })
+        .then(() => {})
+        .catch(() => {});
+    },
+    record() {
+      this.activeData = {};
+      this.dialogVisible = true;
+    },
+    search() {},
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-checkbox {
+  margin-right: 6px;
+}
+.dis_fx {
+  font-size: 14px;
+  display: flex;
+  align-items: center;
+  margin-bottom: 10px;
+  span {
+    flex-shrink: 0;
+    margin: 0px 10px;
+  }
+  .el-input-number {
+    width: 120px;
+    margin: 0px 6px;
+  }
+}
+h4{
+  font-weight: bold;
+}
+.el-divider{
+  margin: 40px 0px;
+}
+</style>

+ 88 - 0
src/views/integralManagement/exchangeRules/record.vue

@@ -0,0 +1,88 @@
+<template>
+  <div>
+    <BaseDialog
+      width="580px"
+      :isShow.sync="isShow"
+      title="操作记录"
+      @close="close"
+      :confirmStatus="false"
+    >
+      <el-timeline>
+        <el-timeline-item
+          v-for="(item, index) in checkLogVos"
+          :timestamp="$methodsTools.onlyForma(item.checkTime)"
+          placement="top"
+        >
+          <el-card>
+            <h4>动作:{{ item.b }}</h4>
+            <p>操作人:{{ item.name }}</p>
+            <p>操作前:{{ item.c }}</p>
+            <p>操作后:{{ item.d }}</p>
+          </el-card>
+        </el-timeline-item>
+      </el-timeline>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {},
+      checkLogVos: [
+        {
+          checkTime: 1234567891,
+          name: "操作人",
+          b: "充值", //动作,
+          c: "积分500", //操作前
+          d: "积分1000", //操作后
+        },
+        {
+          checkTime: 1234567891,
+          name: "操作人",
+          b: "充值", //动作,
+          c: "积分500", //操作前
+          d: "积分1000", //操作后
+        },
+      ],
+    };
+  },
+  mounted() {},
+
+  methods: {
+    close() {},
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 278 - 0
src/views/integralManagement/giftGoods/dislog.vue

@@ -0,0 +1,278 @@
+<template>
+  <div>
+    <BaseDialog
+      width="800px"
+      :isShow.sync="isShow"
+      :title="activeData.id ? '修改' : '新增'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="合作商户:" prop="a">
+          <el-input
+            clearable
+            v-model="formData.a"
+            placeholder="输入合作商户"
+          ></el-input> </el-form-item
+        ><el-form-item label="关联使用:" prop="b">
+          <el-select
+            multiple
+            clearable
+            v-model="formData.b"
+            placeholder="请选择关联使用"
+          >
+            <el-option label="积分商城" :value="1"> </el-option
+            ><el-option label="会员卡" :value="2"> </el-option>
+          </el-select> </el-form-item
+        ><el-form-item label="商品分类:" prop="">
+          <el-select
+            clearable
+            v-model="formData.classification"
+            placeholder="请选择商品分类"
+          >
+            <el-option
+              v-for="(item, index) in classificationList"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select> </el-form-item
+        ><el-form-item label="商品名称:" prop="c">
+          <el-input
+            clearable
+            v-model="formData.c"
+            placeholder="输入商品名称"
+          ></el-input> </el-form-item
+        ><el-form-item label="商品主图:" prop="urls">
+          <ul class="imgList">
+            <li
+              class="imgLi"
+              v-for="(item, index) in formData.urls"
+              :key="index"
+            >
+              <i class="el-icon-error del" @click="formData.urls.splice(index,1)"></i>
+              <el-image
+                style="width: 90px; height: 90px"
+                :src="$methodsTools.splitImgHost(item)"
+                :preview-src-list="
+                  formData.urls.map((i) => $methodsTools.splitImgHost(i))
+                "
+                :initial-index="index"
+              >
+              </el-image>
+            </li>
+            <li class="imgactive">
+              <label for="file1" style="width: 100%; height: 100%">
+                <i class="el-icon-plus" @click="uploadImg"></i
+              ></label>
+            </li>
+            <input type="file" v-show="false" id="file1" @change="uploadImg" />
+            <div style="clear: both"></div>
+          </ul>
+          <p style="color: #a4a4a4; margin: 0">
+            建议尺寸:800*800像素;大小200K以下
+          </p></el-form-item
+        ><el-form-item label="兑换积分:" prop="e">
+          <el-input-number
+            :controls="false"
+            v-model="formData.e"
+            placeholder="输入兑换积分"
+            :min="0"
+            :precision="0" /></el-form-item
+        ><el-form-item label="商品原价:" prop="f">
+          <el-input-number
+            :controls="false"
+            v-model="formData.f"
+            placeholder="输入商品原价"
+            :min="0"
+            :precision="2"
+          /> </el-form-item
+        ><el-form-item label="会员优惠价:" prop="g">
+          <el-input-number
+            :controls="false"
+            v-model="formData.g"
+            placeholder="输入会员优惠价"
+            :min="0"
+            :precision="2"
+          />
+        </el-form-item>
+        <el-form-item label="商品详情:">
+          <editor
+            v-model="formData.html"
+            :min-height="300"
+            :max-height="500"
+            :uploadStatus="2"
+          />
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+import Editor from "@/components/Editor";
+export default {
+  components: { Editor },
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      classificationList: [
+        {
+          label: "技术类",
+          value: 1,
+        },
+        {
+          label: "理疗类",
+          value: 2,
+        },
+      ],
+      formData: {
+        accountList: [{}],
+        invoiceBo: {},
+      },
+      rules: {
+        tenantName: [
+          { required: true, message: "请输入机构名称", trigger: "blur" },
+        ],
+        billType: [
+          { required: true, message: "请选择账期类型", trigger: "change" },
+        ],
+      },
+    };
+  },
+  methods: {
+    uploadImg(e) {
+      var self = this;
+      var file = e.target.files[0];
+      if (file.size > 0.2 * 1024 * 1024) {
+        self.$message.error("图片不得大于200kb");
+        return;
+      }
+      var type = e.target.value.toLowerCase().split(".").splice(-1);
+      if (type[0] != "jpg" && type[0] != "png" && type[0] != "jpeg") {
+        self.$message.error("上传格式需为:.jpg/.png/.jpeg");
+        return;
+      }
+      this.$upload
+        .upload(file, 0)
+        .then((res) => {
+          self.formData.urls.push(res);
+        })
+        .finally(() => {
+          e.target.value = "";
+        });
+    },
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$message.success("成功");
+          this.isShow = false;
+          this.$emit("search");
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.imgList {
+  margin-bottom: 0;
+  li {
+    margin-right: 10px;
+    margin-bottom: 10px;
+    float: left;
+    user-select: none;
+    cursor: pointer;
+    width: 98px;
+    height: 98px;
+    border-radius: 4px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    transition: all 0.3s;
+    position: relative;
+  }
+  .imgLi {
+    border: 1px solid #666;
+    &:hover {
+      box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.2);
+      transform: scale(1.02);
+    }
+  }
+  .imgactive {
+    border: 1px dotted #666;
+    label {
+      cursor: pointer;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+    i {
+      font-size: 20px;
+    }
+    &:hover {
+      box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.2);
+    }
+  }
+}
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+.del{
+  color: red;
+  position: absolute;
+  top: 0;
+  right: 0;
+  font-size: 20px;
+  z-index: 2;
+  background-color: #fff;
+  border-radius: 50%;
+  overflow: hidden;
+}
+</style>

+ 255 - 0
src/views/integralManagement/giftGoods/index.vue

@@ -0,0 +1,255 @@
+<template>
+  <div id="mechanism">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      rowKey="id"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+      @addClick="addClick"
+    >
+      <template slot="customize">
+        <el-button> 批量删除 </el-button>
+        <el-button> 导出excel </el-button>
+      </template>
+      <template slot="about" slot-scope="props">
+        <span v-for="(item, index) in props.scope.row.b" :key="index">
+          <span v-if="item === 1"> 积分商城 </span>
+          <span v-if="item === 2"> 会员卡 </span>
+        </span>
+      </template>
+      <template slot="images" slot-scope="props">
+        <el-image
+          style="width: 100px; height: 70px"
+          :src="$methodsTools.splitImgHost(props.scope.row.urls[0])"
+          :preview-src-list="
+            props.scope.row.urls.map((i) => $methodsTools.splitImgHost(i))
+          "
+        >
+        </el-image>
+      </template>
+      <template slot="status" slot-scope="props">
+        <el-switch
+          v-model="props.scope.row.status"
+          active-color="#13ce66"
+          inactive-color="#ff4949"
+          :active-value="1"
+          :inactive-value="0"
+          @change="statusChange($event, props.scope.row)"
+        >
+        </el-switch>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="addClick(props.scope.row)"
+          >编辑</el-button
+        ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></dislog>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "Mechanism",
+  components: { searchBoxNew, tableList, pagination, dislog },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "礼品商品",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: false,
+        addHide: false,
+        custom: false,
+      },
+      formList: [
+        {
+          prop: "a",
+          placeholder: "合作商户",
+          scope: "select",
+          options: [
+            {
+              label: "深圳桥恩心理咨询有限公司",
+              value: 1,
+            },
+          ],
+        },
+        {
+          prop: "b",
+          placeholder: "关联使用",
+          scope: "select",
+          options: [
+            {
+              label: "积分商城",
+              value: 1,
+            },
+            {
+              label: "会员卡",
+              value: 2,
+            },
+          ],
+        },
+        {
+          prop: "c",
+          placeholder: "请输入商品名称",
+        },
+      ],
+      formData: { a: "", b: "", c: "" },
+      tableSet: [
+        {
+          label: "合作商户",
+          prop: "a",
+          hidden: true,
+        },
+        {
+          label: "关联使用",
+          prop: "b",
+          hidden: true,
+          scope: "solt",
+          soltName: "about",
+        },
+        {
+          label: "商品名称",
+          prop: "c",
+          hidden: true,
+        },
+        {
+          label: "商品主图",
+          prop: "urls",
+          hidden: true,
+          scope: "solt",
+          soltName: "images",
+        },
+        {
+          label: "兑换积分",
+          prop: "e",
+          hidden: true,
+        },
+        {
+          label: "商品原价",
+          prop: "f",
+          hidden: true,
+        },
+        {
+          label: "会员优惠价",
+          prop: "g",
+          hidden: true,
+        },
+        {
+          label: "上架状态",
+          prop: "status",
+          hidden: true,
+          scope: "solt",
+          soltName: "status",
+        },
+        {
+          label: "录入时间",
+          prop: "i",
+          hidden: true,
+          scope: "aTimeList",
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      activeData: {},
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    statusChange(e, row) {
+      if (true) {
+        row.status = 1;
+      }
+    },
+    addClick(data) {
+      this.activeData = data || {};
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.tableData = [
+        {
+          id: 1,
+          a: "深圳桥恩心理咨询有限公司",
+          b: [1, 2],
+          c: "鹿卡通",
+          urls: [
+            "oss/images/avatar/20230518/1684381305489/1684381305490_1510435823",
+            "oss/images/avatar/20230518/1684381305489/1684381305490_1510435823",
+          ],
+          e: 1520,
+          f: 1520,
+          g: 1520,
+          status: 1,
+          i: 1234567891,
+        },
+      ];
+      //   this.loading = true;
+      //   if (v === 2) {
+      //     this.formData = {
+      //       pageSize: 10,
+      //       pageNum: 1,
+      //     };
+      //   }
+      //   this.$api
+      //     .xxx(this.formData)
+      //     .then((res) => {
+      //       this.tableData = res.rows;
+      //       this.total = res.total;
+      //       this.navText.index = res.total;
+      //     })
+      //     .finally(() => {
+      //       this.loading = false;
+      //     });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+        .then(() => {})
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 111 - 0
src/views/integralManagement/membershipCard/dislog.vue

@@ -0,0 +1,111 @@
+<template>
+  <div>
+    <BaseDialog
+      width="580px"
+      :isShow.sync="isShow"
+      :title="activeData.id ? '会员充值' : '会员充值'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="充值金额:" prop="a">
+          <el-input
+            clearable
+            v-model="formData.a"
+            placeholder="请输入充值金额"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="积分:" prop="">
+          <el-input
+            disabled
+            clearable
+            v-model="formData.a"
+            placeholder="积分"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <template slot="slotBtn">
+        <el-button type="success">启用</el-button>
+      </template>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {},
+      rules: {
+        tenantName: [
+          { required: true, message: "请输入机构名称", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  mounted() {},
+
+  methods: {
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$message.success("成功");
+          this.isShow = false;
+          this.$emit("search");
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 248 - 0
src/views/integralManagement/membershipCard/index.vue

@@ -0,0 +1,248 @@
+<template>
+  <div id="">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      rowKey="id"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-button type="primary"> 会员卡开通 </el-button>
+        <el-button type="primary"> 会员充值 </el-button>
+        <el-button type="primary"> 会员恢复 </el-button>
+        <el-button> 注销会员 </el-button>
+        <el-button> 导出excel </el-button>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="addClick(props.scope.row)"
+          >充值</el-button
+        ><el-button type="text" @click="cancellation(props.scope.row)"
+          >注销</el-button
+        ><el-button type="text" @click="record(props.scope.row)"
+          >记录</el-button
+        >
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></dislog>
+    <record
+      :dialogVisible.sync="dialogRecordVisible"
+      @search="search"
+      :activeData="activeData"
+    ></record>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import record from "./record.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "",
+  components: { searchBoxNew, tableList, pagination, dislog, record },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "会员卡",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: false,
+        addHide: true,
+        custom: false,
+      },
+      formList: [
+        {
+          prop: "status",
+          placeholder: "会员状态",
+          scope: "select",
+          options: [
+            {
+              label: "正常",
+              value: 1,
+            },
+            {
+              label: "注销",
+              value: 2,
+            },
+          ],
+        },
+        {
+          prop: "tenantid",
+          placeholder: "输入手机号码/身份证号",
+        },
+      ],
+      formData: {},
+      tableSet: [
+        {
+          label: "会员状态",
+          prop: "a",
+          hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "正常",
+              value: 1,
+            },
+            {
+              label: "注销",
+              value: 2,
+            },
+          ],
+        },
+        {
+          label: "会员来源",
+          prop: "b",
+          hidden: true,
+        },
+        {
+          label: "关联机构",
+          prop: "c",
+          hidden: true,
+        },
+        {
+          label: "姓名",
+          prop: "d",
+          hidden: true,
+        },
+        {
+          label: "性别",
+          prop: "e",
+          hidden: true,
+        },
+        {
+          label: "身份证号",
+          prop: "f",
+          hidden: true,
+        },
+        {
+          label: "手机号码",
+          prop: "g",
+          hidden: true,
+        },
+        {
+          label: "当前积分",
+          prop: "h",
+          hidden: true,
+        },
+        {
+          label: "累计积分",
+          prop: "i",
+          hidden: true,
+        },
+        {
+          label: "累计充值",
+          prop: "j",
+          hidden: true,
+        },
+        {
+          label: "累计退款",
+          prop: "k",
+          hidden: true,
+        },
+        {
+          label: "开通时间",
+          prop: "l",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "注销时间",
+          prop: "n",
+          hidden: true,
+          scope: "aTimeList",
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      dialogRecordVisible: false,
+      activeData: {},
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    addClick(data) {
+      this.activeData = data || {};
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.tableData = [
+        {
+          id: 1,
+          a: 1,
+          b: "云学堂",
+          c: "广东中正科技公司",
+          d: "张三",
+          e: "男",
+          f: "4408232023012332111",
+          g: 13800138000,
+          h: 100,
+          i: 300,
+          j: 200,
+          k: 0,
+          l: 1234567891,
+          n: 1234567891,
+        },
+      ];
+      //   this.loading = true;
+      //   if (v === 2) {
+      //     this.formData = {
+      //       pageSize: 10,
+      //       pageNum: 1,
+      //     };
+      //   }
+      //   this.$api
+      //     .xxx(this.formData)
+      //     .then((res) => {
+      //       this.tableData = res.rows;
+      //       this.total = res.total;
+      //       this.navText.index = res.total;
+      //     })
+      //     .finally(() => {
+      //       this.loading = false;
+      //     });
+    },
+    init() {
+      this.search(2);
+    },
+    //注销会员
+    cancellation(row) {
+      this.$alert("确定注销该会员吗?", "提示", {
+        dangerouslyUseHTMLString: true,
+      })
+        .then(() => {})
+        .catch(() => {});
+    },
+    record(data) {
+      this.activeData = data || {};
+      this.dialogRecordVisible = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 88 - 0
src/views/integralManagement/membershipCard/record.vue

@@ -0,0 +1,88 @@
+<template>
+  <div>
+    <BaseDialog
+      width="580px"
+      :isShow.sync="isShow"
+      title="操作记录"
+      @close="close"
+      :confirmStatus="false"
+    >
+      <el-timeline>
+        <el-timeline-item
+          v-for="(item, index) in checkLogVos"
+          :timestamp="$methodsTools.onlyForma(item.checkTime)"
+          placement="top"
+        >
+          <el-card>
+            <h4>动作:{{ item.b }}</h4>
+            <p>操作人:{{ item.name }}</p>
+            <p>操作前:{{ item.c }}</p>
+            <p>操作后:{{ item.d }}</p>
+          </el-card>
+        </el-timeline-item>
+      </el-timeline>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {},
+      checkLogVos: [
+        {
+          checkTime: 1234567891,
+          name: "操作人",
+          b: "充值", //动作,
+          c: "积分500", //操作前
+          d: "积分1000", //操作后
+        },
+        {
+          checkTime: 1234567891,
+          name: "操作人",
+          b: "充值", //动作,
+          c: "积分500", //操作前
+          d: "积分1000", //操作后
+        },
+      ],
+    };
+  },
+  mounted() {},
+
+  methods: {
+    close() {},
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 179 - 0
src/views/integralManagement/merchantManageMent/dislog.vue

@@ -0,0 +1,179 @@
+<template>
+  <div>
+    <BaseDialog
+      width="580px"
+      :isShow.sync="isShow"
+      :title="storeId ? '编辑商户' : '添加商户'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="合作商户:" prop="storeName">
+          <el-input
+            clearable
+            v-model="formData.storeName"
+            placeholder="请输入合作商户"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="联系人:" prop="contacts">
+          <el-input
+            clearable
+            v-model="formData.contacts"
+            placeholder="请输入联系人"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="手机号码:" prop="telphone">
+          <el-input
+            clearable
+            v-model="formData.telphone"
+            placeholder="请输入手机号码"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="用户名:">
+          <el-input
+            disabled
+            clearable
+            v-model="formData.storeAccount"
+            placeholder="请输入用户名"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="密码:" v-if="storeId === 0">
+          <el-input
+            disabled
+            clearable
+            v-model="formData.initPwd"
+            placeholder="请输入密码"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <template slot="slotBtn">
+        <el-button type="success" @click="submitForm(true)">启用</el-button>
+      </template>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    storeId: {
+      type: Number,
+      default: 0,
+    },
+  },
+  data() {
+    var checkTel = (rule, value, callback) => {
+      var reg = /^1(3|4|5|6|7|8|9)\d{9}$/;
+      if (!value) {
+        return callback(new Error("请输入手机号码"));
+      } else if (!reg.test(value)) {
+        return callback(new Error("请输入正确手机号码"));
+      } else {
+        if (this.storeId === 0) {
+          this.$set(
+            this.formData,
+            "initPwd",
+            value.substr(value.length - 6, value.length)
+          );
+        }
+        callback();
+      }
+    };
+    return {
+      formData: {
+        storeName: "",
+        contacts: "",
+        telphone: "",
+        storeAccount: "",
+        initPwd: "",
+      },
+      rules: {
+        storeName: [
+          { required: true, message: "请输入合作商户", trigger: "blur" },
+        ],
+        contacts: [
+          { required: true, message: "请输入联系人", trigger: "blur" },
+        ],
+        storeAccount: [
+          { required: false, message: "请输入用户名", trigger: "blur" },
+        ],
+        initPwd: [{ required: false, message: "请输入密码", trigger: "blur" }],
+        telphone: [{ required: true, validator: checkTel, trigger: "blur" }],
+      },
+    };
+  },
+
+  methods: {
+    init() {
+      if (this.storeId) {
+        this.$api.mallstoredata(this.storeId).then((res) => {
+          this.formData = res.data;
+          this.formData.storeAccount = res.data.userName;
+        });
+      } else {
+        this.formData = {
+          storeName: "",
+          contacts: "",
+          telphone: "",
+          storeAccount: "manager",
+          initPwd: "",
+        };
+      }
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm(status) {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api[this.storeId ? "editmallstore" : "addmallstore"]({
+            status: status ? 1 : 0,
+            ...this.formData,
+          }).then((res) => {
+            this.$message.success("成功");
+            this.isShow = false;
+            this.$emit("search");
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 191 - 0
src/views/integralManagement/merchantManageMent/index.vue

@@ -0,0 +1,191 @@
+<template>
+  <div id="">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      rowKey="id"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+      @addClick="addClick"
+    >
+      <template slot="customize">
+        <el-button type="warning"> 批量删除 </el-button>
+      </template>
+      <template slot="status" slot-scope="props">
+        <el-switch
+          v-model="props.scope.row.status"
+          active-color="#13ce66"
+          inactive-color="#ff4949"
+          :active-value="1"
+          :inactive-value="0"
+          @change="statusChange($event, props.scope.row)"
+        >
+        </el-switch>
+      </template>
+      <template slot="btn" slot-scope="props">
+        <el-button type="text" @click="addClick(props.scope.row)"
+          >编辑</el-button
+        ><el-button type="text" @click="restore(props.scope.row)"
+          >密码恢复</el-button
+        ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :storeId="storeId"
+    ></dislog>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "",
+  components: { searchBoxNew, tableList, pagination, dislog },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "商户管理",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: false,
+        addHide: false,
+        custom: false,
+      },
+      formList: [
+        {
+          prop: "storeName",
+          placeholder: "输入合作商户",
+        },
+      ],
+      formData: {},
+      tableSet: [
+        {
+          label: "合作商户",
+          prop: "storeName",
+          hidden: true,
+        },
+        {
+          label: "启用状态",
+          prop: "status",
+          hidden: true,
+          scope: "solt",
+          soltName: "status",
+        },
+        {
+          label: "录入时间",
+          prop: "createTime",
+          hidden: true,
+          scope: "aTimeList",
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      storeId: 0,
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    addClick(data) {
+      this.storeId = data?.storeId || 0;
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+          status: "0,1",
+        };
+      }
+      this.$api
+        .mallstorelist(this.formData)
+        .then((res) => {
+          this.tableData = res.rows;
+          this.total = res.total;
+          this.navText.index = res.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    statusChange(e, row) {
+      this.$api
+        .editmallstore({ storeId: row.storeId, status: e })
+        .then((res) => {
+          this.$message.success("操作成功");
+          row.status = e;
+        })
+        .catch(() => {
+          return (row.status = e ? 0 : 1);
+        });
+    },
+    init() {
+      this.search(2);
+    },
+    //密码恢复
+    restore(row) {
+      this.$confirm("确定恢复为初始密码吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api
+            .mallstorerestorePwd({ storeId: row.storeId })
+            .then((res) => {
+              this.$message.success("操作成功");
+              this.search();
+            });
+        })
+        .catch(() => {});
+    },
+    del(v) {
+      this.$confirm(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        }
+      )
+        .then(() => {
+          this.$api
+            .editmallstore({ storeId: row.storeId, status: -1 })
+            .then((res) => {
+              this.$message.success("删除成功");
+              this.search();
+            });
+        })
+        .catch(() => {});
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 268 - 0
src/views/integralManagement/writeOff/dislog.vue

@@ -0,0 +1,268 @@
+<template>
+  <div>
+    <BaseDialog
+      width="800px"
+      :isShow.sync="isShow"
+      :title="activeData.tenantId ? '修改' : '新增'"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="机构名称:" prop="tenantName">
+          <el-input
+            clearable
+            v-model="formData.tenantName"
+            placeholder="输入机构名称"
+          ></el-input> </el-form-item
+        ><el-form-item label="h5域名:" prop="hostH5"
+          ><el-input
+            clearable
+            v-model="formData.hostH5"
+            placeholder="输入h5域名"
+          ></el-input></el-form-item
+        ><el-form-item label="PC域名:" prop="hostPc"
+          ><el-input
+            clearable
+            v-model="formData.hostPc"
+            placeholder="输入PC域名"
+          ></el-input
+        ></el-form-item>
+        <el-form-item label="账期设置:" required>
+          <el-col :span="9">
+            <el-form-item label="" prop="billType">
+              <el-select
+                v-model="formData.billType"
+                placeholder="选择账期类型"
+                clearable
+              >
+                <el-option label="月度" :value="1"> </el-option
+                ><el-option label="季度" :value="2"> </el-option
+                ><el-option label="半年" :value="3"> </el-option>
+                <el-option label="年度" :value="4"> </el-option>
+              </el-select> </el-form-item
+          ></el-col>
+          <el-col :span="9"
+            ><el-form-item label="" prop="billDay">
+              <el-select
+                v-model="formData.billDay"
+                placeholder="选择次月"
+                clearable
+              >
+                <el-option
+                  v-for="(item, index) in days"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select> </el-form-item
+          ></el-col>
+        </el-form-item>
+        <el-form-item label="收款账号:" required>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.openingName'"
+              :rules="rules['openingName']"
+            >
+              <el-input
+                clearable
+                v-model="formData.accountList[0].openingName"
+                placeholder="输入开户名"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.openingBank'"
+              :rules="rules['openingBank']"
+            >
+              <el-input
+                clearable
+                v-model="formData.accountList[0].openingBank"
+                placeholder="输入开户行"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'accountList.' + 0 + '.proceedsAccount'"
+              :rules="rules['proceedsAccount']"
+            >
+              <el-input
+                style="margin-top: 20px"
+                clearable
+                v-model="formData.accountList[0].proceedsAccount"
+                placeholder="输入账号"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form-item>
+        <el-form-item label="开票信息:" required>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'invoiceType'"
+              :rules="rules['invoiceType']"
+            >
+              <el-select
+                v-model="formData.invoiceBo.invoiceType"
+                placeholder="选择发票类型"
+                clearable
+              >
+                <el-option label="普票" :value="1"> </el-option
+                ><el-option label="专票" :value="2"> </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'invoice'"
+              :rules="rules['invoice']"
+              ><el-input
+                clearable
+                v-model="formData.invoiceBo.invoice"
+                placeholder="输入发票抬头(企业或个人)"
+              ></el-input> </el-form-item
+          ></el-col>
+          <el-col :span="9">
+            <el-form-item
+              label=""
+              :prop="'invoiceBo.' + 'taxpayer'"
+              :rules="rules['taxpayer']"
+            >
+              <el-input
+                style="margin-top: 20px"
+                clearable
+                v-model="formData.invoiceBo.taxpayer"
+                placeholder="输入纳税人"
+              ></el-input> </el-form-item
+          ></el-col>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+    activeData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  data() {
+    return {
+      formData: {
+        accountList: [{}],
+        invoiceBo: {},
+      },
+      rules: {
+        tenantName: [
+          { required: true, message: "请输入机构名称", trigger: "blur" },
+        ],
+        billType: [
+          { required: true, message: "请选择账期类型", trigger: "change" },
+        ],
+        billDay: [
+          { required: true, message: "请选择次月日期", trigger: "change" },
+        ],
+        openingName: [
+          { required: true, message: "请输入开户名", trigger: "blur" },
+        ],
+        openingBank: [
+          { required: true, message: "请输入开户行", trigger: "blur" },
+        ],
+        proceedsAccount: [
+          { required: true, message: "请输入账号", trigger: "blur" },
+        ],
+        invoiceType: [
+          { required: true, message: "请选择发票类型", trigger: "change" },
+        ],
+        invoice: [
+          { required: true, message: "请输入发票抬头", trigger: "blur" },
+        ],
+        taxpayer: [
+          { required: true, message: "请输入纳税人", trigger: "blur" },
+        ],
+      },
+      days: [],
+    };
+  },
+  mounted() {
+    this.getDays();
+  },
+
+  methods: {
+    //获取天数 从第6天算起 至31日
+    getDays() {
+      for (let i = 6; i <= 31; i++) {
+        this.days.push({ label: i + "日", value: i });
+      }
+    },
+    init() {
+      this.formData = JSON.parse(JSON.stringify(this.activeData));
+      this.formData.accountList = this.formData.accountList || [{}];
+      this.formData.invoiceBo = this.formData.invoiceBo || {};
+    },
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api[
+            this.activeData.tenantId ? "systemtenantedittop" : "systemtenantadd"
+          ](this.formData).then((res) => {
+            this.$message.success("成功");
+            this.isShow = false;
+            this.$emit("search");
+          });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        if (this.dialogVisible) {
+          this.init();
+        }
+        return this.dialogVisible;
+      },
+      set(val) {
+        this.$emit("update:dialogVisible", false);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-input {
+  width: 220px;
+  margin-right: 10px;
+}
+.el-select {
+  width: 220px;
+  margin-right: 10px;
+}
+</style>

+ 185 - 0
src/views/integralManagement/writeOff/index.vue

@@ -0,0 +1,185 @@
+<template>
+  <div id="">
+    <search-box-new
+      ref="searchBox"
+      :formData="formData"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
+    <table-list
+      rowKey="id"
+      ref="tableList"
+      :tableSets="tableSet"
+      :tableData="tableData"
+      :navText="navText"
+      :loading="loading"
+    >
+      <template slot="customize">
+        <el-button> 导出excel </el-button>
+      </template>
+      <template slot="integral" slot-scope="props">
+        {{ props.scope.row["g"] }}积分
+      </template>
+    </table-list>
+    <pagination
+      :total="total"
+      :pageSize.sync="formData.pageSize"
+      :currentPage.sync="formData.pageNum"
+      @search="search"
+    />
+    <dislog
+      :dialogVisible.sync="dialogVisible"
+      @search="search"
+      :activeData="activeData"
+    ></dislog>
+  </div>
+</template>
+
+<script>
+import dislog from "./dislog.vue";
+import searchBoxNew from "@/components/searchBoxNew";
+import tableList from "@/components/tableList";
+import pagination from "@/components/pagination";
+export default {
+  name: "",
+  components: { searchBoxNew, tableList, pagination, dislog },
+  data() {
+    return {
+      loading: false,
+      navText: {
+        title: "核销管理",
+        index: 0,
+        ch: "条",
+        num: true,
+        choice: false,
+        addHide: true,
+        custom: false,
+        tableHide: true,
+      },
+      formList: [
+        {
+          prop: "tenantid",
+          placeholder: "请选择机构名称",
+        },
+      ],
+      formData: {},
+      tableSet: [
+        {
+          label: "合作商户",
+          prop: "a",
+          hidden: true,
+        },
+        {
+          label: "会员手机号",
+          prop: "b",
+          hidden: true,
+        },
+        {
+          label: "会员名称",
+          prop: "c",
+          hidden: true,
+        },
+        {
+          label: "核销人",
+          prop: "d",
+          hidden: true,
+        },
+        {
+          label: "核销时间",
+          prop: "e",
+          hidden: true,
+          scope: "aTimeList",
+        },
+        {
+          label: "付款方式",
+          prop: "f",
+          hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "扫码付款",
+              value: 1,
+            },
+            {
+              label: "现金支付",
+              value: 2,
+            },
+          ],
+        },
+        {
+          label: "消费积分",
+          prop: "g",
+          hidden: true,
+          scope: "solt",
+          soltName: "integral",
+        },
+      ],
+      tableData: [],
+      total: 0,
+      dialogVisible: false,
+      activeData: {},
+    };
+  },
+  created() {
+    this.search(2);
+  },
+  methods: {
+    addClick(data) {
+      this.activeData = data || {};
+      this.dialogVisible = true;
+    },
+    search(v) {
+      this.tableData = [
+        {
+          a: "深圳桥恩心理咨询有限公司",
+          b: 13800138000,
+          c: "张三",
+          d: "李四",
+          e: 1234567891,
+          f: 1,
+          g: 2000,
+        },
+      ];
+      //   this.loading = true;
+      //   if (v === 2) {
+      //     this.formData = {
+      //       pageSize: 10,
+      //       pageNum: 1,
+      //     };
+      //   }
+      //   this.$api
+      //     .xxx(this.formData)
+      //     .then((res) => {
+      //       this.tableData = res.rows;
+      //       this.total = res.total;
+      //       this.navText.index = res.total;
+      //     })
+      //     .finally(() => {
+      //       this.loading = false;
+      //     });
+    },
+    init() {
+      this.search(2);
+    },
+    del(v) {
+      this.$alert(
+        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
+        "提示",
+        {
+          dangerouslyUseHTMLString: true,
+        }
+      )
+        .then(() => {})
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>