Browse Source

合并代码

fujunwen 4 years ago
parent
commit
b0ad7ceeba

+ 7 - 0
package.json

@@ -8,12 +8,19 @@
     "lint": "vue-cli-service lint"
   },
   "dependencies": {
+    "@mapbox/geojson-merge": "^1.1.1",
+    "@saga-web/base": "2.1.19",
+    "@saga-web/big": "1.0.40",
+    "@saga-web/draw": "2.1.94",
+    "@saga-web/feng-map": "1.0.11",
+    "@saga-web/graph": "2.1.82",
     "ant-design-vue": "^1.4.10",
     "axios": "^0.19.2",
     "core-js": "^3.4.4",
     "element-ui": "^2.13.2",
     "leaflet": "^1.6.0",
     "leaflet-contextmenu": "^1.4.0",
+    "lodash": "^4.17.19",
     "meri-design": "^1.2.8",
     "moment": "^2.24.0",
     "quill": "^1.3.7",

+ 6 - 6
public/systemConf.js

@@ -21,14 +21,14 @@
  */
 var __systemConf = {
     // 系统编码
-    systemCode: "wandaBmGuide",
+    systemCode: 'wandaBmGuide',
     conf: {
         // 阿里云
-        // editerUrl: "http://60.205.177.43:80/wandaEditer/", // 编辑器地址
-        // wandaBmGuideUrl: "http://60.205.177.43:80/wandaBmGuide/", //管理书地址
+        editerUrl: 'http://60.205.177.43:80/wandaEditer/', // 编辑器地址
+        wandaBmGuideUrl: 'http://60.205.177.43:80/wandaBmGuide/', //管理书地址
         // http://glsms.wanda-dev.cn/ 测试服
-        editerUrl: "http://glsms.wanda-dev.cn/wandaEditer/", // 编辑器地址
-        wandaBmGuideUrl: "http://glsms.wanda-dev.cn/wandaBmGuide/", //管理书地址
+        // editerUrl: "http://glsms.wanda-dev.cn/wandaEditer/", // 编辑器地址
+        // wandaBmGuideUrl: "http://glsms.wanda-dev.cn/wandaBmGuide/", //管理书地址
     },
 }
-window.__systemConf = __systemConf
+window.__systemConf = __systemConf

+ 8 - 4
src/App.vue

@@ -26,7 +26,7 @@ export default {
     // 页面加载完成后,移除session里的存储的信息
     window.addEventListener("load", this.load);
     // 请求该项目下的楼层数据
-    this.getFengMap();
+    // this.getFengMap();
   },
   computed: {
     ...mapGetters(["plazaId", "fmapID", "haveFengMap"])
@@ -39,9 +39,13 @@ export default {
       const state = this.$store.state;
       sessionStorage.setItem("state", JSON.stringify(state));
     },
-
-    load() {
-      sessionStorage.clear();
+    mounted() {
+        // 监听页面刷新事件
+        window.addEventListener('unload', this.unload)
+        // 页面加载完成后,移除session里的存储的信息
+        window.addEventListener('load', this.load)
+        // 请求该项目下的楼层数据
+        this.getFengMap()
     },
     getFengMap() {
       if (!this.fmapID) {

+ 18 - 10
src/api/coreDeviceReport.js

@@ -5,23 +5,31 @@
  * @LastEditors: your name
  * @Description: In User Settings Edit
  * @FilePath: \wanda-bm-guide\src\api\coreDeviceReport.js
- */ 
+ */
+
 // 核心设备报表 接口
 import httputils from '@/api/httputils'
 
+<<<<<<< HEAD
+// 系统列表
+// export function queryEquipmentList() {
+//     return httputils.getJson(`/data/v_glsms_systemcfg/querySmsxt`)
+// }
+=======
 /**
  * 系统列表
  */
 export function querySystemList() {
   return httputils.getJson(`/data/v_glsms_systemcfg/querySmsxt`);
 }
+>>>>>>> develop-cd-xxd
 /**
  * 系统下的设备
- * @param { 接口地址 } url 
- * @param { 接口参数 } getParams 
+ * @param { 接口地址 } url
+ * @param { 接口参数 } getParams
  */
 export function queryEquipmentList(url, getParams) {
-  return  httputils.getJson(url, getParams);
+    return httputils.getJson(url, getParams)
 }
 /**
  * 表数据
@@ -32,18 +40,18 @@ export function queryTableData(url, postParams) {
 
 /**
  * 设备台账下所有历史事项信息
- * @param { 接口地址 } url 
- * @param { 接口参数 } getParams 
+ * @param { 接口地址 } url
+ * @param { 接口参数 } getParams
  */
 export function queryHistoryTableData(url, getParams) {
-  return  httputils.getJson(url, getParams);
+    return httputils.getJson(url, getParams)
 }
 
 /**
  * 获取图片/报告详情
- * @param { 接口地址 } url 
- * @param { 接口参数 } getParams 
+ * @param { 接口地址 } url
+ * @param { 接口参数 } getParams
  */
 export function queryDetailData(url, getParams) {
-  return  httputils.getJson(url, getParams);
+    return httputils.getJson(url, getParams)
 }

+ 5 - 2
src/api/httputils.js

@@ -21,17 +21,20 @@ axiosservice.interceptors.request.use(
     (config) => {
         config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
         let token = store.getters['ssoToken']
-        let isPreview = store.getters["isPreview"]
+        let isPreview = store.getters['isPreview']
         if (config.url.indexOf('mapapp') < 0) {
             config.headers = {
-                "sso-token": token,
+                'sso-token': token,
                 isPreview: isPreview, //默认false,当预览开启的时候是true
+<<<<<<< HEAD
+=======
             }
         }
         // if (config.url.indexOf('/data') > -1 && config.url !== '/data/data/auth/check') {
         if (config.url.indexOf('/data') > -1) {
             config.headers = {
                 'sso-token': 'admin:xiejialin1',
+>>>>>>> develop-cd-xxd
             }
         }
         return config

+ 4 - 0
src/api/legendLibrary.js

@@ -72,9 +72,13 @@ export function graphElementSearch({ postParams }) {
 // }
 
 // 业下设备分类和位置分类树形结构
+<<<<<<< HEAD
+export function queryDeviceAndPOsition({ postParams }) {
+=======
 export function queryDeviceAndPOsition({
     postParams
 }) {
+>>>>>>> develop-cd-xxd
     return httputils.postJson(`/data/t_system_wzfl/query`, postParams)
 }
 

+ 2 - 2
src/components/Legend/src/legend.vue

@@ -136,7 +136,7 @@ export default {
         }
     },
     computed: {
-        ...mapGetters(['plazaId', 'fmapID', 'floorSelect', 'isMessage'])
+        ...mapGetters(['plazaId', 'fmapID', 'floorSelect', 'isMessage', 'ssoToken'])
     },
     props: {
         floors: {
@@ -287,7 +287,7 @@ export default {
                 { editerUrl } = conf
             let floorName = this.floorName ? this.floorName : this.$cookie.get('floorNow')
             let seq = this.$cookie.get('currentFloorId')
-            let data = `categoryId=${categoryId}&projectId=${this.plazaId}&BuildingID=1&FloorID=${FloorID}&FloorName=${floorName}&fmapID=${this.fmapID}&seq=${seq}`
+            let data = `categoryId=${categoryId}&projectId=${this.plazaId}&BuildingID=1&FloorID=${FloorID}&FloorName=${floorName}&fmapID=${this.fmapID}&seq=${seq}&token=${this.ssoToken}`
             let url = editerUrl + 'editer?' + encodeURIComponent(data)
             window.open(url, true)
         },

+ 4 - 5
src/components/menuList.vue

@@ -52,7 +52,7 @@ export default {
                 { name: '楼层功能', state: false, route: 'floorFunc' }, //楼层功能
                 { name: '设备设施', state: false, route: 'equipment' }, //设备设施
                 { name: '其他事项', state: false, route: 'other' }, //其他
-                { name: '分析 | 报表', state: false, route: 'analysis' }
+                { name: '分析|报表', state: false, route: 'analysis' }
             ],
             times: `${new Date().getFullYear()}.${formatTime(new Date().getMonth() + 1)}.${formatTime(new Date().getDate())} ${formatTime(
                 new Date().getHours()
@@ -175,7 +175,7 @@ export default {
         dumpLegend() {
             const { conf } = window.__systemConf,
                 { wandaBmGuideUrl } = conf
-            window.open(`${wandaBmGuideUrl}home/legendLibrary`, true)
+            window.open(`${wandaBmGuideUrl}home/legendLibrary?token=${this.$store.state.ssoToken}`, true)
         }
     }
 }
@@ -242,9 +242,9 @@ export default {
             text-align: center;
             //background: url('../assets/images/topbar1.png') no-repeat;
             float: left;
-            width: 80px;
+            width: 88px;
             height: 48px;
-            margin: 0 12px;
+            margin: 0 8px;
             cursor: pointer;
             transition: all 0.2s;
         }
@@ -252,7 +252,6 @@ export default {
             color: #025baa;
             font-weight: bolder;
             border-bottom: 2px solid #025baa;
-            padding: 0 8px;
             background: linear-gradient(180deg, rgba(2, 91, 170, 0) 0%, rgba(2, 91, 170, 0.2) 100%);
         }
     }

+ 1 - 1
src/lib/items/SFHFQZoneLegendItem.ts

@@ -1,5 +1,5 @@
 
-import { SGraphItem } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
 import { Legend } from '../types/Legend';
 import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
 import { STextItem } from '@saga-web/graph/lib';

+ 1 - 1
src/lib/items/SSCPZZoneLegendItem.ts

@@ -1,5 +1,5 @@
 
-import { SGraphItem } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
 import { Legend } from '../types/Legend';
 import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
 import { STextItem } from '@saga-web/graph/lib';

+ 1 - 1
src/lib/items/SZoneLegendItem.ts

@@ -1,5 +1,5 @@
 
-import { SGraphItem } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
 import { Legend } from '../types/Legend';
 import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
 import { STextItem } from '@saga-web/graph/lib';

+ 1 - 1
src/main.js

@@ -63,4 +63,4 @@ new Vue({
     router,
     store,
     render: (h) => h(App),
-}).$mount('#app')
+}).$mount('#app')

+ 7 - 7
src/main.ts

@@ -36,13 +36,13 @@ const username = 'lengqiang'
 /////////////////
 // 在跳入路由之前要请求获取权限信息
 console.log(store.state.isrequestAuth)
-router.beforeEach(async (to, from, next) => {
-    if (!store.state.isrequestAuth) {
-        await store.dispatch('getUserInfo', username)
-        await store.dispatch('getFloors')
-    }
-    next()
-})
+// router.beforeEach(async (to, from, next) => {
+//     if (!store.state.isrequestAuth) {
+//         await store.dispatch('getUserInfo', username)
+//         await store.dispatch('getFloors')
+//     }
+//     next()
+// })
 new Vue({
     router,
     store,

+ 22 - 25
src/router/index.js

@@ -1,16 +1,13 @@
-import Vue from "vue"
-import store from "@/store"
-import VueRouter from "vue-router"
-import {
-    query
-} from "@/utils/query"
+import Vue from 'vue'
+import store from '@/store'
+import VueRouter from 'vue-router'
+import { query } from '@/utils/query'
 Vue.use(VueRouter)
-
 const routes = [
     // 登陆页面
     {
-        path: "/",
-        redirect: "/home/overview",
+        path: '/',
+        redirect: '/home/overview',
     },
     {
         path: "/404",
@@ -33,44 +30,44 @@ const routes = [
             },
             //概览
             {
-                path: "overview",
-                component: () => import("../views/overview"),
+                path: 'overview',
+                component: () => import('../views/overview'),
             },
             // 楼层功能
             {
-                path: "floorFunc",
-                component: () => import("../views/floorFunc"),
+                path: 'floorFunc',
+                component: () => import('../views/floorFunc'),
             },
             // 设备设施
             {
-                path: "equipment",
-                component: () => import("../views/equipment"),
+                path: 'equipment',
+                component: () => import('../views/equipment'),
             },
             // 其他功能
             {
-                path: "other",
-                component: () => import("../views/other"),
+                path: 'other',
+                component: () => import('../views/other'),
             },
             // 分析
             {
-                path: "analysis",
-                component: () => import("../views/analysis"),
+                path: 'analysis',
+                component: () => import('../views/analysis'),
             },
             //图例库管理
             {
-                path: "legendLibrary",
-                component: () => import("../views/legendLibrary"),
+                path: 'legendLibrary',
+                component: () => import('../views/legendLibrary'),
             },
             //图例绘制规则
             {
-                path: "legendRules",
-                component: () => import("../views/legendRules"),
+                path: 'legendRules',
+                component: () => import('../views/legendRules'),
             },
         ],
     },
 ]
 const router = new VueRouter({
-    mode: "history",
+    mode: 'history',
     base: process.env.BASE_URL,
     routes,
 })
@@ -108,4 +105,4 @@ const ignore = ["/404", "/legendLibrary", "/legendRules"]
 //         return
 //     }
 // })
-export default router
+export default router

+ 2 - 2
src/store/index.js

@@ -8,8 +8,8 @@ import router from '../router'
 Vue.use(Vuex)
 export default new Vuex.Store({
     state: {
-        // ssoToken: 'admin:lengqiang',
-        ssoToken: null,
+        ssoToken: 'admin:lengqiang',
+        // ssoToken: null,
         isPreview: false,
         lastRoute: '',
         isrequestAuth: true, // 是否请求登录校验接口

+ 102 - 103
src/views/analysis/CoreDeviceReport.vue

@@ -107,7 +107,6 @@
         </div>
       </el-dialog>
     </div>
-  </div>
 </template>
 
 <script>
@@ -153,12 +152,12 @@ export default {
     }
   },
 
-  components: {
-    Select,
-    Input
-  },
+    components: {
+        Select,
+        Input
+    },
 
-  computed: {},
+    computed: {},
 
   mounted() {
     this.getSystemList();
@@ -278,10 +277,10 @@ export default {
                 name = '专维'
                 break
               case '1':
-                name = '维保'
+                name = '维保专业'
                 break
               case '2':
-                name = '第三方检测'
+                name = '第三方视图'
                 break
             }
             item.typeName = name;
@@ -349,105 +348,105 @@ export default {
 </script>
 
 <style lang='less' scoped>
-.core-device-report{
-  display: flex;
-  width: 100%;
-  height: 100%;
-  .main-left{
-    padding-left: 16px;
-    padding-right: 14px;
-    padding-top: 12px;
-    padding-bottom: 12px;
-    width: 247px;
-    border-top: 1px solid #E4E6E7;
-    border-right: 1px solid #E4E6E7;
-    .system-select{
-      margin-bottom: 16px;
-    }
-    .item-content{
-      padding-left: 12px;
-      padding-right: 21px;
-      padding-top: 7px;
-      padding-bottom: 8px;
-      border-bottom: 1px solid #E4E6E7;
-      cursor: pointer;
-      >div{
-        display: flex;
-      }
-      .first-row{
-        margin-bottom: 6px;
-        display: flex;
-        justify-content: space-between;
-        >div:first-child{
-          font-size: 14px;
-          color: #1F2429;
-          line-height: 19px;
-        }
-        >div:nth-of-type(2){
-          margin-left: 8px;
-          font-size: 12px;
-          color: #CD981D;
-          line-height: 20px;
+.core-device-report {
+    display: flex;
+    width: 100%;
+    height: 100%;
+    .main-left {
+        padding-left: 16px;
+        padding-right: 14px;
+        padding-top: 12px;
+        padding-bottom: 12px;
+        width: 247px;
+        border-top: 1px solid #e4e6e7;
+        border-right: 1px solid #e4e6e7;
+        .system-select {
+            margin-bottom: 16px;
         }
-        
-      }
-      .sec-row{
-        margin-bottom: 6px;
-        >div:first-child{
-          font-size: 14px;
-          color: #1F2429;
-          line-height: 19px;
-          >span{
-            font-size: 12px;
-            color: #646C73;
-          }
+        .item-content {
+            padding-left: 12px;
+            padding-right: 21px;
+            padding-top: 7px;
+            padding-bottom: 8px;
+            border-bottom: 1px solid #e4e6e7;
+            cursor: pointer;
+            > div {
+                display: flex;
+            }
+            .first-row {
+                margin-bottom: 6px;
+                display: flex;
+                justify-content: space-between;
+                > div:first-child {
+                    font-size: 14px;
+                    color: #1f2429;
+                    line-height: 19px;
+                }
+                > div:nth-of-type(2) {
+                    margin-left: 8px;
+                    font-size: 12px;
+                    color: #cd981d;
+                    line-height: 20px;
+                }
+            }
+            .sec-row {
+                margin-bottom: 6px;
+                > div:first-child {
+                    font-size: 14px;
+                    color: #1f2429;
+                    line-height: 19px;
+                    > span {
+                        font-size: 12px;
+                        color: #646c73;
+                    }
+                }
+                // >div:nth-of-type(2){
+                //   padding-left: 8px;
+                //   padding-right: 8px;
+                //   font-size: 12px;
+                //   color: #0065B3;
+                //   line-height: 22px;
+                //   background: #E1F2FF;
+                // }
+                .abnormal {
+                    margin-left: 11px;
+                    padding-left: 3px;
+                    padding-right: 3px;
+                    font-size: 12px;
+                    color: #f54e45 !important;
+                    background: #fde3e2 !important;
+                    border-radius: 9px;
+                }
+            }
         }
-        // >div:nth-of-type(2){
-        //   padding-left: 8px;
-        //   padding-right: 8px;
-        //   font-size: 12px;
-        //   color: #0065B3;
-        //   line-height: 22px;
-        //   background: #E1F2FF;
-        // }
-        .abnormal{
-          margin-left: 11px;
-          padding-left: 3px;
-          padding-right: 3px;
-          font-size: 12px;
-          color: #F54E45!important;
-          background: #FDE3E2!important;
-          border-radius:9px;
+        .system-content {
+            .active {
+                background: #e5eef5;
+                border-radius: 2px;
+                .first-row > div:first-child,
+                .sec-row > div {
+                    color: #025baa;
+                    > span {
+                        color: #025baa;
+                    }
+                }
+            }
         }
-      }
     }
-    .system-content{
-      .active{
-        background: #E5EEF5;
-        border-radius: 2px;
-        .first-row>div:first-child,
-        .sec-row>div{
-          color: #025BAA;
-          >span{
-            color: #025BAA;
-          }
+    .main-right {
+        flex: 1;
+        background: #fff;
+        padding-left: 15px;
+        padding-right: 13px;
+        padding-top: 13px;
+        padding-bottom: 25px;
+        .search-container {
+            margin-bottom: 12px;
+        }
+        .page {
+            display: flex;
+            justify-content: flex-end;
         }
-      }
-    }
-  }
-  .main-right{
-    flex: 1;
-    background: #fff;
-    padding-left: 15px;
-    padding-right: 13px;
-    padding-top: 13px;
-    padding-bottom: 25px;
-    .search-container{
-      margin-bottom: 12px;
-    }
-    .page{
-      display: flex;
-      justify-content: flex-end;
     }
     .el-dialog{
       min-height: 600px;
@@ -462,5 +461,5 @@ export default {
     }
 
   }
-}
+
 </style>

+ 3 - 2
src/views/equipment/table/lookPageTable.vue

@@ -12,7 +12,7 @@
                 style='width:192px;margin-right:12px'
             ></el-input>
             <Select @change='getList' v-model='floor' width='180' tipPlace='top' caption='楼层 :' :selectdata='floorSelect'></Select>
-            <Select @change='getList' v-model='fileType' width='180' tipPlace='top' caption='文件类型:' :selectdata='floorSelect'></Select>
+            <Select @change='getList' v-model='fileType' width='180' tipPlace='top' caption='文件类型:' :selectdata='files'></Select>
         </div>
         <el-table :data='tableData' style='width: 100%' :border='true'>
             <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
@@ -61,7 +61,8 @@ export default {
             size: 11,
             keyword: '',
             floor: '',
-            fileType: ''
+            fileType: '',
+            files: []
         }
     },
     props: ['major'],

+ 68 - 29
src/views/homepage/index.vue

@@ -5,26 +5,30 @@
                 <h4>{{item.smsxtname}}</h4>
                 <div class="equipment-list">
                     <div @click="navToInnerPage(item, equip)" class="equipment-item" v-for="equip in item.assetTypeList" >
-                        <h5>{{equip.category_name}}</h5>
+                        <div class="equip-name">
+                            <h5>{{equip.category_name}}</h5>
+                            <div class="exception-number" v-if="equip.is_exception_num">{{equip.is_exception_num}}</div>
+                        </div>
+                        <div></div>
                         <section>
                             <div class="equip-statis"><span class="equip-number">{{equip.asset_num}}</span><span class="equip-unit">台</span></div>
-                            <div class="expired-number" v-if="equip.is_exception_num">异常:{{equip.is_exception_num}}</div>
+                            <div><em v-if="false">维保中</em></div>
                         </section>
                     </div>
                 </div>
-                <div class="alert-list">
+                <div v-if="item.rptGlsmsStatisticsList && item.rptGlsmsStatisticsList.length" class="alert-list" @click="navToGanttPage(item, equip)">
                     <div class="alert-item"   v-for="(option , index) in  item.rptGlsmsStatisticsList" :key="index" >
                         <img v-if="option.level"  :src="srcList[option.type][option.level]"> 
                         <div  class="content">
                             <p class="line">
-                                <span >{{option.type === 1 ? '维保': option.type === 0 ? '专维' :  '第三方视图' }}</span>
+                                <span >{{option.type === 1 ? '维保': option.type === 0 ? '专维' :  '第三方检测' }}</span>
                                 <span><em :style="{color:item.level == 1? '#646C73': item.level == 2 ? '#E07A04 ' :'#C13830'}">{{option.unfinished}}</em>/<em>{{option.total}}</em></span>
                             </p>
                             <p class="desc">当月未完成/总任务</p>
                         </div>
                     </div>
                 </div>
-                <div v-if="!item.rptGlsmsStatisticsList || !item.rptGlsmsStatisticsList.length" class="empty-content">暂无数据</div>
+                <div v-else class="empty-content">暂无数据</div>
             </div>
         </section>
         <section class="homepage-nav-list">
@@ -56,14 +60,14 @@
                 <div class="table">
                     <div class="row table-header">
                         <article>日期</article>
-                        <article>政府部门</article>
-                        <article>记录事项</article>
+                        <article>事项类型</article>
+                        <article>更新内容</article>
                     </div>
                     <div class="table-body">
                         <div class="row" v-for="(item , index) in changeList" :key="index">
                             <article>{{item.changedate}}</article>
                             <article>{{item.type}}</article>
-                            <article>{{item.content}}</article>
+                            <article>{{item.content || '--'}}</article>
                         </div>
                     </div>
                 </div>
@@ -106,11 +110,17 @@ export default {
         this.getInstructionList()
     },
     methods:{
+        /**
+         *  点击跳转进入综合事项管理页面
+         */
         navToFocusItem () {
-            this.$router.push({path:""})
+            this.$router.push({path:"./调"})
         },
+        /**
+         *  点击跳转进入 分析|报表 说明书更新记录页面
+         */
         navToIntroduce () {
-            this.$router.push({path:""})
+            this.$router.push({path:"./analysis", query:{homepageKey:2}})
         },
         itemStyle (option) {
             let num = 0
@@ -131,6 +141,12 @@ export default {
         navToInnerPage (item, equip) {
             this.$router.push({path:"./analysis", query:{smsxt:item.smsxt, equipId: equip.id}})
         },
+        /**
+         * 跳转到甘特图详情页
+         */
+        navToGanttPage (item, equip) {
+            this.$router.push({path:"./analysis", query:{smsxt:item.smsxt}})
+        },
         //TODO plazaId目前是写死的 后期需要更换成用户对应的ID
         testAjax () {
             let params = {
@@ -142,6 +158,7 @@ export default {
                 if (res.result == 'success') {
                     let result = res.data
                     if (result && Array.isArray(result)) {
+                        result[0].is_exception_num = 12
                         this.cardsList = result
                     }
                 }
@@ -169,9 +186,9 @@ export default {
                         } else if( item.objtype === 1) {
                             item.type = "维保"
                         } else if( item.objtype === 2) {
-                            item.type = "第三方视图"
+                            item.type = "第三方检测"
                         } else {
-                            item.type = "综合事项"
+                            item.type = "重点关注"
                         }
                     })
                    
@@ -234,7 +251,6 @@ export default {
             background: #fff;
             box-shadow: 0 2px 10px 0 rgba(31, 36, 41, 0.06);
             h4 {
-                margin-bottom: 0.8rem;
                 color: rgba(31, 36, 41, 1);
                 padding:1rem;
                 font-size: 1.6rem;
@@ -243,15 +259,41 @@ export default {
             .equipment-list{
                 display: flex;
                 padding-bottom: 2rem;
+                margin-bottom: 0.8rem;
                 padding:1rem;
+                padding-top: 0;
                 .equipment-item{
                     width: 33.33%;
+                    padding: 0.6rem;
+                    box-sizing: border-box;
+                    border-radius: 4px;
                     cursor: pointer;
-                    h5{
-                        color: #1F2429;
-                        font-size: 1.4rem;
-                        // font-weight: bold;
-                        margin-bottom: 1.2rem;
+                    .equip-name{
+                        position: relative;
+                        display: inline-block;
+                        h5{
+                            position: relative;
+                            color: #1F2429;
+                            font-size: 1.4rem;
+                            em{
+                                margin-left: 1rem;
+                                color: #E19E51;
+                                font-size: 1.2rem;
+                            }
+                        }
+                        .exception-number{
+                            position: absolute;
+                            right: -20px;
+                            top:-5px;
+                            height: 1.6rem;
+                            border-radius: 8rem;
+                            padding: 0.2rem 0.4rem;
+                            line-height: 1.2rem;
+                            text-align: center;
+                            font-size: 1.2rem;
+                            color: #F54E45;
+                            background: #FFE0DF;
+                        }
                     }
                     section{
                         display: flex;
@@ -268,18 +310,11 @@ export default {
                                 font-size: 1.2rem;
                             }
                         }
-                        .expired-number{
-                            width: 7.2rem;
-                            height: 2rem;
-                            margin-left: 3rem;
-                            text-align: center;
-                            line-height: 2rem;
-                            font-size: 1.2rem;
-                            color: #C13830;
-                            background: #FFE7E6;
-                        }
                     }
                 }
+                .equipment-item:hover{
+                    background: #f5f6f7;
+                }
             }
             .alert-list{
                 display: flex;
@@ -289,7 +324,7 @@ export default {
                 border-top: 1px solid #F5F6F7;
                 border-radius: 4px;
                 cursor: pointer;
-                padding: 14px;
+                padding:2.2rem 1.4rem;
                 &:hover{
                     background: #F5F6F7;
                 }
@@ -334,6 +369,10 @@ export default {
                 }
             }
             .empty-content{
+                height: 9rem;
+                line-height: 9rem;
+                border-top: 1px solid #F5F6F7;
+                
                 text-align: center;
                 color: #8D9399;
             }

+ 3 - 0
src/views/legendRules/index.vue

@@ -350,6 +350,9 @@ export default {
     /deep/ .ant-tree li .ant-tree-node-content-wrapper:hover {
         background: transparent !important;
     }
+    /deep/ .p-inner-container {
+        overflow-x: hidden;
+    }
     .is-current {
         background: #e1f2ff !important;
         border-radius: 4px;

+ 2 - 2
src/views/statistics/index.vue

@@ -1177,8 +1177,8 @@ export default {
                                 background: #dce7f0;
                                 filter: saturate(0%);
                                 img{
-                                    width: 1.6rem;
-                                    height: 1.6rem;
+                                    width: 3.2rem;
+                                    height: 3.2rem;
                                 }
                             }
                             .selected {