Bladeren bron

feature_20250917_仿石漆潜在客户区域创建

zhujindu 2 maanden geleden
bovenliggende
commit
12b77f52d1
2 gewijzigde bestanden met toevoegingen van 244 en 95 verwijderingen
  1. 4 4
      src/layout/index.vue
  2. 240 91
      src/router/index.js

+ 4 - 4
src/layout/index.vue

@@ -1,17 +1,17 @@
 <template>
   <div class="container bgcolor">
     <!-- 默认都走缓存 keepAlive:true 缓存-->
-    <template v-if="$route.meta.keepAlive">
+    <!-- <template v-if="$route.meta.keepAlive">
       <keep-alive>
         <router-view></router-view>
       </keep-alive>
     </template>
     <template v-else>
       <router-view></router-view>
-    </template>
-    <!-- <keep-alive>
+    </template> -->
+    <keep-alive>
       <router-view></router-view>
-    </keep-alive> -->
+    </keep-alive>
   </div>
 </template>
 <script>

+ 240 - 91
src/router/index.js

@@ -30,60 +30,74 @@ const router = new VueRouter({
           path: '/home',
           name: 'home',
           component: () => import('@/views/home/index.vue'),
-          meta: { keepAlive: true },
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/reportingRate',
           name: 'reportingRate',
           component: () => import('@/views/home/reportingRate.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/err',
           name: 'err',
           component: () => import('@/views/home/err.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/login',
           name: 'login',
           component: () => import('@/views/home/login.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/logincs',
           name: 'logincs',
           component: () => import('@/views/home/logincs.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/noVisit',
           name: 'noVisit',
-          meta: { title: '未拜访门店' },
           component: () => import('@/views/home/hintTabPage/noVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            title: '未拜访门店',
+          },
         },
         {
           path: '/hintDetail',
           name: 'hintDetail',
-          meta: { title: '提示类-拜访(实时) ' },
           component: () => import('@/views/home/hintTabPage/hintDetail.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            title: '提示类-拜访(实时) ',
+          },
         },
         {
           path: '/pantoneNoGet',
           name: 'pantoneNoGet',
-          meta: { title: '提示类-业务员未领取色卡门店 ' },
           component: () => import('@/views/home/hintTabPage/pantoneNoGet.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            title: '提示类-业务员未领取色卡门店 ',
+          },
         },
         {
           path: '/unCreateStore',
           name: 'unCreateStore',
           meta: { title: '提示类-业务员建店未完成页面' },
           component: () => import('@/views/home/hintTabPage/unCreateStore.vue'),
-          meta: { keepAlive: true },
           meta: {
             title: '提示类-业务员建店未完成页面',
           },
@@ -99,49 +113,62 @@ const router = new VueRouter({
           path: '/storemanagement/index',
           name: 'storeManagement',
           component: () => import('@/views/storeManagement/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/storeDetail',
           name: 'storeDetail',
           component: () => import('@/views/storeManagement/storeDetail.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/storeAdd',
           name: 'storeAdd',
           component: () => import('@/views/storeManagement/storeAdd.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/storeAddress',
           name: 'storeAddress',
           component: () => import('@/views/storeManagement/storeAddress.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/odersuccess',
           name: 'storeAdd',
           component: () => import('@/views/deviceOutside/oderSuccess.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/storeEdit',
           name: 'storeEdit',
           component: () => import('@/views/storeManagement/storeEdit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/success',
           name: 'success',
           component: () => import('@/views/storeManagement/success.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/chainMaintain',
           name: 'chainMaintain',
           component: () => import('@/views/storeManagement/chainMaintain.vue'),
-          meta: { keepAlive: true },
         },
         {
           path: '/addDesignerPage',
@@ -183,7 +210,7 @@ const router = new VueRouter({
           path: '/competingStoresAdd',
           name: 'competingStoresAdd',
           component: () => import('@/views/storeManagement/competingStoresAdd.vue'),
-          meta: { title: '竞品店添加', keepAlive: false },
+          meta: { title: '竞品店添加', keepAlive: true },
         },
         {
           path: '/competingStoresDetail',
@@ -208,67 +235,90 @@ const router = new VueRouter({
           path: '/outsidelist/index',
           name: 'outsidelist',
           component: () => import('@/views/deviceOutside/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            scrollTop: 0,
+          },
         },
         {
           path: '/ai',
           name: 'ai',
           component: () => import('@/views/intelligence/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/topStore',
           name: 'topStore',
           component: () => import('@/views/deviceOutside/topStore.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/pItem',
           name: 'pItem',
           component: () => import('@/views/deviceOutside/productItem.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/suishenbangOutstoreVisit',
           name: 'suishenbangOutstoreVisit',
           component: () => import('@/views/deviceOutside/suishenbangOutstoreVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/projectOut',
           name: 'projectOut',
           component: () => import('@/views/deviceOutside/projectOut.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/rangeStore',
           name: 'rangeStore',
           component: () => import('@/views/deviceOutside/rangeStore.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/outstoreVisit',
           name: 'outstoreVisit',
           component: () => import('@/views/deviceOutside/outstoreVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/taskList',
           name: 'taskList',
           component: () => import('@/views/deviceOutside/taskList.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/storeGroup',
           name: 'storeGroup',
           component: () => import('@/views/deviceOutside/storeGroup.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/outabnormalVisit',
           name: 'outabnormalVisit',
           component: () => import('@/views/deviceOutside/outabnormalVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
       ],
     },
@@ -281,32 +331,39 @@ const router = new VueRouter({
           path: '/historicalVisit/index',
           name: 'historicalVisit',
           component: () => import('@/views/historicalVisit/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/historAllVisit',
           name: 'historAllVisit',
           component: () => import('@/views/historicalVisit/historAllVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
 
         {
           path: '/historicalDetails',
           name: 'historicalDetails',
           component: () => import('@/views/historicalVisit/historicalDetails.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/historiStoreVisit',
           name: 'historiStoreVisit',
           component: () => import('@/views/historicalVisit/hisvistdeils.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/skuRecognize',
           name: 'skuRecognize',
           component: () => import('@/views/historicalVisit/skuRecognize.vue'),
-          meta: { keepAlive: true },
         },
       ],
     },
@@ -319,69 +376,91 @@ const router = new VueRouter({
           path: '/deviceWithin/index',
           name: 'deviceWithin',
           component: () => import('@/views/deviceWithin/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/storeVisitpage',
           name: 'storeVisitpage',
           component: () => import('@/views/deviceWithin/storeVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/addStoreVisit',
           name: 'addStoreVisit',
           component: () => import('@/views/deviceWithin/addStoreVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
 
         {
           path: '/addStoreVisitd',
           name: 'addStoreVisitd',
           component: () => import('@/views/deviceWithin/addStoreVisitd.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/addStoreVisitP',
           name: 'addStoreVisitP',
           component: () => import('@/views/deviceWithin/addStoreVisitP.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/abnormalVisit',
           name: 'abnormalVisit',
           component: () => import('@/views/deviceWithin/abnormalVisit.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/sign',
           name: 'sign',
           component: () => import('@/views/sign/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/signApprovalList',
           name: 'signApproval',
           component: () => import('@/views/signApproval/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/signApproval',
           name: 'signApproval',
           component: () => import('@/views/signApproval/signApproval.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         // 同城店铺建店审批
         {
           path: '/newStoreApprovalList',
           name: 'newStoreApprovalList',
           component: () => import('@/views/signApproval/newStoreApprovalList.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/newStoreApprovalDetail',
           name: 'newStoreApprovalDetail',
           component: () => import('@/views/signApproval/newStoreApprovalDetail.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
       ],
     },
@@ -395,197 +474,252 @@ const router = new VueRouter({
           path: '/My/index',
           name: 'MyList',
           component: () => import('@/views/week/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/myInventory',
           name: 'myInventory',
           component: () => import('@/views/my/myInventory.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/material',
           name: 'material',
           component: () => import('@/views/my/material.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/subordinateHistoricalDaily',
           name: 'subordinateHistoricalDaily',
           component: () => import('@/views/week/dailyHistorical.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/subordinateHistoricalWeekly',
           name: 'subordinateHistoricalWeekly',
           component: () => import('@/views/week/weeklyHistorical.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/myHistoricalDaily',
           name: 'myHistoricalDaily',
           component: () => import('@/views/week/myHistoricalDaily.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/weeklyApproval',
           name: 'weeklyApproval',
           component: () => import('@/views/week/weeklyApproval.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/weeklyApprovalDetils',
           name: 'weeklyApprovalDetils',
           component: () => import('@/views/week/weeklyApprovalDetils.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/myComment',
           name: 'myComment',
           component: () => import('@/views/week/myComment.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/doubleWeeklyDetils',
           name: 'doubleWeeklyDetils',
           component: () => import('@/views/week/doubleWeeklyDetils.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/daily',
           name: 'daily',
           component: () => import('@/views/week/daily.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/dailyApprovalList',
           name: 'dailyApprovalList',
           component: () => import('@/views/week/dailyApprovalList.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/dailyApproval',
           name: 'dailyApproval',
           component: () => import('@/views/week/dailyApproval.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/dailyDetails',
           name: 'dailyDetails',
           component: () => import('@/views/week/dailyDetails.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/weeklyApproval',
           name: 'weeklyApproval',
           component: () => import('@/views/week/weeklyApproval.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/weekly',
           name: 'weekly',
           component: () => import('@/views/week/weekly.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/doubleWeekly',
           name: 'doubleWeekly',
           component: () => import('@/views/week/doubleWeekly.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/doubleWeeklyApproval',
           name: 'doubleWeeklyApproval',
           component: () => import('@/views/week/doubleWeeklyApproval.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/doubleWeeklyHistorical',
           name: 'doubleWeeklyHistorical',
           component: () => import('@/views/week/doubleWeeklyHistorical.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/dailyHistoricalDetails',
           name: 'dailyHistoricalDetails',
           component: () => import('@/views/week/dailyHistoricalDetails.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/doubleHistoricalWeeklyDetils',
           name: 'doubleHistoricalWeeklyDetils',
           component: () => import('@/views/week/doubleHistoricalWeeklyDetils.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/weeklyHistoricalDetils',
           name: 'weeklyHistoricalDetils',
           component: () => import('@/views/week/weeklyHistoricalDetils.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/VisitSummary',
           name: 'VisitSummary',
           component: () => import('@/views/week/VisitSummary.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/VisitSummaryMy',
           name: 'VisitSummaryMy',
           component: () => import('@/views/week/VisitSummaryMy.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/VisitSummaryAdd',
           name: 'VisitSummaryAdd',
           component: () => import('@/views/week/VisitSummaryAdd.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/VisitSummaryDetail',
           name: 'VisitSummaryDetail',
           component: () => import('@/views/week/VisitSummaryDetail.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/VisitSummaryStorageDetail',
           name: 'VisitSummaryStorageDetail',
           component: () => import('@/views/week/VisitSummaryStorageDetail.vue'),
-          meta: { keepAlive: true },
         },
         {
           path: '/assignAwait',
           name: 'assignAwait',
-          meta: { title: '待分配客资' },
           component: () => import('@/views/week/assignAwait/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            title: '待分配客资',
+          },
         },
         {
           path: '/assignPage',
           name: 'assignPage',
-          meta: { title: '分配客资' },
           component: () => import('@/views/week/assignAwait/assignPage.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            title: '分配客资',
+          },
         },
         {
           path: '/JZfollowUp',
           name: 'JZfollowUp',
-          meta: { title: '客资跟进' },
           component: () => import('@/views/week/assignAwait/JZfollowUp.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            title: '客资跟进',
+          },
         },
         {
           path: '/systemSettings',
           name: 'systemSettings',
           component: () => import('@/views/week/systemSettings.vue'),
-          meta: { keepAlive: true },
           meta: { title: '设置' },
         },
         {
           path: '/SUPTaskApproval',
           name: 'SUPTaskApproval',
           component: () => import('@/views/week/SUPTaskApproval/index.vue'),
-          meta: { keepAlive: true },
           meta: { title: '主管任务审批', keepAlive: true },
           children: [],
         },
@@ -593,7 +727,6 @@ const router = new VueRouter({
           path: '/SUPTaskApprovalDetail',
           name: 'SUPTaskApprovalDetail',
           component: () => import('@/views/week/SUPTaskApproval/SUPTaskApprovalDetail.vue'),
-          meta: { keepAlive: true },
           meta: { title: '主管任务审批详情', keepAlive: true },
         },
       ],
@@ -607,20 +740,26 @@ const router = new VueRouter({
           path: '/clew',
           name: 'clew',
           component: () => import('@/views/clew/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/clewent',
           name: 'clewent',
           component: () => import('@/views/clew/clewent.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+          },
         },
         {
           path: '/complaintDetail',
           name: 'complaintDetail',
-          meta: { title: '渠道投诉' },
           component: () => import('@/views/clew/complaintDetail/index.vue'),
-          meta: { keepAlive: true },
+          meta: {
+            keepAlive: true,
+            title: '渠道投诉',
+          },
         },
       ],
     },
@@ -633,13 +772,23 @@ const router = new VueRouter({
           path: '/AIImage/list',
           name: 'AIImage',
           component: () => import('@/views/AIImage/list.vue'),
-          meta: { keepAlive: true },
         },
         {
           path: '/AIImageDetail',
           name: 'AIImageDetail',
           component: () => import('@/views/AIImage/AIImageDetail.vue'),
-          meta: { keepAlive: true },
+        },
+      ],
+    },
+    {
+      path: '/chatAIPage',
+      component: layout,
+      redirect: '/chatAIPage',
+      children: [
+        {
+          path: '/chatAIPage',
+          name: 'chatAIPage',
+          component: () => import('@/views/chatAIPage/index.vue'),
         },
       ],
     },