diff --git a/src/main.js b/src/main.js index 01cba2f6278842731534f25d0f9ed2b4cb35c8fe..c5d6f13a5c4f9f1d8b537253f165ef236faea357 100644 --- a/src/main.js +++ b/src/main.js @@ -4,7 +4,7 @@ import 'normalize.css/normalize.css' // A modern alternative to CSS resets import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' -import locale from 'element-ui/lib/locale/lang/en' // lang i18n +import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n import '@/styles/index.scss' // global css diff --git a/src/router/index.js b/src/router/index.js index c1ffe45fa6da4f470e0650efd0e8d9cc30cb5ced..ff8f405395d983d15df76a89055be72d36a82660 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -80,12 +80,22 @@ export const constantRoutes = [ path: '/monitor', component: Layout, redirect: '/dashboard', - children: [{ - path: 'monitor', - name: 'Monitor', - component: () => import('@/views/dashboard/index'), - meta: { title: '监测实时状æ€', icon: 'dashboard' } - }] + name: '监测实时状æ€', + meta: { title: '监测实时状æ€', icon: 'dashboard' }, + children: [ + { + path: 'leakageCable', + name: 'æ¼ç¼†å®žæ—¶çŠ¶æ€', + component: () => import('@/views/monitor/leakageCable'), + meta: { title: 'æ¼ç¼†å®žæ—¶çŠ¶æ€' } + }, + { + path: 'equipment', + name: '设备实时状æ€', + component: () => import('@/views/monitor/equipment'), + meta: { title: '设备实时状æ€' } + } + ] }, { path: '/maintain', diff --git a/src/views/monitor/equipment.vue b/src/views/monitor/equipment.vue new file mode 100644 index 0000000000000000000000000000000000000000..0f7973be7850946f22b8f78c87dcf73c54fac463 --- /dev/null +++ b/src/views/monitor/equipment.vue @@ -0,0 +1,209 @@ +<template> + <!-- æ¼ç¼†å®žæ—¶çŠ¶æ€ --> + <div class="leakage-cable"> + <div class="leakage-top"> + <div class="operate-btn"> + <el-button type="primary">刷新</el-button> + <el-button type="primary">查询</el-button> + <el-button type="primary">导出</el-button> + </div> + <div> + å…±6æ¡æ•°æ® + </div> + </div> + <el-table :data="tableData" style="width: 100%" :cell-class-name="cellClassFn" :header-cell-style="{background:'#EAF1FE',color:'#000'}"> + <el-table-column prop="equipment1" label="网元设备" align="center" /> + <el-table-column prop="state1" label="连接状æ€" align="center" /> + <el-table-column prop="equipment2" label="网元设备" align="center" /> + <el-table-column prop="state2" label="连接状æ€" align="center" /> + <el-table-column prop="equipment3" label="网元设备" align="center" /> + <el-table-column prop="uploadDate" label="ä¸Šä¼ æ—¶é—´" align="center" /> + </el-table> + <div class="page"> + <el-button>上一页</el-button> + <span class="pageNum">2/5</span> + <el-button>下一页</el-button> + </div> + </div> +</template> + +<script> +export default { + data() { + return { + tableData: [ + { + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接æ£å¸¸', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + }, + { + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接æ£å¸¸', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接æ£å¸¸', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + }, + { + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接æ£å¸¸', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接æ£å¸¸', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + }, + { + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接æ£å¸¸', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接æ£å¸¸', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + }, + { + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接æ£å¸¸', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接æ£å¸¸', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + }, + { + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接æ£å¸¸', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + },{ + equipment1: '监控ä¸å¿ƒLSC', + state1: '连接异常', + equipment2: '现场管ç†å•å…ƒ K65+308', + state2: '连接异常', + equipment3: '天馈线A_K4563_535', + uploadDate: '2022/12/18 11:51:12' + } + ], + }; + }, + methods: { + // è¡¨æ ¼èƒŒæ™¯å›¾é¢œè‰² + cellClassFn({row, column, rowIndex, columnIndex}) { + console.log(row, 'row') + console.log(column, 'column') + if ((row.state1 == '连接æ£å¸¸' && column.property == 'state1')) { + return 'green' + } + if ((row.state1 == '连接异常' && column.property == 'state1')) { + return 'red' + } + if ((row.state2 == '连接æ£å¸¸' && column.property == 'state2')) { + return 'green' + } else if ((row.state2 == '连接异常' && column.property == 'state2')) { + return 'red' + } + if (rowIndex%2 == 1) { + return 'stripe' + } + }, + handleSizeChange(val) { + console.log(`æ¯é¡µ ${val} æ¡`); + }, + handleCurrentChange(val) { + console.log(`当å‰é¡µ: ${val}`); + } + } +}; +</script> + +<style lang="scss" scoped> +.leakage-cable { + .leakage-top { + margin: 20px; + display: flex; + align-items: center; + justify-content: space-between; + } + & ::v-deep .cell { + color: #000; + } + & ::v-deep .stripe { + background-color: #EAF1FE; + } + & ::v-deep .red { + background-color: #f00; + } + & ::v-deep .green { + background-color: green; + } + .page { + display: flex; + align-items: center; + justify-content: center; + margin: 20px 0; + .pageNum { + margin: 0 20px; + } + } +} +</style> diff --git a/src/views/monitor/leakageCable.vue b/src/views/monitor/leakageCable.vue new file mode 100644 index 0000000000000000000000000000000000000000..e9badbd2adfd15c5f74068ee42f1d7c66694812e --- /dev/null +++ b/src/views/monitor/leakageCable.vue @@ -0,0 +1,182 @@ +<template> + <!-- æ¼ç¼†å®žæ—¶çŠ¶æ€ --> + <div class="leakage-cable"> + <div class="leakage-top"> + <div class="operate-btn"> + <el-button type="primary">刷新</el-button> + <el-button type="primary">查询</el-button> + <el-button type="primary">导出</el-button> + </div> + <div> + å…±6æ¡æ•°æ® + </div> + </div> + <el-table :data="tableData" style="width: 100%" :cell-class-name="cellClassFn" :header-cell-style="{background:'#EAF1FE',color:'#000'}"> + <el-table-column type="index" label="åºåˆ—å·" width="100" align="center" /> + <el-table-column prop="name" label="基站å称" width="180" align="center" /> + <el-table-column prop="object" label="å‘Šè¦å¯¹è±¡" width="180" align="center" /> + <el-table-column prop="level" label="å‘Šè¦çº§åˆ«" width="150" align="center"> + <template slot-scope="scope"> + <div :class="scope.row.level == 'é‡è¦'?'red':'orange'"> + {{ scope.row.level }} + </div> + </template> + </el-table-column> + <el-table-column prop="message" label="å‘Šè¦ä¿¡æ¯" align="center"> + <template slot-scope="scope"> + <div v-for="(item, index) in scope.row.message.red" :key="index+'red'" class="red message"> + {{ item }} + </div> + <div v-for="(item, index) in scope.row.message.green" :key="index+'red'" class="green message"> + {{ item }} + </div> + <div v-for="(item, index) in scope.row.message.black" :key="index+'red'" class="black message"> + {{ item }} + </div> + </template> + </el-table-column> + <el-table-column prop="uploadDate" label="æœ€æ–°ä¸Šä¼ æ—¶é—´" align="center" /> + </el-table> + <div class="page"> + <el-button>上一页</el-button> + <span class="pageNum">2/5</span> + <el-button>下一页</el-button> + </div> + </div> +</template> + +<script> +export default { + data() { + return { + tableData: [ + { + name: 'STATION2未开通', + object: 'æ¼ç¼†FSU2_R1下行方å‘', + level: '紧急', + message: { + red: ['è·ç¦»ï¼š0ç±³ 驻波比:8.72'], + green: ['è·ç¦»ï¼š18ç±³ 驻波比:1.07', 'è·ç¦»ï¼š42ç±³ 驻波比:1.02'], + black: ['æ¼ç¼†ç™¾ç±³æŸè€—:2.8'] + }, + uploadDate: '2022/12/18 11:51:12' + }, + { + name: 'STATION2未开通', + object: 'æ¼ç¼†FSU2_R1下行方å‘', + level: '紧急', + message: { + red: ['è·ç¦»ï¼š0ç±³ 驻波比:8.72'], + green: ['è·ç¦»ï¼š18ç±³ 驻波比:1.07', 'è·ç¦»ï¼š42ç±³ 驻波比:1.02'], + black: ['æ¼ç¼†ç™¾ç±³æŸè€—:2.8'] + }, + uploadDate: '2022/12/18 11:51:12' + },{ + name: 'STATION2未开通', + object: 'æ¼ç¼†FSU2_R1下行方å‘', + level: '紧急', + message: { + red: ['è·ç¦»ï¼š0ç±³ 驻波比:8.72'], + green: ['è·ç¦»ï¼š18ç±³ 驻波比:1.07', 'è·ç¦»ï¼š42ç±³ 驻波比:1.02'], + black: ['æ¼ç¼†ç™¾ç±³æŸè€—:2.8'] + }, + uploadDate: '2022/12/18 11:51:12' + },{ + name: 'STATION2未开通', + object: 'æ¼ç¼†FSU2_R1下行方å‘', + level: '紧急', + message: { + red: ['è·ç¦»ï¼š0ç±³ 驻波比:8.72'], + green: ['è·ç¦»ï¼š18ç±³ 驻波比:1.07', 'è·ç¦»ï¼š42ç±³ 驻波比:1.02'], + black: ['æ¼ç¼†ç™¾ç±³æŸè€—:2.8'] + }, + uploadDate: '2022/12/18 11:51:12' + },{ + name: 'STATION2未开通', + object: 'æ¼ç¼†FSU2_R1下行方å‘', + level: '紧急', + message: { + red: ['è·ç¦»ï¼š0ç±³ 驻波比:8.72'], + green: ['è·ç¦»ï¼š18ç±³ 驻波比:1.07', 'è·ç¦»ï¼š42ç±³ 驻波比:1.02'], + black: ['æ¼ç¼†ç™¾ç±³æŸè€—:2.8'] + }, + uploadDate: '2022/12/18 11:51:12' + },{ + name: 'STATION2未开通', + object: 'æ¼ç¼†FSU2_R1下行方å‘', + level: 'é‡è¦', + message: { + red: ['è·ç¦»ï¼š0ç±³ 驻波比:8.72'], + green: ['è·ç¦»ï¼š18ç±³ 驻波比:1.07', 'è·ç¦»ï¼š42ç±³ 驻波比:1.02'], + black: ['æ¼ç¼†ç™¾ç±³æŸè€—:2.8'] + }, + uploadDate: '2022/12/18 11:51:12' + } + ], + }; + }, + methods: { + // è¡¨æ ¼èƒŒæ™¯å›¾é¢œè‰² + cellClassFn({row, column, rowIndex, columnIndex}) { + if (row.level == '紧急' && column.label == 'å‘Šè¦çº§åˆ«') { + return 'emergency' + } else if (row.level == 'é‡è¦' && column.label == 'å‘Šè¦çº§åˆ«') { + return 'important' + } + if (rowIndex%2 == 1) { + return 'stripe' + } + }, + handleSizeChange(val) { + console.log(`æ¯é¡µ ${val} æ¡`); + }, + handleCurrentChange(val) { + console.log(`当å‰é¡µ: ${val}`); + } + } +}; +</script> + +<style lang="scss" scoped> +.leakage-cable { + .leakage-top { + margin: 20px; + display: flex; + align-items: center; + justify-content: space-between; + } + & ::v-deep .cell { + color: #000; + } + .message { + line-height: 32px; + } + .red { + color: red; + } + .green { + color: green; + } + .black { + color: black; + } + & ::v-deep .stripe { + background-color: #EAF1FE; + } + & ::v-deep .emergency { + background-color: #f00; + } + & ::v-deep .important { + background-color: #f89850; + } + .page { + display: flex; + align-items: center; + justify-content: center; + margin: 20px 0; + .pageNum { + margin: 0 20px; + } + } +} +</style>