From 73b40d54554307ced5aab5b89dff6e1980e8a242 Mon Sep 17 00:00:00 2001 From: zmc <zmc_li@foxmail.com> Date: 星期四, 26 十月 2023 16:48:01 +0800 Subject: [PATCH] 分险排名页面增加站点清单 辅助审核增加了选择日期以及查看详情页面的样式调整 --- src/views/exception/components/DustExceptionText.vue | 4 src/api/exceptionApi.js | 5 src/views/line_graph/SiteComprehensiveRskRanking.vue | 3 src/views/exception/FlightInspection.vue | 133 ++++++++-- src/views/line_graph/DataRiskModel.vue | 191 +++++++++++++-- src/sfc/TimeShortCuts.vue | 20 + src/router/index.js | 98 ++++---- src/views/exception/SiteAuditAssistance.vue | 155 ++++++++++-- src/sfc/ExceptionType.vue | 3 src/sfc/DaySelect.vue | 84 +++++++ src/utils/risk_estimate_common_function/rank.js | 2 src/api/index.js | 4 src/main.js | 4 src/sfc/AreaAndmonitorType.vue | 10 src/views/line_graph/DataRiskRank.vue | 3 15 files changed, 562 insertions(+), 157 deletions(-) diff --git a/src/api/exceptionApi.js b/src/api/exceptionApi.js index 2ef532e..104fbb3 100644 --- a/src/api/exceptionApi.js +++ b/src/api/exceptionApi.js @@ -8,12 +8,13 @@ * @param {*} endTime * @returns */ - analysisdata(siteName, beginTime, endTime) { + analysisdata(siteName, beginTime, endTime,type) { return $http.get('/dust/analysisdata', { params: { siteName: siteName, beginTime: beginTime, - endTime: endTime + endTime: endTime, + type:type } }) }, diff --git a/src/api/index.js b/src/api/index.js index f6fa644..4b67d52 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -4,9 +4,9 @@ -const url = 'http://localhost:8081/'; +// const url = 'http://localhost:8081/'; // 閮ㄧ讲 -// const url = 'http://114.215.109.124:8803/'; +const url = 'http://114.215.109.124:8803/'; //椋炵窘鐩戠 const $http = axios.create({ diff --git a/src/main.js b/src/main.js index 197848e..92e15e6 100644 --- a/src/main.js +++ b/src/main.js @@ -25,9 +25,9 @@ } }) // 鏈湴 -axios.defaults.baseURL = 'http://localhost:8081' +// axios.defaults.baseURL = 'http://localhost:8081' // 閮ㄧ讲 -// axios.defaults.baseURL = 'http://114.215.109.124:8803' +axios.defaults.baseURL = 'http://114.215.109.124:8803' app.config.globalProperties.$http = axios app.use(ElMessage) diff --git a/src/router/index.js b/src/router/index.js index 05e1ea8..f02ad6f 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -11,58 +11,58 @@ component: () => import('@/components/layout/AppLayout.vue'), children: [ - { - path:'/avalue', - name:'avalue', - meta: {title: '椋庨櫓璇勪及'}, - children:[ - // 鏁版嵁鍒嗛櫓妯″瀷 - { - path: "/avgDay", - name: 'avgDay', - meta: { title: '鏁版嵁鍒嗛櫓妯″瀷' }, - component: () => import('@/views/line_graph/DataRiskModel.vue') - }, + // { + // path:'/avalue', + // name:'avalue', + // meta: {title: '椋庨櫓璇勪及'}, + // children:[ + // // 鏁版嵁鍒嗛櫓妯″瀷 + // { + // path: "/avgDay", + // name: 'avgDay', + // meta: { title: '鏁版嵁鍒嗛櫓妯″瀷' }, + // component: () => import('@/views/line_graph/DataRiskModel.vue') + // }, - // 鏁版嵁椋庨櫓鎺掑悕 - { - path: "/analysis", - name: 'analysis', - meta: { title: '鏁版嵁椋庨櫓鎺掑悕' }, - component: () => import('@/views/line_graph/DataRiskRank.vue') - }, - // 鏁版嵁椋庨櫓鎺掑悕 - { - path: "/riskrank", - name: 'riskrank', - meta: { title: '缁煎悎椋庨櫓鎺掑悕' }, - component: () => import('@/views/line_graph/SiteComprehensiveRskRanking.vue') - }, - ] - }, + // // 鏁版嵁椋庨櫓鎺掑悕 + // { + // path: "/analysis", + // name: 'analysis', + // meta: { title: '鏁版嵁椋庨櫓鎺掑悕' }, + // component: () => import('@/views/line_graph/DataRiskRank.vue') + // }, + // // 鏁版嵁椋庨櫓鎺掑悕 + // { + // path: "/riskrank", + // name: 'riskrank', + // meta: { title: '缁煎悎椋庨櫓鎺掑悕' }, + // component: () => import('@/views/line_graph/SiteComprehensiveRskRanking.vue') + // }, + // ] + // }, - // // 鏁版嵁鍒嗛櫓妯″瀷 - // { - // path: "/avgDay", - // name: 'avgDay', - // meta: { title: '鏁版嵁鍒嗛櫓妯″瀷' }, - // component: () => import('@/views/line_graph/DataRiskModel.vue') - // }, + // 鏁版嵁鍒嗛櫓妯″瀷 + { + path: "/avgDay", + name: 'avgDay', + meta: { title: '鏁版嵁鍒嗛櫓妯″瀷' }, + component: () => import('@/views/line_graph/DataRiskModel.vue') + }, - // // 鏁版嵁椋庨櫓鎺掑悕 - // { - // path: "/analysis", - // name: 'analysis', - // meta: { title: '鏁版嵁椋庨櫓鎺掑悕' }, - // component: () => import('@/views/line_graph/DataRiskRank.vue') - // }, - // // 鏁版嵁椋庨櫓鎺掑悕 - // { - // path: "/riskrank", - // name: 'riskrank', - // meta: { title: '缁煎悎椋庨櫓鎺掑悕' }, - // component: () => import('@/views/line_graph/SiteComprehensiveRskRanking.vue') - // }, + // 鏁版嵁椋庨櫓鎺掑悕 + { + path: "/analysis", + name: 'analysis', + meta: { title: '鏁版嵁椋庨櫓鎺掑悕' }, + component: () => import('@/views/line_graph/DataRiskRank.vue') + }, + // 鏁版嵁椋庨櫓鎺掑悕 + { + path: "/riskrank", + name: 'riskrank', + meta: { title: '缁煎悎椋庨櫓鎺掑悕' }, + component: () => import('@/views/line_graph/SiteComprehensiveRskRanking.vue') + }, // 椋炶宸℃ { diff --git a/src/sfc/AreaAndmonitorType.vue b/src/sfc/AreaAndmonitorType.vue index 5c25c06..5e20eba 100644 --- a/src/sfc/AreaAndmonitorType.vue +++ b/src/sfc/AreaAndmonitorType.vue @@ -6,6 +6,13 @@ <script> export default { + props:{ + isHideArea:{ + type:Number, + default:0 + } + + }, emits:['submitArea','submitMonitore'], data() { @@ -41,7 +48,7 @@ <template> <div class="container"> - <div class="container-text"> + <div class="container-text" v-show="!isHideArea"> <el-text size="large" class="text">鍖哄煙锛�</el-text> <el-select v-model="areaValue" disabled placeholder="Select" size="default" @change="submitAreaValue"> <el-option @@ -52,6 +59,7 @@ /> </el-select> </div> + <div> <el-text class="text">鐩戞祴绫诲瀷锛�</el-text> <el-select v-model="monitorValue" disabled placeholder="Select" size="default" @change="submitMonitorValue"> diff --git a/src/sfc/DaySelect.vue b/src/sfc/DaySelect.vue new file mode 100644 index 0000000..02ba299 --- /dev/null +++ b/src/sfc/DaySelect.vue @@ -0,0 +1,84 @@ +<script> +import dayjs from 'dayjs'; + export default { + props: { + dayBegin:{ + type:String, + default:'' + } + }, + emits: ['submitTime'], + data() { + return{ + day:'', + shortcuts : [ + { + text: '鍓嶄竴鏃�', + value: () => { + const start = dayjs().subtract(1,'day').format('YYYY-MM-DD') + return start + } + }, + + { + text: '鍓�7澶�', + value: () => { + const start = dayjs().subtract(7,'day').format('YYYY-MM-DD'); + return start + } + }, + { + text: '涓婁竴鏈�', + value: () => { + const start = dayjs().subtract(1,'month').format('YYYY-MM-DD'); + return start + } + } + ] + } + }, + watch:{ + dayBegin(){ + if(this.dayBegin!=''){ + this.day=this.dayBegin + } + } + }, + mounted() { + this.$emit('submitTime', this.day); + }, + methods: { + disabledDate(day) { + return day.getTime() > Date.now() + } + } +} +</script> + +<template> + <div class="block"> + <span class="demonstration">閫夋嫨鏃ユ湡锛�</span> + <el-date-picker + v-model="day" + type="date" + placeholder="閫夋嫨鏃ユ湡" + :disabled-date="disabledDate" + :shortcuts="shortcuts" + @change="$emit('submitTime', day)" + + /> + </div> + +</template> + +<style scoped> + +.demonstration { + color: #333333; + font-weight: bold; + font-size: 14px; +} +/* :deep(.el-input__inner) { + width: 50%; +} */ +</style> \ No newline at end of file diff --git a/src/sfc/ExceptionType.vue b/src/sfc/ExceptionType.vue index bc94076..43b8b90 100644 --- a/src/sfc/ExceptionType.vue +++ b/src/sfc/ExceptionType.vue @@ -32,8 +32,8 @@ // this.exceptionType = response.data.data response.data.data.forEach(item => { this.exceptionType.push(item.exceptionType) - }); + // console.log('鑾峰彇鍒扮殑寮傚父绫诲瀷锛�',this.exceptionType); let a = ['0','1','2','3','4','5','6','7'] a.forEach(item=>{ if(this.exceptionType.indexOf(item) == -1){ @@ -91,7 +91,6 @@ display: flex; } .exception-text { - // font-weight: bold; font-size: 14px; color: #333333; margin-top: 5px; diff --git a/src/sfc/TimeShortCuts.vue b/src/sfc/TimeShortCuts.vue index 454f525..3c4b16b 100644 --- a/src/sfc/TimeShortCuts.vue +++ b/src/sfc/TimeShortCuts.vue @@ -18,6 +18,12 @@ import dayjs from 'dayjs'; export default { props: { + beginAndEndTime:{ + type:Object, + default: ()=>{ + return [] + } + }, timeType: { type: String, default: 'month' @@ -29,8 +35,19 @@ //淇濆瓨寮�濮嬪拰缁撴潫鏃堕棿 // 闅忎究璁剧疆鍒濆鍊� 锛宮ounted鏃跺啀璁炬纭殑锛岀洰鐨勬槸鏀瑰彉鏃堕棿浜嗚Е鍙慶hange time: ['2023-06-01 12:00:00', '2023-06-20 16:00:00'], - shortcuts: [] + shortcuts: [], + defaultTime :[ + new Date(2000, 1, 1, 0, 0, 0), + new Date(2000, 2, 1, 23, 59, 59), + ] }; + }, + watch:{ + beginAndEndTime(){ + if(this.beginAndEndTime.lenth!=0){ + this.time = this.beginAndEndTime + } + } }, mounted() { this.initShortCuts(); @@ -113,6 +130,7 @@ end-placeholder="缁撴潫鏃堕棿" value-format="YYYY-MM-DD HH:mm:ss" @change="$emit('submitTime', time)" + :default-time = "defaultTime" /> </div> diff --git a/src/utils/risk_estimate_common_function/rank.js b/src/utils/risk_estimate_common_function/rank.js index 6716020..ad1c6d2 100644 --- a/src/utils/risk_estimate_common_function/rank.js +++ b/src/utils/risk_estimate_common_function/rank.js @@ -18,9 +18,11 @@ fetchData(beginTime, endTime) { return new Promise((resolve, reject) => { + // 鑾峰彇缁熻鍒嗘瀽鏁版嵁 exceptionApi.analysisdataByTimeAndType(beginTime, endTime, 'day').then((response) => { const chartData = response.data.data console.log('fenxi:', chartData) + // 鑾峰彇寮傚父鏁版嵁 exceptionApi .exceptiondata1({ siteName: '', diff --git a/src/views/exception/FlightInspection.vue b/src/views/exception/FlightInspection.vue index 70f2322..fc379ed 100644 --- a/src/views/exception/FlightInspection.vue +++ b/src/views/exception/FlightInspection.vue @@ -146,15 +146,36 @@ watch: { selectedRowIndex(newVaue) { // 澶勪簬琛ㄦ牸鐨勬渶鍚庝竴鏉℃暟鎹� 璁剧疆鈥樹笂涓�鏉♀�欐寜閽笉鍙偣 - if (newVaue === this.displayData.length - 1) { - this.dialog.isPreCantouch = true + // if (newVaue === this.displayData.length - 1) { + // this.dialog.isPreCantouch = true + // //鐢ㄦ埛鍏堢偣浜嗙涓�鏉★紝pre涓簍rue,鐒跺悗鐐瑰嚮鏈�鍚庝竴鏉�,next涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� + // if (this.dialog.isNextCantouch == true) { + // this.dialog.isNextCantouch = false + // } + // } + // // 澶勪簬琛ㄦ牸绗竴鏉℃暟鎹� 璁剧疆鈥樹笅涓�鏉♀�欐寜閽笉鍙偣 + // else if (newVaue === 0) { + // this.dialog.isNextCantouch = true + // //鐢ㄦ埛鍏堢偣浜嗚〃鏍兼渶鍚庝竴鏉�,next涓簍rue,鐒跺悗鐐瑰嚮绗竴鏉★紝pre涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� + // if (this.dialog.isPreCantouch == true) { + // this.dialog.isPreCantouch = false + // } + // } + // // 澶勪簬琛ㄦ牸鐨勪腑闂磋 灏嗘寜閽缃负鍙偣鍑荤姸鎬� + // else { + // this.dialog.isPreCantouch = false + // this.dialog.isNextCantouch = false + // } + // 澶勪簬琛ㄦ牸鐨勬渶鍚庝竴鏉℃暟鎹� 璁剧疆鈥樹笂涓�鏉♀�欐寜閽笉鍙偣 + if (newVaue === 0) { + this.dialog.isPreCantouch = true //鐢ㄦ埛鍏堢偣浜嗙涓�鏉★紝pre涓簍rue,鐒跺悗鐐瑰嚮鏈�鍚庝竴鏉�,next涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� if (this.dialog.isNextCantouch == true) { this.dialog.isNextCantouch = false } } - // 澶勪簬琛ㄦ牸绗竴鏉℃暟鎹� 璁剧疆鈥樹笅涓�鏉♀�欐寜閽笉鍙偣 - else if (newVaue === 0) { + // 澶勪簬琛ㄦ牸绗竴鏉℃暟鎹� 璁剧疆鈥樹笂涓�鏉♀�欐寜閽笉鍙偣 + else if (newVaue === this.displayData.length - 1) { this.dialog.isNextCantouch = true //鐢ㄦ埛鍏堢偣浜嗚〃鏍兼渶鍚庝竴鏉�,next涓簍rue,鐒跺悗鐐瑰嚮绗竴鏉★紝pre涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� if (this.dialog.isPreCantouch == true) { @@ -435,6 +456,13 @@ // 鏂數鎴栨柇缃� 鏃堕棿娈� case '0': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -489,6 +517,13 @@ // 瓒呮爣 case '2': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -601,6 +636,13 @@ // 鏁版嵁瓒呬綆 鍙湁鏃堕棿鐐� case '1': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -697,6 +739,13 @@ // 鏁版嵁闀挎椂娈垫棤娉㈠姩 case '3': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -785,6 +834,13 @@ case '6': case '7': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -1539,9 +1595,10 @@ <el-table-column prop="region" label="鍖哄煙" align="center" show-overflow-tooltip /> <el-table-column prop="beginTime" label="寮�濮嬫椂闂�" align="center" show-overflow-tooltip /> <el-table-column prop="endTime" label="缁撴潫鏃堕棿" align="center" show-overflow-tooltip /> - <el-table-column prop="typename" label="鍦烘櫙" align="center" show-overflow-tooltip /> + <el-table-column prop="typename" label="鍦烘櫙" align="center" width="82" show-overflow-tooltip /> <el-table-column prop="address" label="鍦板潃" align="center" show-overflow-tooltip /> <el-table-column prop="dutyCompany" label="杩愮淮鍟�" align="center" show-overflow-tooltip /> + <el-table-column label="鎿嶄綔" align="center"> <template #default="{ row }"> <el-button type="primary" class="table-button" @click="showDialog(row)" @@ -1580,8 +1637,9 @@ <div class="diag-head"> <div class="diag-head-text"> <div><span class="diag-head-text1">绔欑偣鍚嶇О锛�</span>{{ tableCurrentRowData.name }}</div> - - <div> + <div><span class="diag-head-text1">璁惧缂栧彿锛�</span>{{ tableCurrentRowData.mnCode }}</div> + <div><span class="diag-head-text1">杩愮淮鍟嗭細</span>{{ tableCurrentRowData.dutyCompany }}</div> + <!-- <div> <span class="diag-head-text1">寮傚父绫诲瀷锛�</span> <span v-if="tableCurrentRowData.exceptionType == '0'">鏁版嵁缂哄け寮傚父</span> <span v-else-if="tableCurrentRowData.exceptionType == '1'">鏁版嵁瓒呬綆</span> @@ -1591,7 +1649,7 @@ <span v-else-if="tableCurrentRowData.exceptionType == '5'">涓磋繎瓒呮爣寮傚父</span> <span v-else-if="tableCurrentRowData.exceptionType == '6'">鍗曟棩瓒呮爣娆℃暟涓寸晫寮傚父</span> <span v-else-if="tableCurrentRowData.exceptionType == '7'">婊戝姩骞冲潎鍊煎紓甯�</span> - </div> + </div> --> <div> <span class="diag-head-text1">寮傚父鏃堕棿娈碉細</span>{{ tableCurrentRowData.beginTime }} ~ @@ -1599,7 +1657,7 @@ </div> </div> - <div class="chart-jump-button"> + <!-- <div class="chart-jump-button"> <el-button type="danger" :loading="loading.preButton" @@ -1614,7 +1672,24 @@ @click="getNextRowData" >涓嬫潯寮傚父</el-button > + </div> --> + <div class="chart-jump-button"> + <el-button + type="danger" + :loading="loading.preButton" + :disabled="dialog.isPreCantouch || flag.banTouch" + @click="getNextRowData" + >涓婃潯寮傚父</el-button + > + <el-button + type="danger" + :loading="loading.afterButton" + :disabled="dialog.isNextCantouch || flag.banTouch" + @click="getPreviousRowData" + >涓嬫潯寮傚父</el-button + > </div> + </div> </template> @@ -1638,9 +1713,9 @@ fixed :index="indexMethod2" ></el-table-column> - <el-table-column fixed prop="name" label="绔欑偣鍚嶇О" show-overflow-tooltip /> + <!-- <el-table-column fixed prop="name" label="绔欑偣鍚嶇О" show-overflow-tooltip /> <el-table-column prop="mnCode" label="璁惧缂栧彿" align="center" show-overflow-tooltip /> - <el-table-column prop="dutyCompany" label="杩愮淮鍟�" align="center" show-overflow-tooltip /> + <el-table-column prop="dutyCompany" label="杩愮淮鍟�" align="center" show-overflow-tooltip /> --> <el-table-column prop="lst" label="閲囬泦鏃堕棿" align="center" show-overflow-tooltip /> <el-table-column prop="dustValue" @@ -1673,9 +1748,7 @@ </template> <style lang="scss" scoped> -.all-container{ - // min-width: 1200px; -} + .el-row { margin-left: 10px; } @@ -1688,8 +1761,7 @@ margin-right: 5px; } .head-container-search { - // display: flex; - // justify-content: flex-end; + float: right; } @@ -1709,15 +1781,15 @@ .card-text1 { - // 榛戜綋鐨勫紓甯稿悕瀛楅儴鍒� + /* 榛戜綋鐨勫紓甯稿悕瀛楅儴鍒� */ margin: 10px; } .card-text1 + div { - // 榛戜綋鐨勫紓甯稿悕瀛椾笅闈㈢殑 + /* 榛戜綋鐨勫紓甯稿悕瀛椾笅闈㈢殑 */ margin: 12px; } .card-exception-buttom { - // 寮傚父绔欑偣鏂囨湰鎸夐挳鍖哄煙 + /* 寮傚父绔欑偣鏂囨湰鎸夐挳鍖哄煙 */ padding: 11px; } .card-header { @@ -1746,19 +1818,18 @@ white-space: nowrap; } .card-exceptionname-text1 { - // 寮傚父绔欑偣鍗犳瘮 + /* 寮傚父绔欑偣鍗犳瘮 */ font-size: 14px; white-space: nowrap; } .card-exceptionname-text2 { - // 寮傚父鏁板崰姣旂殑澶栬竟璺� - // margin-left: 50px; + /* 寮傚父鏁板崰姣旂殑澶栬竟璺� */ font-size: 14px; white-space: nowrap; } .text-blank { - // 閫楀彿 + /* 閫楀彿 */ margin-right: 10px; color: #000000; } @@ -1788,24 +1859,18 @@ /* 琛ㄦ牸妯″潡缁撴潫 */ /* 鏌ョ湅璇︽儏瀵硅瘽妗嗘ā鍧楃殑鏍峰紡 */ -// :deep(.exception-dialog) { -// max-height: 600px; -// } + .diag-head { - // 瀵硅瘽妗嗗ご閮ㄥ尯鍩� + /* 瀵硅瘽妗嗗ご閮ㄥ尯鍩� */ min-height: 200px; - // border: 1px solid #fdc2db; } .diag-head-text1 { - // 瀵硅瘽妗嗗ご閮ㄧ殑灞炴�у瓧娈靛姞绮� + /* 瀵硅瘽妗嗗ご閮ㄧ殑灞炴�у瓧娈靛姞绮� */ font-weight: bold; } -.diag-head-text span:nth-child(2) { - // 瀵硅瘽妗嗗ご閮ㄢ�樺紓甯哥被鍨嬧�欏睘鎬� - // margin-left: 150px; -} + .diag-head-text > div { - // 瀵硅瘽妗嗗紓甯告椂闂存 + /* 瀵硅瘽妗嗗紓甯告椂闂存 */ margin-top: 15px; } .diag-head-text { diff --git a/src/views/exception/SiteAuditAssistance.vue b/src/views/exception/SiteAuditAssistance.vue index 0fa2676..49184c6 100644 --- a/src/views/exception/SiteAuditAssistance.vue +++ b/src/views/exception/SiteAuditAssistance.vue @@ -12,6 +12,7 @@ import { ElMessage, ElMessageBox } from 'element-plus' import ButtonClick from '@/sfc/ButtonClick.vue' import index from '@/utils/exception_common_function/index.js' +import DaySelect from '@/sfc/DaySelect.vue'; export default { components: { ExceptionType, @@ -19,7 +20,8 @@ TimeShortCuts, DustLineChart, AreaAndmonitorType, - ButtonClick + ButtonClick, + DaySelect }, data() { return { @@ -30,6 +32,9 @@ // 閫夋嫨鐨勫紓甯哥被鍨� exceptionName: [] }, + // 鏃ユ湡閫夋嫨 + day:'', + // 鏃ユ湡鏃堕棿閫夋嫨 beginTime: '', endTime: '', // 杩斿洖鐨勬暟鎹� @@ -116,16 +121,38 @@ // 鐩戝惉 鍒ゆ柇鎸夐挳鏄惁鍙偣鍑� watch: { selectedRowIndex(newVaue) { - // 澶勪簬琛ㄦ牸鐨勬渶鍚庝竴鏉℃暟鎹� 璁剧疆鈥樹笂涓�鏉♀�欐寜閽笉鍙偣 - if (newVaue === this.displayData.length - 1) { - this.dialog.isPreCantouch = true + // // 澶勪簬琛ㄦ牸鐨勬渶鍚庝竴鏉℃暟鎹� 璁剧疆鈥樹笂涓�鏉♀�欐寜閽笉鍙偣 + // if (newVaue === this.displayData.length - 1) { + // this.dialog.isPreCantouch = true + // //鐢ㄦ埛鍏堢偣浜嗙涓�鏉★紝pre涓簍rue,鐒跺悗鐐瑰嚮鏈�鍚庝竴鏉�,next涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� + // if (this.dialog.isNextCantouch == true) { + // this.dialog.isNextCantouch = false + // } + // } + // // 澶勪簬琛ㄦ牸绗竴鏉℃暟鎹� 璁剧疆鈥樹笅涓�鏉♀�欐寜閽笉鍙偣 + // else if (newVaue === 0) { + // this.dialog.isNextCantouch = true + // //鐢ㄦ埛鍏堢偣浜嗚〃鏍兼渶鍚庝竴鏉�,next涓簍rue,鐒跺悗鐐瑰嚮绗竴鏉★紝pre涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� + // if (this.dialog.isPreCantouch == true) { + // this.dialog.isPreCantouch = false + // } + // } + // // 澶勪簬琛ㄦ牸鐨勪腑闂磋 灏嗘寜閽缃负鍙偣鍑荤姸鎬� + // else { + // this.dialog.isPreCantouch = false + // this.dialog.isNextCantouch = false + // } + + // 澶勪簬琛ㄦ牸鐨勬渶鍚庝竴鏉℃暟鎹� 璁剧疆鈥樹笂涓�鏉♀�欐寜閽笉鍙偣 + if (newVaue === 0) { + this.dialog.isPreCantouch = true //鐢ㄦ埛鍏堢偣浜嗙涓�鏉★紝pre涓簍rue,鐒跺悗鐐瑰嚮鏈�鍚庝竴鏉�,next涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� if (this.dialog.isNextCantouch == true) { this.dialog.isNextCantouch = false } } - // 澶勪簬琛ㄦ牸绗竴鏉℃暟鎹� 璁剧疆鈥樹笅涓�鏉♀�欐寜閽笉鍙偣 - else if (newVaue === 0) { + // 澶勪簬琛ㄦ牸绗竴鏉℃暟鎹� 璁剧疆鈥樹笂涓�鏉♀�欐寜閽笉鍙偣 + else if (newVaue === this.displayData.length - 1) { this.dialog.isNextCantouch = true //鐢ㄦ埛鍏堢偣浜嗚〃鏍兼渶鍚庝竴鏉�,next涓簍rue,鐒跺悗鐐瑰嚮绗竴鏉★紝pre涓簍rue銆傛鏃朵袱涓寜閽兘琚皝閿� if (this.dialog.isPreCantouch == true) { @@ -137,6 +164,7 @@ this.dialog.isPreCantouch = false this.dialog.isNextCantouch = false } + }, dialogTableVisible() { @@ -187,6 +215,12 @@ }, methods: { + giveDay(val){ + // 灏嗕腑鍥芥爣鍑嗘椂闂磋浆涓烘寚瀹氭牸寮�(璇ョ粍浠惰繑鍥炵殑鏍囧噯鏃堕棿鐨勬牸寮忥紝鎵�浠ュ繀椤荤殑鍔犺繖涓嚱鏁�) + + this.beginTime = dayjs(val).format('YYYY-MM-DD 00:00:00'); + this.endTime = dayjs(val).format('YYYY-MM-DD 23:59:59'); + }, /** * 瀹¤鍐呭淇濆瓨涓鸿崏绋� * @param锛� @@ -544,6 +578,14 @@ // 鏂數鎴栨柇缃� 鏃堕棿娈� case '0': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, + tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -598,6 +640,13 @@ // 瓒呮爣 case '2': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -710,6 +759,13 @@ // 鏁版嵁瓒呬綆 鍙湁鏃堕棿鐐� case '1': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -805,6 +861,13 @@ break case '3': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� @@ -888,14 +951,22 @@ } break case '4': + case '5': + case '6': + case '7': this.dialog.option = { + title: { + text: this.tableCurrentRowData.exception, + left: '1%', + textStyle:{ + fontSize:14 + } + }, tooltip: {}, toolbox: { // 宸ュ叿鏍� feature: { - // dataZoom: { - // yAxisIndex: 'none' - // }, + // 淇濆瓨涓哄浘鐗� saveAsImage: {} } @@ -1245,17 +1316,26 @@ <el-form :inline="true"> <div class="head-container-text"> <el-form-item> - <AreaAndmonitorType></AreaAndmonitorType> + <AreaAndmonitorType :isHideArea="1"></AreaAndmonitorType> </el-form-item> + <el-form-item> <InputSearch isNeedDefaultSite="0" isNeedRealTimeAdvice="1" :exceptionType="form.exceptionName" :beginTime="beginTime" :endTime="endTime" @submit-value="(n) => (form.name = n)"> </InputSearch> </el-form-item> <el-form-item> + <DaySelect + @submit-time="giveDay" + :day-begin="beginTime" + ></DaySelect> + </el-form-item> + + <el-form-item> <TimeShortCuts @submit-time="giveTime" timeType="day" + :begin-and-end-time="[beginTime,endTime]" ></TimeShortCuts> </el-form-item> @@ -1335,7 +1415,7 @@ <el-table-column prop="region" label="鍖哄煙" align="center" show-overflow-tooltip /> <el-table-column prop="beginTime" label="寮�濮嬫椂闂�" align="center" show-overflow-tooltip /> <el-table-column prop="endTime" label="缁撴潫鏃堕棿" align="center" show-overflow-tooltip /> - <el-table-column prop="typename" label="鍦烘櫙" align="center" show-overflow-tooltip /> + <el-table-column prop="typename" label="鍦烘櫙" align="center" width="82" show-overflow-tooltip /> <el-table-column prop="address" label="鍦板潃" align="center" show-overflow-tooltip /> <el-table-column prop="dutyCompany" label="杩愮淮鍟�" align="center" show-overflow-tooltip /> <el-table-column label="鎿嶄綔" align="center" width="200" fixed="right"> @@ -1472,8 +1552,9 @@ <div class="diag-head"> <div class="diag-head-text"> <div><span class="diag-head-text1">绔欑偣鍚嶇О锛�</span>{{ tableCurrentRowData.name }}</div> - - <div> + <div><span class="diag-head-text1">璁惧缂栧彿锛�</span>{{ tableCurrentRowData.mnCode }}</div> + <div><span class="diag-head-text1">杩愮淮鍟嗭細</span>{{ tableCurrentRowData.dutyCompany }}</div> + <!-- <div> <span class="diag-head-text1">寮傚父绫诲瀷锛�</span> <span v-if="tableCurrentRowData.exceptionType == '0'">鏁版嵁缂哄け寮傚父</span> <span v-else-if="tableCurrentRowData.exceptionType == '1'">鏁版嵁瓒呬綆</span> @@ -1483,7 +1564,7 @@ <span v-else-if="tableCurrentRowData.exceptionType == '5'">涓磋繎瓒呮爣寮傚父</span> <span v-else-if="tableCurrentRowData.exceptionType == '6'">鍗曟棩瓒呮爣娆℃暟涓寸晫寮傚父</span> <span v-else-if="tableCurrentRowData.exceptionType == '7'">婊戝姩骞冲潎鍊煎紓甯�</span> - </div> + </div> --> <div> <span class="diag-head-text1">寮傚父鏃堕棿娈碉細</span>{{ tableCurrentRowData.beginTime }} ~ @@ -1491,7 +1572,7 @@ </div> </div> - <div class="chart-jump-button"> + <!-- <div class="chart-jump-button"> <el-button type="danger" :loading="loading.preButton" @@ -1504,6 +1585,22 @@ :loading="loading.afterButton" :disabled="dialog.isNextCantouch || flag.banTouch" @click="getNextRowData" + >涓嬫潯寮傚父</el-button + > + </div> --> + <div class="chart-jump-button"> + <el-button + type="danger" + :loading="loading.preButton" + :disabled="dialog.isPreCantouch || flag.banTouch" + @click="getNextRowData" + >涓婃潯寮傚父</el-button + > + <el-button + type="danger" + :loading="loading.afterButton" + :disabled="dialog.isNextCantouch || flag.banTouch" + @click="getPreviousRowData" >涓嬫潯寮傚父</el-button > </div> @@ -1529,9 +1626,9 @@ fixed :index="indexMethod2" ></el-table-column> - <el-table-column fixed prop="name" label="绔欑偣鍚嶇О" show-overflow-tooltip /> + <!-- <el-table-column fixed prop="name" label="绔欑偣鍚嶇О" show-overflow-tooltip /> <el-table-column prop="mnCode" label="璁惧缂栧彿" align="center" show-overflow-tooltip /> - <el-table-column prop="dutyCompany" label="杩愮淮鍟�" align="center" show-overflow-tooltip /> + <el-table-column prop="dutyCompany" label="杩愮淮鍟�" align="center" show-overflow-tooltip /> --> <el-table-column prop="lst" label="閲囬泦鏃堕棿" align="center" show-overflow-tooltip /> <el-table-column prop="dustValue" @@ -1574,7 +1671,7 @@ .head-container-search { display: flex; justify-content: space-between; - // float: right; + } .head-describtion-text { justify-content: flex-end; @@ -1585,9 +1682,7 @@ /* 鏉′欢鏌ヨ妯″潡缁撴潫 */ /*鍒嗘瀽 */ - .checknum { - // border: 2px solid orange; margin: 10px 5px 20px 20px; display: flex; } @@ -1616,7 +1711,7 @@ :global(.el-table .deep-gray-row) { color: #7f9fcf; } -//瀵硅瘽妗嗘爣棰� +/* 瀵硅瘽妗嗘爣棰� */ .el-form-item__labe { font-weight: bold; } @@ -1625,7 +1720,6 @@ margin-right: 20px; } .check-button { - // justify-content: flex-end; float: right; margin-top: 10px; margin-right: 20px; @@ -1636,19 +1730,15 @@ /* 琛ㄦ牸妯″潡缁撴潫 */ /* 鏌ョ湅璇︽儏瀵硅瘽妗嗘ā鍧楃殑鏍峰紡 */ -.diag-head { - // 瀵硅瘽妗嗗ご閮ㄥ尯鍩� - // min-height: 200px; - // border: 1px solid #fdc2db; -} + .diag-head-text1 { - // 瀵硅瘽妗嗗ご閮ㄧ殑灞炴�у瓧娈靛姞绮� + /* 瀵硅瘽妗嗗ご閮ㄧ殑灞炴�у瓧娈靛姞绮� */ font-weight: bold; } .diag-head-text > div { - // 瀵硅瘽妗嗗紓甯告椂闂存 + /* 瀵硅瘽妗嗗紓甯告椂闂存 */ margin-top: 15px; } @@ -1660,16 +1750,13 @@ } .chart-jump-button { - // 鈥樹笂涓�鏉♀�欙紝鈥樹笅涓�鏉♀�� 鎸夐挳 - // min-height: 30px; - // width: 200px; - // float: right; + display: flex; justify-content: right; } .line-chart { - // 寮傚父鎶樼嚎鍥� + /* 寮傚父鎶樼嚎鍥� */ width: 920px; height: 300px; margin-bottom: 20px; diff --git a/src/views/exception/components/DustExceptionText.vue b/src/views/exception/components/DustExceptionText.vue index 333d319..2de8fd2 100644 --- a/src/views/exception/components/DustExceptionText.vue +++ b/src/views/exception/components/DustExceptionText.vue @@ -51,7 +51,5 @@ color: #333333; font-size: 14px; } -// .text:hover{ -// color: #2876aa; -// } + </style> diff --git a/src/views/line_graph/DataRiskModel.vue b/src/views/line_graph/DataRiskModel.vue index 7a343d3..91100fb 100644 --- a/src/views/line_graph/DataRiskModel.vue +++ b/src/views/line_graph/DataRiskModel.vue @@ -1,6 +1,7 @@ <!-- 鏃ュ潎鍊� --> + <script> -import DateSelectWithShortCuts from '@/sfc/DateSelectWithShortCuts.vue' +// import DateSelectWithShortCuts from '@/sfc/DateSelectWithShortCuts.vue' import InputSearch from '@/sfc/InputSearch.vue' import AreaAndmonitorType from '@/sfc/AreaAndmonitorType.vue' @@ -12,14 +13,16 @@ import ButtonClick from '@/sfc/ButtonClick.vue' import dayjs from 'dayjs' import rank from '@/utils/risk_estimate_common_function/rank.js' +import MonthSelect from '@/sfc/MonthSelect.vue'; export default { components: { LineChart, - DateSelectWithShortCuts, + // DateSelectWithShortCuts, InputSearch, AreaAndmonitorType, DustRadarChart, - ButtonClick + ButtonClick, + MonthSelect }, data() { return { @@ -40,6 +43,8 @@ name: '', // 璁惧缂栧彿 number: '', + + month:'', // 寮�濮嬫椂闂� beginTime: '', // 缁撴潫鏃堕棿 @@ -65,19 +70,19 @@ isHasData: false }, // 鏌ヨ鎸夐挳鍔犺浇鏁堟灉 - queryButton: false + queryButton: false, + + // 椋庨櫓鍊兼帓鍚嶅墠鍗佺殑绔欑偣 + top_10_sites_with_risk_values:[ + {name:'閲戝北鍖洪噾灞辨柊鍩嶫SC1-0401鍗曞厓1-11-01鍦板潡椤圭洰09', + riskValue:0.2 + } + ] } }, + watch:{ - // form:{ - // name(){ - // if(this.form.name!=''){ - // this.fetch() - // this.screenLoading = false - // } - // }, - // deep: true - // } + }, computed: { weight() { @@ -102,8 +107,17 @@ // this.getRiskWeightName() this.fetch() + // 璁$畻椋庨櫓鎺掑悕娓呭崟 + this.getRiskRank() }, methods: { + + // 鏌ヨ绔欑偣缁熻淇℃伅 + querySiteStaticsInfo(row){ + this.form.name = row.siteName + this.riskDetails() + }, + async getRiskWeightName() { this.screenLoading = true this.form.name = await rank.fetchData(this.form.beginTime, this.form.endTime); @@ -112,6 +126,17 @@ this.fetch() this.screenLoading = false }, + + giveMonth(val){ + //灏嗕腑鍥芥爣鍑嗘椂闂磋浆涓烘寚瀹氭牸寮�(璇ョ粍浠惰繑鍥炵殑鏍囧噯鏃堕棿鐨勬牸寮忥紝鎵�浠ュ繀椤荤殑鍔犺繖涓嚱鏁�) + this.form.month = dayjs(val).format('YYYY-MM-DD'); + // 鍚屾椂鏇存柊寮�濮嬪拰缁撴潫鏃堕棿 + this.form.beginTime = dayjs(this.form.month).startOf().format('YYYY-MM-DD HH:mm:ss') + this.form.endTime = dayjs(this.form.month).endOf('month').format('YYYY-MM-DD HH:mm:ss') + console.log(this.form.beginTime,this.form.endTime); + + }, + /** * 灏嗕腑鍥芥爣鍑嗘椂闂磋浆涓烘寚瀹氭牸寮� * @param锛� @@ -128,6 +153,17 @@ * @returns锛� */ fetch() { + // 璁$畻椋庨櫓鎺掑悕娓呭崟,鑾峰彇椋庨櫓鏈�楂樼殑绔欑偣鍚嶅瓧 + this.getRiskRank() + + // 鍒嗘瀽鏁版嵁 + this.fetchData() + // 寮傚父鏁版嵁 + this.exceptiondataCount() + + + }, + riskDetails() { // 鍒嗘瀽鏁版嵁 this.fetchData() // 寮傚父鏁版嵁 @@ -149,7 +185,7 @@ this.loading = true this.queryButton = true exceptionApi - .analysisdata(this.form.name, this.form.beginTime, this.form.endTime) + .analysisdata(this.form.name, this.form.beginTime, this.form.endTime,'day') .then((response) => { this.chartData = response.data.data this.loading = false @@ -228,7 +264,53 @@ this.bill.exceptionRecurrence = obj['exceptionRecurrence'] this.bill.exceptionTypeAggregation = obj['exceptionTypeAggregation'] }) - } + }, + + // 鐐瑰嚮椋庨櫓鎺掑悕鎸夐挳 + getRiskRank() { + exceptionApi + .analysisdataByType(this.form.month, 'month') + .then((response) => { + let staticsData = response.data.data + + exceptionApi + .exceptiondata1({ + siteName: this.form.name, + beginTime: this.form.beginTime, + endTime: this.form.endTime + }) + .then((res) => { + const riskValueSite = index.merge( + staticsData, + res.data.data, + this.form.beginTime, + this.form.endTime + ) + // 鑾峰彇鎺掑悕鍓�10鐨勯闄╁�肩珯鐐� + + this.top_10_sites_with_risk_values = this.getTopriskData(riskValueSite,10) + this.form.name = this.top_10_sites_with_risk_values[0].siteName + + this.$nextTick(()=>{ + this.$refs.table.sort('riskValue','descending') + console.log('琛ㄦ牸鏁版嵁涓猴細',this.top_10_sites_with_risk_values); + }) + + }) + + }) + }, +/** + * 闄嶅簭鎺掑垪锛岃繑鍥為檷搴忓墠num鐨勫厓绱� + * @param锛� 瀵硅薄鏁扮粍锛岃繑鍥炵殑鏁伴噺 + */ +getTopriskData(arr,num) { + // 鎸夌収riskValue闄嶅簭鎺掑垪 + arr.sort((a, b) => b.riskValue - a.riskValue); + // 鑾峰彇鍓峮um涓厓绱� + return arr.slice(0,num); + } + } } </script> @@ -236,16 +318,20 @@ <template> <el-form :inline="true" :model="form"> - <el-form-item> + <el-form-item class="form-item"> <AreaAndmonitorType></AreaAndmonitorType> </el-form-item> - <el-form-item> + <el-form-item class="form-item"> <!-- <InputSearch isNeedDefaultSite="1" @submit-value="(n) => (form.name = n)" :siteName="form.name"></InputSearch> --> - <InputSearch isNeedDefaultSite="1" @submit-value="(n) => (form.name = n)" ></InputSearch> + <InputSearch :site-name="form.name" isNeedDefaultSite="1" @submit-value="(n) => (form.name = n)" ></InputSearch> </el-form-item> - <el-form-item> + <!-- <el-form-item> <DateSelectWithShortCuts @submit-time="giveTime"></DateSelectWithShortCuts> + </el-form-item> --> + + <el-form-item> + <MonthSelect @submit-value="giveMonth"></MonthSelect> </el-form-item> @@ -262,7 +348,47 @@ <div class="chart-container" v-show="!isNoData && !screenLoading " > <div class="time-text">鏁版嵁缁熻鏃舵锛歿{ begin }} ~ {{ end }}</div> - <el-row :gutter="20"> + <el-row :gutter="10"> + <el-col :span="5"> + <div class="table-class"> + <el-table + ref="table" + highlight-current-row="true" + :data="top_10_sites_with_risk_values" + :default-sort="{ prop: 'riskValue', order: 'descending' }" + height="540"> + <el-table-column + type="index" + label="搴忓彿" + :index="indexMethod" + fixed + show-overflow-tooltip + /> + <el-table-column + prop="siteName" + label="绔欑偣鍚嶇О" + show-overflow-tooltip + /> + <el-table-column + prop="riskValue" + label="椋庨櫓鍊�" + sortable + width="70" + show-overflow-tooltip + /> + <el-table-column label="鎿嶄綔" align="center"> + <template #default="{ row }"> + <el-button type="primary" text class="table-button" @click="querySiteStaticsInfo(row)" + >椋庨櫓璇︽儏</el-button + > + </template> + </el-table-column> + </el-table> + </div> + + </el-col> + + <el-col :span="12"> <el-card shadow="never"> <DustRadarChart @@ -284,7 +410,7 @@ </el-card> </el-col> - <el-col :span="6"> + <el-col :span="3"> <el-card shadow="never" class="card-height"> <template #header> <h1 @@ -294,7 +420,7 @@ 'weightColor-heigh': weight >= 0.6 }" > - 椋庨櫓鍊硷細{{ weight }} + 椋庨櫓鍊�(0~1)锛歿{ weight }} </h1> </template> <div class="risk-grade"> @@ -327,7 +453,7 @@ </el-card> </el-col> - <el-col :span="6"> + <el-col :span="4"> <el-card shadow="never" class="card-height"> <template #header><span class="title-16">椋庨櫓璇︽儏</span></template> @@ -348,6 +474,8 @@ </el-col> </el-row> + + <el-row :gutter="20"> <el-col :span="12"> <el-card shadow="never" class="card-value"> @@ -363,8 +491,10 @@ </el-card> </el-col> - </el-row> + + + </el-row> <el-row :gutter="20"> <el-col :span="12"> <el-card shadow="never" class="card-value"> @@ -389,6 +519,9 @@ .el-form { margin: 10px; } +.form-item { + margin-top:10px; +} .chart-container { margin-left: 10px; } @@ -400,7 +533,7 @@ border-radius: 9px; } .chart-container { - width: 95%; + width: 98%; /* height: 600px; */ } .card-value { @@ -474,4 +607,12 @@ width: 500px; height: 600px; } */ +.table-class { + border: 1px solid blue; + margin: 20px 0px 20px 0px; +} +.table-button { + letter-spacing: 1px; + text-decoration: underline; +} </style> diff --git a/src/views/line_graph/DataRiskRank.vue b/src/views/line_graph/DataRiskRank.vue index 64e3f6e..e96e5a2 100644 --- a/src/views/line_graph/DataRiskRank.vue +++ b/src/views/line_graph/DataRiskRank.vue @@ -44,8 +44,8 @@ }, mounted() { - console.log(this.$route.matched); this.form.name = ''; + this.fetchData() }, methods: { // 鍔熻兘锛氬鍑轰负Excel @@ -148,6 +148,7 @@ } this.loading = true; this.queryButton = true + this.isNoData = false this.$http .get('/dust/analysistime', { params: params }) .then((response) => { diff --git a/src/views/line_graph/SiteComprehensiveRskRanking.vue b/src/views/line_graph/SiteComprehensiveRskRanking.vue index 488b6d8..082d7ed 100644 --- a/src/views/line_graph/SiteComprehensiveRskRanking.vue +++ b/src/views/line_graph/SiteComprehensiveRskRanking.vue @@ -101,7 +101,7 @@ // 鍏朵腑涓�涓�40鏄洅瀛愮殑鎬诲杈硅窛 this.tableHeight = `calc(100vh - ${h1}px - 40px - 40px - var(--el-main-padding) * 2` }, - // 鐐瑰嚮灞曠ず鎸夐挳 + // 鐐瑰嚮椋庨櫓鎺掑悕鎸夐挳 fetchData() { this.loading = true this.queryButton = true @@ -136,6 +136,7 @@ this.$nextTick(()=>{ this.$refs.table.sort('riskValue','descending') + }) }) -- Gitblit v1.9.3