刘恒 пре 1 година
родитељ
комит
e881625a12

+ 13 - 2
src/components/form/FormRow.vue

@@ -141,7 +141,15 @@
       :colon="false"
       v-show="showManage"
     >
-      <a-select
+      <a-cascader
+        placeholder="请选择管理人"
+        v-model="formState.leaderId"
+        allowClear
+        :options="manageList"
+        :display-render="displayRender"
+      >
+      </a-cascader>
+      <!-- <a-select
         placeholder="请选择"
         v-model="formState.leaderId"
         allowClear
@@ -155,7 +163,7 @@
         >
           {{ item.name }}
         </a-select-option>
-      </a-select>
+      </a-select> -->
     </a-form-item>
     <a-form-item
       label="是否出单"
@@ -236,6 +244,9 @@ export default {
     },
   },
   methods: {
+    displayRender({ labels }) {
+      return labels[labels.length - 1];
+    },
     filterOption(input, option) {
       return (
         option.componentOptions.children[0].text

+ 30 - 1
src/minins/manageMixin.js

@@ -14,13 +14,42 @@ export default {
 
     },
     methods: {
+        formatRoutes(arr) {
+            const newArr = [];
+            let obj = {};
+            arr.forEach((router) => {
+                const tmp = { ...router };
+                // if(tmp.type == 1){  //只筛选出type=1的项
+                if (tmp.children) {
+                    tmp.children = this.formatRoutes(tmp.children);
 
+                    // const { url, children, type } = router;
+
+                    obj = {
+                        value: tmp.id,
+                        label: tmp.name,
+
+                        children: tmp.children,
+                    };
+                } else {
+                    obj = {
+                        value: tmp.id,
+                        label: tmp.name,
+
+                        children: [],
+                    };
+                }
+                newArr.push(obj);
+                // }
+            });
+            return newArr;
+        },
         getManageList() {
             //
             this.$API.personnel.getManageUser({}).then((res) => {
                 // console.log(res);
                 if (res.data.code === 200) {
-                    this.manageList = [...res.data.data];
+                    this.manageList = this.formatRoutes(res.data.data);
                 }
             });
         },

+ 21 - 1
src/pages/index/index.vue

@@ -80,12 +80,32 @@ export default {
   },
   created() {},
   mounted() {
-    console.log(this.menuData);
+    this.$nextTick(() => {
+      let url = this.getnewurl();
+      window.history.replaceState(null, null, url);
+    });
   },
   computed: {
     ...mapState("setting", ["menuData"]),
   },
   methods: {
+    getnewurl() {
+      let url = document.location.href;
+      let reg = /[^\w](token|uid)=?([^&|^#]*)/g;
+      url = url.replace(reg, "");
+      reg = /&&/g;
+      url = url.replace(reg, "");
+      reg = /&#/g;
+      url = url.replace(reg, "#");
+      reg = /\?#/g;
+      url = url.replace(reg, "#");
+      // url = url.replaceAll(document.domain,"");
+      // url = url.replaceAll("http://","");
+      // url = url.replaceAll("https://","");
+      reg = /\?#/g;
+      url = url.replace(reg, "#");
+      return url;
+    },
     RouterLink(item) {
       this.$router.push({
         path: "/" + item.url + "/" + item.children[0].url,

+ 53 - 14
src/pages/personnelManage/channel.vue

@@ -79,22 +79,15 @@
           ></a-input>
         </a-form-item>
         <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
-          <a-select
+          <a-cascader
             style="width: 300px"
-            placeholder="请选择"
+            placeholder="请选择管理人"
             v-model="formState.leaderId"
             allowClear
-            show-search
-            :filter-option="filterOption"
+            :options="manageList"
+            :display-render="displayRender"
           >
-            <a-select-option
-              v-for="item in manageList"
-              :key="item.id"
-              :value="item.id"
-            >
-              {{ item.name }}
-            </a-select-option>
-          </a-select>
+          </a-cascader>
         </a-form-item>
         <a-form-item label="是否出单" :labelCol="{ span: 7 }" :colon="false">
           <a-select
@@ -224,9 +217,15 @@ export default {
         phoneNumber: undefined,
         createtimeStart: moment().format("YYYY-MM-DD"),
         createtimeEnd: moment().format("YYYY-MM-DD"),
-        leaderId: undefined,
+        leaderId: [],
         outThere: undefined,
       },
+      replaceFields: {
+        children: "children",
+        title: "name",
+        key: "id",
+        value: "id",
+      },
       process: process.env.VUE_APP_API_BASE_URL,
 
       pageInfo: {
@@ -253,11 +252,16 @@ export default {
     // }, 1000);
   },
   methods: {
+    displayRender({ labels }) {
+      return labels[labels.length - 1];
+    },
+
     exportList() {
       this.$API.personnel
         .exportList({
           ...this.formState,
           managementSource: 1,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code == 200) {
@@ -279,12 +283,46 @@ export default {
           .indexOf(input.toLowerCase()) >= 0
       );
     },
+    formatRoutes(arr) {
+      const newArr = [];
+      let obj = {};
+      arr.forEach((router) => {
+        const tmp = { ...router };
+        // if(tmp.type == 1){  //只筛选出type=1的项
+        if (tmp.children) {
+          tmp.children = this.formatRoutes(tmp.children);
+
+          // const { url, children, type } = router;
+
+          obj = {
+            value: tmp.id,
+            label: tmp.name,
+
+            children: tmp.children,
+          };
+        } else {
+          obj = {
+            value: tmp.id,
+            label: tmp.name,
+
+            children: [],
+          };
+        }
+        newArr.push(obj);
+        // }
+      });
+      return newArr;
+    },
     getManageList() {
       //
       this.$API.personnel.getManageUser({}).then((res) => {
         // console.log(res);
         if (res.data.code === 200) {
-          this.manageList = [...res.data.data];
+          // this.manageList;
+          // let arr = [...res.data.data];
+
+          // console.log(this.formatRoutes(res.data.data));
+          this.manageList = this.formatRoutes(res.data.data);
         }
       });
     },
@@ -303,6 +341,7 @@ export default {
           pageSize: this.pageInfo.pageSize,
           ...this.formState,
           managementSource: 1,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           //   console.log(res);

+ 4 - 1
src/pages/personnelManage/front/personnel.vue

@@ -255,7 +255,7 @@ export default {
         createtimeEnd: moment().format("YYYY-MM-DD"),
         time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")],
         days: undefined,
-        leaderId: undefined,
+        leaderId: [],
         outThere: undefined,
       },
       rankForm: {
@@ -303,6 +303,7 @@ export default {
         .exportList({
           ...this.formState,
           managementSource: 2,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code == 200) {
@@ -341,6 +342,7 @@ export default {
           orderSort: this.orderSort,
           managementSource: 2,
           ...this.formState,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           // console.log(res);
@@ -393,6 +395,7 @@ export default {
           pageSize: this.pageInfo.pageSize,
           ...this.formState,
           managementSource: 2,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           //   console.log(res);

+ 46 - 14
src/pages/personnelManage/sales.vue

@@ -79,22 +79,15 @@
           ></a-input>
         </a-form-item>
         <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
-          <a-select
+          <a-cascader
             style="width: 300px"
-            placeholder="请选择"
+            placeholder="请选择管理人"
             v-model="formState.leaderId"
             allowClear
-            show-search
-            :filter-option="filterOption"
+            :options="manageList"
+            :display-render="displayRender"
           >
-            <a-select-option
-              v-for="item in manageList"
-              :key="item.id"
-              :value="item.id"
-            >
-              {{ item.name }}
-            </a-select-option>
-          </a-select>
+          </a-cascader>
         </a-form-item>
         <a-form-item label="是否出单" :labelCol="{ span: 7 }" :colon="false">
           <a-select
@@ -224,7 +217,7 @@ export default {
         phoneNumber: undefined,
         createtimeStart: moment().format("YYYY-MM-DD"),
         createtimeEnd: moment().format("YYYY-MM-DD"),
-        leaderId: undefined,
+        leaderId: [],
         outThere: undefined,
       },
       process: process.env.VUE_APP_API_BASE_URL,
@@ -253,11 +246,15 @@ export default {
     // }, 1000);
   },
   methods: {
+    displayRender({ labels }) {
+      return labels[labels.length - 1];
+    },
     exportList() {
       this.$API.personnel
         .exportList({
           ...this.formState,
           managementSource: 3,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code == 200) {
@@ -279,12 +276,46 @@ export default {
           .indexOf(input.toLowerCase()) >= 0
       );
     },
+    formatRoutes(arr) {
+      const newArr = [];
+      let obj = {};
+      arr.forEach((router) => {
+        const tmp = { ...router };
+        // if(tmp.type == 1){  //只筛选出type=1的项
+        if (tmp.children) {
+          tmp.children = this.formatRoutes(tmp.children);
+
+          // const { url, children, type } = router;
+
+          obj = {
+            value: tmp.id,
+            label: tmp.name,
+
+            children: tmp.children,
+          };
+        } else {
+          obj = {
+            value: tmp.id,
+            label: tmp.name,
+
+            children: [],
+          };
+        }
+        newArr.push(obj);
+        // }
+      });
+      return newArr;
+    },
     getManageList() {
       //
       this.$API.personnel.getManageUser({}).then((res) => {
         // console.log(res);
         if (res.data.code === 200) {
-          this.manageList = [...res.data.data];
+          // this.manageList;
+          // let arr = [...res.data.data];
+
+          // console.log(this.formatRoutes(res.data.data));
+          this.manageList = this.formatRoutes(res.data.data);
         }
       });
     },
@@ -303,6 +334,7 @@ export default {
           pageSize: this.pageInfo.pageSize,
           ...this.formState,
           managementSource: 3,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           //   console.log(res);

+ 12 - 15
src/pages/sys/permissionsAuth.vue

@@ -56,22 +56,15 @@
             </a-form-item>
 
             <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
-              <a-select
-                style="width: 200px"
-                placeholder="请选择"
+              <a-cascader
+                style="width: 300px"
+                placeholder="请选择管理人"
                 v-model="formState.leaderId"
                 allowClear
-                show-search
-                :filter-option="filterOption"
+                :options="manageList"
+                :display-render="displayRender"
               >
-                <a-select-option
-                  v-for="item in manageList"
-                  :key="item.id"
-                  :value="item.id"
-                >
-                  {{ item.name }}
-                </a-select-option>
-              </a-select>
+              </a-cascader>
             </a-form-item>
             <a-form-item
               label="             "
@@ -182,7 +175,7 @@ export default {
       formState: {
         userId: undefined,
         userName: undefined,
-        leaderId: undefined,
+        leaderId: [],
       },
       visible: false,
       confirmLoading: false,
@@ -268,6 +261,9 @@ export default {
   },
   mounted() {},
   methods: {
+    displayRender({ labels }) {
+      return labels[labels.length - 1];
+    },
     filterOption(input, option) {
       return (
         option.componentOptions.children[0].text
@@ -308,6 +304,7 @@ export default {
           pageNum: this.perPagination.current,
           pageSize: this.perPagination.defaultPageSize,
           ...this.formState,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           console.log(res);
@@ -347,7 +344,7 @@ export default {
       this.formState = {
         userId: undefined,
         userName: undefined,
-        leaderId: undefined,
+        leaderId: [],
       };
 
       //   this.setExpandKys(item.record);

+ 17 - 3
src/pages/task/agent.vue

@@ -74,7 +74,16 @@
         </a-form-item>
 
         <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
-          <a-select
+          <a-cascader
+            style="width: 300px"
+            placeholder="请选择管理人"
+            v-model="formState.leaderId"
+            allowClear
+            :options="manageList"
+            :display-render="displayRender"
+          >
+          </a-cascader>
+          <!-- <a-select
             placeholder="请选择"
             v-model="formState.leaderId"
             allowClear
@@ -88,7 +97,7 @@
             >
               {{ item.name }}
             </a-select-option>
-          </a-select>
+          </a-select> -->
         </a-form-item>
       </a-form>
     </div>
@@ -417,7 +426,7 @@ export default {
         days: undefined,
         userId: undefined,
         userName: undefined,
-        leaderId: undefined,
+        leaderId: [],
         time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")],
         endDate: moment().format("YYYY-MM-DD"),
         beginDate: moment().format("YYYY-MM-DD"),
@@ -476,6 +485,9 @@ export default {
     // }, 1000);
   },
   methods: {
+    displayRender({ labels }) {
+      return labels[labels.length - 1];
+    },
     filterOption(input, option) {
       return (
         option.componentOptions.children[0].text
@@ -519,6 +531,7 @@ export default {
       this.$API.task
         .exportAgentlList({
           ...this.formState,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code == 200) {
@@ -563,6 +576,7 @@ export default {
           pageNum: this.pagination.current,
           pageSize: this.pagination.defaultPageSize,
           ...this.formState,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code === 200) {

+ 12 - 13
src/pages/task/channel.vue

@@ -82,21 +82,15 @@
           </a-form-item>
 
           <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
-            <a-select
-              placeholder="请选择"
+            <a-cascader
+              style="width: 300px"
+              placeholder="请选择管理人"
               v-model="formState.leaderId"
               allowClear
-              show-search
-              :filter-option="filterOption"
+              :options="manageList"
+              :display-render="displayRender"
             >
-              <a-select-option
-                v-for="item in manageList"
-                :key="item.id"
-                :value="item.id"
-              >
-                {{ item.name }}
-              </a-select-option>
-            </a-select>
+            </a-cascader>
           </a-form-item>
         </a-form>
         <!-- <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
@@ -445,7 +439,7 @@ export default {
         days: undefined,
         userId: undefined,
         userName: undefined,
-        leaderId: undefined,
+        leaderId: [],
         time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")],
         endDate: moment().format("YYYY-MM-DD"),
         beginDate: moment().format("YYYY-MM-DD"),
@@ -504,6 +498,9 @@ export default {
     // }, 1000);
   },
   methods: {
+    displayRender({ labels }) {
+      return labels[labels.length - 1];
+    },
     filterOption(input, option) {
       return (
         option.componentOptions.children[0].text
@@ -548,6 +545,7 @@ export default {
       this.$API.task
         .exportChannelList({
           ...this.formState,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code == 200) {
@@ -570,6 +568,7 @@ export default {
           pageSize: this.pagination.defaultPageSize,
           ...this.formState,
           ...val,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code === 200) {

+ 12 - 13
src/pages/task/dianxiao.vue

@@ -82,21 +82,15 @@
           </a-form-item>
 
           <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
-            <a-select
-              placeholder="请选择"
+            <a-cascader
+              style="width: 300px"
+              placeholder="请选择管理人"
               v-model="formState.leaderId"
               allowClear
-              show-search
-              :filter-option="filterOption"
+              :options="manageList"
+              :display-render="displayRender"
             >
-              <a-select-option
-                v-for="item in manageList"
-                :key="item.id"
-                :value="item.id"
-              >
-                {{ item.name }}
-              </a-select-option>
-            </a-select>
+            </a-cascader>
           </a-form-item>
         </a-form>
         <!-- <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
@@ -445,7 +439,7 @@ export default {
         days: undefined,
         userId: undefined,
         userName: undefined,
-        leaderId: undefined,
+        leaderId: [],
         time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")],
         endDate: moment().format("YYYY-MM-DD"),
         beginDate: moment().format("YYYY-MM-DD"),
@@ -504,6 +498,9 @@ export default {
     // }, 1000);
   },
   methods: {
+    displayRender({ labels }) {
+      return labels[labels.length - 1];
+    },
     filterOption(input, option) {
       return (
         option.componentOptions.children[0].text
@@ -548,6 +545,7 @@ export default {
       this.$API.task
         .exportChannelList({
           ...this.formState,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
         })
         .then((res) => {
           if (res.data.code == 200) {
@@ -569,6 +567,7 @@ export default {
           pageNum: this.pagination.current,
           pageSize: this.pagination.defaultPageSize,
           ...this.formState,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
           ...val,
         })
         .then((res) => {

+ 1 - 1
src/services/personnel.js

@@ -37,7 +37,7 @@ export async function getChannelDetails(data) {
 
 //获取渠道成员详情
 export async function getManageUser(data) {
-  return request(`/user/findHxUserList`, METHOD.GET, data)
+  return request(`/user/getTreeDeptUser`, METHOD.POST, data)
 }
 //导出渠道及前线人员
 export async function exportList(data) {