浏览代码

首页增加提示类tab,B类指标页优化,我的-增加业务员日常工作统计

zhujindu 1 年之前
父节点
当前提交
44d82321b2

+ 0 - 3
src/App.vue

@@ -5,7 +5,6 @@
 </template>
 <script>
 import watermark from 'watermark-dom';
-import store from './store';
 export default {
   name: 'App',
   created() {
@@ -37,8 +36,6 @@ export default {
           watermark_y_space: 60,
           watermark_alpha: 0.1,
         });
-        // 获取移动端获取用户信息接口
-        // store.dispatch('getUserInfo').then(() => {});
       }
     }, 1000);
   },

+ 3 - 0
src/main.js

@@ -1,6 +1,8 @@
 import Vue from 'vue';
 import App from './App.vue';
+import store from './store';
 import router from './router';
+import permission from './permission';
 import '@/assets/styles/index.css';
 import {
   parseTime,
@@ -66,5 +68,6 @@ if (isProd) {
 
 new Vue({
   router,
+  store,
   render: (h) => h(App),
 }).$mount('#app');

+ 34 - 0
src/permission.js

@@ -0,0 +1,34 @@
+import router from './router';
+import store from './store';
+
+const whiteList = ['/login', '/auth-redirect', '/bind', '/register'];
+
+router.beforeEach((to, from, next) => {
+  const username = localStorage.getItem('loginName');
+  if (username) {
+    /* has token*/
+    if (!store.state.user.userInfo) {
+      // 获取移动端获取用户信息接口
+      store
+        .dispatch('getUserInfo')
+        .then(() => {
+          next();
+        })
+        .catch(() => {
+          //   next('/');
+        });
+    } else {
+      next();
+    }
+  } else {
+    next();
+    // // 没有token
+    // if (whiteList.indexOf(to.path) !== -1) {
+    //   // 在免登录白名单,直接进入
+    //   next();
+    // } else {
+    //     next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页
+    //     NProgress.done();
+    // }
+  }
+});

+ 3 - 3
src/views/home/hintTabPage/hintDetail.vue

@@ -63,7 +63,7 @@ export default {
   },
   data() {
     return {
-      empLevel: 1,
+      empLevel: '1',
       deptId: null,
       fromType: null,
       activeTabVal: 'noVisit',
@@ -170,8 +170,8 @@ export default {
     };
   },
   activated() {
-    // this.empLevel = this.userInfo.empLevel || 2;
-    this.firstLabel = this.empLevel == 1 ? '组织名称/大区主管' : '销售部主管';
+    // this.empLevel = this.userInfo.empLevel;
+    this.firstLabel = this.empLevel == '1' ? '组织名称/大区主管' : '销售部主管';
     this.fromType = this.$route.query.fromType; // fromType: 'noVisit':未拜访; 'createStore':建店; 'pantone':色卡
     this.tableColumn = this[this.fromType];
     this.activeTabName = this.fromType;

+ 23 - 30
src/views/home/hintTabPage/index.vue

@@ -50,7 +50,7 @@
             :maskShow="createStore.collapseLosding"></visitPage> -->
         </van-collapse-item>
         <!-- 日报、周报、半月报 -->
-        <van-collapse-item name="3" v-if="empLevel != 4">
+        <van-collapse-item name="3" v-if="empLevel != '4'">
           <template #title>
             <div class="itemHeader" @click.stop>
               <span class="itemTitle">{{ report.title }}</span>
@@ -68,16 +68,16 @@
             <div class="reportItem">
               <div class="label">填写率:</div>
               <div class="value">本月{{ report.reportData.fillingRate }}</div>
-              <div class="itemDetail" v-if="empLevel != 3" @click="reportClick('fillingRate')">
+              <div class="itemDetail" v-if="empLevel != '3'" @click="reportClick('fillingRate')">
                 下属详情
               </div>
             </div>
-            <div class="reportItem" v-show="empLevel != 3">
+            <div class="reportItem" v-show="empLevel != '3'">
               <div class="label">审批率:</div>
               <div class="value">本月{{ report.reportData.approvalRate }}</div>
             </div>
-            <div class="" v-show="empLevel == 1">本周点评业务员</div>
-            <div class="reportItem" v-show="empLevel == 1">
+            <div class="" v-show="empLevel == '1'">本周点评业务员</div>
+            <div class="reportItem" v-show="empLevel == '1'">
               <div class="label">日报数(目标数):</div>
               <div class="value">{{ report.reportData.commentNum }}个(5个)</div>
               <div class="itemDetail" @click="reportClick('commentNum')">进入点评</div>
@@ -85,7 +85,7 @@
           </div>
         </van-collapse-item>
         <!-- 色卡 -->
-        <van-collapse-item name="4" v-if="empLevel == 2 || empLevel == 3">
+        <van-collapse-item name="4" v-if="empLevel == '2' || empLevel == '3'">
           <template #title>
             <div class="itemHeader" @click.stop>
               <span class="itemTitle">{{ pantone.title }}</span>
@@ -118,7 +118,7 @@ export default {
   },
   data() {
     return {
-      empLevel: 2, //员工级别,1大区主管2销售部主管3业务员4其他 ***其他级别4,不显示日报、周报、半月报和色卡
+      empLevel: '3', //员工级别,1大区主管2销售部主管3业务员4其他 ***其他级别4,不显示日报、周报、半月报和色卡
       hintIcon: hintIcon,
       activeNames: ['1', '2', '3', '4', '5'],
       visitCollapse: {
@@ -344,8 +344,9 @@ export default {
       pantoneData: null,
     };
   },
-  created() {
-    // this.empLevel = this.userInfo.empLevel || 2;
+  activated() {
+    debugger;
+    this.empLevel = this.userInfo.empLevel;
     // 获取拜访数据
     this.getVisitCollapseData();
     // 获取汇报数据 日报、周报、半月报
@@ -383,31 +384,23 @@ export default {
       this.visitCollapse.resData = resData;
     },
     getReportData() {
-      if (this.empLevel == 1) {
+      if (this.empLevel == '1') {
         this.report.title = '半月报';
-      } else if (this.empLevel == 2) {
+      } else if (this.empLevel == '2') {
         this.report.title = '周报';
-      } else if (this.empLevel == 3) {
+      } else if (this.empLevel == '3') {
         this.report.title = '日报';
       }
-      let resData = {
-        commentNum: '',
-        empLevel: '2',
-        tip: '下述指标:本人填写/审批情况',
-        approvalRate: '0.00%',
-        fillingRate: '0.00%',
-      };
-      this.report.reportData = resData || {};
-      // getReportTarget().then((res) => {
-      //   this.report.reportData = res.data || {};
-      //   if (this.empLevel == 1) {
-      //     this.report.title = '半月报';
-      //   } else if (this.empLevel == 2) {
-      //     this.report.title = '周报';
-      //   } else if (this.empLevel == 3) {
-      //     this.report.title = '日报';
-      //   }
-      // });
+      // let resData = {
+      //   commentNum: '',
+      //   empLevel: '2',
+      //   tip: '下述指标:本人填写/审批情况',
+      //   approvalRate: '0.00%',
+      //   fillingRate: '0.00%',
+      // };
+      getReportTarget().then((res) => {
+        this.report.reportData = res.data || {};
+      });
     },
     getPantoneData() {},
     // 汇报下属详情-点击

+ 2 - 2
src/views/home/hintTabPage/visitPage.vue

@@ -37,7 +37,7 @@ export default {
       default: () => {},
     },
     empLevel: {
-      type: Number,
+      type: String,
     },
     fromType: {
       type: String,
@@ -56,7 +56,7 @@ export default {
     // 跳转详情
     onClick() {
       // 业务员进入未拜访列表
-      if (this.empLevel == 3) {
+      if (this.empLevel == '3') {
         this.$router.push({ path: '/noVIsit' });
       } else {
         // 销售部主管和大区负责人跳转统计页面

+ 2 - 0
src/views/home/login.vue

@@ -12,6 +12,7 @@
   </div>
 </template>
 <script>
+import store from '@/store';
 export default {
   name: 'login',
   data() {
@@ -23,6 +24,7 @@ export default {
     login() {
       localStorage.clear();
       if (this.name.trim() != '') {
+        store.commit('SET_USER_INFO', null);
         // 当前设备:PC/mobile
         let isDevice = window.navigator.userAgent.match(
           /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i