Просмотр исходного кода

fix:任务统计页面标题修改及树形结构更改

刘恒 2 лет назад
Родитель
Сommit
85bb9b8722

+ 1 - 2
src/components/tree/agentTree.vue

@@ -1,7 +1,6 @@
 <template>
   <div class="tree">
     <a-tree
-      v-if="treeData && treeData.length > 0"
       :tree-data="treeData"
       :title="'11'"
       :replaceFields="replaceFields"
@@ -124,7 +123,7 @@ export default {
       
     <style lang="less" scoped>
 .tree {
-  height: 900px;
+  height: 100%;
   overflow-y: auto;
 }
 </style>

+ 2 - 2
src/components/tree/userTree.vue

@@ -105,8 +105,8 @@ export default {
     
   <style lang="less" scoped>
 .tree {
-  height: 900px;
-  overflow-y: auto;
+  height: 100%;
+  // overflow-y: auto;
 }
 </style>
     

+ 28 - 0
src/minins/manageMixin.js

@@ -0,0 +1,28 @@
+
+
+// 创建一个混入对象
+export default {
+    data() {
+        return {
+            manageList: []
+        }
+    },
+    created() {
+        // console.log('Mixin created!')
+        this.getManageList()
+        // this.getMechanismTree()
+
+    },
+    methods: {
+
+        getManageList() {
+            //
+            this.$API.personnel.getManageUser({}).then((res) => {
+                // console.log(res);
+                if (res.data.code === 200) {
+                    this.manageList = [...res.data.data];
+                }
+            });
+        },
+    }
+}

+ 9 - 1
src/pages/business/agent.vue

@@ -174,7 +174,7 @@
   <script>
 import StandardTable from "@/components/table/StandardTable";
 // import mixin from "../../minins/mixin";
-import tree from "@/components/tree/agentTree";
+import tree from "@/components/tree/userTree";
 import moment from "moment";
 
 const columns = [
@@ -359,10 +359,18 @@ export default {
   .quote-tree {
     padding: 15px;
     box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
     //
     > div:first-child {
       border-bottom: 1px solid #f0f0f0;
     }
+    > div:last-child {
+      flex: 1;
+      overflow: auto;
+      // padding-bottom: 100px;
+      // box-sizing: border-box;
+    }
   }
 }
 .back-line-main {

+ 8 - 0
src/pages/business/channel.vue

@@ -359,10 +359,18 @@ export default {
   .quote-tree {
     padding: 15px;
     box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
     //
     > div:first-child {
       border-bottom: 1px solid #f0f0f0;
     }
+    > div:last-child {
+      flex: 1;
+      overflow: auto;
+      // padding-bottom: 100px;
+      // box-sizing: border-box;
+    }
   }
 }
 .back-line-main {

+ 1 - 1
src/pages/quote/smallorders/agent.vue

@@ -10,7 +10,7 @@
     <div class="back-line-main">
       <div class="back-line-header">
         <div class="back-line-header-title">
-          <h2>财务应收</h2>
+          <h2>代理人报价</h2>
           <div>
             <span>时间筛选</span>
             <a-range-picker

+ 1 - 1
src/pages/quote/smallorders/channel.vue

@@ -10,7 +10,7 @@
     <div class="back-line-main">
       <div class="back-line-header">
         <div class="back-line-header-title">
-          <h2>财务应收</h2>
+          <h2>渠道报价</h2>
           <div>
             <span>时间筛选</span>
             <a-range-picker

+ 1 - 1
src/pages/quote/smallorders/quote.vue

@@ -10,7 +10,7 @@
     <div class="back-line-main">
       <div class="back-line-header">
         <div class="back-line-header-title">
-          <h2>财务应收</h2>
+          <h2>总报价</h2>
           <div>
             <span>时间筛选</span>
             <a-range-picker

+ 11 - 3
src/pages/sys/permissionsAuth.vue

@@ -29,9 +29,17 @@
       width="50%"
       :confirm-loading="confirmLoading"
     >
-      <a-form :layout="formLayout">
-        <tree :checkable="checkable" @checkTree="checkTree" ref="tree"></tree>
-      </a-form>
+      <a-tabs default-active-key="1" :tab-position="'top'">
+        <a-tab-pane key="1" tab="代理人">
+          <tree :checkable="checkable" @checkTree="checkTree" ref="tree"></tree>
+        </a-tab-pane>
+        <a-tab-pane key="2" tab="渠道">
+          <tree :checkable="checkable" @checkTree="checkTree" ref="tree"></tree>
+        </a-tab-pane>
+      </a-tabs>
+      <!-- <a-form :layout="formLayout"> -->
+      <!-- <tree :checkable="checkable" @checkTree="checkTree" ref="tree"></tree> -->
+      <!-- </a-form> -->
     </a-modal>
   </div>
 </template>

+ 2 - 0
src/pages/sys/role.vue

@@ -262,6 +262,8 @@ export default {
             this.$message.success(res.data.msg);
             this.expandedKeys = [];
             // this.$refs.menuTree.setCheckedNodes(allMenus);
+          } else {
+            this.$message.error(res.data.msg);
           }
         });
     },

+ 50 - 1
src/pages/task/agent.vue

@@ -57,6 +57,40 @@
         :exportExcel="true"
         @exportList="exportList"
       ></fromRow>
+      <a-form layout="inline" :model="formState" class="users">
+        <a-form-item label="姓名" :labelCol="{ span: 5 }" :colon="false">
+          <a-input
+            placeholder="请输入姓名"
+            v-model="formState.userName"
+            allowClear
+          ></a-input>
+        </a-form-item>
+        <a-form-item label="工号" :labelCol="{ span: 5 }" :colon="false">
+          <a-input
+            placeholder="请输入工号"
+            v-model="formState.userId"
+            allowClear
+          ></a-input>
+        </a-form-item>
+
+        <a-form-item label="管理员" :labelCol="{ span: 5 }" :colon="false">
+          <a-select
+            placeholder="请选择"
+            v-model="formState.leaderId"
+            allowClear
+            show-search
+            :filter-option="filterOption"
+          >
+            <a-select-option
+              v-for="item in manageList"
+              :key="item.id"
+              :value="item.id"
+            >
+              {{ item.name }}
+            </a-select-option>
+          </a-select>
+        </a-form-item>
+      </a-form>
     </div>
     <standard-table
       bordered
@@ -359,13 +393,15 @@ const columns1 = [
   },
 ];
 import fromRow from "@/components/form/FormRow";
+import manageminxin from "../../minins/manageMixin";
+
 import moment from "moment";
 export default {
   components: {
     StandardTable,
     fromRow,
   },
-  mixins: [mixin],
+  mixins: [mixin, manageminxin],
   data() {
     return {
       formState: {
@@ -375,6 +411,9 @@ export default {
         houseId: undefined,
         provinceId: undefined,
         days: undefined,
+        userId: undefined,
+        userName: undefined,
+        leaderId: undefined,
         time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")],
         endDate: moment().format("YYYY-MM-DD"),
         beginDate: moment().format("YYYY-MM-DD"),
@@ -586,6 +625,16 @@ export default {
   > div {
     // height: 152px;
     background: #fff;
+    .users.ant-form {
+      display: flex;
+      > .ant-form-item {
+        flex: none;
+        width: 15.7%;
+        /deep/.ant-form-item-control-wrapper {
+          width: 100%;
+        }
+      }
+    }
     .ant-form {
       display: flex;
       > .ant-form-item {

+ 75 - 7
src/pages/task/channel.vue

@@ -50,12 +50,66 @@
           </a-radio-group>
         </div>
       </div>
-      <fromRow
-        :formState="formState"
-        @getList="getList"
-        :exportExcel="true"
-        @exportList="exportList"
-      ></fromRow>
+      <div>
+        <fromRow
+          :formState="formState"
+          @getList="getList"
+          :exportExcel="true"
+          @exportList="exportList"
+        ></fromRow>
+        <a-form layout="inline" :model="formState" class="users">
+          <a-form-item label="姓名" :labelCol="{ span: 5 }" :colon="false">
+            <a-input
+              placeholder="请输入姓名"
+              v-model="formState.userName"
+              allowClear
+            ></a-input>
+          </a-form-item>
+          <a-form-item label="工号" :labelCol="{ span: 5 }" :colon="false">
+            <a-input
+              placeholder="请输入工号"
+              v-model="formState.userId"
+              allowClear
+            ></a-input>
+          </a-form-item>
+
+          <a-form-item label="管理员" :labelCol="{ span: 5 }" :colon="false">
+            <a-select
+              placeholder="请选择"
+              v-model="formState.leaderId"
+              allowClear
+              show-search
+              :filter-option="filterOption"
+            >
+              <a-select-option
+                v-for="item in manageList"
+                :key="item.id"
+                :value="item.id"
+              >
+                {{ item.name }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-form>
+        <!-- <a-form-item label="管理员" :labelCol="{ span: 5 }" :colon="false">
+          <a-select
+            style="width: 300px"
+            placeholder="请选择"
+            v-model="formState.leaderId"
+            allowClear
+            show-search
+            :filter-option="filterOption"
+          >
+            <a-select-option
+              v-for="item in manageList"
+              :key="item.id"
+              :value="item.id"
+            >
+              {{ item.name }}
+            </a-select-option>
+          </a-select>
+        </a-form-item> -->
+      </div>
     </div>
     <div style="width: 100%">
       <standard-table
@@ -359,13 +413,14 @@ const columns1 = [
     scopedSlots: { title: "title_slot3", customRender: "quotationRate" },
   },
 ];
+import manageminxin from "../../minins/manageMixin";
 import moment from "moment";
 export default {
   components: {
     StandardTable,
     fromRow,
   },
-  mixins: [mixin],
+  mixins: [mixin, manageminxin],
   data() {
     return {
       formState: {
@@ -375,6 +430,9 @@ export default {
         houseId: undefined,
         provinceId: undefined,
         days: undefined,
+        userId: undefined,
+        userName: undefined,
+        leaderId: undefined,
         time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")],
         endDate: moment().format("YYYY-MM-DD"),
         beginDate: moment().format("YYYY-MM-DD"),
@@ -572,6 +630,16 @@ export default {
   > div {
     // height: 152px;
     background: #fff;
+    .users.ant-form {
+      display: flex;
+      > .ant-form-item {
+        flex: none;
+        width: 15.7%;
+        /deep/.ant-form-item-control-wrapper {
+          width: 100%;
+        }
+      }
+    }
     .ant-form {
       display: flex;
       > .ant-form-item {

+ 34 - 8
src/router/config.js

@@ -132,18 +132,21 @@ const router = new Router({
     {
       path: '/index',
       name: '首页',
+      meta: { requiresAuth: true },
       component: () => import('@/pages/index/index')
     },
 
     {
       path: '/login',
       name: '登录页',
+      meta: { requiresAuth: true },
       component: () => import('@/pages/login')
     },
 
     {
       path: '/403',
       name: '403',
+      meta: { requiresAuth: true },
       component: () => import('@/pages/exception/403'),
     },
 
@@ -160,16 +163,24 @@ router.beforeEach(async (to, from, next) => {
   // let token = getToken()
   // let userName = sessionStorage.getItem('user')
   // let userName = Cookies.get('user')
+
+  // if (to.path != from.path) {
+  //   // next({ path: '/index' })
+  // } else {
+  //   next()
+  // }
+
   await store.dispatch('setting/getUserLogin')
 
 
   let userInfo = store.state.setting.userInfo
+  console.log(to)
   // let token = Cookies.get('Authorization')
 
-  if (to.matched.some(record => record.meta.requiresAuth)) {
-
-    next()
-    return
+  if (!to.matched.some(record => record.meta.requiresAuth)) {
+    next("/index")
+    // next()
+    // return
 
   }
 
@@ -203,7 +214,7 @@ router.beforeEach(async (to, from, next) => {
       window.location.href = process.env.VUE_APP_BASE_URL + "/#/login"
       return
     }
-
+    // if (to.meta.requiresAuth)
     if (hasRoles) {
       // console.log(13)
       addDynamicMenuAndRoutes(menuData, to, next)
@@ -216,6 +227,18 @@ router.beforeEach(async (to, from, next) => {
     }
 
 
+    // const requiresAuth =router.getRoutes().some(record => record.meta.requiresAuth);
+    // router.getRoutes().forEach((v) => {
+
+    //   if (to.path === v.path) {
+    //     // next({ to, replace: true })
+    //     return
+    //   } else {
+    //     // next("/index")
+    //   }
+    // })
+
+
 
 
 
@@ -305,7 +328,8 @@ function addDynamicRoutes(menuList = [],) {
         name: menuList[i].name,
         meta: {
           icon: menuList[i].icon,
-          index: menuList[i].id
+          index: menuList[i].id,
+
         },
         component: PageView,
 
@@ -319,7 +343,8 @@ function addDynamicRoutes(menuList = [],) {
         name: menuList[i].name,
         meta: {
           icon: menuList[i].icon,
-          index: menuList[i].id
+          index: menuList[i].id,
+
         },
         children: []
       })
@@ -335,7 +360,8 @@ function addDynamicRoutes(menuList = [],) {
       mulu = {
         path: menuList[i].url,
         name: menuList[i].name,
-        // meta: { invisible: menuList[i].name == '团队管理' ? false : true },
+        meta: { requiresAuth: true },
+
         // hidden: true,
         component: resolve => require([`@/` + `pages/${parentPath}/${url}`], resolve),