Переглянути джерело

fix:分销系统模块完整版

Tang 2 роки тому
батько
коміт
36f31a8ce4

+ 4 - 1
.env.development

@@ -10,4 +10,7 @@ VUE_APP_BASE_API = 'http://120.79.166.78:19013/'
 VUE_APP_IMG_API = 'https://file-dev.xyyxt.net'
 
 # 路由懒加载
-VUE_CLI_BABEL_TRANSPILE_MODULES = true
+VUE_CLI_BABEL_TRANSPILE_MODULES = true
+
+#端口号
+port = 80

+ 11 - 0
src/api/login.js

@@ -15,6 +15,17 @@ export function login(username, password, code, uuid, phonenumber, smsCode) {
   })
 }
 
+// 免登API
+export function oldlogin(data) {
+  return request({
+    url: '/old/login',
+    method: 'post',
+    data: data,
+    headers: {
+      isToken: false
+    },
+  })
+}
 
 // 双重等保
 export function commondual_auth() {

+ 11 - 2
src/api/salesman/commission.js

@@ -1,9 +1,10 @@
 import request from "@/utils/request";
 //登录短信
-export function getCashList() {
+export function getCashList(query) {
   return request({
-    url: "/distribution/cash/log/fromOrderCashList",
+    url: "/distribution/seller/cash/list",
     method: "get",
+    params: query
   });
 }
 
@@ -14,3 +15,11 @@ export function cancelApply(data) {
     data,
   });
 }
+
+export function getWxCodeUrl(query) {
+  return request({
+    url: "/distribution/poster/wxCodeUrl",
+    method: "get",
+    params: query
+  });
+}

+ 43 - 1
src/components/modelView/index.vue

@@ -67,6 +67,20 @@
         alt=""
       /> -->
     </vue-draggable-resizable>
+    <vue-draggable-resizable
+      @dragstop="onDragstop7"
+      @resizestop="onResizeStop7"
+      :w="modelData.distributionText.width"
+      :h="modelData.distributionText.height"
+      :x="modelData.distributionText.left"
+      :y="modelData.distributionText.top"
+      :parent="true"
+      v-if="modelData.distributionText.checked"
+    >
+      <p style="white-space: pre-wrap" :style="modelData.distributionText.css">
+        {{ modelData.distributionText.name }}
+      </p>
+    </vue-draggable-resizable>
     <!-- 电子名片码 -->
     <vue-draggable-resizable
       @dragstop="onDragstop4"
@@ -87,6 +101,20 @@
         alt=""
       /> -->
     </vue-draggable-resizable>
+    <vue-draggable-resizable
+      @dragstop="onDragstop8"
+      @resizestop="onResizeStop8"
+      :w="modelData.cardCodeText.width"
+      :h="modelData.cardCodeText.height"
+      :x="modelData.cardCodeText.left"
+      :y="modelData.cardCodeText.top"
+      :parent="true"
+      v-if="modelData.cardCodeText.checked"
+    >
+      <p style="white-space: pre-wrap" :style="modelData.cardCodeText.css">
+        {{ modelData.cardCodeText.name }}
+      </p>
+    </vue-draggable-resizable>
     <!-- 广告语 -->
     <vue-draggable-resizable
       @dragstop="onDragstop5"
@@ -98,7 +126,9 @@
       :parent="true"
       v-if="modelData.advertise.checked"
     >
-      <p style="white-space:pre-wrap;" :style="modelData.advertise.css">{{ modelData.advertise.name }}</p>
+      <p style="white-space: pre-wrap" :style="modelData.advertise.css">
+        {{ modelData.advertise.name }}
+      </p>
     </vue-draggable-resizable>
     <!-- 机构 -->
     <vue-draggable-resizable
@@ -210,6 +240,18 @@ export default {
     onResizeStop6(left, top, width, height) {
       this.backData("mechanism", left, top, width, height);
     },
+    onDragstop7(left, top) {
+      this.backData("distributionText", left, top);
+    },
+    onResizeStop7(left, top, width, height) {
+      this.backData("distributionText", left, top, width, height);
+    },
+    onDragstop8(left, top) {
+      this.backData("cardCodeText", left, top);
+    },
+    onResizeStop8(left, top, width, height) {
+      this.backData("cardCodeText", left, top, width, height);
+    },
 
     backData(name, left, top, width, height) {
       this.$emit("changeModelData", { name, left, top, width, height });

+ 4 - 0
src/components/tableList.vue

@@ -1187,6 +1187,10 @@
               </div>
             </template>
           </div>
+          
+          <span v-else-if="item.scope === 'isgzhOpenId'">{{
+            scope.row[item.prop] ? "是" : "否"
+          }}</span>
           <div v-else-if="item.scope === 'rebuy'">
             <span>{{ scope.row[item.prop] === 1 ? "是" : "" }}</span>
             <span

+ 1 - 1
src/fxApi/temp.js

@@ -111,7 +111,7 @@ export default {
     //修改分销业务员
     editDistributionseller(data) {
         return request({
-            url: '/distribution/seller/edit',
+            url: '/distribution/seller/sysEdit',
             method: 'post',
             data
         })

+ 2 - 5
src/layout/components/Navbar.vue

@@ -372,12 +372,9 @@ export default {
         type: "warning",
       })
         .then(() => {
+          const tid = sessionStorage.TenantId
           this.$store.dispatch("LogOut").then(() => {
-            if (this.$route.query.TenantId) {
-              location.href = "/index?TenantId=" + this.$route.query.TenantId;
-            } else {
-              location.href = "/index";
-            }
+            location.href = "/index?TenantId=" + tid
           });
         })
         .catch(() => {

+ 27 - 20
src/permission.js

@@ -15,16 +15,22 @@ router.beforeEach(async (to, from, next) => {
   if (to.path !== from.path) {
     NProgress.start();
   }
-  if (store.state.user.TENANT_NANE === null) {
-    await store.dispatch('findTenantId')
-  }
-  if (store.state.user.TENANT_NANE === '' && methods.getQueryVariable('TenantId')) {
-    sessionStorage.TenantId = methods.getQueryVariable('TenantId')
-  }
-  if (store.state.user.TENANT_NANE || sessionStorage.TenantId) {
-    if (!store.state.user.companyName) {
-      store.dispatch('footerData')
+  if (to.path === '/login' && to.query.account) {
+    await store.dispatch('oldLogin', to.query)
+  } else {
+    if(to.path === '/login' &&!methods.getQueryVariable('TenantId')){
+      sessionStorage.removeItem('TenantId')
     }
+    if (!sessionStorage.TenantId) {
+      await store.dispatch('findTenantId')
+    } else {
+      if(methods.getQueryVariable('TenantId')){
+        sessionStorage.TenantId = methods.getQueryVariable('TenantId')
+      }
+    }
+  }
+  if (sessionStorage.TenantId && !store.state.user.companyName) {
+    store.dispatch('footerData')
   }
   if (getToken()) {
     to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
@@ -48,16 +54,16 @@ router.beforeEach(async (to, from, next) => {
           })
         })
       } else {
-        if (!store.state.user.TENANT_NANE && !to.query.TenantId) {
-          to.query.TenantId = sessionStorage.TenantId
-          next(to)
-        } else {
-          if (!to.path.includes('/user/profile')) {
-            checkFunc()
-          }
-          console.log("to:", to)
-          next()
+        // if (!store.state.user.TENANT_NANE && !to.query.TenantId) {
+        //   to.query.TenantId = sessionStorage.TenantId
+        //   next(to)
+        // } else {
+        if (!to.path.includes('/user/profile')) {
+          checkFunc()
         }
+        console.log("to:", to)
+        next()
+        // }
       }
     }
   } else {
@@ -66,10 +72,11 @@ router.beforeEach(async (to, from, next) => {
       // 在免登录白名单,直接进入
       next()
     } else {
-      if (store.state.user.TENANT_NANE || sessionStorage.TenantId == undefined) {
+      if (sessionStorage.TenantId == undefined) {
         next(`/login`) // 否则全部重定向到登录页
       } else {
-        next(`/login?redirect=${to.fullPath}&TenantId=${sessionStorage.TenantId}`) // 否则全部重定向到登录页
+        console.log("sessionStorage", sessionStorage.TenantId)
+        next(`/login?TenantId=${sessionStorage.TenantId}`) // 否则全部重定向到登录页
       }
       NProgress.done()
     }

+ 27 - 16
src/store/modules/user.js

@@ -1,4 +1,4 @@
-import { login, logout, getInfo } from '@/api/login'
+import { oldlogin, login, logout, getInfo } from '@/api/login'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import methods from "@/utils/methodsTool";
 import { encrypt } from '@/utils/jsencrypt'
@@ -12,7 +12,6 @@ const user = {
     roles: [],
     permissions: [],
     userId: '',
-    TENANT_NANE: null,
     companyName: ''
   },
 
@@ -35,14 +34,6 @@ const user = {
     SET_USERID: (state, userId) => {
       state.userId = userId
     },
-    setTENANT_NANE(state, id) {
-      state.TENANT_NANE = id
-    },
-    outLogin(state) {
-      if (state.TENANT_NANE) {
-        sessionStorage.removeItem('TenantId')
-      }
-    },
     set_companyName(state, data) {
       state.companyName = data || ''
       document.title = data || ''
@@ -50,6 +41,20 @@ const user = {
   },
 
   actions: {
+    oldLogin({ commit }, queryData) {
+      return new Promise(resolve => {
+        sessionStorage.TenantId = queryData.tenantId
+        oldlogin(queryData)
+          .then(function (res) {
+            setToken(res.token)
+            resolve()
+          })
+          .catch(function (error) {
+            removeToken()
+            resolve()
+          });
+      })
+    },
     findTenantId({
       commit
     }) {
@@ -58,22 +63,28 @@ const user = {
         var urls = location.origin.includes("localhost") ? '' : urlReg.exec(location.origin)[0];
         if (location.origin.includes("192.168.1") || location.origin.includes("localhost") || location.origin.includes("120.79.166.78")) {
           urls = "120.79.166.78:19012"
+          // urls = "120.79.166.78:1901"
         }
         api.commonfreefindTenantId({ hostAdmin: urls })
           .then(function (res) {
             if (res.code === 200) {
-              commit('setTENANT_NANE', res.data)
+              sessionStorage.TenantId = res.data
             } else {
-              commit('setTENANT_NANE', '')
-              sessionStorage.removeItem('TenantId')
+              if (methods.getQueryVariable('TenantId')) {
+                sessionStorage.TenantId = methods.getQueryVariable('TenantId')
+              } else {
+                sessionStorage.removeItem('TenantId')
+              }
             }
             resolve()
           })
           .catch(function (error) {
-            commit('setTENANT_NANE', '')
+            if (methods.getQueryVariable('TenantId')) {
+              sessionStorage.TenantId = methods.getQueryVariable('TenantId')
+            } else {
               sessionStorage.removeItem('TenantId')
+            }
             resolve()
-            console.log("TenantIDerror:", error);
           });
       })
     },
@@ -142,7 +153,7 @@ const user = {
           commit('SET_TOKEN', '')
           commit('SET_ROLES', [])
           commit('SET_PERMISSIONS', [])
-          commit('outLogin')
+          sessionStorage.removeItem('TenantId')
           removeToken()
           resolve()
         }).catch(error => {

+ 5 - 4
src/utils/request.js

@@ -7,8 +7,8 @@ import methods from '@/utils/methodsTool';
 
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
 // 创建axios实例
-// export const baseURL = process.env.VUE_APP_BASE_API
-export const baseURL = 'http://192.168.1.7:5030/'
+export const baseURL = process.env.VUE_APP_BASE_API
+// export const baseURL = 'http://192.168.1.222:5030/'
 export const BASE_IMG_URL = process.env.VUE_APP_IMG_API
 const service = axios.create({
   // axios中请求配置有baseURL选项,表示请求URL公共部分
@@ -23,7 +23,7 @@ service.interceptors.request.use(config => {
   if (getToken() && !isToken) {
     config.headers['AuthorizationToken'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
   }
-  config.headers.TenantId = store.state.user.TENANT_NANE || sessionStorage.TenantId || methods.getQueryVariable('TenantId')
+  config.headers.TenantId = sessionStorage.TenantId || methods.getQueryVariable('TenantId')
   // get请求映射params参数
   if (config.method === 'get' && config.params) {
     let url = config.url + '?';
@@ -67,8 +67,9 @@ service.interceptors.response.use(res => {
       type: 'warning'
     }
     ).then(() => {
+      const tid = sessionStorage.TenantId
       store.dispatch('LogOut').then(() => {
-        location.href = '/index';
+        location.href = '/index?TenantId=' + tid;
       })
     }).catch(() => { });
     return Promise.reject('无效的会话,或者会话已过期,请重新登录。')

+ 35 - 0
src/views/2Cport/pageSettings/H5_small.vue

@@ -105,6 +105,34 @@
           >
         </div>
       </el-form-item>
+      <el-form-item label="公众号二维码" prop="gzhImage">
+        <div class="imageStyBox" v-if="!moveInfo.gzhImage">
+          <label for="uplose4"><i class="btn_upload">上传图片</i></label>
+          <input
+            type="file"
+            style="display: none"
+            id="uplose4"
+            @change="getImgFile($event, 'gzhImage')"
+          />
+        </div>
+        <div v-else>
+          <el-image
+            class="imageStyBoxShow"
+            :src="$methodsTools.splitImgHost(moveInfo.gzhImage)"
+            :preview-src-list="[
+              $methodsTools.splitImgHost(moveInfo.gzhImage),
+            ]"
+          >
+          </el-image>
+          <el-button
+            style="margin-left: 20px"
+            type="danger"
+            size="mini"
+            @click="moveInfo.gzhImage = ''"
+            >删除</el-button
+          >
+        </div>
+      </el-form-item>
       <el-form-item>
         <el-button
           size="small"
@@ -146,6 +174,13 @@ export default {
             trigger: ["blur", "change"],
           },
         ],
+        gzhImage: [
+          {
+            required: false,
+            message: "请上传公众号二维码",
+            trigger: ["blur", "change"],
+          },
+        ],
         hostH5: [{ required: false, message: "请输入hostH5", trigger: "blur" }],
         hostLive: [
           { required: false, message: "请输入hostLive", trigger: "blur" },

+ 30 - 22
src/views/Marketing/activitySystem/activityList/activityInfo/index.vue

@@ -15,12 +15,14 @@
     <div style="text-align: center">
       <el-button @click="close">取消</el-button>
       <el-button
+        v-loading="loading"
         type="primary"
         @click="submitForm('ruleForm')"
         v-if="status !== 'info'"
         >保存</el-button
       >
       <el-button
+        v-loading="loading"
         type="primary"
         @click="submitForm('ruleForm', true)"
         v-if="status !== 'info'"
@@ -38,6 +40,7 @@ export default {
   components: { First, Second, Three },
   data() {
     return {
+      loading: false,
       ruleForm: {
         status: 0,
         goodsList: [], //商品列表
@@ -68,14 +71,14 @@ export default {
   methods: {
     close() {
       this.$store.dispatch("tagsView/exitView", this.$route).then((res) => {
-        if( this.$route.query.isSales){
-        this.$router.push({
-          name: "ActList",
-        });
-        }else{
-        this.$router.push({
-          path: "activityList",
-        });
+        if (this.$route.query.isSales) {
+          this.$router.push({
+            name: "ActList",
+          });
+        } else {
+          this.$router.push({
+            path: "activityList",
+          });
         }
       });
     },
@@ -97,6 +100,7 @@ export default {
         if (valid) {
           this.checkGoodsFunc()
             .then(() => {
+              this.loading = true;
               var data = JSON.parse(JSON.stringify(this.ruleForm));
               data.startTime = data.timeList[0] / 1000;
               data.endTime = data.timeList[1] / 1000;
@@ -107,19 +111,23 @@ export default {
                 data.distributionId
                   ? "editdistributiontemp"
                   : "distributiontempsave"
-              ](data).then((res) => {
-                this.$message.success("成功");
-                this.$store.commit("DISTRIBUTIONLIST");
-                setTimeout(() => {
-                  this.$store
-                    .dispatch("tagsView/exitView", this.$route)
-                    .then((res) => {
-                      this.$router.push({
-                        path: "activityList",
+              ](data)
+                .then((res) => {
+                  this.$message.success("成功");
+                  this.$store.commit("DISTRIBUTIONLIST");
+                  setTimeout(() => {
+                    this.$store
+                      .dispatch("tagsView/exitView", this.$route)
+                      .then((res) => {
+                        this.$router.push({
+                          path: "activityList",
+                        });
                       });
-                    });
-                }, 300);
-              });
+                  }, 300);
+                })
+                .finally(() => {
+                  this.loading = false;
+                });
             })
             .catch((err) => {
               this.$message.error(err);
@@ -137,13 +145,13 @@ export default {
           if (this.ruleForm.goodsList[i].profitType === 1) {
             //百分比处理
             if (this.ruleForm.goodsList[i].profitMax > 100) {
-              return reject(`请检查第${i + 1}个商品的数设置`);
+              return reject(`请检查第${i + 1}个商品的数设置`);
             } else {
               let countNum =
                 parseFloat(this.ruleForm.goodsList[i].profitOne) +
                 parseFloat(this.ruleForm.goodsList[i].profitTwo) +
                 parseFloat(this.ruleForm.goodsList[i].profitThree);
-              if (countNum > this.ruleForm.goodsList[i].profitMax) {
+              if (countNum > 100) {
                 return reject(
                   `请检查第${
                     i + 1

+ 8 - 1
src/views/Marketing/activitySystem/activityList/activityInfo/second.vue

@@ -5,12 +5,13 @@
         <el-form-item label="设置商品及佣金" prop="goodsList">
           <p>
             <el-button type="primary" @click="activeGoods">新增</el-button>
-            <el-form style="float:left;margin-right: 10px;">
+            <el-form style="float: left; margin-right: 10px">
               <!-- 详情出现 --><el-button
                 v-if="ruleForm.tempId"
                 type="primary"
                 @click="pull"
                 :disabled="false"
+                v-loading="loading"
                 >拉取商品</el-button
               >
             </el-form>
@@ -153,6 +154,7 @@ export default {
   },
   data() {
     return {
+      loading: false,
       goodsSet: [
         {
           label: "商品名称",
@@ -213,10 +215,15 @@ export default {
       this.$refs.goodsList.showBox(array);
     },
     pull() {
+      this.loading = true;
       this.$api
         .distributionactivitypullgoods(this.ruleForm.distributionId)
         .then((res) => {
           this.$message.success("操作成功");
+          this.$parent.getInit();
+        })
+        .finally(() => {
+          this.loading = false;
         });
     },
   },

+ 2 - 2
src/views/Marketing/activitySystem/activityList/index.vue

@@ -26,7 +26,7 @@
           @click="pull(props.scope.row)"
           >拉取商品</el-button
         ><el-button
-          v-if="!props.scope.row.tempId && props.scope.row.status !== -1"
+          v-if="props.scope.row.status !== -1"
           type="text"
           @click="sendUpload(props.scope.row)"
           >{{ props.scope.row.status === 1 ? "禁用" : "启用" }}</el-button
@@ -55,7 +55,7 @@
     >
       <template>
         <div class="posterUrl_style">
-          <img :src="$methodsTools.splitImgHost(posterUrl)" alt="" />
+          <img style="width: 100%;height: 100%;" :src="$methodsTools.splitImgHost(posterUrl)" alt="" />
           <div
             class="code_style"
             v-if="modelData.distribution && modelData.distribution.checked"

+ 108 - 8
src/views/Marketing/activitySystem/posterList/model.vue

@@ -82,6 +82,46 @@
                   >电子名片码</el-checkbox
                 >
               </div>
+
+              <div class="lis">
+                <el-checkbox v-model="modelData.distributionText.checked"
+                  >分销码说明:</el-checkbox
+                ><el-input
+                  type="textarea"
+                  :rows="2"
+                  v-model="modelData.distributionText.name"
+                ></el-input
+                ><el-color-picker
+                  v-model="modelData.distributionText.css.color"
+                  show-alpha
+                ></el-color-picker>
+                <el-input
+                  placeholder="请输入字体大小"
+                  v-model="modelData.distributionText.css.fontSize"
+                >
+                  <template slot="prepend">字体大小</template></el-input
+                >
+              </div>
+
+              <div class="lis">
+                <el-checkbox v-model="modelData.cardCodeText.checked"
+                  >电子名片码说明:</el-checkbox
+                ><el-input
+                  type="textarea"
+                  :rows="2"
+                  v-model="modelData.cardCodeText.name"
+                ></el-input
+                ><el-color-picker
+                  v-model="modelData.cardCodeText.css.color"
+                  show-alpha
+                ></el-color-picker>
+                <el-input
+                  placeholder="请输入字体大小"
+                  v-model="modelData.cardCodeText.css.fontSize"
+                >
+                  <template slot="prepend">字体大小</template></el-input
+                >
+              </div>
               <div class="lis">
                 <el-checkbox v-model="modelData.advertise.checked"
                   >广告语:</el-checkbox
@@ -176,8 +216,8 @@ export default {
           name: "",
           type: 1,
           top: 38,
-          left: 0,
-          width: 375,
+          left: 1,
+          width: 373,
           height: 50,
           css: {
             textAlign: "center",
@@ -186,7 +226,6 @@ export default {
           },
         },
         goods: {
-          // name: require("@/assets/model_images/model1.png"),
           name: "",
           type: 2,
           top: 126,
@@ -210,6 +249,19 @@ export default {
             height: "100%",
           },
         },
+        distributionText: {
+          name: "",
+          type: 1,
+          top: 597,
+          left: 114,
+          width: 121,
+          height: 44,
+          css: {
+            fontSize: "16px",
+            margin: "0px",
+            lineHeight: "normal",
+          },
+        },
         cardCode: {
           name: "",
           type: 3,
@@ -222,6 +274,19 @@ export default {
             height: "100%",
           },
         },
+        cardCodeText: {
+          name: "",
+          type: 1,
+          top: 597,
+          left: 244,
+          width: 121,
+          height: 44,
+          css: {
+            fontSize: "16px",
+            margin: "0px",
+            lineHeight: "normal",
+          },
+        },
         advertise: {
           name: "",
           type: 1,
@@ -230,6 +295,7 @@ export default {
           width: 102,
           height: 96,
           css: {
+            lineHeight: "normal",
             fontSize: "20px",
             margin: "0px",
           },
@@ -276,6 +342,7 @@ export default {
         this.$nextTick(() => {
           this.modelData = {
             background: {
+              checked: true,
               name: "",
               type: 0,
               css: {
@@ -287,11 +354,12 @@ export default {
               },
             },
             title: {
+              checked: true,
               name: "",
               type: 1,
               top: 38,
-              left: 0,
-              width: 375,
+              left: 1,
+              width: 373,
               height: 50,
               css: {
                 textAlign: "center",
@@ -301,7 +369,7 @@ export default {
               },
             },
             goods: {
-              // name: require("@/assets/model_images/model1.png"),
+              checked: true,
               name: "",
               type: 2,
               top: 126,
@@ -314,6 +382,7 @@ export default {
               },
             },
             distribution: {
+              checked: true,
               name: "",
               type: 3,
               top: 476,
@@ -325,7 +394,22 @@ export default {
                 height: "100%",
               },
             },
+            distributionText: {
+              checked: true,
+              name: "",
+              type: 1,
+              top: 597,
+              left: 114,
+              width: 121,
+              height: 44,
+              css: {
+                fontSize: "16px",
+                margin: "0px",
+                lineHeight: "normal",
+              },
+            },
             cardCode: {
+              checked: true,
               name: "",
               type: 3,
               top: 476,
@@ -337,7 +421,22 @@ export default {
                 height: "100%",
               },
             },
+            cardCodeText: {
+              checked: true,
+              name: "",
+              type: 1,
+              top: 597,
+              left: 244,
+              width: 121,
+              height: 44,
+              css: {
+                fontSize: "16px",
+                margin: "0px",
+                lineHeight: "normal",
+              },
+            },
             advertise: {
+              checked: true,
               name: "",
               type: 1,
               top: 490,
@@ -347,10 +446,11 @@ export default {
               css: {
                 fontSize: "20px",
                 margin: "0px",
-                lineHeight: "36px",
+                lineHeight: "normal",
               },
             },
             mechanism: {
+              checked: true,
               name: "",
               type: 1,
               top: 623,
@@ -361,7 +461,7 @@ export default {
                 fontSize: "16px",
                 textAlign: "center",
                 margin: "0px",
-                lineHeight: "36px",
+                lineHeight: "normal",
               },
             },
           };

+ 0 - 5
src/views/Marketing/distribution/commissionList/index.vue

@@ -88,11 +88,6 @@ export default {
           prop: "telphone",
           hidden: true,
         },
-        {
-          label: "邀请人ID",
-          prop: "parentId",
-          hidden: true,
-        },
         {
           label: "邀请人姓名",
           prop: "parentName",

+ 1 - 0
src/views/Marketing/distribution/rankingList/index.vue

@@ -78,6 +78,7 @@ export default {
           prop: "sortType",
           placeholder: "排行榜类型",
           scope: "select",
+          noClear:false,
           options: [
             { label: "佣金", value: 1 },
             { label: "订单数", value: 2 },

+ 6 - 5
src/views/Marketing/distribution/salesmanList/formBox.vue

@@ -51,7 +51,8 @@
             <el-input v-else v-model="listData[items.prop]"></el-input>
           </el-form-item>
         </el-form>
-        <p class="title_i">创建新账户时,默认密码为身份证号末6位</p>
+        <p class="title_i">创建新账户(手机号码及身份证号码)时,默认密码为身份证号末6位</p>
+        <p class="title_i">注意:手机号码及身份证号码都可作为账号</p>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="close">取 消</el-button>
@@ -105,7 +106,7 @@ export default {
         },
         {
           label: "手机号码",
-          prop: "telphone",
+          prop: "phonenumber",
         },
         {
           label: "身份证号",
@@ -117,7 +118,7 @@ export default {
       //   弹窗数据
       listData: {
         realname: "",
-        telphone: "",
+        phonenumber: "",
         idCard: "",
         status: 1,
       },
@@ -137,7 +138,7 @@ export default {
             trigger: "blur",
           },
         ],
-        telphone: [
+        phonenumber: [
           { required: true, validator: validatorphone, trigger: "blur" },
         ],
         idCard: [
@@ -182,7 +183,7 @@ export default {
       } else {
         this.listData = {
           realname: "",
-          telphone: "",
+          phonenumber: "",
           idCard: "",
           status: 1,
         };

+ 1 - 16
src/views/Marketing/distribution/salesmanList/index.vue

@@ -101,7 +101,7 @@ export default {
         },
         {
           label: "手机号",
-          prop: "telphone",
+          prop: "phonenumber",
           hidden: true,
         },
         {
@@ -109,32 +109,17 @@ export default {
           prop: "idCard",
           hidden: true,
         },
-        {
-          label: "所属机构",
-          prop: "tenantName",
-          hidden: true,
-        },
         {
           label: "是否完成提现授权",
           prop: "gzhOpenId",
           hidden: true,
           scope: "isgzhOpenId",
         },
-        {
-          label: "邀请人ID",
-          prop: "parentAccount",
-          hidden: true,
-        },
         {
           label: "邀请人姓名",
           prop: "parentName",
           hidden: true,
         },
-        {
-          label: "成交订单客户数",
-          prop: "orderPeopleNum",
-          hidden: true,
-        },
         {
           label: "累计推广员数",
           prop: "promotionNum",

+ 3 - 1
src/views/Marketing/distribution/salesmanList/salesCheckout.vue

@@ -147,7 +147,7 @@ export default {
     showBox() {
       this.dialogVisible = true;
       this.$nextTick(() => {
-        this.search(1);
+        this.init();
       });
     },
     search(int) {
@@ -170,6 +170,7 @@ export default {
         pageSize: 10,
         pageNum: 1,
       };
+      this.$refs.tableList.clearMoreActive()
       this.search();
     },
     submit() {
@@ -193,6 +194,7 @@ export default {
         });
     },
     close() {
+      this.$refs.tableList.clearMoreActive()
       this.dialogVisible = false;
     },
     handleSizeChange(v) {

+ 31 - 1
src/views/education/notificationManageMent/stationLetter/index.vue

@@ -130,12 +130,18 @@
           type="primary"
           @click="
             submitChecks(
-              newData.type === 2 || newData.type === 3 ? 2 : 1
+              newData.type === 2 || newData.type === 3
+                ? 2
+                : newData.type === 4
+                ? 3
+                : 1
             )
           "
           >{{
             newData.type === 2 || newData.type === 3
               ? "查看订单"
+              : newData.type === 4
+              ? "查看活动"
               : "查看学员"
           }}</el-button
         >
@@ -264,6 +270,30 @@ export default {
      */
     submitChecks(int) {
       this.dialogCG = false;
+      if (int === 3) {
+        const jump = () => {
+          //分销活动列表
+          this.$router.push({
+            name: "ActivityList",
+          });
+        };
+        const statusPage = this.$store.state.tagsView.visitedViews.some(
+          (item) => {
+            return item.name == "ActivityList";
+          }
+        );
+        if (statusPage) {
+          this.$store
+            .dispatch("tagsView/delCachedView", {
+              name: "ActivityList",
+            })
+            .then((res) => {
+              jump();
+            });
+        } else {
+          jump();
+        }
+      }
       if (int === 2) {
         const jump = () => {
           //退款订单列表

+ 13 - 5
src/views/finance/withdrawal/index.vue

@@ -21,7 +21,7 @@
           @click="audit(props.scope.row)"
           >审核</el-button
         ><el-button
-          v-if="props.scope.row.cwStatus === 3"
+          v-if="props.scope.row.cwStatus === 3 && props.scope.row.cashier === 1"
           type="text"
           @click="payCash(props.scope.row.cwSn)"
           >打款</el-button
@@ -93,6 +93,8 @@ export default {
             { label: "初审通过", value: 1 },
             { label: "二审通过", value: 2 },
             { label: "三审通过", value: 3 },
+            { label: "已打款", value: 5 },
+            { label: "已撤回", value: -2 },
           ],
         },
       ],
@@ -154,12 +156,20 @@ export default {
               label: "已打款",
               value: 4,
             },
+            {
+              label: "打款中",
+              value: 5,
+            },
+            {
+              label: "打款失败",
+              value: 6,
+            },
             {
               label: "已拒绝",
               value: -1,
             },
             {
-              label: "已取消",
+              label: "已撤回",
               value: -2,
             },
           ],
@@ -221,9 +231,7 @@ export default {
             })
             .finally(() => {});
         })
-        .catch(() => {
-          
-        });
+        .catch(() => {});
     },
 
     handleSizeChange(v) {

+ 32 - 30
src/views/salesman/commission/index.vue

@@ -31,7 +31,7 @@
         >
       </template>
       <template slot="btn" slot-scope="props">
-        <el-button type="text">详情</el-button>
+        <el-button type="text" v-if="false">详情</el-button>
       </template>
     </table-list>
     <pagination
@@ -63,12 +63,13 @@ export default {
     return {
       loading: false, //当前表单加载是否加载动画
       navText: {
-        title: "活动列表",
+        title: "佣金列表",
         index: 0,
         ch: "条",
         num: false,
         choice: false,
         addHide: true,
+        tableHide:true,
         backFatherBtn: {
           status: false,
           title: "未定义",
@@ -81,75 +82,76 @@ export default {
           placeholder: "请输入活动名称",
         },
       ],
-      formData: {
-        status: "0,1",
-        pageSize: 10,
-        pageNum: 1,
-      },
+      formData: {},
       // 表单
       tableSet: [
-        {
-          label: "佣金ID",
-          prop: "studentCode",
-          hidden: true,
-        },
         {
           label: "所属订单",
-          prop: "relatedSn",
+          prop: "orderSn",
           hidden: true,
         },
         {
           label: "所属活动",
-          prop: "sex",
+          prop: "distributionName",
           hidden: true,
-          scope: "sex",
         },
         {
           label: "下单人",
-          prop: "nickname",
+          prop: "orderUserName",
           hidden: true,
         },
         {
           label: "订单时间",
-          prop: "payWay",
+          prop: "orderTime",
           hidden: true,
+          scope: "aTimeList",
         },
         {
-          label: "订单金额",
-          prop: "payWay",
+          label: "订单金额(元)",
+          prop: "orderPrice",
           hidden: true,
         },
         {
           label: "佣金分成方式",
-          prop: "profitType",
+          prop: "cashType",
           hidden: true,
+          scope: "isOptions",
+          options: [
+            {
+              label: "百分比",
+              value: 1,
+            },
+            {
+              label: "固定",
+              value: 2,
+            },
+          ],
         },
         {
-          label: "佣金等级",
-          prop: "payWay",
+          label: "佣金比例",
+          prop: "cashRatio",
           hidden: true,
         },
         {
-          label: "佣金金额",
-          prop: "payWay",
+          label: "佣金金额(元)",
+          prop: "cash",
           hidden: true,
         },
         {
           label: "佣金结算时间",
-          prop: "freezingPeriod",
+          prop: "cashTime",
           hidden: true,
+          scope: "aTimeList",
         },
       ],
       tableData: [], //表单数据
       total: 0, //一共多少条
-      pageSize: 10, //每页多少条数据
-      currentPage: 1, //当前页码
       dialogVisible: false,
       userInfo: {},
     };
   },
   mounted() {
-    this.search();
+    this.search(2);
     this.getSellerInfo();
   },
   methods: {
@@ -290,13 +292,13 @@ export default {
     margin: 5px 0px;
   }
 }
-.withd-box{
+.withd-box {
   display: flex;
   position: absolute;
   top: 122px;
   left: 200px;
   z-index: 10;
-  div{
+  div {
     margin-right: 20px;
   }
 }

+ 11 - 1
src/views/salesman/commission/withdDialog.vue

@@ -24,7 +24,7 @@
         <el-step title="提现申请成功"></el-step>
       </el-steps>
       <div class="step-code-box" v-if="active == 1">
-        <vue-qr text="modelData.cardCode.name" :size="200"></vue-qr>
+        <vue-qr :text="wxCodeUrl" :size="200"></vue-qr>
       </div>
     </div>
 
@@ -39,6 +39,7 @@
 
 <script>
 import vueQr from "vue-qr";
+import { getWxCodeUrl } from "@/api/salesman/commission";
 import { checkBindGzh, withdrawal } from "@/api/salesman/user";
 export default {
   props: {
@@ -91,6 +92,7 @@ export default {
         },
       ],
       active: 2,
+      wxCodeUrl: "",
     };
   },
   methods: {
@@ -126,6 +128,9 @@ export default {
     checkBindGzh() {
       return checkBindGzh().then((res) => {
         this.active = res.data ? 2 : 1;
+        if (this.active == 1) {
+          this.getWxCodeUrl();
+        }
         return Promise.resolve();
       });
     },
@@ -143,6 +148,11 @@ export default {
       temp = temp.replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); //只能输入两个小数
       this.form[key] = temp;
     },
+    getWxCodeUrl() {
+      getWxCodeUrl().then((res) => {
+        this.wxCodeUrl = res.data;
+      });
+    },
   },
   computed: {
     isShow: {

+ 11 - 3
src/views/salesman/withdrawal/record.vue

@@ -46,7 +46,7 @@ export default {
     return {
       loading: false, //当前表单加载是否加载动画
       navText: {
-        title: "活动列表",
+        title: "提现记录",
         index: 0,
         ch: "条",
         num: false,
@@ -108,7 +108,7 @@ export default {
           scope: "isOptions",
           options: [
             {
-              label: "已取消",
+              label: "已撤回",
               value: -2,
             },
             {
@@ -116,7 +116,7 @@ export default {
               value: -1,
             },
             {
-              label: "审核",
+              label: "审核",
               value: 0,
             },
             {
@@ -135,6 +135,14 @@ export default {
               label: "已打款",
               value: 4,
             },
+            {
+              label: "打款中",
+              value: 5,
+            },
+            {
+              label: "打款失败",
+              value: 6,
+            },
           ],
         },
         {

+ 24 - 1
src/views/systemManagement/accountManagement/index.vue

@@ -66,6 +66,15 @@
             >
             </el-input>
           </el-form-item>
+          <el-form-item label="身份证" prop="idCard">
+            <el-input
+              v-model="listData.idCard"
+              placeholder="请输入身份证"
+              clearable
+              :style="{ width: '100%' }"
+            >
+            </el-input>
+          </el-form-item>
           <el-form-item label="真实姓名" prop="nickName">
             <el-input
               v-model="listData.nickName"
@@ -146,6 +155,18 @@ export default {
   name: "AccountManagement",
   components: { searchBox, tableList, pagination },
   data() {
+    var validatorIdCode = (rule, value, callback) => {
+      var reg =
+        /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
+
+      if (!value) {
+        return callback(new Error("请输入身份证号码"));
+      } else if (!reg.test(value)) {
+        return callback(new Error("请输入正确身份证号码"));
+      } else {
+        callback();
+      }
+    };
     return {
       disabledBtn: false,
       loading: false, //当前表单加载是否加载动画
@@ -225,6 +246,9 @@ export default {
             trigger: "blur",
           },
         ],
+        idCard: [
+          { required: true, validator: validatorIdCode, trigger: "blur" },
+        ],
         phonenumber: [
           {
             required: false,
@@ -492,4 +516,3 @@ export default {
   }
 }
 </style>
-