From 6c2e00278c1194b46eb9153ca4166af868bb15ef Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期六, 06 五月 2023 08:00:02 +0800
Subject: [PATCH] 1.看板调整2.上云路由整合

---
 src/views/kb/cjsc.vue           |  180 +++++++--
 src/views/kb/kbCommon.css       |    4 
 src/views/xtsy/index.vue        |   42 +-
 src/views/bbgl/bzgz.vue         |   10 
 vue.config.js                   |    4 
 src/views/kb/cgdd.vue           |   66 ++-
 src/views/kb/ckgl.vue           |  106 +++-
 src/store/modules/permission.js |   10 
 src/views/kb/zhkb.vue           |  153 +++++--
 src/router/index.js             |  588 +++++++++++++++++++++++++++++
 src/utils/myEcharts.js          |    4 
 src/views/bbgl/rygz.vue         |   10 
 12 files changed, 988 insertions(+), 189 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index dc6b7d9..4ec8e6d 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -30,6 +30,7 @@
  * a base page that does not have permission requirements
  * all roles can be accessed
  */
+// 鍏敤璺敱
 export const commonRoutes = [
   /*
   * 鐪嬫澘閮ㄥ垎璺敱
@@ -38,15 +39,15 @@
     path: '/zhkb',
     component: () => import('@/views/kb/zhkb'),
     hidden: true
-  },{
+  }, {
     path: '/cgdd',
     component: () => import('@/views/kb/cgdd'),
     hidden: true
-  },{
+  }, {
     path: '/ckgl',
     component: () => import('@/views/kb/ckgl'),
     hidden: true
-  },{
+  }, {
     path: '/cjsc',
     component: () => import('@/views/kb/cjsc'),
     hidden: true
@@ -86,7 +87,582 @@
   }
   // { path: '*', redirect: '/404', hidden: true }
 ]
+// 鏈笂浜戣矾鐢辨ā鍧�
 export const asyncRoutes = [
+  // {
+  //   path: '/gtt',
+  //   component: Layout,
+  //   redirect: '/gtt/back',
+  //   name: '鍩虹璁剧疆',
+  //   code: '1001',
+  //   meta: { code: '1001', title: '鍩虹璁剧疆', icon: 'tree' },
+  //   alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
+  //   children: [{
+  //     path: 'back',
+  //     name: 'YYQDCancel',
+  //     code: '1011',
+  //     component: () => import('@/views/gantt_back/gantt_back'),
+  //     meta: { code: '1011', title: '鐢ㄦ埛娓呭崟', icon: '', keepAlive: true }
+  //   }, {
+  //     path: 'zdpc2',
+  //     name: 'YYQDCancel',
+  //     code: '1012',
+  //     component: () => import('@/views/gantt_back/zdpc2'),
+  //     meta: { code: '1012', title: '鑷姩鎺掔▼2', icon: '', keepAlive: true }
+  //   }]
+  // },
+  {
+    path: '/jcsz',
+    component: Layout,
+    redirect: '/jcsz/zzjg',
+    name: '鍩虹璁剧疆',
+    code: '1001',
+    meta: { code: '1001', title: '鍩虹璁剧疆', icon: 'tree2' },
+    alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
+    children: [
+      {
+        path: 'zzjg',
+        name: 'ZZJGCancel',
+        code: '1010',
+        component: () => import('@/views/jcsz/zzjg'),
+        meta: { code: '1010', title: '缁勭粐鏋舵瀯', icon: '', keepAlive: true }
+      }, {
+        path: 'yhqd',
+        name: 'YYQDCancel',
+        code: '1011',
+        component: () => import('@/views/jcsz/yhqd'),
+        meta: { code: '1011', title: '鐢ㄦ埛娓呭崟', icon: '', keepAlive: true }
+      }, {
+        path: 'jsqd',
+        name: 'JSQDCancel',
+        code: '1012',
+        component: () => import('@/views/jcsz/jsqd'),
+        meta: { code: '1012', title: '瑙掕壊娓呭崟', icon: '', keepAlive: true }
+      }, {
+        path: 'wldw',
+        name: 'WLDWCancel',
+        code: '1013',
+        component: () => import('@/views/jcsz/wldw'),
+        meta: { code: '1013', title: '寰�鏉ュ崟浣�', icon: '', keepAlive: true }
+      }, {
+        path: 'adsz',
+        name: 'ADZZCancel',
+        code: '1014',
+        component: () => import('@/views/jcsz/adsz'),
+        meta: { code: '1014', title: '瀹夌伅璁剧疆', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/sbgl',
+    component: Layout,
+    redirect: '/sbgl/sblx',
+    name: '璁惧绠$悊',
+    code: '1002',
+    meta: { code: '1002', title: '璁惧绠$悊', icon: 'example' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'sblx',
+        name: 'SBLXCancel',
+        code: '1020',
+        component: () => import('@/views/sbgl/sblx'),
+        meta: { code: '1020', title: '璁惧绫诲瀷', icon: '', keepAlive: true }
+      },
+      {
+        path: 'wxjl',
+        code: '1029Cancel',
+        name: 'WXJL',
+        component: () => import('@/views/sbgl/wxjl'),
+        meta: { code: '1029', title: '缁翠慨璁板綍', icon: '', keepAlive: true }
+      }, {
+        path: 'sbz',
+        name: 'SBZCancel',
+        code: '1021',
+        component: () => import('@/views/sbgl/sbz'),
+        meta: { code: '1021', title: '璁惧缁�', icon: '', keepAlive: true }
+      }, {
+        path: 'sbqd',
+        name: 'sbqdCancel',
+        code: '1022',
+        component: () => import('@/views/sbgl/sbqd'),
+        meta: { code: '1022', title: '璁惧娓呭崟', icon: '', keepAlive: true }
+      },
+      {
+        path: 'djbz',
+        name: 'DJBZCancel',
+        code: '1023',
+        component: () => import('@/views/sbgl/djbz'),
+        meta: { code: '1023', title: '鐐规鏍囧噯', icon: '', keepAlive: true }
+      },
+      {
+        path: 'djbw',
+        name: 'DJBWCancel',
+        code: '1024',
+        component: () => import('@/views/sbgl/djbw'),
+        meta: { code: '1024', title: '鐐规閮ㄤ綅', icon: '', keepAlive: true }
+      },
+      {
+        path: 'bybz',
+        name: 'BYBZCancel',
+        code: '1025',
+        component: () => import('@/views/sbgl/bybz'),
+        meta: { code: '1025', title: '淇濆吇鏍囧噯', icon: '', keepAlive: true }
+      },
+      {
+        path: 'bybw',
+        name: 'BYBWCancel',
+        code: '1026',
+        component: () => import('@/views/sbgl/bybw'),
+        meta: { code: '1026', title: '淇濆吇閮ㄤ綅', icon: '', keepAlive: true }
+      },
+      {
+        path: 'djjl',
+        name: 'DJJLCancel',
+        code: '1027',
+        component: () => import('@/views/sbgl/djjl'),
+        meta: { code: '1027', title: '鐐规璁板綍', icon: '', keepAlive: true }
+      },
+      {
+        path: 'byjl',
+        name: 'BYJLCancel',
+        code: '1028',
+        component: () => import('@/views/sbgl/byjl'),
+        meta: { code: '1028', title: '淇濆吇璁板綍', icon: '', keepAlive: true }
+      },
+      {
+        path: 'wxjl',
+        name: 'WXJLCancel',
+        code: '1029',
+        component: () => import('@/views/sbgl/wxjl'),
+        meta: { code: '1029', title: '璁惧缁翠慨璁板綍', icon: '', keepAlive: true }
+      },
+      {
+        path: 'swsqjl',
+        name: 'WXSQJLCancel',
+        code: '1019',
+        component: () => import('@/views/sbgl/swsqjl'),
+        meta: { code: '1019', title: '璁惧鐢宠缁翠慨璁板綍', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/gzgl',
+    component: Layout,
+    redirect: '/gzgl/gzlx',
+    name: '宸ヨ绠$悊',
+    code: '1003',
+    meta: { code: '1003', title: '宸ヨ绠$悊', icon: 'component' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'gzlx',
+        name: 'GZLXCancel',
+        code: '1030',
+        component: () => import('@/views/gzgl/gzlx'),
+        meta: { code: '1030', title: '宸ヨ绫诲瀷', icon: '', keepAlive: true }
+      }, {
+        path: 'sjxj',
+        name: 'SJXJCancel',
+        code: '1039',
+        component: () => import('@/views/gzgl/sjxj'),
+        meta: { code: '1039', title: '涓婃満涓嬫満', icon: '', keepAlive: true }
+      }, {
+        path: 'ckrk',
+        name: 'CKRKCancel',
+        code: '1040',
+        component: () => import('@/views/gzgl/ckrk'),
+        meta: { code: '1040', title: '鍑哄簱鍏ュ簱', icon: '', keepAlive: true }
+      }, {
+        path: 'gzqd',
+        name: 'GZQDCancel',
+        code: '1031',
+        component: () => import('@/views/gzgl/gzqd'),
+        meta: { code: '1031', title: '宸ヨ娓呭崟', icon: '', keepAlive: true }
+      }, {
+        path: 'djbz',
+        name: 'DJBZCancel',
+        code: '1032',
+        component: () => import('@/views/gzgl/djbz'),
+        meta: { code: '1032', title: '鐐规鏍囧噯', icon: '', keepAlive: true }
+      }, {
+        path: 'djbw',
+        name: 'DJBWCancel',
+        code: '1033',
+        component: () => import('@/views/gzgl/djbw'),
+        meta: { code: '1033', title: '鐐规閮ㄤ綅', icon: '', keepAlive: true }
+      }, {
+        path: 'bybz',
+        name: 'BYBZCancel',
+        code: '1034',
+        component: () => import('@/views/gzgl/bybz'),
+        meta: { code: '1034', title: '淇濆吇鏍囧噯', icon: '', keepAlive: true }
+      }, {
+        path: 'bybw',
+        name: 'BYBWCancel',
+        code: '1035',
+        component: () => import('@/views/gzgl/bybw'),
+        meta: { code: '1035', title: '淇濆吇閮ㄤ綅', icon: '', keepAlive: true }
+      }, {
+        path: 'djjl',
+        name: 'DJJLCancel',
+        code: '1036',
+        component: () => import('@/views/gzgl/djjl'),
+        meta: { code: '1036', title: '鐐规璁板綍', icon: '', keepAlive: true }
+      }, {
+        path: 'byjl',
+        name: 'BYJLCancel',
+        code: '1037',
+        component: () => import('@/views/gzgl/byjl'),
+        meta: { code: '1037', title: '淇濆吇璁板綍', icon: '', keepAlive: true }
+      }, {
+        path: 'gzwx',
+        name: 'GZWXCancel',
+        code: '1038',
+        component: () => import('@/views/gzgl/gzwx'),
+        meta: { code: '1038', title: '宸ヨ缁翠慨', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/wlgl',
+    component: Layout,
+    redirect: '/wlgl/ckdy',
+    name: '鐗╂枡绠$悊',
+    code: '1004',
+    meta: { code: '1004', title: '鐗╂枡绠$悊', icon: 'table' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'ckdy',
+        name: 'CKDYCancel',
+        code: '1050',
+        component: () => import('@/views/wlgl/ckdy'),
+        meta: { code: '1050', title: '浠撳簱瀹氫箟', icon: '', keepAlive: true }
+      },
+      {
+        path: 'kwdy',
+        name: 'KWDYCancel',
+        code: '1051',
+        component: () => import('@/views/wlgl/kwdy'),
+        meta: { code: '1051', title: '搴撲綅瀹氫箟', icon: '', keepAlive: true }
+      }, {
+        path: 'rqlx',
+        name: 'RYLXCancel',
+        code: '1052',
+        component: () => import('@/views/wlgl/rqlx'),
+        meta: { code: '1052', title: '瀹瑰櫒绫诲瀷', icon: '', keepAlive: true }
+      }, {
+        path: 'rqqd',
+        name: 'RQQDCancel',
+        code: '1053',
+        component: () => import('@/views/wlgl/rqqd'),
+        meta: { code: '1053', title: '瀹瑰櫒娓呭崟', icon: '', keepAlive: true }
+      }, {
+        path: 'crkjl',
+        name: 'CRKJLCancel',
+        code: '1054',
+        component: () => import('@/views/wlgl/crkjl'),
+        meta: { code: '1054', title: '鍑哄叆搴撹褰�', icon: '', keepAlive: true }
+      }, {
+        path: 'kccx',
+        name: 'KCCXCancel',
+        code: '1055',
+        component: () => import('@/views/wlgl/kccx'),
+        meta: { code: '1055', title: '搴撳瓨鏌ヨ', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/zzmx',
+    component: Layout,
+    redirect: '/zzmx/gylx',
+    name: '鍒堕�犳ā鍨�',
+    code: '1005',
+    meta: { code: '1005', title: '鍒堕�犳ā鍨�', icon: 'icu' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'wllx',
+        name: 'WLLXCancel',
+        code: '1060',
+        component: () => import('@/views/zzmx/wllx'),
+        meta: { code: '1060', title: '鐗╂枡绫诲瀷', icon: '', keepAlive: true }
+      },
+      {
+        path: 'chda',
+        name: 'CHDACancel',
+        code: '1061',
+        component: () => import('@/views/zzmx/chda'),
+        meta: { code: '1061', title: '瀛樿揣妗f', icon: '', keepAlive: true }
+      }, {
+        path: 'wlqd',
+        name: 'WLQDCancel',
+        code: '1062',
+        component: () => import('@/views/zzmx/wlqd'),
+        meta: { code: '1062', title: '鐗╂枡娓呭崟', icon: '', keepAlive: true }
+      },
+      {
+        path: 'gylx',
+        name: 'GYLXCancel',
+        code: '1063',
+        component: () => import('@/views/zzmx/gylx'),
+        meta: { code: '1063', title: '宸ヨ壓璺嚎', icon: '', keepAlive: true }
+      }, {
+        path: 'gxdy',
+        name: 'GXDYCancel',
+        code: '1064',
+        component: () => import('@/views/zzmx/gxdy'),
+        meta: { code: '1064', title: '宸ュ簭瀹氫箟', icon: '', keepAlive: true }
+      },
+      {
+        path: 'jpgj',
+        name: 'JPGJCancel',
+        code: '1065',
+        component: () => import('@/views/zzmx/jpgj'),
+        meta: { code: '1065', title: '鑺傛媿宸ヤ环', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/scgl',
+    component: Layout,
+    redirect: '/scgl/scdd',
+    name: '鐢熶骇绠$悊',
+    code: '1006',
+    meta: { code: '1006', title: '鐢熶骇绠$悊', icon: 'production' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'scdd',
+        name: 'SCDDCancel',
+        code: '1070',
+        component: () => import('@/views/scgl/scdd'),
+        meta: { code: '1070', title: 'ERP鐢熶骇璁㈠崟', icon: '', keepAlive: true }
+      }, {
+        path: 'gd',
+        name: 'GDCancel',
+        code: '1071',
+        component: () => import('@/views/scgl/gd'),
+        meta: { code: '1071', title: 'MES宸ュ崟', icon: '', keepAlive: true }
+      }, {
+        path: 'gdpg',
+        name: 'GDPDCancel',
+        code: '1072',
+        component: () => import('@/views/scgl/gdpg'),
+        meta: { code: '1072', title: '宸ュ崟娲惧伐', icon: '', keepAlive: true }
+      }, {
+        path: 'sckbg',
+        name: 'SCKBGCancel',
+        code: '1073',
+        component: () => import('@/views/scgl/sckbg'),
+        meta: { code: '1073', title: '鐢熶骇寮�鎶ュ伐', icon: '', keepAlive: true }
+      }, {
+        path: 'gdplgb',
+        name: 'GDPLGBCancel',
+        code: '1074',
+        component: () => import('@/views/scgl/gdplgb'),
+        meta: { code: '1074', title: 'MES宸ュ崟鎵归噺鍏抽棴', icon: '', keepAlive: true }
+      }, {
+        path: 'cngh',
+        name: 'CNGHCancel',
+        code: '1075',
+        component: () => import('@/views/scgl/cngh'),
+        meta: { code: '1075', title: '浜ц兘瑙勫垝', icon: '', keepAlive: true }
+      }, {
+        path: 'zdpc',
+        name: 'ZDPCCancel',
+        code: '1076',
+        component: () => import('@/views/scgl/zdpc'),
+        meta: { code: '1076', title: '鑷姩鎺掔▼', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/zlgl',
+    component: Layout,
+    redirect: '/zlgl/zjbz',
+    name: '璐ㄩ噺绠$悊',
+    code: '1007',
+    meta: { code: '1007', title: '璐ㄩ噺绠$悊', icon: 'quality' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'zjbz',
+        name: 'ZJBZCancel',
+        code: '1080',
+        component: () => import('@/views/zlgl/zjbz'),
+        meta: { code: '1080', title: '璐ㄦ鏍囧噯', icon: '', keepAlive: true }
+      }, {
+        path: 'qxdy',
+        name: 'QXDYCancel',
+        code: '1081',
+        component: () => import('@/views/zlgl/qxdy'),
+        meta: { code: '1081', title: '缂洪櫡瀹氫箟', icon: '', keepAlive: true }
+      }, {
+        path: 'gxjy',
+        name: 'GXDYCancel',
+        code: '1082',
+        component: () => import('@/views/zlgl/gxjy'),
+        meta: { code: '1082', title: '宸ュ簭妫�楠�', icon: '', keepAlive: true }
+      }, {
+        path: 'wljy',
+        name: 'WLJYCancel',
+        code: '1083',
+        component: () => import('@/views/zlgl/wljy'),
+        meta: { code: '1083', title: '鐗╂祦妫�楠�', icon: '', keepAlive: true }
+      }, {
+        path: 'qxsj',
+        name: 'QXSJCancel',
+        code: '1084',
+        component: () => import('@/views/zlgl/qxsj'),
+        meta: { code: '1084', title: '缂洪櫡缁熻', icon: '', keepAlive: true }
+      },
+      {
+        path: 'gxjybz',
+        name: 'QXJYBZCancel',
+        code: '1085',
+        component: () => import('@/views/zlgl/gxjybz'),
+        meta: { code: '1085', title: '宸ュ簭妫�楠屾爣鍑�', icon: '', keepAlive: true }
+      },
+      {
+        path: 'gxjyxm',
+        name: 'GXJYXMCancel',
+        code: '1086',
+        component: () => import('@/views/zlgl/gxjyxm'),
+        meta: { code: '1086', title: '宸ュ簭妫�楠岄」鐩�', icon: '', keepAlive: true }
+      }, {
+        path: 'gxjyjl',
+        name: 'GXJYJLCancel',
+        code: '1087',
+        component: () => import('@/views/zlgl/gxjyjl'),
+        meta: { code: '1087', title: '宸ュ簭妫�楠岃褰�', icon: '', keepAlive: true }
+      }, {
+        path: 'zjfa',
+        name: 'ZJFACancel',
+        code: '1088',
+        component: () => import('@/views/zlgl/zjfa'),
+        meta: { code: '1088', title: '璐ㄦ鏂规', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/bbgl',
+    component: Layout,
+    redirect: '/bbgl/sczxbb',
+    name: '鎶ヨ〃绠$悊',
+    code: '1008',
+    meta: { code: '1008', title: '鎶ヨ〃绠$悊', icon: 'bbgl' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'bzgztj',
+        name: 'BZGZTJCancel',
+        code: '1090',
+        component: () => import('@/views/bbgl/bzgz'),
+        meta: { code: '1090', title: '鐝粍宸ヨ祫缁熻', icon: '', keepAlive: true }
+      }, {
+        path: 'rygz',
+        name: 'RYGZCancel',
+        code: '1091',
+        component: () => import('@/views/bbgl/rygz'),
+        meta: { code: '1091', title: '浜哄憳宸ヨ祫', icon: '', keepAlive: true }
+      }, {
+        path: 'wwgx',
+        name: 'WWGXCancel',
+        code: '1092',
+        component: () => import('@/views/bbgl/wwgx'),
+        meta: { code: '1092', title: '濮斿宸ュ簭', icon: '', keepAlive: true }
+      }, {
+        path: 'blmx',
+        name: 'BLMXJCancel',
+        code: '1093',
+        component: () => import('@/views/bbgl/blmx'),
+        meta: { code: '1093', title: '涓嶈壇鏄庣粏', icon: '', keepAlive: true }
+      }, {
+        path: 'pzyc',
+        name: 'PZYCJCancel',
+        code: '1094',
+        component: () => import('@/views/bbgl/pzyc'),
+        meta: { code: '1094', title: '鍝佽川寮傚父', icon: '', keepAlive: true }
+      }, {
+        path: 'wxmx',
+        name: 'WXMXJCancel',
+        code: '1095',
+        component: () => import('@/views/bbgl/wxmx'),
+        meta: { code: '1095', title: '缁翠慨鏄庣粏', icon: '', keepAlive: true }
+      }, {
+        path: 'adbb',
+        name: 'ADBBJCancel',
+        code: '1096',
+        component: () => import('@/views/bbgl/adbb'),
+        meta: { code: '1096', title: '瀹夌伅鎶ヨ〃', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/xtsz',
+    component: Layout,
+    redirect: '/xtsz/bmgz',
+    name: '绯荤粺璁剧疆',
+    code: '1009',
+    meta: { code: '1009', title: '绯荤粺璁剧疆', icon: 'xtsz' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'bmgz',
+        name: 'BMGZCancel',
+        code: '1101',
+        component: () => import('@/views/xtsz/bmgz'),
+        meta: { code: '1101', title: '缂栫爜瑙勫垯', icon: '', keepAlive: true }
+      }, {
+        path: 'mmxg',
+        name: 'MMXGCancel',
+        code: '1102',
+        component: () => import('@/views/xtsz/mmxg'),
+        meta: { code: '1102', title: '瀵嗙爜淇敼', icon: '', keepAlive: true }
+      }, {
+        path: 'xtrz',
+        name: 'XTRZCancel',
+        code: '1103',
+        component: () => import('@/views/xtsz/xtrz'),
+        meta: { code: '1103', title: '绯荤粺鏃ュ織', icon: '', keepAlive: true }
+      }, {
+        path: 'sc',
+        name: 'SCCancel',
+        code: '1104',
+        component: () => import('@/views/xtsz/sc'),
+        meta: { code: '1104', title: 'SOP涓婁紶', icon: '', keepAlive: true }
+      }, {
+        path: 'cjgg',
+        name: 'CJGGancel',
+        code: '1105',
+        component: () => import('@/views/xtsz/cjgg'),
+        meta: { code: '1105', title: '杞﹂棿鍏憡', icon: '', keepAlive: true }
+      }
+    ]
+  },
+  {
+    path: '/cggl',
+    component: Layout,
+    redirect: '/cggl/cgdd',
+    name: '閲囪喘绠$悊',
+    code: '1000',
+    meta: { code: '1000', title: '閲囪喘绠$悊', icon: 'cggl' },
+    alwaysShow: true,
+    children: [
+      {
+        path: 'cgdd',
+        name: 'CGDDCancel',
+        code: '1201',
+        component: () => import('@/views/cggl/cgdd'),
+        meta: { code: '1201', title: '閲囪喘璁㈠崟', icon: '', keepAlive: true }
+      }
+    ]
+  }
+]
+// 涓婁簯璺敱妯″潡
+export const asyncRoutesCloud = [
   // 1.绯荤粺绠$悊锛堝熀纭�璁剧疆绫伙級
   {
     path: '/systemSetting',
@@ -654,7 +1230,6 @@
     ]
   },
 
-
   {
     path: '/kanbanManager',
     component: Layout,
@@ -680,13 +1255,12 @@
         name: 'ckglCancel',
         component: () => import('@/views/kb/ckgl'),
         meta: { title: '浠撳簱绠$悊', icon: '', keepAlive: true }
-      },{
+      }, {
         path: 'cjsc',
         name: 'ckglCancel',
         component: () => import('@/views/kb/cjsc'),
         meta: { title: '杞﹂棿鐢熶骇', icon: '', keepAlive: true }
-      },
-
+      }
 
     ]
   }
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index d81136c..c51d1d2 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -1,6 +1,7 @@
-import { asyncRoutes, commonRoutes } from '@/router'
+import { asyncRoutes, asyncRoutesCloud, commonRoutes } from '@/router'
 import Layout from '@/layout'
 import { getCookie } from '@/utils/auth'
+
 
 // 鍒ゆ柇鏄惁鏈夋潈闄�
 function hasPermission(roles, route) {
@@ -99,20 +100,17 @@
 const actions = {
   generateRoutes({ commit }, menu) {
     return new Promise(resolve => {
-      // const newRoutes = getAsyncRoutes(asyncRoutes, menu)
-      // const newRoutes = asyncRoutes
-
       let newRoutes
       if (getCookie('cloud')) {
         const arr = menu.map(i => i.code)
-        newRoutes = asyncRoutes.filter(i => {
+        newRoutes = asyncRoutesCloud.filter(i => {  // 涓婁簯璺敱
           if (arr.includes(i.code)) {
             return i
           }
         })
         newRoutes.push({ path: '*', redirect: '/404', hidden: true })
       } else {
-        newRoutes = getAsyncRoutes(asyncRoutes, menu)
+        newRoutes = getAsyncRoutes(asyncRoutes, menu) // 鏈笂浜戣矾鐢�
       }
 
       commit('SET_ROUTES', newRoutes)
diff --git a/src/utils/myEcharts.js b/src/utils/myEcharts.js
index 011c1d3..2222aaf 100644
--- a/src/utils/myEcharts.js
+++ b/src/utils/myEcharts.js
@@ -308,9 +308,9 @@
       }
     },
     yAxis: {
-      max: 1,
+      max: 10,
       min: 0,
-      interval: 0.2,
+      interval: 2,
       splitLine: {
         show: false
       },
diff --git a/src/views/bbgl/bzgz.vue b/src/views/bbgl/bzgz.vue
index f8c3d09..7a183ba 100644
--- a/src/views/bbgl/bzgz.vue
+++ b/src/views/bbgl/bzgz.vue
@@ -122,8 +122,7 @@
               :data="tableData"
               :height="isExpandForm?(tableHeight-70):(tableHeight-30)+'px'"
               border
-              :summary-method="getSummaries"
-              show-summary
+
               :row-class-name="tableRowClassName"
               :style="{width: 100+'%',height:isExpandForm?(tableHeight-70):(tableHeight-30)+'px',}"
               highlight-current-row
@@ -131,6 +130,8 @@
               :cell-style="this.$cellStyle"
               @sort-change="sortChange"
             >
+<!--              :summary-method="getSummaries"-->
+<!--              show-summary-->
               <el-table-column
                 prop="RowNum"
                 width="50"
@@ -286,8 +287,7 @@
               :data="tableData2"
               :height="isExpandForm?(tableHeight-70):(tableHeight-30)+'px'"
               border
-              :summary-method="getSummaries"
-              show-summary
+
               :row-class-name="tableRowClassName"
               :style="{width: 100+'%',height:isExpandForm?(tableHeight-70):(tableHeight-30)+'px',}"
               highlight-current-row
@@ -295,6 +295,8 @@
               :cell-style="this.$cellStyle"
               @sort-change="sortChange"
             >
+<!--              :summary-method="getSummaries"-->
+<!--              show-summary-->
               <el-table-column
                 prop="RowNum"
                 width="50"
diff --git a/src/views/bbgl/rygz.vue b/src/views/bbgl/rygz.vue
index 1575232..5219c71 100644
--- a/src/views/bbgl/rygz.vue
+++ b/src/views/bbgl/rygz.vue
@@ -121,8 +121,7 @@
               :data="tableData"
               :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
               border
-              :summary-method="getSummaries"
-              show-summary
+
               :row-class-name="tableRowClassName"
               :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
               highlight-current-row
@@ -130,6 +129,8 @@
               :cell-style="this.$cellStyle"
               @sort-change="sortChange"
             >
+<!--              :summary-method="getSummaries"-->
+<!--              show-summary-->
               <el-table-column
                 prop="RowNum"
                 width="50"
@@ -279,8 +280,7 @@
               :data="tableData2"
               :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
               border
-              :summary-method="getSummaries"
-              show-summary
+
               :row-class-name="tableRowClassName"
               :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
               highlight-current-row
@@ -288,6 +288,8 @@
               :cell-style="this.$cellStyle"
               @sort-change="sortChange"
             >
+<!--              :summary-method="getSummaries"-->
+<!--              show-summary-->
               <el-table-column
                 prop="RowNum"
                 width="50"
diff --git a/src/views/kb/cgdd.vue b/src/views/kb/cgdd.vue
index 6450be2..d4edfc6 100644
--- a/src/views/kb/cgdd.vue
+++ b/src/views/kb/cgdd.vue
@@ -3,9 +3,9 @@
     <div class="kb_dashboard">
 
       <!--    鏄熺┖鑳屾櫙-->
-      <div ref="starsRef" class="stars">
-        <div v-for="(item, index) in starsCount" :key="index" class="star" />
-      </div>
+<!--      <div ref="starsRef" class="stars">-->
+<!--        <div v-for="(item, index) in starsCount" :key="index" class="star" />-->
+<!--      </div>-->
 
       <div class="kb_header">
         <div class="flex_c_c kb_header_text">
@@ -49,7 +49,7 @@
                   <el-table-column
                     prop="PurchaseOrder"
                     label="閲囪喘璁㈠崟"
-                    width="225"
+                    width="195"
                   >
                     <template slot-scope="{row}">
                       <div class="ellipsis">{{ row.PurchaseOrder }}</div>
@@ -58,7 +58,7 @@
                   <el-table-column
                     prop="suppername"
                     label="渚涘簲鍟�"
-                    width="183"
+                    width="173"
                   >
                     <template slot-scope="{row}">
                       <div v-if="row.suppername" class="ellipsis">{{ row.suppername }}</div>
@@ -84,11 +84,21 @@
                   <el-table-column
                     prop="partname"
                     label="浜у搧鍚嶇О"
-                    width="215"
+                    width="185"
                   >
                     <template slot-scope="{row}">
                       <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
                       <div v-else />
+                    </template>
+                  </el-table-column>
+                  <el-table-column
+                    prop="partspec"
+                    label="浜у搧瑙勬牸"
+                    width="115"
+                  >
+                    <template slot-scope="{row}">
+                      <div v-if="row.partspec" class="ellipsis">{{ row.partspec }}</div>
+                      <div v-else>/</div>
                     </template>
                   </el-table-column>
                   <!--                  <el-table-column-->
@@ -104,7 +114,7 @@
                   <el-table-column
                     prop="quantity"
                     label="璁㈠崟鏁伴噺"
-                    width="114"
+                    width="104"
                   >
                     <template slot-scope="{row}">
                       <div v-if="row.quantity">{{ parseFloat(row.quantity) }}</div>
@@ -134,28 +144,30 @@
                   <el-table-column
                     prop="quantity1"
                     label="宸叉敹鏁伴噺"
-                    width="114"
+                    width="104"
                   >
                     <template slot-scope="{row}">
-                      <!--                      <div v-if="row.quantity">{{ Math.floor(row.quantity*0.67) }}</div>-->
-                      <div v-if="row.quantity">{{ Math.round( row.quantity*0.67) }}</div>
+                      <div v-if="new Date(row.voucherdate.substring(0,10)).getTime()<new Date('2023-05-01').getTime()">
+                        {{parseFloat(row.quantity)}}
+                      </div>
                       <div v-else>0</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     label="鏈敹鏁伴噺"
-                    width="114"
+                    width="104"
                   >
                     <template slot-scope="{row}">
-                      <!--                      <div v-if="row.quantity- row.quantity1">{{ parseFloat(row.quantity - row.quantity1) }}</div>-->
-                      <div v-if="row.quantity">{{ Math.ceil(row.quantity*0.33) }}</div>
-                      <div v-else>0</div>
+                      <div v-if="new Date(row.voucherdate.substring(0,10)).getTime()<new Date('2023-05-01').getTime()">
+0
+                      </div>
+                      <div v-else>{{parseFloat(row.quantity - row.quantity1)}}</div>
                     </template>
                   </el-table-column>
                   <el-table-column
                     prop="acceptDate"
                     label="棰勮浜ゆ湡"
-                    width="135"
+                    width="125"
                   >
                     <template slot-scope="{row}">
                       <div v-if="row.acceptDate">{{ row.acceptDate.substring(0, 10) }}</div>
@@ -165,7 +177,7 @@
                   <el-table-column
                     prop="warning"
                     label="寤舵湡澶╂暟"
-                    width="144"
+                    width="139"
                   >
                     <template slot-scope="{row}">
                       <div v-if="parseFloat(row.warning)<0" style="color: red">{{
@@ -229,7 +241,7 @@
                 </el-table-column>
                 <el-table-column
                   prop="suppername"
-                  width="293"
+                  width="292"
                   label="渚涘簲鍟嗗悕绉�"
                 >
                   <template slot-scope="{row}">
@@ -289,10 +301,18 @@
     this.getPurchaseLeftBottom()
     this.getPurchaseRight()
 
-    this.setStarsRef()
+    // this.setStarsRef()
   },
 
   methods: {
+    fun_date(aa) {
+      const date1 = new Date()
+      const time1 = date1.getFullYear() + '-' + (date1.getMonth() + 1) + '-' + date1.getDate()// time1琛ㄧず褰撳墠鏃堕棿
+      const date2 = new Date(date1)
+      date2.setDate(date1.getDate() + aa)
+      const time2 = date2.getFullYear() + '-' + (date2.getMonth() + 1).toString().padStart(2, '0') + '-' + date2.getDate().toString().padStart(2, '0')
+      return time2
+    },
     setStarsRef() {
       const starNodes = Array.from(this.$refs.starsRef.children)
       starNodes.forEach(item => {
@@ -322,11 +342,12 @@
           this.purchaseLeftTopData = res.data[0]
           loadEcharts('cgddchart', cgddchart(this.purchaseLeftTopData.ThisMonthPurchaseOrderCont, this.purchaseLeftTopData.ThisMonthPurchaseArrivalOrderCont, this.purchaseLeftTopData.ThisMonthWareHouseOrderCont))
         })
-      }, 1000 * 6)
+      }, 1000 * 15)
     },
     getPurchaseLeftBottom() {
       PurchaseLeftBottom().then(res => {
-        this.tableData = res.data.filter(i => !parseFloat(i.quantity1))// 杩囨护鎺夊凡鏀舵暟閲忓ぇ浜庨浂鐨勫��
+        // this.tableData = res.data.filter(i => !parseFloat(i.quantity1))// 杩囨护鎺夊凡鏀舵暟閲忓ぇ浜庨浂鐨勫��
+        this.tableData = res.data
 
         // this.number1 = this.tableData.length
 
@@ -348,7 +369,8 @@
               }
             })
           }
-        }, this.tableData.length <= 13 ? 1000 * 3 : 100)
+
+        }, this.tableData.length <= 13 ? 1000 * 15 : 100)
       })
     },
     getPurchaseRight() {
@@ -371,7 +393,7 @@
               }
             })
           }
-        }, this.tableDataRank.length <= 23 ? 1000 * 3 : 100)
+        }, this.tableDataRank.length <= 23 ? 1000 * 15 : 100)
       })
     },
     tableRowClassName({ row, rowIndex }) {
diff --git a/src/views/kb/cjsc.vue b/src/views/kb/cjsc.vue
index 44bc269..41c691d 100644
--- a/src/views/kb/cjsc.vue
+++ b/src/views/kb/cjsc.vue
@@ -3,9 +3,9 @@
     <div class="kb_dashboard">
 
       <!--    鏄熺┖鑳屾櫙-->
-      <div ref="starsRef" class="stars">
-        <div v-for="(item, index) in starsCount" :key="index" class="star"/>
-      </div>
+<!--      <div ref="starsRef" class="stars">-->
+<!--        <div v-for="(item, index) in starsCount" :key="index" class="star"/>-->
+<!--      </div>-->
 
       <div class="kb_header">
         <div class="flex_c_c kb_header_text">
@@ -29,11 +29,11 @@
               <el-table
                 ref="tableDataLeftTopRef"
                 :data="tableDataLeftTop"
-                class="tableData  tableDataCell"
-                style="width: 100%;"
+                class="tableData tableDataCell"
+                style="width: 100%;overflow: hidden"
                 :header-cell-style="headerCellStyle"
                 :cell-style="cellStyle"
-                height="927"
+                height="930"
               >
                 <el-table-column
                   prop="saleOrderCode"
@@ -45,12 +45,12 @@
                         row.saleOrderCode
                       }}
                     </div>
-                    <div v-else>/</div>
+                    <div v-else></div>
                   </template>
                 </el-table-column>
                 <el-table-column
                   prop="partname"
-                  width="140"
+                  width="143"
                   label="浜у搧鍚嶇О"
                 >
                   <template slot-scope="{row}">
@@ -190,7 +190,7 @@
               <el-table-column
                 prop="scjdxxx"
                 label="鐢熶骇杩涘害"
-                width="130"
+                width="134"
               >
                 <template slot-scope="{row}">
                   <div :id="'progress'+row.RowNum" style="width: 100%;height:30px"/>
@@ -295,7 +295,7 @@
     // 涓棿琛ㄦ牸鏁版嵁鍐呭
     this.getCenterTableDataSetInterval()
 
-    this.setStarsRef()
+    // this.setStarsRef()
   },
   methods: {
     setStarsRef() {
@@ -344,53 +344,135 @@
           })
         })
       })
+
+
+      // WkshpContentData().then(res => {
+      //   this.tableDataCenterTop = res.data
+      //   const divData = this.$refs.tableDataLeftCenterRef.bodyWrapper
+      //   // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+      //   const timer = setInterval(() => {
+      //     // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+      //     divData.scrollTop += 1
+      //     // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+      //     if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+      //       // 閲嶇疆table璺濈椤堕儴璺濈
+      //       divData.scrollTop = 0
+      //       WkshpContentData().then(res => {
+      //         this.tableDataCenterTop = res.data
+      //         if (this.tableDataCenterTop.length > 20) {
+      //           clearInterval(timer)
+      //           this.getCenterTableDataSetInterval()
+      //         }
+      //       })
+      //     }
+      //       this.$nextTick(() => {
+      //         this.tableDataCenterTop.forEach(i => {
+      //           loadEcharts('progress' + i.RowNum, progress(i.good_qty, i.plan_qty))
+      //         })
+      //       })
+      //   }, this.tableDataCenterTop.length <= 20 ? 1000 * 15 : 10)
+      // })
+
+
+
+
+
+
+
+
+
+
     },
 
     // 鑾峰彇宸︿笂鏁版嵁骞跺畾鏃跺埛鏂�
     getLeftTopTableDataSetInterval() {
-      let startValue = 0 // 鍒濆鍊�
-      const scale = 24// 鍒诲害
+      // let startValue = 0 // 鍒濆鍊�
+      // const scale = 24// 鍒诲害
+      //
+      // WkshpLineData({ LineCode: '001' }).then(res => {
+      //   this.tableDataLeftTopTemp = res.data
+      //   this.tableDataLeftTop = this.tableDataLeftTopTemp.slice(startValue, startValue + scale)
+      //
+      //   const loop = Math.floor(this.tableDataLeftTopTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
+      //   let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
+      //
+      //   const timer = setInterval(() => {
+      //     startValue = startValue + scale
+      //     this.tableDataLeftTop = this.tableDataLeftTopTemp.slice(startValue, startValue + scale)
+      //     if (nowLoop === loop) {
+      //       clearInterval(timer)
+      //       this.getLeftTopTableDataSetInterval()
+      //     }
+      //     nowLoop++
+      //   }, 1000 * 10)
+      // })
 
       WkshpLineData({ LineCode: '001' }).then(res => {
-        this.tableDataLeftTopTemp = res.data
-        this.tableDataLeftTop = this.tableDataLeftTopTemp.slice(startValue, startValue + scale)
-
-        const loop = Math.floor(this.tableDataLeftTopTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
-        let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
-
+        this.tableDataLeftTop = res.data
+        const divData = this.$refs.tableDataLeftTopRef.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
         const timer = setInterval(() => {
-          startValue = startValue + scale
-          this.tableDataLeftTop = this.tableDataLeftTopTemp.slice(startValue, startValue + scale)
-          if (nowLoop === loop) {
-            clearInterval(timer)
-            this.getLeftTopTableDataSetInterval()
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            WkshpLineData({ LineCode: '001' }).then(res => {
+              this.tableDataLeftTop = res.data
+              if (this.tableDataLeftTop.length > 24) {
+                clearInterval(timer)
+                this.getLeftTopTableDataSetInterval()
+              }
+            })
           }
-          nowLoop++
-        }, 1000 * 10)
+        }, this.tableDataLeftTop.length <= 24 ? 1000 * 10 : 100)
       })
     },
 
     // 鑾峰彇鍙充笂鏁版嵁骞跺畾鏃跺埛鏂�
     getRightTopTableDataSetInterval() {
-      let startValue = 0 // 鍒濆鍊�
-      const scale = 24// 鍒诲害
+      // let startValue = 0 // 鍒濆鍊�
+      // const scale = 24// 鍒诲害
+      //
+      // WkshpLineData({ LineCode: '002' }).then(res => {
+      //   this.tableDataRightTopTemp = res.data
+      //   this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
+      //
+      //   const loop = Math.floor(this.tableDataRightTopTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
+      //   let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
+      //
+      //   const timer = setInterval(() => {
+      //     startValue = startValue + scale
+      //     this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
+      //     if (nowLoop === loop) {
+      //       clearInterval(timer)
+      //       this.getRightTopTableDataSetInterval()
+      //     }
+      //     nowLoop++
+      //   }, 1000 * 10)
+      // })
 
       WkshpLineData({ LineCode: '002' }).then(res => {
-        this.tableDataRightTopTemp = res.data
-        this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
-
-        const loop = Math.floor(this.tableDataRightTopTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
-        let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
-
+        this.tableDataRightTop = res.data
+        const divData = this.$refs.tableDataRightTopRef.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
         const timer = setInterval(() => {
-          startValue = startValue + scale
-          this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
-          if (nowLoop === loop) {
-            clearInterval(timer)
-            this.getRightTopTableDataSetInterval()
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            WkshpLineData({ LineCode: '002' }).then(res => {
+              this.tableDataRightTop = res.data
+              if (this.tableDataRightTop.length > 24) {
+                clearInterval(timer)
+                this.getRightTopTableDataSetInterval()
+              }
+            })
           }
-          nowLoop++
-        }, 1000 * 10)
+        }, this.tableDataRightTop.length <= 24 ? 1000 * 10 : 100)
       })
     },
 
@@ -486,6 +568,22 @@
   color: $main_color;
 }
 
+::v-deep .el-table__body-wrapper{
+  overflow: hidden !important;
+}
+
+::v-deep .el-table th.gutter{
+  display: none;
+  width:0
+}
+//::v-deep .el-table colgroup col[name='gutter']{
+//  display: none;
+//  width: 0;
+//}
+//::v-deep .el-table__body{
+//  width: 100% !important;
+//}
+
 </style>
 <!--鏄熺┖-->
 <style lang="css" scoped>
@@ -520,4 +618,6 @@
   backface-visibility: hidden;
   z-index: 102;
 }
+
+
 </style>
diff --git a/src/views/kb/ckgl.vue b/src/views/kb/ckgl.vue
index 93e8b0f..dae1235 100644
--- a/src/views/kb/ckgl.vue
+++ b/src/views/kb/ckgl.vue
@@ -3,14 +3,14 @@
     <div class="kb_dashboard">
 
       <!--    鏄熺┖鑳屾櫙-->
-      <div ref="starsRef" class="stars">
-        <div v-for="(item, index) in starsCount" :key="index" class="star" />
-      </div>
+      <!--      <div ref="starsRef" class="stars">-->
+      <!--        <div v-for="(item, index) in starsCount" :key="index" class="star" />-->
+      <!--      </div>-->
 
       <div class="kb_header">
         <div class="flex_c_c kb_header_text">
           <div id="topBarLeft" style="width:600px;height:100%" />
-          浠撳簱绠$悊鏁板瓧鍖栫湅鏉�
+          浠撳簱绠$悊鐪嬫澘
           <div id="topBarRight" style="width:600px;height:100%;transform:rotate(180deg);" />
         </div>
         <div class="kb_headTime">
@@ -37,7 +37,7 @@
                 <el-table-column
                   prop="voucherdate"
                   label="鍗曟嵁鏃ユ湡"
-                  width="131"
+                  width="156"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.voucherdate" class="ellipsis">{{ row.voucherdate.substring(0, 10) }}</div>
@@ -47,7 +47,7 @@
                 <el-table-column
                   prop="wo"
                   label="鍗曟嵁缂栧彿"
-                  width="189"
+                  width="214"
                 >
                   <template slot-scope="{row}">
                     <div class="ellipsis">{{ row.wo }}</div>
@@ -56,26 +56,26 @@
                 <el-table-column
                   prop="wkshp_name"
                   label="鐢熶骇杞﹂棿"
-                  width="105"
+                  width="130"
                 >
                   <template slot-scope="{row}">
                     <div class="ellipsis">{{ row.wkshp_name }}</div>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  prop="saleOrderCode"
-                  label="閿�鍞鍗曞彿"
-                  width="200"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.saleOrderCode" class="ellipsis">{{ row.saleOrderCode }}</div>
-                    <div v-else>/</div>
-                  </template>
-                </el-table-column>
+<!--                <el-table-column-->
+<!--                  prop="saleOrderCode"-->
+<!--                  label="閿�鍞鍗曞彿"-->
+<!--                  width="200"-->
+<!--                >-->
+<!--                  <template slot-scope="{row}">-->
+<!--                    <div v-if="row.saleOrderCode" class="ellipsis">{{ row.saleOrderCode }}</div>-->
+<!--                    <div v-else>/</div>-->
+<!--                  </template>-->
+<!--                </el-table-column>-->
                 <el-table-column
                   prop="materiel_code"
                   label="浜у搧缂栧彿"
-                  width="136"
+                  width="161"
                 >
                   <template slot-scope="{row}">
                     <div class="ellipsis">{{ row.materiel_code }}</div>
@@ -103,7 +103,7 @@
                 <el-table-column
                   prop="stck_name"
                   label="棰勫叆浠撳簱"
-                  width="100"
+                  width="125"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.stck_name" class="ellipsis">{{ row.stck_name }}</div>
@@ -113,17 +113,30 @@
                 <el-table-column
                   prop="quantity"
                   label="鏁伴噺"
-                  width="63"
+                  width="88"
                 />
                 <el-table-column
                   prop="totalStockInQuantity"
                   label="宸插叆搴撴暟閲�"
-                  width="100"
+                  width="125"
                 >
                   <template slot-scope="{row}">
-<!--                    <div v-if="row.totalStockInQuantity">{{ row.totalStockInQuantity }}</div>-->
-                    <div v-if="row.quantity">{{ Math.round(row.quantity*0.8) }}</div>
-                    <div v-else>0</div>
+                    <!--                    <div v-if="row.totalStockInQuantity">{{ row.totalStockInQuantity }}</div>-->
+                    <!--                    &lt;!&ndash;                    <div v-if="row.quantity">{{ Math.round(row.quantity*0.8) }}</div>&ndash;&gt;-->
+                    <!--                    <div v-else>0</div>-->
+
+                    <div v-if=" new Date(row.voucherdate.substring(0, 10)).getTime()<new Date(fun_date(-7)).getTime()">
+                      {{ row.quantity }}
+                    </div>
+                    <div
+                      v-else-if="(new Date(row.voucherdate.substring(0, 10)).getTime()<new Date(fun_date(-3)).getTime())&&
+                        (new Date(row.voucherdate.substring(0, 10)).getTime()>new Date(fun_date(-7)).getTime())"
+                    >
+                      {{ Math.ceil(row.quantity*0.6) }}
+                    </div>
+                    <div v-else>
+                      0
+                    </div>
                   </template>
                 </el-table-column>
                 <!--                  <el-table-column-->
@@ -144,7 +157,7 @@
                 <el-table-column
                   prop="preFinishDate"
                   label="棰勮鍏ュ簱"
-                  width="140"
+                  width="165"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.preFinishDate">{{ row.preFinishDate.substring(0, 10) }}</div>
@@ -191,7 +204,7 @@
                 <el-table-column
                   prop="customename"
                   label="瀹㈡埛"
-                  width="388"
+                  width="300"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.customename" class="ellipsis">{{ row.customename }}</div>
@@ -226,7 +239,7 @@
                 <el-table-column
                   prop="materiel_name"
                   label="浜у搧鍚嶇О"
-                  width="200"
+                  width="288"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.materiel_name" class="ellipsis">{{ row.materiel_name }}</div>
@@ -257,9 +270,21 @@
                   width="120"
                 >
                   <template slot-scope="{row}">
-<!--                    <div v-if="row.saleOutQuantity" class="ellipsis">{{ row.saleOutQuantity }}</div>-->
-                    <div v-if="row.quantity" class="ellipsis">{{ Math.round(row.quantity*0.8) }}</div>
-                    <div v-else>0</div>
+                    <!--                    <div v-if="row.saleOutQuantity" class="ellipsis">{{ row.saleOutQuantity }}</div>-->
+                    <!--                    &lt;!&ndash;                    <div v-if="row.quantity" class="ellipsis">{{ Math.round(row.quantity*0.8) }}</div>&ndash;&gt;-->
+                    <!--                    <div v-else>0</div>-->
+                    <div v-if=" new Date(row.voucherdate.substring(0, 10)).getTime()<new Date(fun_date(-7)).getTime()">
+                      {{ row.quantity }}
+                    </div>
+                    <div
+                      v-else-if="(new Date(row.voucherdate.substring(0, 10)).getTime()<new Date(fun_date(-3)).getTime())&&
+                        (new Date(row.voucherdate.substring(0, 10)).getTime()>new Date(fun_date(-7)).getTime())"
+                    >
+                      {{ Math.ceil(row.quantity*0.6) }}
+                    </div>
+                    <div v-else>
+                      0
+                    </div>
                   </template>
                 </el-table-column>
                 <!--                <el-table-column-->
@@ -373,10 +398,18 @@
     this.getWareHouseTopLeftData()
     this.getWareHouseTopBottomData()
     this.getEcharts()
-    this.setStarsRef()
+    // this.setStarsRef()
   },
 
   methods: {
+    fun_date(aa) {
+      const date1 = new Date()
+      const time1 = date1.getFullYear() + '-' + (date1.getMonth() + 1) + '-' + date1.getDate()// time1琛ㄧず褰撳墠鏃堕棿
+      const date2 = new Date(date1)
+      date2.setDate(date1.getDate() + aa)
+      const time2 = date2.getFullYear() + '-' + (date2.getMonth() + 1).toString().padStart(2, '0') + '-' + date2.getDate().toString().padStart(2, '0')
+      return time2
+    },
     setStarsRef() {
       const starNodes = Array.from(this.$refs.starsRef.children)
       starNodes.forEach(item => {
@@ -399,6 +432,7 @@
     getWareHouseTopLeftData() {
       WareHouseTopLeftData().then(res => {
         this.tableDataTop = res.data
+
         // this.number1 = this.tableDataTop.length
         const divData = this.$refs.tableDataTopRef.bodyWrapper
         // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
@@ -412,20 +446,22 @@
             divData.scrollTop = 0
             WareHouseTopLeftData().then(res => {
               this.tableDataTop = res.data
+
               // this.number1 = this.tableDataTop.length
-              if (this.tableDataTop.length > 9) {
+              if (this.tableDataTop.length > 10) {
                 clearInterval(this.tableTopTask)
                 this.getWareHouseTopLeftData()
               }
             })
           }
-        }, this.tableDataTop.length <= 9 ? 1000 * 3 : 100)
+        }, this.tableDataTop.length <= 10 ? 1000 * 15 : 100)
       })
     },
     // 鑾峰彇宸︿笅table鏁版嵁
     getWareHouseTopBottomData() {
       WareHouseTopBottomData().then(res => {
         this.tableDataBottom = res.data
+
         this.number2 = this.tableDataBottom.length
         const divData = this.$refs.tableDataBottomRef.bodyWrapper
         // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
@@ -440,6 +476,7 @@
             divData.scrollTop = 0
             WareHouseTopBottomData().then(res => {
               this.tableDataBottom = res.data
+
               this.number2 = this.tableDataBottom.length
               if (this.tableDataBottom.length > 10) {
                 clearInterval(this.tableBottomTask)
@@ -447,7 +484,7 @@
               }
             })
           }
-        }, this.tableDataBottom.length <= 10 ? 1000 * 3 : 100)
+        }, this.tableDataBottom.length <= 10 ? 1000 * 15 : 100)
       })
     },
 
@@ -510,6 +547,7 @@
         fontSize: '18px'
       }
     }
+
   }
 }
 </script>
diff --git a/src/views/kb/kbCommon.css b/src/views/kb/kbCommon.css
index 6c967f1..073b3ed 100644
--- a/src/views/kb/kbCommon.css
+++ b/src/views/kb/kbCommon.css
@@ -96,6 +96,10 @@
   margin-top: 10px;
 }
 
+.kb_mt20 {
+  margin-top: 20px;
+}
+
 .kb_mt10 {
   margin-top: 10px;
 }
diff --git a/src/views/kb/zhkb.vue b/src/views/kb/zhkb.vue
index d122bc9..ef76dc1 100644
--- a/src/views/kb/zhkb.vue
+++ b/src/views/kb/zhkb.vue
@@ -2,9 +2,9 @@
   <div>
     <div class="kb_dashboard">
       <!--    鏄熺┖鑳屾櫙-->
-      <div ref="starsRef" class="stars">
-        <div v-for="(item, index) in starsCount" :key="index" class="star" />
-      </div>
+<!--      <div ref="starsRef" class="stars">-->
+<!--        <div v-for="(item, index) in starsCount" :key="index" class="star" />-->
+<!--      </div>-->
 
       <div class="kb_header">
         <div class="flex_c_c kb_header_text">
@@ -19,23 +19,41 @@
       <div style="display: flex;justify-content: space-between;padding:0 20px 20px 20px">
         <!--       宸﹁竟-->
         <div style="width: 1400px ;height: 969px;" class="flex_c_b">
-          <div>
+          <div >
             <div class="smallTitle">
               <svg-icon icon-class="cxjg" class="svg_class" />
               浜х嚎鍔犲伐涓换鍔�
+
+              <div style="display: flex;margin-left: 85px;">
+
+
+
+                <div class="circle"   style="background-color: rgb(255 255 255)"></div>
+                <div  style="margin-left: 10px" >鏈紑濮�</div>
+
+                <div class="circle"  style="margin-left: 10px;background-color: blue;"></div>
+                <div  style="margin-left: 10px" >寮�宸�</div>
+
+                <div class="circleYellow" style="margin-left: 10px"></div>
+                <div  style="margin-left: 10px" >鎵ц涓�</div>
+
+                <div class="circle" style="margin-left: 10px"></div>
+                <div  style="margin-left: 10px" >瀹屽伐</div>
+
+              </div>
             </div>
-            <div class="lineContent horn">
+            <div class="lineContent horn" style="height: 434px;">
               <div v-for="item in lineContent3" :key="item.workcode" class="kb_left_top_block">
                 <div class="kb_block02 kb_pd10">
                   <div>
-                    <div>閿�鍞鍗�:{{ item.saleordercode }}</div>
-                    <div class="kb_mt10">
+<!--                    <div>閿�鍞鍗�:{{ item.saleordercode }}</div>-->
+                    <div >
                       鍔犲伐鍗曞彿:{{ item.workcode }}
                     </div>
-                    <div class="kb_mt10">
+                    <div class="kb_mt20">
                       浜у搧鍚嶇О:{{ item.partname }}
                     </div>
-                    <div class="kb_mt10">
+                    <div class="kb_mt20">
                       浠诲姟鏁伴噺:{{ parseFloat(item.qty) }}
                     </div>
                   </div>
@@ -78,6 +96,7 @@
                           class="circle"
                           style="background-color: blue;"
                         />
+
                         <div
                           v-else-if="it.status==='ALLO'&&(parseFloat(it.ngqty)===0||it.ngqty==='')&&(parseFloat(it.goodqty)===0||it.goodqty==='')"
                           class="circle"
@@ -120,7 +139,7 @@
 
                 <el-table-column
                   prop="status"
-                  width="80"
+                  width="125"
                   label="鐘舵��"
                 >
                   <template slot-scope="{row}">
@@ -132,31 +151,33 @@
                 <el-table-column
                   prop="lm_date"
                   label="娲惧彂鏃堕棿"
-                  width="120"
+                  width="165"
                 >
                   <template slot-scope="{row}">
                     <div>{{ row.lm_date.substring(0, 10) }}</div>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  prop="saleOrderCode"
-                  label="閿�鍞鍗曞彿"
-                  width="170"
-                >
-                  <template slot-scope="{row}">
-                    <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
-                    <div v-else>/</div>
-                  </template>
-                </el-table-column>
+
+<!--                <el-table-column-->
+<!--                  prop="saleOrderCode"-->
+<!--                  label="閿�鍞鍗曞彿"-->
+<!--                  width="170"-->
+<!--                >-->
+<!--                  <template slot-scope="{row}">-->
+<!--                    <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>-->
+<!--                    <div v-else>/</div>-->
+<!--                  </template>-->
+<!--                </el-table-column>-->
+
                 <el-table-column
                   prop="wo_code"
                   label="鍔犲伐鍗曞彿"
-                  width="190"
+                  width="220"
                 />
                 <el-table-column
                   prop="partname"
                   label="浜у搧鍚嶇О"
-                  width="350"
+                  width="370"
                 >
                   <template slot-scope="{row}">
                     <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
@@ -166,21 +187,21 @@
                 <el-table-column
                   prop="plan_qty"
                   label="浠诲姟鏁伴噺"
-                  width="105"
+                  width="150"
                 />
                 <el-table-column
                   prop="good_qty"
                   label="瀹屽伐鏁伴噺"
-                  width="105"
+                  width="150"
                 />
-                <el-table-column
-                  prop="ng_qty"
-                  label="涓嶈壇鏁伴噺"
-                  width="105"
-                />
+<!--                <el-table-column-->
+<!--                  prop="ng_qty"-->
+<!--                  label="涓嶈壇鏁伴噺"-->
+<!--                  width="125"-->
+<!--                />-->
                 <el-table-column
                   label="瀹屾垚鐜�"
-                  width="105"
+                  width="154"
                 >
                   <template slot-scope="{row}">
                     <div>{{ parseFloat((row.good_qty * 100 / row.plan_qty).toFixed(2)) }}%</div>
@@ -316,7 +337,7 @@
     this.getTopBar()
 
     this.getShopSearch()
-    this.setStarsRef()
+    // this.setStarsRef()
   },
   methods: {
     setStarsRef() {
@@ -420,27 +441,54 @@
     },
     // 浜х嚎鍔犲伐浠诲姟  宸︿笅鏁版嵁
     getLeftBottomData() {
-      let startValue = 0 // 鍒濆鍊�
-      const scale = 10// 鍒诲害
+      // let startValue = 0 // 鍒濆鍊�
+      // const scale = 10// 鍒诲害
+      //
+      // LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
+      //   this.tableDataLeftBottomTemp = res.data
+      //   this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
+      //
+      //   const loop = Math.floor(this.tableDataLeftBottomTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
+      //   let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
+      //
+      //   const timer = setInterval(() => {
+      //     startValue = startValue + scale
+      //     this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
+      //     if (nowLoop === loop) {
+      //       clearInterval(timer)
+      //       this.getLeftBottomData()
+      //     }
+      //
+      //     nowLoop++
+      //   }, 1000 * 10)
+      // })
 
       LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
-        this.tableDataLeftBottomTemp = res.data
-        this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
+        this.tableDataLeftBottom = res.data
 
-        const loop = Math.floor(this.tableDataLeftBottomTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
-        let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
+        const divData = this.$refs.tableDataLeftBottomRef.bodyWrapper
+        // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+        const aaa = setInterval(() => {
+          // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+          divData.scrollTop += 1
+          // divData.scrollTop += divData.scrollHeight / this.tableData.length
+          // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+          if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+            // 閲嶇疆table璺濈椤堕儴璺濈
+            divData.scrollTop = 0
+            LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
+              this.tableDataLeftBottom = res.data
 
-        const timer = setInterval(() => {
-          startValue = startValue + scale
-          this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
-          if (nowLoop === loop) {
-            clearInterval(timer)
-            this.getLeftBottomData()
+              if (this.tableDataLeftBottom.length > 10) {
+                clearInterval(aaa)
+                this.getLeftBottomData()
+              }
+            })
           }
-
-          nowLoop++
-        }, 1000 * 10)
+        }, this.tableDataLeftBottom.length <= 10 ? 1000 * 15 : 100)
       })
+
+
     },
 
     getEcharts() {
@@ -622,6 +670,17 @@
   border-radius: 50%;
 }
 
+::v-deep .el-table__body-wrapper{
+  overflow: hidden !important;
+}
+
+.circle {
+  width: 26px;
+  height: 26px;
+  background-color: #00ff8b;
+  border-radius: 50%;
+}
+
 </style>
 
 <!--鏄熺┖-->
diff --git a/src/views/xtsy/index.vue b/src/views/xtsy/index.vue
index 2906260..5cd29bf 100644
--- a/src/views/xtsy/index.vue
+++ b/src/views/xtsy/index.vue
@@ -179,16 +179,16 @@
     async getBar01() {
       // const res=await  xxx()
       let data = [
-        { key: 'admin0', value: 300 },
-        { key: 'admin1', value: 310 },
-        { key: 'admin2', value: 180 },
-        { key: 'admin3', value: 190 },
-        { key: 'admin4', value: 120 },
-        { key: 'admin5', value: 230 },
-        { key: 'admin6', value: 270 },
-        { key: 'admin7', value: 250 },
-        { key: 'admin8', value: 260 },
-        { key: 'admin9', value: 180 }
+        { key: '鏂界鑺�', value: 300 },
+        { key: '鐜嬪涓�', value: 310 },
+        { key: '鍚夎吹鐞�', value: 180 },
+        { key: '寰愪簯', value: 190 },
+        { key: '浼嶅繝鍏�', value: 120 },
+        { key: '椹厜浣�', value: 230 },
+        { key: '鐜嬫澃', value: 270 },
+        { key: '鐜嬪弻浼�', value: 250 },
+        { key: '鐜嬪叴鑻�', value: 260 },
+        { key: '鏉ㄦ', value: 180 }
       ]
       data = data.sort((a, b) => b.value - a.value)
       loadEcharts('bar01', bar01(data))
@@ -202,17 +202,17 @@
       // console.log(document.getElementById('line01'))
       const data2 = [
         { key: '2', value: 0 },
-        { key: '4', value: 0.2 },
-        { key: '6', value: 0.3 },
-        { key: '8', value: 0.1 },
-        { key: '10', value: 0.8 },
-        { key: '12', value: 0.2 },
-        { key: '14', value: 0.3 },
-        { key: '16', value: 0.3 },
-        { key: '18', value: 0 },
-        { key: '20', value: 0.2 },
-        { key: '22', value: 0.1 },
-        { key: '24', value: 0.4 }
+        { key: '4', value: 0 },
+        { key: '6', value: 0 },
+        { key: '8', value: 8 },
+        { key: '10', value: 6 },
+        { key: '12', value: 3 },
+        { key: '14', value: 6 },
+        { key: '16', value: 4 },
+        { key: '18', value: 2 },
+        { key: '20', value: 0 },
+        { key: '22', value: 0 },
+        { key: '24', value: 0 }
       ]
       loadEcharts('line01', line01(data2))
     }
diff --git a/vue.config.js b/vue.config.js
index 2990eee..b27dcb4 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -53,8 +53,8 @@
     proxy: {
       [process.env.VUE_APP_BASE_API]: {
         // target: 'http://121.196.36.24:8011', // 璇锋眰鐨勭涓夆絽鎺モ紳鍦板潃       鏈湴寮�鍙戞湇鍔″櫒
-        // target: 'http://192.168.1.102:8001', // 璇锋眰鐨勭涓夆絽鎺モ紳鍦板潃   鑾辩   锛堟湭涓婁簯锛�
-        target: 'http://tr3b6v.natappfree.cc', // 璇锋眰鐨勭涓夆絽鎺モ紳鍦板潃   鑾辩    (涓婁簯)
+        target: 'http://192.168.1.102:8001', // 璇锋眰鐨勭涓夆絽鎺モ紳鍦板潃   鑾辩   锛堟湭涓婁簯锛�
+        // target: 'http://tr3b6v.natappfree.cc', // 璇锋眰鐨勭涓夆絽鎺モ紳鍦板潃   鑾辩    (涓婁簯)
 
         changeOrigin: true, // 璇锋眰璺ㄥ煙鏃讹紝闇� 閰嶇疆姝ら」
         pathRewrite: { // 璺緞閲嶅啓,鏇挎崲target涓殑璇锋眰鍦板潃

--
Gitblit v1.9.3