Tang 2 anni fa
parent
commit
19b65b8842

+ 4 - 1
src/api/api.js

@@ -85,11 +85,14 @@ import temp from '../fxApi/temp'//分销活动列表
 import orderManageList from '../fxApi/orderManageList'//订单管理
 
 //积分管理
-import integral from "../fxApi/integral"
+import integral from "../fxApi/integral"//商户列表
+import vipUser from "../fxApi/vipUser"//会员列表
+
 
 
 // 导入对应模块------------------------
 export default {
+    ...vipUser,
     ...integral,
     ...orderManageList,
     ...poster,

+ 43 - 0
src/fxApi/vipUser.js

@@ -0,0 +1,43 @@
+import request from '@/utils/request' //引入axios请求及拦截器
+export default {
+    //客户端用户开通会员
+    appuseropenVip(data) {
+        return request({
+            url: '/app/user/openVip', 
+            method: 'post',
+            data
+        })
+    },
+    //通过手机查找客户端用户
+    appuserfindByTel(data) {
+        return request({
+            url: '/app/user/findByTel', 
+            method: 'post',
+            data
+        })
+    },
+    //批量注销会员
+    appusercloseBatchVip(data) {
+        return request({
+            url: '/app/user/closeBatchVip', 
+            method: 'post',
+            data
+        })
+    },
+    //批量恢复会员
+    appuserrestoreBatchVip(data) {
+        return request({
+            url: '/app/user/restoreBatchVip', 
+            method: 'post',
+            data
+        })
+    },
+    //会员用户列表
+    appuservipUserList(data) {
+        return request({
+            url: '/app/user/vipUserList',
+            method: 'get',
+            params: data
+        })
+    },
+}

+ 0 - 1
src/permission.js

@@ -37,7 +37,6 @@ router.beforeEach((to, from, next) => {
           })
         })
       } else {
-        console.log("to:",to)
         next()
       }
     }

+ 1 - 1
src/utils/request.js

@@ -9,7 +9,7 @@ axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
 // 创建axios实例
 // export const baseURL = process.env.VUE_APP_BASE_API
 // export const baseURL = 'https://ptapi.gdzzkj.net/'
-export const baseURL = "http://192.168.1.7:7077/";
+export const baseURL = "http://192.168.1.24:7077/";
 export const BASE_IMG_URL = process.env.VUE_APP_IMG_API;
 const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分

+ 1 - 1
src/views/financed/arap/index.vue

@@ -185,7 +185,7 @@ import {
   commissionExport,
 } from "@/api/financed/index";
 export default {
-  name: "cost",
+  name: "Arap",
   components: {
     searchBoxNew,
     tableList,

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

@@ -11,8 +11,8 @@
         订单号:<span>{{ detailInfo.orderSn }}</span> 退款状态:<span>{{
           refundStatus(detailInfo.refundStatus)
         }}</span>
-        <span v-if="orderFrom === 3"
-          >审核状态:{{ checkStatus(detailInfo.checkStatus) }}</span
+        <i v-if="orderFrom === 3" style="font-style: normal"
+          >审核状态:<span>{{ checkStatus(detailInfo.checkStatus) }}</span></i
         >
         <i
           v-if="ShowStatus && detailInfo.checkStatus === 0"
@@ -187,7 +187,12 @@ export default {
         case 4:
           str = "未通过";
           break;
-
+        case 5:
+          str = "支付中";
+          break;
+        case 6:
+          str = "支付失败";
+          break;
         default:
           break;
       }

+ 1 - 0
src/views/financed/components/studentDetails.vue

@@ -21,6 +21,7 @@
             </el-option>
           </el-select>
           <el-select
+            v-if="false"
             style="width: 230px; margin-right: 10px"
             size="small"
             v-model="formData.refundStatus"

+ 6 - 3
src/views/financed/cost/index.vue

@@ -8,7 +8,7 @@
       @init="init"
     />
     <table-list
-      rowKey="id"
+      rowKey="tpId"
       ref="tableList"
       :tableSets="tableSet"
       :tableData="tableData"
@@ -68,11 +68,11 @@ import {
   batchCost,
 } from "@/api/financed/index";
 export default {
-  name: "cost",
+  name: "Cost",
   components: { searchBoxNew, tableList, pagination, dislogSet },
   data() {
     return {
-      loading: false, 
+      loading: false,
       navText: {
         title: "成本模板",
         index: 0,
@@ -179,6 +179,9 @@ export default {
           pageNum: 1,
           tenantSort: undefined,
         };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
       }
       costList(this.formData)
         .then((res) => {

+ 26 - 12
src/views/financed/orderManageList/index.vue

@@ -11,7 +11,11 @@
       <el-button type="primary" size="small" @click="editCost"
         >成本设置</el-button
       >
-      <el-button v-if="false" type="primary" size="small" @click="completeOrder(false)"
+      <el-button
+        v-if="false"
+        type="primary"
+        size="small"
+        @click="completeOrder(false)"
         >完单确认</el-button
       >
       <el-button type="primary" size="small" @click="editRemarks(1)"
@@ -59,7 +63,9 @@
         <div>已退账款:{{ props.scope.row["orderRefunded"] }}</div>
         <div>未收账款:{{ props.scope.row["orderUncollected"] }}</div>
         <div style="color: red">
-          (预计收款时间){{$methodsTools.onlyForma(props.scope.row["predictReceiveTime"]) }}
+          (预计收款时间){{
+            $methodsTools.onlyForma(props.scope.row["predictReceiveTime"])
+          }}
         </div>
         <div>实际账款:{{ props.scope.row["orderPractical"] }}</div>
       </template>
@@ -113,7 +119,10 @@
         <el-button type="text" @click="seePZ(props.scope.row.attachmentList)"
           >转账凭证</el-button
         >
-        <el-button v-if="false" type="text" @click="completeOrder(props.scope.row.orderSn)"
+        <el-button
+          v-if="false"
+          type="text"
+          @click="completeOrder(props.scope.row.orderSn)"
           >完单确认</el-button
         >
       </template>
@@ -172,7 +181,7 @@ import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 import dislogOrderDetails from "../components/dislogOrderDetails.vue";
 export default {
-  name: "orderManageList",
+  name: "OrderManageList",
   components: {
     searchBoxNew,
     tableList,
@@ -323,6 +332,8 @@ export default {
             { label: "未退款", value: 2 },
             { label: "已完成", value: 3 },
             { label: "未通过", value: 4 },
+            { label: "支付中", value: 5 },
+            { label: "支付失败", value: 6 },
           ],
         },
         {
@@ -483,7 +494,7 @@ export default {
       dialogVisiblecost: false,
       tpId: "",
       type: null,
-      orderInfo:{}
+      orderInfo: {},
     };
   },
   created() {
@@ -517,8 +528,8 @@ export default {
       return str;
     },
     exportExcel() {
-      var b = 1
-      var a = "0,1"
+      var b = 1;
+      var a = "0,1";
       if (this.$refs.tableList.allCheckData.length === 0) {
         this.$message.error("请勾选数据");
         return;
@@ -589,7 +600,7 @@ export default {
       } else {
         this.ShowStatus = false;
       }
-      this.orderInfo = data
+      this.orderInfo = data;
       this.orderSn = data.orderSn;
       this.orderFrom = data.orderFrom;
       this.orderDialogVisible = true;
@@ -668,13 +679,16 @@ export default {
           pageSize: 10,
           pageNum: 1,
         };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
       }
       var data = JSON.parse(JSON.stringify(this.formData));
-      if(data.roleId === 0 || data.roleId === 1){
-        data.refundStatusList = "0,3,4"
+      if (data.roleId === 0 || data.roleId === 1) {
+        data.refundStatusList = "0,3,4";
       }
-      if(data.roleId === 2){
-        data.refundStatusList = "2,3"
+      if (data.roleId === 2) {
+        data.refundStatusList = "2,3";
       }
       if (this.formData.startTime) {
         data.startTime = parseInt(data.startTime / 1000);

+ 1 - 1
src/views/integralManagement/chargeManagement/index.vue

@@ -42,7 +42,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  name: "",
+  name: "ChargeManagement",
   components: { searchBoxNew, tableList, pagination, dislog },
   data() {
     return {

+ 1 - 1
src/views/integralManagement/exchangeRules/index.vue

@@ -76,7 +76,7 @@
 <script>
 import record from "./record.vue";
 export default {
-  name: "",
+  name: "ExchangeRules",
   components: { record },
   data() {
     return {

+ 1 - 1
src/views/integralManagement/giftGoods/index.vue

@@ -73,7 +73,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  name: "Mechanism",
+  name: "GiftGoods",
   components: { searchBoxNew, tableList, pagination, dislog },
   data() {
     return {

+ 127 - 65
src/views/integralManagement/membershipCard/index.vue

@@ -8,7 +8,7 @@
       @init="init"
     />
     <table-list
-      rowKey="id"
+      rowKey="userId"
       ref="tableList"
       :tableSets="tableSet"
       :tableData="tableData"
@@ -16,10 +16,12 @@
       :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 type="primary" @click="dialogVisibleVipOpen = true">
+          会员卡开通
+        </el-button>
+        <el-button type="primary" @click="batch(1)"> 会员充值 </el-button>
+        <el-button type="primary" @click="batch(2)"> 会员恢复 </el-button>
+        <el-button @click="batch(3)"> 注销会员 </el-button>
         <el-button> 导出excel </el-button>
       </template>
       <template slot="btn" slot-scope="props">
@@ -43,6 +45,10 @@
       @search="search"
       :activeData="activeData"
     ></dislog>
+    <vip-open
+      :dialogVisible.sync="dialogVisibleVipOpen"
+      @search="search"
+    ></vip-open>
     <record
       :dialogVisible.sync="dialogRecordVisible"
       @search="search"
@@ -53,13 +59,14 @@
 
 <script>
 import dislog from "./dislog.vue";
+import vipOpen from "./vipOpen.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 },
+  name: "MembershipCard",
+  components: { searchBoxNew, tableList, pagination, dislog, record, vipOpen },
   data() {
     return {
       loading: false,
@@ -68,22 +75,27 @@ export default {
         index: 0,
         ch: "条",
         num: true,
-        choice: false,
+        choice: true,
         addHide: true,
         custom: false,
+        openCheckMore: true,
       },
       formList: [
         {
-          prop: "status",
+          prop: "vipTag",
           placeholder: "会员状态",
           scope: "select",
           options: [
             {
-              label: "正常",
+              label: "未开通",
+              value: 0,
+            },
+            {
+              label: "已开通",
               value: 1,
             },
             {
-              label: "注销",
+              label: "注销",
               value: 2,
             },
           ],
@@ -97,79 +109,116 @@ export default {
       tableSet: [
         {
           label: "会员状态",
-          prop: "a",
+          prop: "vipTag",
           hidden: true,
           scope: "isOptions",
           options: [
             {
-              label: "正常",
+              label: "未开通",
+              value: 0,
+            },
+            {
+              label: "已开通",
               value: 1,
             },
             {
-              label: "注销",
+              label: "注销",
               value: 2,
             },
           ],
         },
         {
           label: "会员来源",
-          prop: "b",
+          prop: "vipFrom",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "云学堂PC",
+              value: 1,
+            },
+            {
+              label: "云学堂H5",
+              value: 2,
+            },
+            {
+              label: "云学堂小程序",
+              value: 3,
+            },
+            {
+              label: "e管证",
+              value: 4,
+            },
+            {
+              label: "教育智慧管理系统",
+              value: 5,
+            },
+            {
+              label: "中正总平台",
+              value: 6,
+            },
+          ],
         },
         {
           label: "关联机构",
-          prop: "c",
+          prop: "tenantName",
           hidden: true,
         },
         {
           label: "姓名",
-          prop: "d",
+          prop: "realname",
           hidden: true,
         },
         {
           label: "性别",
-          prop: "e",
+          prop: "sex",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "男",
+              value: 1,
+            },
+            {
+              label: "女",
+              value: 2,
+            },
+          ],
         },
         {
           label: "身份证号",
-          prop: "f",
+          prop: "idCard",
           hidden: true,
         },
         {
           label: "手机号码",
-          prop: "g",
+          prop: "telphone",
           hidden: true,
         },
         {
           label: "当前积分",
-          prop: "h",
-          hidden: true,
-        },
-        {
-          label: "累计积分",
-          prop: "i",
+          prop: "pointsValue",
           hidden: true,
         },
         {
           label: "累计充值",
-          prop: "j",
+          prop: "rechargeMoney",
           hidden: true,
         },
         {
           label: "累计退款",
-          prop: "k",
+          prop: "refundMoney",
           hidden: true,
         },
         {
           label: "开通时间",
-          prop: "l",
+          prop: "vipOpenTime",
           hidden: true,
           scope: "aTimeList",
         },
         {
           label: "注销时间",
-          prop: "n",
+          prop: "vipCloseTime",
           hidden: true,
           scope: "aTimeList",
         },
@@ -178,6 +227,7 @@ export default {
       total: 0,
       dialogVisible: false,
       dialogRecordVisible: false,
+      dialogVisibleVipOpen: false,
       activeData: {},
     };
   },
@@ -185,46 +235,58 @@ export default {
     this.search(2);
   },
   methods: {
+    batch(i) {
+      if (this.$refs.tableList.allCheckData.length === 0) {
+        this.$message.error("请勾选数据");
+        return;
+      }
+      if (i == 1) {
+      } else if (i == 2 || i == 3) {
+        this.$confirm(`是否${i == 2 ? "恢复" : "注销"}选中的会员`, "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            this.$api[
+              i == 2 ? "appuserrestoreBatchVip" : "appusercloseBatchVip"
+            ]({
+              userIdList: this.$refs.tableList.allCheckData.map(
+                (k) => k.userId
+              ),
+            }).then((res) => {
+              this.$message.success("操作成功");
+              this.search(2);
+            });
+          })
+          .catch(() => {});
+      }
+    },
     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;
-      //     });
+      this.loading = true;
+      if (v === 2) {
+        this.formData = {
+          pageSize: 10,
+          pageNum: 1,
+        };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
+      }
+      this.$api
+        .appuservipUserList(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);

+ 118 - 0
src/views/integralManagement/membershipCard/vipOpen.vue

@@ -0,0 +1,118 @@
+<template>
+  <div>
+    <BaseDialog
+      width="580px"
+      :isShow.sync="isShow"
+      title="会员卡开通"
+      @submit="submitForm"
+      @close="close"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        label-width="100px"
+        class="demo-ruleForm"
+      >
+        <el-form-item label="手机号码:" prop="telphone">
+          <el-input
+            v-model="formData.telphone"
+            placeholder="请输入手机号码"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="姓名:" prop="nickname">
+          <el-input disabled v-model="formData.nickname"></el-input>
+        </el-form-item>
+        <el-form-item label="身份证号:" prop="idCard">
+          <el-input disabled v-model="formData.idCard"></el-input>
+        </el-form-item>
+      </el-form>
+    </BaseDialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "",
+  props: {
+    dialogVisible: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  data() {
+    return {
+      formData: { telphone: "", nickname: "", idCard: "" },
+      rules: {
+        telphone: [
+          { required: true, message: "请输入手机号码", trigger: "blur" },
+          {
+            validator: (rule, value, callback) => {
+              var reg_tel =
+                /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
+              if (reg_tel.test(value)) {
+                this.$api.appuserfindByTel({ telphone: value }).then((res) => {
+                  this.$set(this.formData, "nickname", res.data?.realname);
+                  this.$set(this.formData, "idCard", res.data?.idCard);
+                  this.$set(this.formData, "userId", res.data?.userId);
+                });
+                return callback();
+              } else {
+                this.$set(this.formData, "nickname", "");
+                this.$set(this.formData, "idCard", "");
+                this.$set(this.formData, "userId", "");
+                return callback(new Error("手机号码格式不正确"));
+              }
+            },
+            // 触发器可以同时用blur和change
+            trigger: ["blur"],
+          },
+        ],
+      },
+    };
+  },
+  mounted() {},
+
+  methods: {
+    close() {
+      this.$refs["formData"].resetFields();
+    },
+    submitForm() {
+      this.$refs["formData"].validate((valid) => {
+        if (valid) {
+          this.$api
+            .appuseropenVip({ userId: this.formData.userId })
+            .then((res) => {
+              this.$message.success("成功");
+              this.isShow = false;
+              this.$emit("search");
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+  },
+  computed: {
+    isShow: {
+      get() {
+        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>

+ 9 - 10
src/views/integralManagement/merchantManageMent/index.vue

@@ -58,7 +58,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  name: "",
+  name: "MerchantManageMent",
   components: { searchBoxNew, tableList, pagination, dislog },
   data() {
     return {
@@ -121,6 +121,9 @@ export default {
           pageNum: 1,
           status: "0,1",
         };
+        this.$nextTick(() => {
+          this.$refs.tableList.clearMoreActive();
+        });
       }
       this.$api
         .mallstorelist(this.formData)
@@ -165,15 +168,11 @@ export default {
         .catch(() => {});
     },
     del(v) {
-      this.$confirm(
-        "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
-        "提示",
-        {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning",
-        }
-      )
+      this.$confirm("确定删除此内容?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
         .then(() => {
           this.$api
             .editmallstore({ storeId: row.storeId, status: -1 })

+ 1 - 1
src/views/integralManagement/writeOff/index.vue

@@ -42,7 +42,7 @@ import searchBoxNew from "@/components/searchBoxNew";
 import tableList from "@/components/tableList";
 import pagination from "@/components/pagination";
 export default {
-  name: "",
+  name: "WriteOff",
   components: { searchBoxNew, tableList, pagination, dislog },
   data() {
     return {