From d6803b83a827a62fa29737c31104c3ee9bc194d8 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期一, 08 四月 2024 10:18:41 +0800
Subject: [PATCH] 1、全局菜单栏新增点击父级菜单标题后在导航栏展开父级所有下一级菜单功能 2、登录页面按照新需求调整整体布局及样式 3、优化首页看板页面图表视图

---
 src/views/dashboard/EquipmentSignage.vue       |   11 
 src/views/dashboard/BranchFactorySignage.vue   |   27 -
 src/views/dashboard/IndexSignage.vue           |   33 -
 src/components/layouts/UserLayout.vue          |   47 +-
 src/views/user/Login.vue                       |  556 +++++++++++++++++++---------------
 src/views/dashboard/Analysis.vue               |   11 
 src/assets/login.jpg                           |    0 
 src/components/layouts/TabLayout.vue           |   64 +++
 src/assets/login.jpeg                          |    0 
 src/components/menu/index.js                   |   22 +
 src/views/dashboard/WorkshopSectionSignage.vue |  171 ++++------
 src/api/signage.js                             |    6 
 12 files changed, 491 insertions(+), 457 deletions(-)

diff --git a/src/api/signage.js b/src/api/signage.js
index a62b28a..4a4e433 100644
--- a/src/api/signage.js
+++ b/src/api/signage.js
@@ -24,5 +24,9 @@
   // 璁惧OEE缁熻
   getEquipmentOEEStatistics: productionCode => getAction('/mdc/home/equipmentOEEStatistics', { productionCode }),
   // 璁惧OEE鍜屽埄鐢ㄧ巼瀵规瘮
-  getEquipmentMonthStatisticsApi: productionCode => getAction('/mdc/home/equipmentMonthStatistics', { productionCode })
+  getEquipmentMonthStatisticsApi: productionCode => getAction('/mdc/home/equipmentMonthStatistics', { productionCode }),
+  // 宸ユ绾у墠7澶╁埄鐢ㄧ巼鎶樼嚎鍥�
+  getEquipmentDayUtilizationStatisticsApi: productionCode => getAction('/mdc/home/equipmentDayUtilizationStatistics', { productionCode }),
+  // 涓婁釜鏈堝悇璁惧OEE缁熻
+  getEquipmentOEEMonthStatisticsApi: productionCode => getAction('/mdc/home/equipmentOEEMonthStatistics', { productionCode })
 }
\ No newline at end of file
diff --git a/src/assets/login.jpeg b/src/assets/login.jpeg
new file mode 100644
index 0000000..df3018f
--- /dev/null
+++ b/src/assets/login.jpeg
Binary files differ
diff --git a/src/assets/login.jpg b/src/assets/login.jpg
new file mode 100644
index 0000000..799d767
--- /dev/null
+++ b/src/assets/login.jpg
Binary files differ
diff --git a/src/components/layouts/TabLayout.vue b/src/components/layouts/TabLayout.vue
index 0340721..2e79947 100644
--- a/src/components/layouts/TabLayout.vue
+++ b/src/components/layouts/TabLayout.vue
@@ -4,8 +4,8 @@
     <contextmenu :itemList="menuItemList" :visible.sync="menuVisible" style="z-index: 9999;" @select="onMenuSelect"/>
     <!-- update-end- author:sunjianlei --- date:20191009 --- for: 鎻愬崌鍙抽敭鑿滃崟鐨勫眰绾� -->
     <a-tabs
-      v-if="$route.meta.title!=='棣栭〉'&&multipage"
       @contextmenu.native="e => onContextmenu(e)"
+      v-if="$route.meta.title!=='棣栭〉'&&multipage"
       :active-key="activePage"
       class="tab-layout-tabs"
       style="height:52px"
@@ -14,12 +14,12 @@
       @change="changePage"
       @tabClick="tabCallBack"
       @edit="editPage">
-      <a-tab-pane :id="page.fullPath" :key="page.fullPath" v-for="page in pageList"
+      <a-tab-pane :id="page.path" :key="page.path" v-for="page in pageList"
                   :closable="!(page.meta.title=='棣栭〉')">
-        <span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span>
+        <span slot="tab" :pagekey="page.path">{{ page.meta.title }}</span>
       </a-tab-pane>
     </a-tabs>
-    <div>
+    <div :style="{padding: $route.meta.title=='棣栭〉'?'0':'12px 12px 0'}">
       <!-- update-begin-author:taoyan date:20201221 for:姝ゅ鍒犳帀transition鏍囩 涓嶇煡閬撲负浠�涔堝姞涓婂悗 椤甸潰璺敱鍒囨崲鐨勬椂鍊欏嵆1鍙婅彍鍗曞垏鍒�2鍙婅彍鍗曠殑鏃跺�� 涓や釜鑿滃崟椤甸潰浼氬悓鏃跺嚭鐜�300-500绉掑乏鍙� -->
       <keep-alive v-if="multipage">
         <router-view v-if="reloadFlag"/>
@@ -91,6 +91,7 @@
       this.pageList.push(currentRoute)
       this.linkList.push(currentRoute.fullPath)
       this.activePage = currentRoute.fullPath
+      this.$bus.$on('clickMenuTitleSelected', this.clickMenuTitleSelected)
     },
     mounted() {
     },
@@ -123,10 +124,12 @@
         }
       },
       'activePage': function(key) {
+        console.log('key', key)
         let index = this.linkList.lastIndexOf(key)
         let waitRouter = this.pageList[index]
         // 銆怲ESTA-523銆戜慨澶嶏細涓嶅厑璁搁噸澶嶈烦杞矾鐢卞紓甯�
-        if (waitRouter.fullPath !== this.$route.fullPath) {
+        console.log('waitRouter', waitRouter, 'fullPath', this.$route.fullPath, waitRouter.fullPath !== this.$route.fullPath)
+        if (waitRouter.path !== this.$route.fullPath) {
           this.$router.push(Object.assign({}, waitRouter))
         }
         this.changeTitle(waitRouter.meta.title)
@@ -166,6 +169,7 @@
 
       // update-begin-author:sunjianlei date:20200120 for: 鍔ㄦ�佹洿鏀归〉闈㈡爣棰�
       changeTitle(title) {
+        console.log('title', title)
         let projectTitle = 'MDC鏅烘収杞﹂棿'
         // 棣栭〉鐗规畩澶勭悊
         if (this.$route.path === indexKey) {
@@ -177,6 +181,7 @@
       // update-end-author:sunjianlei date:20200120 for: 鍔ㄦ�佹洿鏀归〉闈㈡爣棰�
 
       changePage(key) {
+        console.log('changePage', key)
         this.activePage = key
       },
       tabCallBack() {
@@ -202,8 +207,8 @@
           return
         }
         console.log('this.pageList ', this.pageList)
-        let removeRoute = this.pageList.filter(item => item.fullPath == key)
-        this.pageList = this.pageList.filter(item => item.fullPath !== key)
+        let removeRoute = this.pageList.filter(item => item.path == key)
+        this.pageList = this.pageList.filter(item => item.path !== key)
         let index = this.linkList.indexOf(key)
         this.linkList = this.linkList.filter(item => item !== key)
         index = index >= this.linkList.length ? this.linkList.length - 1 : index
@@ -223,7 +228,7 @@
           this.emitPageClosed(removeRoute[0])
         }
         //update-end--Author:scott  Date:20201015 for锛氳矾鐢辩紦瀛橀棶棰橈紝鍏抽棴浜唗ab椤垫椂鍐嶆墦寮�灏变笉鍒锋柊 #842
-
+        this.tabCallBack()
       },
       // 瑙﹀彂 page-closed 锛堥〉闈㈠叧闂級鍏ㄥ眬浜嬩欢
       emitPageClosed(closedRoute) {
@@ -284,7 +289,7 @@
           let indexContent = this.pageList.slice(0, 1)[0]
           this.linkList = this.linkList.slice(index, index + 1)
           this.pageList = this.pageList.slice(index, index + 1)
-          this.linkList.unshift(indexContent.fullPath)
+          this.linkList.unshift(indexContent.path)
           this.pageList.unshift(indexContent)
           this.activePage = this.linkList[1]
         }
@@ -298,17 +303,19 @@
         let index = this.linkList.indexOf(pageKey)
         this.linkList = this.linkList.slice(index)
         this.pageList = this.pageList.slice(index)
-        this.linkList.unshift(indexContent.fullPath)
+        this.linkList.unshift(indexContent.path)
         this.pageList.unshift(indexContent)
+        // 鑻ュ皢婵�娲婚〉涓�骞跺叧闂垯鏄剧ず瀵艰埅鏍忛櫎棣栭〉绗竴涓〉闈�
         if (this.linkList.indexOf(this.activePage) < 0) {
-          this.activePage = this.linkList[0]
+          this.activePage = this.linkList[1]
         }
       },
       closeRight(pageKey) {
         let index = this.linkList.indexOf(pageKey)
         this.linkList = this.linkList.slice(0, index + 1)
         this.pageList = this.pageList.slice(0, index + 1)
-        if (this.linkList.indexOf(this.activePage < 0)) {
+        // 鑻ュ皢婵�娲婚〉涓�骞跺叧闂垯鏄剧ず瀵艰埅鏍忔渶鍚庝竴涓〉闈�
+        if (this.linkList.indexOf(this.activePage) < 0) {
           this.activePage = this.linkList[this.linkList.length - 1]
         }
       },
@@ -340,6 +347,39 @@
       //鏂板涓�涓繑鍥炴柟娉�
       excuteCallback(callback) {
         callback()
+      },
+
+      clickMenuTitleSelected(selectedMenus) {
+        //console.log("鏂扮殑璺敱",newRoute)
+        console.log('clickTitle', this.activePage)
+        this.activePage = selectedMenus[0].path
+        if (!this.multipage) {
+          this.linkList = [this.linkList[0], selectedMenus[0].path]
+          this.pageList = [this.pageList[0], Object.assign({}, selectedMenus[0])]
+          // update-begin-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
+        } else if (indexKey == selectedMenus[0].path) {
+          //棣栭〉鏃� 鍒ゆ柇鏄惁缂撳瓨 娌℃湁缂撳瓨 鍒锋柊涔�
+          if (selectedMenus[0].meta.keepAlive === false) {
+            this.routeReload()
+          }
+          // update-end-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛�
+        } else {
+          // selectedMenus.forEach(menuItem => {
+          //   if (!this.linkList.includes(menuItem.path)) {
+          //     console.log('瑙﹀彂澧炲姞')
+          //     this.linkList.push(menuItem.path)
+          //     this.pageList.push(menuItem)
+          //   } else {
+          //     console.log('瑙﹀彂娌℃湁澧炲姞')
+          //     let oldIndex = this.linkList.indexOf(menuItem.path)
+          //     let oldPositionRoute = this.pageList[oldIndex]
+          //     this.pageList.splice(oldIndex, 1, Object.assign({}, menuItem, { meta: oldPositionRoute.meta }))
+          //   }
+          // })
+          // 鐐瑰嚮鏍囬鍚庡湪瀵艰埅鏍忚鐩栧墠涓�涓爣棰樻墍灞曞紑鐨勪笅绾ц彍鍗�
+          this.linkList = [this.linkList[0], ...selectedMenus.map(item => item.path)]
+          this.pageList = [this.pageList[0], ...selectedMenus]
+        }
       }
     }
   }
diff --git a/src/components/layouts/UserLayout.vue b/src/components/layouts/UserLayout.vue
index 42d7cce..6896523 100644
--- a/src/components/layouts/UserLayout.vue
+++ b/src/components/layouts/UserLayout.vue
@@ -1,17 +1,17 @@
 <template>
   <div id="userLayout" :class="['user-layout-wrapper', device]">
     <div class="container">
-      <div class="top">
-        <div class="header">
-          <a href="/">
-            <img src="~@/assets/lxzn.png" class="logo" alt="logo">
-            <span class="title">MDC鏅烘収杞﹂棿</span>
-          </a>
-        </div>
-        <!--<div class="desc">-->
-          <!--Jeecg Boot 鏄腑鍥芥渶鍏峰奖鍝嶅姏鐨� 浼佷笟绾� 浣庝唬鐮佸钩鍙�-->
+      <!--<div class="top">-->
+        <!--<div class="header">-->
+          <!--<a href="/">-->
+            <!--<img src="~@/assets/lxzn_white.png" class="logo" alt="logo">-->
+            <!--<span class="title">MDC鏅烘収杞﹂棿</span>-->
+          <!--</a>-->
         <!--</div>-->
-      </div>
+        <!--&lt;!&ndash;<div class="desc">&ndash;&gt;-->
+          <!--&lt;!&ndash;Jeecg Boot 鏄腑鍥芥渶鍏峰奖鍝嶅姏鐨� 浼佷笟绾� 浣庝唬鐮佸钩鍙�&ndash;&gt;-->
+        <!--&lt;!&ndash;</div>&ndash;&gt;-->
+      <!--</div>-->
 
       <route-view></route-view>
 
@@ -66,10 +66,13 @@
     .container {
       width: 100%;
       min-height: 100%;
-      background: #f0f2f5 url(~@/assets/background.svg) no-repeat 50%;
+      background: #f0f2f5 url(~@/assets/login.jpg) no-repeat 50%;
       background-size: 100%;
-      padding: 110px 0 144px;
+      /*padding: 110px 0 144px;*/
       position: relative;
+      display: flex;
+      align-items: center;
+      justify-content: center;
 
       a {
         text-decoration: none;
@@ -77,6 +80,10 @@
 
       .top {
         text-align: center;
+        position: absolute;
+        top: 50px;
+        left: 50px;
+
 
         .header {
           height: 44px;
@@ -95,13 +102,13 @@
           .logo {
             height: 44px;
             vertical-align: top;
-            margin-right: 16px;
+            margin-right: 10px;
             border-style: none;
           }
 
           .title {
-            font-size: 33px;
-            color: rgba(0, 0, 0, .85);
+            font-size: 30px;
+            color: #fff;
             font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
             font-weight: 600;
             position: relative;
@@ -117,17 +124,15 @@
       }
 
       .main {
-        min-width: 260px;
-        width: 368px;
-        margin: 0 auto;
+        background-color: #fff;
+        width: 1100px;
+        border-radius: 10px;
       }
 
       .footer {
         position: absolute;
         width: 100%;
         bottom: 0;
-        padding: 0 16px;
-        margin: 48px 0 24px;
         text-align: center;
 
         .links {
@@ -142,7 +147,7 @@
           }
         }
         .copyright {
-          color: rgba(0, 0, 0, 0.45);
+          color: #fff;
           font-size: 14px;
         }
       }
diff --git a/src/components/menu/index.js b/src/components/menu/index.js
index fc2124d..d47076c 100644
--- a/src/components/menu/index.js
+++ b/src/components/menu/index.js
@@ -59,7 +59,6 @@
   methods: {
     // select menu item
     onOpenChange (openKeys) {
-
       // 鍦ㄦ按骞虫ā寮忎笅鏃舵墽琛岋紝骞朵笖涓嶅啀鎵ц鍚庣画
       if (this.mode === 'horizontal') {
         this.openKeys = openKeys
@@ -161,13 +160,32 @@
         </Item>
       )
     },
+    handleTitleClick(record,event){
+      this.selectedKeys=[]
+      const routes = this.$route.matched.concat()
+      const { hidden } = this.$route.meta
+
+      if (routes.length >= 3 && hidden) {
+        routes.pop()
+        this.selectedKeys = [routes[routes.length - 1].path]
+      } else {
+        if (record.path === '/dashboard/analysis') {
+          //濡傛灉鏄椤靛垯鐩存帴璺宠浆棣栭〉
+          this.selectedKeys = [record]
+        } else if (record.children && record.children.length > 0) {
+          //濡傛灉涓嶆槸棣栭〉涓旀湁瀛愯彍鍗曞垯灞曞紑鐐瑰嚮鏍囬涓嬬殑鎵�鏈変笉鍚笅绾ц彍鍗曠殑瀛愯彍鍗曡嚦瀵艰埅鏍忓苟鎵撳紑绗竴涓瓙鑿滃崟椤甸潰锛岃嫢瀛愯彍鍗曟爣棰樹笅浠嶆湁涓嬩竴绾ц彍鍗曞垯鍙渶瑕佺偣鍑诲惈涓嬬骇鑿滃崟鐨勫瓙鑿滃崟鏍囬鍗冲彲
+          this.selectedKeys = record.children.filter(item => !item.hidden&&!item.children)
+        }
+      }
+      this.$bus.$emit('clickMenuTitleSelected', this.selectedKeys)
+    },
     renderSubMenu (menu) {
       const itemArr = []
       if (!menu.alwaysShow) {
         menu.children.forEach(item => itemArr.push(this.renderItem(item)))
       }
       return (
-        <SubMenu {...{ key: menu.path }}>
+        <SubMenu {...{ key: menu.path }} onTitleClick={this.handleTitleClick.bind(this.$event,menu)}>
           <span slot="title">
             {this.renderIcon(menu.meta.icon)}
             <span>{menu.meta.title}</span>
diff --git a/src/views/dashboard/Analysis.vue b/src/views/dashboard/Analysis.vue
index 17ea563..3570efe 100644
--- a/src/views/dashboard/Analysis.vue
+++ b/src/views/dashboard/Analysis.vue
@@ -81,5 +81,14 @@
 </script>
 
 <style lang="less" scoped>
-
+  /deep/ .back-nav {
+    width: 100px;
+    height: 30px;
+    color: #fff;
+    position: absolute;
+    top: 15px;
+    left: 10px;
+    cursor: pointer;
+    z-index: 9999
+  }
 </style>
\ No newline at end of file
diff --git a/src/views/dashboard/BranchFactorySignage.vue b/src/views/dashboard/BranchFactorySignage.vue
index 066d3f9..4b15280 100644
--- a/src/views/dashboard/BranchFactorySignage.vue
+++ b/src/views/dashboard/BranchFactorySignage.vue
@@ -1,25 +1,18 @@
 <template>
   <div class="page-container">
-    <!--<div class="page-title">-->
-    <!--<slot name="index_signage_nav"></slot>-->
-    <!--&lt;!&ndash;<dv-decoration-11 class="workshop-nav" v-for="item in workshopList">&ndash;&gt;-->
-    <!--&lt;!&ndash;{{item.workshopName}}&ndash;&gt;-->
-    <!--&lt;!&ndash;</dv-decoration-11>&ndash;&gt;-->
-    <!--</div>-->
     <div class="content-container">
       <div style="width: 25%" class="left-col">
         <div class="back-nav" @click="$emit('backToLastSignage','Index')" v-if="userType===4">
           <dv-decoration-7>涓婁竴绾�</dv-decoration-7>
         </div>
         <dv-border-box-9 style="padding: 30px 20px 0">
-          <!--<div class="first-title">M D C 鍏� 缃� 鎬� 鏁� : 6 0 3 鍙�</div>-->
           <div id="running_state_chart" style="width:100%;height: 400px;"></div>
           <div id="efficiency_chart" style="width: 100%;height: 350px"></div>
         </dv-border-box-9>
       </div>
+
       <div style="width: 42%" class="middle-col">
         <dv-border-box-9 style="padding: 30px 20px 0">
-          <!--<div class="first-title">璁� 澶� 鍙� 璐� 鎬� 鏁� : 1 0 2 2 鍙�</div>-->
           <div style="display: flex">
             <div id="tech_condition_chart" style="width:50%;height: 420px;"></div>
             <div id="warranty_malfunction_chart" style="width:50%;height: 420px;"></div>
@@ -59,6 +52,7 @@
           </div>
         </dv-border-box-9>
       </div>
+
       <div style="width: 32%">
         <dv-border-box-9 style="padding: 30px 0 20px">
           <div id="bar_chart" style="width:100%;height: 280px;"></div>
@@ -1033,12 +1027,6 @@
       color: #fff;
       margin-bottom: 10px;
 
-      .workshop-nav {
-        width: 120px;
-        height: 40px;
-        font-size: 12px;
-        cursor: pointer;
-      }
     }
 
     .content-container {
@@ -1047,17 +1035,6 @@
       justify-content: space-between;
 
       .left-col {
-        .back-nav {
-          width: 100px;
-          height: 30px;
-          color: #fff;
-          position: absolute;
-          top: 25px;
-          left: 25px;
-          cursor: pointer;
-          z-index: 9999
-        }
-
         .first-title {
           color: #00A8AC;
           font-size: 20px;
diff --git a/src/views/dashboard/EquipmentSignage.vue b/src/views/dashboard/EquipmentSignage.vue
index 0938c54..04ac89e 100644
--- a/src/views/dashboard/EquipmentSignage.vue
+++ b/src/views/dashboard/EquipmentSignage.vue
@@ -621,17 +621,6 @@
       .left-col {
         padding: 0 10px 0;
 
-        .back-nav {
-          width: 100px;
-          height: 30px;
-          color: #fff;
-          position: absolute;
-          top: 15px;
-          left: 15px;
-          cursor: pointer;
-          z-index: 9999
-        }
-
         .equipmentId-container {
           height: 100%;
           color: #eee;
diff --git a/src/views/dashboard/IndexSignage.vue b/src/views/dashboard/IndexSignage.vue
index 2832ed4..a3ddd65 100644
--- a/src/views/dashboard/IndexSignage.vue
+++ b/src/views/dashboard/IndexSignage.vue
@@ -1,22 +1,15 @@
 <template>
   <div class="page-container">
-    <!--<div class="page-title">-->
-    <!--<slot name="index_signage_nav"></slot>-->
-    <!--&lt;!&ndash;<dv-decoration-11 class="workshop-nav" v-for="item in workshopList">&ndash;&gt;-->
-    <!--&lt;!&ndash;{{item.workshopName}}&ndash;&gt;-->
-    <!--&lt;!&ndash;</dv-decoration-11>&ndash;&gt;-->
-    <!--</div>-->
     <div class="content-container">
       <div style="width: 25%" class="left-col">
         <dv-border-box-9 style="padding: 30px 20px 0">
-          <!--<div class="first-title">M D C 鍏� 缃� 鎬� 鏁� : 6 0 3 鍙�</div>-->
           <div id="running_state_chart" style="width:100%;height: 300px"></div>
           <div id="efficiency_chart" style="width: 100%;height: 465px"></div>
         </dv-border-box-9>
       </div>
+
       <div style="width: 42%" class="middle-col">
         <dv-border-box-9 style="padding: 30px 20px 0">
-          <!--<div class="first-title">璁� 澶� 鍙� 璐� 鎬� 鏁� : 1 0 2 2 鍙�</div>-->
           <div style="display: flex">
             <div id="tech_condition_chart" style="width:50%;height: 340px;"></div>
             <div id="warranty_malfunction_chart" style="width:50%;height: 340px;"></div>
@@ -64,6 +57,7 @@
           </div>
         </dv-border-box-9>
       </div>
+
       <div style="width: 32%">
         <dv-border-box-9 style="padding: 30px 0 20px">
           <div id="bar_chart" style="width:100%;height: 280px"></div>
@@ -1033,13 +1027,6 @@
       flex-wrap: wrap;
       color: #fff;
       margin-bottom: 10px;
-
-      .workshop-nav {
-        width: 120px;
-        height: 40px;
-        font-size: 12px;
-        cursor: pointer;
-      }
     }
 
     .content-container {
@@ -1047,23 +1034,7 @@
       display: flex;
       justify-content: space-between;
 
-      .left-col {
-        .first-title {
-          color: #00A8AC;
-          font-size: 20px;
-          text-align: center;
-          font-weight: bold;
-        }
-      }
-
       .middle-col {
-        .first-title {
-          color: #00A8AC;
-          font-size: 20px;
-          text-align: center;
-          font-weight: bold;
-        }
-
         .support-plan-container {
           display: flex;
           justify-content: space-around;
diff --git a/src/views/dashboard/WorkshopSectionSignage.vue b/src/views/dashboard/WorkshopSectionSignage.vue
index e010ce2..e5bf1e1 100644
--- a/src/views/dashboard/WorkshopSectionSignage.vue
+++ b/src/views/dashboard/WorkshopSectionSignage.vue
@@ -5,13 +5,14 @@
         <div class="back-nav" @click="$emit('backToLastSignage','BranchFactory')" v-if="userType>=3">
           <dv-decoration-7>涓婁竴绾�</dv-decoration-7>
         </div>
-        <dv-border-box-9 style="padding: 15px">
+
+        <dv-border-box-9 style="padding: 15px 15px 0">
           <div id="tech_condition_chart" style="width:100%;height: 240px;"></div>
           <div id="warranty_malfunction_chart" style="width:100%;height: 240px;"></div>
-          <div style="display: flex;">
-
-            <div style="flex:0.5;display: flex;flex-direction:column;align-items: center">
-              <dv-decoration-11 style="width:90%;height:60px;color: #ccc;font-size: 20px">涓変繚璁″垝</dv-decoration-11>
+          <div>
+            <div style="display: flex;flex-direction:column;align-items: center">
+              <dv-decoration-11 style="width:45%;height:60px;color: #fff;font-size: 20px;align-self: flex-start">涓変繚璁″垝
+              </dv-decoration-11>
               <div class="support-plan-container">
                 <div class="support-plan-item" style="background:#5FE0AF">
                   <div>涓変繚鏈湀璁″垝</div>
@@ -30,21 +31,21 @@
                 <div class="support-plan-item" style="background:#FCAA29">
                   <div>寤舵湡</div>
                   <div class="plan-value-container">
-                    <div class="plan-value">{{nextMonthMaintenancePlanNum}}</div>
+                    <div class="plan-value">{{maintenanceExtensionNum}}</div>
                     <div>鍙�</div>
                   </div>
                 </div>
                 <div class="support-plan-item" style="background:#F56C6C">
                   <div>瓒呮湡</div>
                   <div class="plan-value-container">
-                    <div class="plan-value">{{nextNextMonthMaintenancePlanNum}}</div>
+                    <div class="plan-value">{{maintenanceOverdueNum}}</div>
                     <div>鍙�</div>
                   </div>
                 </div>
                 <div class="support-plan-item" style="background:#D6BC52">
                   <div>涓嬫湀璁″垝</div>
                   <div class="plan-value-container">
-                    <div class="plan-value">{{nextNextMonthMaintenancePlanNum}}</div>
+                    <div class="plan-value">{{nextMonthMaintenancePlanNum}}</div>
                     <div>鍙�</div>
                   </div>
                 </div>
@@ -58,8 +59,12 @@
               </div>
             </div>
 
-            <div style="flex:0.5;display: flex;justify-content: center">
-              <dv-decoration-11 style="width:90%;height:60px;color: #ccc;font-size: 20px">浜屼繚璁″垝</dv-decoration-11>
+            <div style="display: flex;margin-top: 10px;justify-content: space-between;align-items: center;">
+              <dv-decoration-11 style="width:45%;height:60px;font-size: 20px;color: #fff">浜屼繚璁″垝</dv-decoration-11>
+              <div
+                style="flex:1;text-align:center;font-size: 25px;color: #9BD890;overflow: hidden;text-overflow: ellipsis;white-space: nowrap">
+                2024骞�4鏈�1鏃ュぇ淇�
+              </div>
             </div>
           </div>
         </dv-border-box-9>
@@ -136,10 +141,12 @@
         ],
         thisMonthMaintenancePlanNum: 0,
         thisMonthMaintenanceRealNum: 0,
+        maintenanceExtensionNum: 0,
+        maintenanceOverdueNum: 0,
         nextMonthMaintenancePlanNum: 0,
         nextNextMonthMaintenancePlanNum: 0,
         lineChart: '',
-        lineChartData: [],
+        lineChartData: {},
         gaugeChart1: '',
         gaugeChart2: '',
         gaugeChart3: '',
@@ -149,48 +156,7 @@
         gaugeChartData3: [],
         gaugeChartData4: [],
         barChart: '',
-        barChartData: [
-          {
-            name: '2640221',
-            value: 20
-          },
-          {
-            name: '2640222',
-            value: 40
-          },
-          {
-            name: '2640223',
-            value: 70
-          },
-          {
-            name: '2640224',
-            value: 30
-          },
-          {
-            name: '2640225',
-            value: 35
-          },
-          {
-            name: '2640226',
-            value: 80
-          },
-          {
-            name: '2640227',
-            value: 40
-          },
-          {
-            name: '12640220',
-            value: 60
-          },
-          {
-            name: '12640221',
-            value: 40
-          },
-          {
-            name: '12640222',
-            value: 35
-          }
-        ],
+        barChartData: [],
         equipmentId: ''
       }
     },
@@ -209,6 +175,8 @@
         this.getWarrantyMalfunctionDataByApi()
         this.getRunningStateDataByApi()
         this.getMonthMaintenanceNumByApi()
+        this.getLineChartDataByApi()
+        this.getBarChartDataByApi()
       },
 
       /* 璋冪敤鎺ュ彛鑾峰彇鎶�鏈姸鎬� */
@@ -241,15 +209,6 @@
           })
       },
 
-      /* 璋冪敤鎺ュ彛鑾峰彇璁惧杩愯鐘舵�� */
-      getRunningStateDataByApi() {
-        signageApi.getEquipmentStatusStatisticsApi(this.productionCode)
-          .then(res => {
-            if (res.success) this.runningStateData = res.result.list
-            this.drawRunningStateChart(res.result.producitonId)
-          })
-      },
-
       /* 璋冪敤鎺ュ彛鑾峰彇涓変繚璁″垝 */
       getMonthMaintenanceNumByApi() {
         signageApi.getThisMonthMaintenanceListApi(this.productionCode)
@@ -270,12 +229,45 @@
           })
       },
 
+      /* 璋冪敤鎺ュ彛鑾峰彇璁惧杩愯鐘舵�� */
+      getRunningStateDataByApi() {
+        signageApi.getEquipmentStatusStatisticsApi(this.productionCode)
+          .then(res => {
+            if (res.success) this.runningStateData = res.result.list
+            this.drawRunningStateChart(res.result.producitonId)
+          })
+      },
+
+      /* 璋冪敤鎺ュ彛鑾峰彇鍓�7澶╁埄鐢ㄧ巼 */
+      getLineChartDataByApi() {
+        signageApi.getEquipmentDayUtilizationStatisticsApi(this.productionCode)
+          .then(res => {
+            if (res.success) this.lineChartData = res.result
+            this.drawLineChart()
+          })
+      },
+
+      getBarChartDataByApi() {
+        signageApi.getEquipmentOEEMonthStatisticsApi(this.productionCode)
+          .then(res => {
+            console.log('res=', res)
+            if (res.success) {
+              this.barChartData = res.result.map(item => {
+                return {
+                  name: item.equipmentId,
+                  value: item.overallEquipmentEfficiency
+                }
+              })
+            }
+            this.drawBarChart()
+          })
+      },
+
       /* 缁樺埗鍥捐〃姹囨�绘柟娉� */
       drawCharts() {
         this.drawRunningStateChart()
         this.drawTechConditionChart()
         this.drawWarrantyMalfunctionChart()
-        this.drawLineChart()
         this.drawGaugeChart()
         this.drawBarChart()
       },
@@ -288,7 +280,7 @@
             show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
             text: '鎶�鏈姸鎬�', // 涓绘爣棰樻枃鏈�
             x: 'left', // 鏍囬姘村钩瀹夋斁浣嶇疆锛屽彲閫夊�间负'left'銆�'center'銆�'right'鎴栧叿浣撶殑姘村钩鍧愭爣鍊�
-            y: 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊�
+            y: this.userType >= 3 ? '25' : 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊�
             textStyle: {
               // 涓绘爣棰樻枃鏈牱寮�
               fontSize: 18,
@@ -481,7 +473,7 @@
           series: [
             {
               type: 'pie',
-              // roseType: 'angle', // 鐜懓鍥�
+              roseType: 'angle', // 鐜懓鍥�
               // selectedMode: "single",
               radius: ['35%', '55%'],
               center: ['50%', '50%'],
@@ -527,19 +519,19 @@
       drawLineChart() {
         this.lineChart = this.$echarts.init(document.getElementById('line_chart'))
         const newData = {
-          xAxis: ['3鏈�19鏃�', '3鏈�20鏃�', '3鏈�21鏃�', '3鏈�22鏃�', '3鏈�23鏃�', '3鏈�24鏃�', '3鏈�25鏃�'],
+          xAxis: this.lineChartData.dateList,
           yAxis: [
             {
               name: '鍒╃敤鐜�',
-              value: [200, 600, 550, 360, 520, 520, 630]
+              value: this.lineChartData.dataList.map(item => item.utilizationRate)
             },
             {
               name: '寮�鍔ㄧ巼',
-              value: [230, 630, 440, 400, 740, 800, 600]
+              value: this.lineChartData.dataList.map(item => item.startRate)
             },
             {
               name: '寮�鏈虹巼',
-              value: [900, 700, 400, 700, 800, 605, 730]
+              value: this.lineChartData.dataList.map(item => item.openRate)
             }
           ],
           yAxisName: '鍓�7澶╁埄鐢ㄧ巼(%)'
@@ -680,15 +672,6 @@
           // }
         }
         this.lineChart.setOption(option, true)
-        // if (newData.xAxis.length <= 6) return
-        // this.lineChartCarouselTime = setInterval(() => {
-        //   this.barChartData.push(this.barChartData.shift())
-        //   newData.xAxis.push(newData.xAxis.shift())
-        //   newData.yAxis.forEach(item => item.value.push(item.value.shift()))
-        //   this.$nextTick(() => {
-        //     this.lineChart.setOption(option, true)
-        //   })
-        // }, 3000)
       },
 
       /* 缁樺埗浠〃鐩樺浘琛� */
@@ -831,7 +814,7 @@
           height: 260,
           title: {
             show: true, // 鏄惁鏄剧ず鏍囬锛岄粯璁や负true
-            text: '涓婁釜鏈圤EE', // 涓绘爣棰樻枃鏈�
+            text: '', // 涓绘爣棰樻枃鏈�
             x: 'center', // 鏍囬姘村钩瀹夋斁浣嶇疆锛屽彲閫夊�间负'left'銆�'center'銆�'right'鎴栧叿浣撶殑姘村钩鍧愭爣鍊�
             y: 'top', // 鏍囬鍨傜洿瀹夋斁浣嶇疆锛屽彲閫夊�间负'top'銆�'bottom'銆�'center'鎴栧叿浣撶殑鍨傜洿鍧愭爣鍊�
             textStyle: {
@@ -987,12 +970,6 @@
       color: #fff;
       margin-bottom: 10px;
 
-      .workshop-nav {
-        width: 120px;
-        height: 40px;
-        font-size: 12px;
-        cursor: pointer;
-      }
     }
 
     .content-container {
@@ -1001,28 +978,17 @@
       justify-content: space-between;
 
       .left-col {
-        .back-nav {
-          width: 100px;
-          height: 30px;
-          color: #fff;
-          position: absolute;
-          top: 50px;
-          left: 10px;
-          cursor: pointer;
-          z-index: 9999
-        }
-
         .support-plan-container {
           width: 100%;
           display: flex;
           justify-content: space-around;
           flex-wrap: wrap;
           color: #fff;
-          padding-top: 5px;
+          padding-top: 20px;
 
           .support-plan-item {
             border-radius: 3px;
-            width: 45%;
+            width: 30%;
             padding: 5px 10px;
             margin-bottom: 10px;
 
@@ -1038,15 +1004,6 @@
               }
             }
           }
-        }
-      }
-
-      .middle-col {
-        .first-title {
-          color: #00A8AC;
-          font-size: 20px;
-          text-align: center;
-          font-weight: bold;
         }
       }
 
diff --git a/src/views/user/Login.vue b/src/views/user/Login.vue
index 22d89e3..ff89d12 100644
--- a/src/views/user/Login.vue
+++ b/src/views/user/Login.vue
@@ -1,60 +1,75 @@
 <template>
   <div class="main">
-    <a-form-model
-      class="user-layout-login"
-      @keyup.enter.native="handleSubmit"
-    >
-      <a-tabs
-        :activeKey="customActiveKey"
-        :tabBarStyle="{ textAlign: 'center', borderBottom: 'unset' }"
-        @change="handleTabClick"
-      >
-        <a-tab-pane
-          key="tab1"
-          tab="璐﹀彿瀵嗙爜鐧诲綍"
+    <div style="display: flex;padding: 50px;">
+
+      <div style="flex: 1;display: flex;align-items: center;justify-content: center;position: relative">
+        <div class="top">
+          <div class="header">
+            <a href="/">
+              <img src="~@/assets/lxzn.png" class="logo" alt="logo">
+              <span class="title">MDC鏅烘収杞﹂棿</span>
+            </a>
+          </div>
+        </div>
+        <img src="@/assets/login.jpeg" width="60%">
+      </div>
+      <div style="width: 368px;margin: 30px 50px">
+        <a-form-model
+          class="user-layout-login"
+          @keyup.enter.native="handleSubmit"
         >
-          <login-account
-            ref="alogin"
-            @validateFail="validateFail"
-            @success="requestSuccess"
-            @fail="requestFailed"
-          ></login-account>
-        </a-tab-pane>
+          <a-tabs
+            :activeKey="customActiveKey"
+            :tabBarStyle="{ textAlign: 'center', borderBottom: 'unset' }"
+            @change="handleTabClick"
+          >
+            <a-tab-pane
+              key="tab1"
+              tab="璐﹀彿瀵嗙爜鐧诲綍"
+            >
+              <login-account
+                ref="alogin"
+                @validateFail="validateFail"
+                @success="requestSuccess"
+                @fail="requestFailed"
+              ></login-account>
+            </a-tab-pane>
 
-        <!--<a-tab-pane key="tab2" tab="鎵嬫満鍙风櫥褰�">-->
-        <!--<login-phone ref="plogin" @validateFail="validateFail" @success="requestSuccess" @fail="requestFailed"></login-phone>-->
-        <!--</a-tab-pane>-->
-      </a-tabs>
+            <!--<a-tab-pane key="tab2" tab="鎵嬫満鍙风櫥褰�">-->
+            <!--<login-phone ref="plogin" @validateFail="validateFail" @success="requestSuccess" @fail="requestFailed"></login-phone>-->
+            <!--</a-tab-pane>-->
+          </a-tabs>
 
-      <a-form-model-item>
-        <!--<a-checkbox @change="handleRememberMeChange" default-checked>鑷姩鐧诲綍</a-checkbox>-->
-        <!--<router-link :to="{ name: 'alteration'}" class="forge-password" style="float: right;">-->
-        <!--蹇樿瀵嗙爜-->
-        <!--</router-link>-->
-        <!--<router-link :to="{ name: 'register'}" class="forge-password" style="float: right;margin-right: 10px" >-->
-        <!--娉ㄥ唽璐︽埛-->
-        <!--</router-link>-->
-      </a-form-model-item>
+          <a-form-model-item>
+            <!--<a-checkbox @change="handleRememberMeChange" default-checked>鑷姩鐧诲綍</a-checkbox>-->
+            <!--<router-link :to="{ name: 'alteration'}" class="forge-password" style="float: right;">-->
+            <!--蹇樿瀵嗙爜-->
+            <!--</router-link>-->
+            <!--<router-link :to="{ name: 'register'}" class="forge-password" style="float: right;margin-right: 10px" >-->
+            <!--娉ㄥ唽璐︽埛-->
+            <!--</router-link>-->
+          </a-form-model-item>
 
-      <a-form-item style="margin-top:24px">
-        <a-button
-          size="large"
-          type="primary"
-          htmlType="submit"
-          class="login-button"
-          :loading="loginBtn"
-          @click.stop.prevent="handleSubmit"
-          :disabled="loginBtn"
-        >纭畾
-        </a-button>
-      </a-form-item>
+          <a-form-item style="margin-top:24px">
+            <a-button
+              size="large"
+              type="primary"
+              htmlType="submit"
+              class="login-button"
+              :loading="loginBtn"
+              @click.stop.prevent="handleSubmit"
+              :disabled="loginBtn"
+            >纭畾
+            </a-button>
+          </a-form-item>
 
-      <a-form-model-item style="color: red">
-        瀵嗙骇锛氬唴閮�&nbsp;&nbsp;&nbsp;&nbsp;璀﹀憡锛氭湰绯荤粺绂佹瀛樺偍銆佸鐞嗐�佷紶杈撴秹瀵嗕俊鎭�
-      </a-form-model-item>
+          <a-form-model-item style="color: red">
+            瀵嗙骇锛氬唴閮�&nbsp;&nbsp;&nbsp;&nbsp;璀﹀憡锛氭湰绯荤粺绂佹瀛樺偍銆佸鐞嗐�佷紶杈撴秹瀵嗕俊鎭�
+          </a-form-model-item>
 
-    </a-form-model>
-
+        </a-form-model>
+      </div>
+    </div>
     <!--<two-step-captcha v-if="requiredTwoStepCaptcha" :visible="stepCaptchaVisible" @success="stepCaptchaSuccess" @cancel="stepCaptchaCancel"></two-step-captcha>-->
     <login-select-tenant
       ref="loginSelect"
@@ -66,225 +81,274 @@
 </template>
 
 <script>
-import Vue from 'vue'
-import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types'
-// import ThirdLogin from './third/ThirdLogin'
-import LoginSelectTenant from './LoginSelectTenant'
-import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha'
-import { getEncryptedString } from '@/utils/encryption/aesEncrypt'
-import { timeFix } from '@/utils/util'
+  import Vue from 'vue'
+  import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types'
+  // import ThirdLogin from './third/ThirdLogin'
+  import LoginSelectTenant from './LoginSelectTenant'
+  import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha'
+  import { getEncryptedString } from '@/utils/encryption/aesEncrypt'
+  import { timeFix } from '@/utils/util'
 
-import LoginAccount from './LoginAccount'
-import LoginPhone from './LoginPhone'
-import store from '@/store'
-import { getAction } from '../../api/manage'
-import UserPassword from '../../components/tools/UserPassword'
+  import LoginAccount from './LoginAccount'
+  import LoginPhone from './LoginPhone'
+  import store from '@/store'
+  import { getAction } from '../../api/manage'
+  import UserPassword from '../../components/tools/UserPassword'
 
-export default {
-  components: {
-    UserPassword,
-    LoginSelectTenant,
-    TwoStepCaptcha,
-    // ThirdLogin,
-    LoginAccount,
-    LoginPhone,
-    store
-  },
-  data() {
-    return {
-      customActiveKey: 'tab1',
-      rememberMe: true,
-      loginBtn: false,
-      requiredTwoStepCaptcha: false,
-      stepCaptchaVisible: false,
-      encryptedString: {
-        key: "",
-        iv: "",
+  export default {
+    components: {
+      UserPassword,
+      LoginSelectTenant,
+      TwoStepCaptcha,
+      // ThirdLogin,
+      LoginAccount,
+      LoginPhone,
+      store
+    },
+    data() {
+      return {
+        customActiveKey: 'tab1',
+        rememberMe: true,
+        loginBtn: false,
+        requiredTwoStepCaptcha: false,
+        stepCaptchaVisible: false,
+        encryptedString: {
+          key: '',
+          iv: ''
+        },
+        url: {
+          getPrimaryInfo: '/sys/sysAnnouncementSend/getPrimaryInfo'
+        }
+      }
+    },
+    created() {
+      Vue.ls.remove(ACCESS_TOKEN)
+      this.getRouterData()
+      this.rememberMe = true
+    },
+    methods: {
+      handleTabClick(key) {
+        this.customActiveKey = key
       },
-      url: {
-        getPrimaryInfo: "/sys/sysAnnouncementSend/getPrimaryInfo"
-      }
-    }
-  },
-  created() {
-    Vue.ls.remove(ACCESS_TOKEN)
-    this.getRouterData();
-    this.rememberMe = true
-  },
-  methods: {
-    handleTabClick(key) {
-      this.customActiveKey = key
-    },
-    handleRememberMeChange(e) {
-      this.rememberMe = e.target.checked
-    },
-    /**璺宠浆鍒扮櫥褰曢〉闈㈢殑鍙傛暟-璐﹀彿鑾峰彇*/
-    getRouterData() {
-      this.$nextTick(() => {
-        let temp = this.$route.params.username || this.$route.query.username || ''
-        if (temp) {
-          this.$refs.alogin.acceptUsername(temp)
-        }
-      })
-    },
-
-    //鐧诲綍
-    handleSubmit() {
-      this.loginBtn = true;
-      if (this.customActiveKey === 'tab1') {
-        // 浣跨敤璐︽埛瀵嗙爜鐧诲綍
-        this.$refs.alogin.handleLogin(this.rememberMe)
-      } else {
-        //鎵嬫満鍙风爜鐧诲綍
-        this.$refs.plogin.handleLogin(this.rememberMe)
-      }
-    },
-    // 鏍¢獙澶辫触
-    validateFail() {
-      this.loginBtn = false;
-    },
-    // 鐧诲綍鍚庡彴鎴愬姛
-    requestSuccess(loginResult) {
-      // this.$router.push({ path: "/isps/userAnnouncement" }).catch(() => {
-      //   console.log('鐧诲綍璺宠浆棣栭〉鍑洪敊,杩欎釜閿欒浠庡摢閲屾潵鐨�')
-      // })
-      this.$router.push({ path: "/dashboard/analysis" }).catch(() => {
-        console.log('鐧诲綍璺宠浆棣栭〉鍑洪敊,杩欎釜閿欒浠庡摢閲屾潵鐨�')
-      })
-      this.$notification.success({
-        message: '娆㈣繋',
-        description: `${timeFix()}锛屾杩庡洖鏉,
-      });
-      var userId = store.getters.userInfo.id;
-      let that = this;
-      getAction(this.url.getPrimaryInfo, { userId: userId }).then(res => {
-        if (res.success) {
-          for (var i = 0; i < res.result.length; i++) {
-            that.$notification.success({
-              message: '鏈�鏂版湭璇绘秷鎭��' + res.result[i].msgCategory + '銆�',
-              description: res.result[i].msgContent,
-              duration: 60,
-              icon: <a-icon type="exclamation-circle" style="color:red" />,
-            });
+      handleRememberMeChange(e) {
+        this.rememberMe = e.target.checked
+      },
+      /**璺宠浆鍒扮櫥褰曢〉闈㈢殑鍙傛暟-璐﹀彿鑾峰彇*/
+      getRouterData() {
+        this.$nextTick(() => {
+          let temp = this.$route.params.username || this.$route.query.username || ''
+          if (temp) {
+            this.$refs.alogin.acceptUsername(temp)
           }
+        })
+      },
+
+      //鐧诲綍
+      handleSubmit() {
+        this.loginBtn = true
+        if (this.customActiveKey === 'tab1') {
+          // 浣跨敤璐︽埛瀵嗙爜鐧诲綍
+          this.$refs.alogin.handleLogin(this.rememberMe)
+        } else {
+          //鎵嬫満鍙风爜鐧诲綍
+          this.$refs.plogin.handleLogin(this.rememberMe)
         }
-      })
-      // this.$refs.loginSelect.show(loginResult)
-    },
-    //鐧诲綍鍚庡彴澶辫触
-    requestFailed(err,username) {
-      let description = ((err.response || {}).data || {}).message || err.message || "璇锋眰鍑虹幇閿欒锛岃绋嶅悗鍐嶈瘯"
-      if(err.code!==5001&&err.code!==5002){
-        this.$notification['error']({
-          message: '鐧诲綍澶辫触',
-          description: description,
-          duration: 4,
-        });
-      }else{
-        this.$notification['warning']({
-          message: '鎻愮ず',
-          description: description,
-          duration:1,
-          onClose:()=>{
-            console.log('err',err)
-            this.$refs.userPassword.show(username)
-          }
-        });
-      }
-      //璐︽埛瀵嗙爜鐧诲綍閿欒鍚庢洿鏂伴獙璇佺爜
-      // if (this.customActiveKey === 'tab1' && description.indexOf('瀵嗙爜閿欒') > 0) {
-      //   this.$refs.alogin.handleChangeCheckCode()
-      // }
-      this.loginBtn = false;
-    },
-    loginSelectOk() {
-      this.loginSuccess()
-    },
-    //鐧诲綍鎴愬姛
-    loginSuccess() {
-      this.$router.push({ path: "/isps/userAnnouncement" }).catch(() => {
-        console.log('鐧诲綍璺宠浆棣栭〉鍑洪敊,杩欎釜閿欒浠庡摢閲屾潵鐨�')
-      })
-      this.$notification.success({
-        message: '娆㈣繋',
-        description: `${timeFix()}锛屾杩庡洖鏉,
-      });
-
-    },
-
-    stepCaptchaSuccess() {
-      this.loginSuccess()
-    },
-    stepCaptchaCancel() {
-      this.Logout().then(() => {
+      },
+      // 鏍¢獙澶辫触
+      validateFail() {
         this.loginBtn = false
-        this.stepCaptchaVisible = false
-      })
-    },
-    //鑾峰彇瀵嗙爜鍔犲瘑瑙勫垯
-    getEncrypte() {
-      var encryptedString = Vue.ls.get(ENCRYPTED_STRING);
-      if (encryptedString == null) {
-        getEncryptedString().then((data) => {
-          this.encryptedString = data
-        });
-      } else {
-        this.encryptedString = encryptedString;
+      },
+      // 鐧诲綍鍚庡彴鎴愬姛
+      requestSuccess(loginResult) {
+        // this.$router.push({ path: "/isps/userAnnouncement" }).catch(() => {
+        //   console.log('鐧诲綍璺宠浆棣栭〉鍑洪敊,杩欎釜閿欒浠庡摢閲屾潵鐨�')
+        // })
+        this.$router.push({ path: '/dashboard/analysis' }).catch(() => {
+          console.log('鐧诲綍璺宠浆棣栭〉鍑洪敊,杩欎釜閿欒浠庡摢閲屾潵鐨�')
+        })
+        this.$notification.success({
+          message: '娆㈣繋',
+          description: `${timeFix()}锛屾杩庡洖鏉
+        })
+        var userId = store.getters.userInfo.id
+        let that = this
+        getAction(this.url.getPrimaryInfo, { userId: userId }).then(res => {
+          if (res.success) {
+            for (var i = 0; i < res.result.length; i++) {
+              that.$notification.success({
+                message: '鏈�鏂版湭璇绘秷鎭��' + res.result[i].msgCategory + '銆�',
+                description: res.result[i].msgContent,
+                duration: 60,
+                icon: <a-icon type = 'exclamation-circle'style = 'color:red' / >,
+            })
+
+            }
+          }
+        })
+        // this.$refs.loginSelect.show(loginResult)
+      },
+      //鐧诲綍鍚庡彴澶辫触
+      requestFailed(err, username) {
+        let description = ((err.response || {}).data || {}).message || err.message || '璇锋眰鍑虹幇閿欒锛岃绋嶅悗鍐嶈瘯'
+        if (err.code !== 5001 && err.code !== 5002) {
+          this.$notification['error']({
+            message: '鐧诲綍澶辫触',
+            description: description,
+            duration: 4
+          })
+        } else {
+          this.$notification['warning']({
+            message: '鎻愮ず',
+            description: description,
+            duration: 1,
+            onClose: () => {
+              console.log('err', err)
+              this.$refs.userPassword.show(username)
+            }
+          })
+        }
+        //璐︽埛瀵嗙爜鐧诲綍閿欒鍚庢洿鏂伴獙璇佺爜
+        // if (this.customActiveKey === 'tab1' && description.indexOf('瀵嗙爜閿欒') > 0) {
+        //   this.$refs.alogin.handleChangeCheckCode()
+        // }
+        this.loginBtn = false
+      },
+      loginSelectOk() {
+        this.loginSuccess()
+      },
+      //鐧诲綍鎴愬姛
+      loginSuccess() {
+        this.$router.push({ path: '/isps/userAnnouncement' }).catch(() => {
+          console.log('鐧诲綍璺宠浆棣栭〉鍑洪敊,杩欎釜閿欒浠庡摢閲屾潵鐨�')
+        })
+        this.$notification.success({
+          message: '娆㈣繋',
+          description: `${timeFix()}锛屾杩庡洖鏉
+        })
+
+      },
+
+      stepCaptchaSuccess() {
+        this.loginSuccess()
+      },
+      stepCaptchaCancel() {
+        this.Logout().then(() => {
+          this.loginBtn = false
+          this.stepCaptchaVisible = false
+        })
+      },
+      //鑾峰彇瀵嗙爜鍔犲瘑瑙勫垯
+      getEncrypte() {
+        var encryptedString = Vue.ls.get(ENCRYPTED_STRING)
+        if (encryptedString == null) {
+          getEncryptedString().then((data) => {
+            this.encryptedString = data
+          })
+        } else {
+          this.encryptedString = encryptedString
+        }
       }
+
     }
 
   }
-
-}
 </script>
 <style lang="less" scoped>
-.user-layout-login {
-  label {
-    font-size: 14px;
-  }
-  .getCaptcha {
-    display: block;
-    width: 100%;
-    height: 40px;
-  }
+  .user-layout-login {
+    label {
+      font-size: 14px;
+    }
+    .getCaptcha {
+      display: block;
+      width: 100%;
+      height: 40px;
+    }
 
-  .forge-password {
-    font-size: 14px;
-  }
+    .forge-password {
+      font-size: 14px;
+    }
 
-  button.login-button {
-    padding: 0 15px;
-    font-size: 16px;
-    height: 40px;
-    width: 100%;
-  }
+    button.login-button {
+      padding: 0 15px;
+      font-size: 16px;
+      height: 40px;
+      width: 100%;
+    }
 
-  .user-login-other {
-    text-align: left;
-    margin-top: 24px;
-    line-height: 22px;
+    .user-login-other {
+      text-align: left;
+      margin-top: 24px;
+      line-height: 22px;
 
-    .item-icon {
-      font-size: 24px;
-      color: rgba(0, 0, 0, 0.2);
-      margin-left: 16px;
-      vertical-align: middle;
-      cursor: pointer;
-      transition: color 0.3s;
+      .item-icon {
+        font-size: 24px;
+        color: rgba(0, 0, 0, 0.2);
+        margin-left: 16px;
+        vertical-align: middle;
+        cursor: pointer;
+        transition: color 0.3s;
 
-      &:hover {
-        color: #1890ff;
+        &:hover {
+          color: #1890ff;
+        }
+      }
+
+      .register {
+        float: right;
       }
     }
+  }
 
-    .register {
-      float: right;
+  /deep/ .ant-tabs-tab-active.ant-tabs-tab {
+    font-size: 25px;
+  }
+
+  .top {
+    text-align: center;
+    position: absolute;
+    top: 45px;
+
+    .header {
+      height: 44px;
+      line-height: 44px;
+
+      .badge {
+        position: absolute;
+        display: inline-block;
+        line-height: 1;
+        vertical-align: middle;
+        margin-left: -12px;
+        margin-top: -10px;
+        opacity: 0.8;
+      }
+
+      .logo {
+        height: 44px;
+        vertical-align: top;
+        margin-right: 10px;
+        border-style: none;
+      }
+
+      .title {
+        font-size: 30px;
+        color: #000;
+        font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+        font-weight: 600;
+        position: relative;
+        top: 2px;
+      }
+    }
+    .desc {
+      font-size: 14px;
+      color: rgba(0, 0, 0, 0.45);
+      margin-top: 12px;
+      margin-bottom: 40px;
     }
   }
-}
+
 </style>
 <style>
-.valid-error .ant-select-selection__placeholder {
-  color: #f5222d;
-}
+  .valid-error .ant-select-selection__placeholder {
+    color: #f5222d;
+  }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3