1.修改了综合风险模型表格数据的获取 2.修改了时间选择器
已修改14个文件
已删除2个文件
已添加4个文件
已复制1个文件
已重命名6个文件
| | |
| | | // const url = 'http://localhost:8081/'; |
| | | // é¨ç½² |
| | | const url = 'http://114.215.109.124:8803/'; |
| | | // const url = 'http://192.168.1.8:8081/'; |
| | | |
| | | //é£ç¾½ç管 |
| | | const $http = axios.create({ |
| | |
| | | timeout: 10000 |
| | | }); |
| | | |
| | | /* Pythonåå° */ |
| | | |
| | | |
| | | /* Pythonåå° */ |
| | | const url_py = 'http://127.0.0.1:8089/' |
| | | const $http_py = axios.create({ |
| | | baseURL: url_py, |
| | |
| | | import {$http} from '@/api/index.js'; |
| | | import { $http } from '@/api/index.js' |
| | | |
| | | export default{ |
| | | /** |
| | |
| | | * @returnsï¼ |
| | | */ |
| | | |
| | | |
| | | queryRiskValue(siteName,month,type){ |
| | | queryRiskValue(mnCode, month, type) { |
| | | const params = { |
| | | mnCode: mnCode, |
| | | month:month, |
| | | type:type, |
| | | type: type |
| | | } |
| | | |
| | | if(siteName != '' || siteName != null){ |
| | | params.siteName = siteName |
| | | } |
| | | |
| | | return $http.post('/dust/risk/riskValue',params) |
| | | return $http.get('/dust/risk/month', { params: params }) |
| | | }, |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®é£é©å¼è·å¾é£é©ç级åé£é©å»ºè®® |
| | | * @paramï¼ |
| | | * @returnsï¼ |
| | | */ |
| | | getRiskAdvice(riskValue) { |
| | | let temp = {} |
| | | // ä½é£é© |
| | | if (riskValue < 0.2) { |
| | | temp.riskGrade = 'ä½é£é©' |
| | | temp.riskAdvice = |
| | | '1.å»ºè®®åæ¶æé该ç«ç¹æå±åä½è¿è¡åºæ¥ç»´æ¤ï¼\n2.è¥åæ¶åå¨è¶
æ ã临çè¶
æ ãé级çªåçå¼å¸¸æ¶ï¼å»ºè®®å°è¯¥ç«ç¹ç§»äº¤ç¯å¢æ§æ³å¤§éå¼å±ç°åºæ§æ³æ£æ¥ï¼\n3.è¥æç»ä¸¤æå以ä¸ä¸ºé«é£é©ï¼å»ºè®®å°è¯¥ç«ç¹çº³å
¥å¹´åº¦æ½æµæ¯å¯¹æ¸
åï¼'.split('\n') |
| | | |
| | | } |
| | | // ä¸é£é© |
| | | if (riskValue < 0.6 && riskValue >= 0.2) { |
| | | temp.riskGrade = 'ä¸é£é©' |
| | | temp.riskAdvice = |
| | | '1.建议éè¿å®æ³æå¡å°ç¨åºãçæµç管微信群ççº¿ä¸æ¹å¼æç¤ºç«ç¹æå±åä½ï¼èç¦å½ååå¨çé®é¢æéæ£ï¼åæ¶å¼å±èªæ¥èªçº ï¼\n2.è¥åæ¶åå¨å¨çº¿çæææçæåº¦ä¸è¾¾æ ï¼å»ºè®®çµè¯éç¥è¯¥ç«ç¹æå±åä½è¿è¡åºæ¥ç»´æ¤ï¼å¹¶è¿è¡ä¸é¡¹å®¡æ ¸ï¼'.split('\n') |
| | | } |
| | | // é«é£é© |
| | | if (riskValue >= 0.6) { |
| | | temp.riskGrade = 'é«é£é©' |
| | | temp.riskAdvice = |
| | | '1.è¥ä¸æ¶åè¶
æ æå¨çº¿çãææçå¼å¸¸ï¼å¸¸ææ°æ®å®¡æ ¸å³å¯ï¼\n2.è¥æ¶åè¶
æ æå¨çº¿çãææççå¼å¸¸ï¼å»ºè®®éè¿å®æ³æå¡å°ç¨åºãçæµç管微信群ççº¿ä¸æ¹å¼æç¤ºç«ç¹æå±åä½ï¼åæ¶å¼å±èªæ¥èªçº ï¼'.split('\n') |
| | | } |
| | | return temp |
| | | } |
| | | } |
| | |
| | | .header-and-main { |
| | | flex-direction: column; |
| | | height: 100vh; |
| | | min-width: 1445px; |
| | | // min-width: 1445px; |
| | | min-width: 1475px; |
| | | } |
| | | /* // åç´æ¹å溢åºåºåç¦æ¢æ»å¨ */ |
| | | .el-main { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {ref} from 'vue' |
| | | export const selectedName = ref('') |
| | |
| | | // axios.defaults.baseURL = 'http://localhost:8081' |
| | | // é¨ç½² |
| | | axios.defaults.baseURL = 'http://114.215.109.124:8803' |
| | | |
| | | // axios.defaults.baseURL = 'http://192.168.1.8:8081' |
| | | app.config.globalProperties.$http = axios |
| | | |
| | | app.use(ElMessage) |
| | |
| | | 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: "/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: 'æ°æ®å驿¨¡å' , keepAlive: true}, |
| | | component: () => import('@/views/line_graph/DataRiskModel.vue') |
| | | component: () => import('@/views/risk_assessment/DataRiskModel.vue') |
| | | }, |
| | | |
| | | // æ°æ®é£é©æå |
| | |
| | | path: "/analysis", |
| | | name: 'analysis', |
| | | meta: { title: 'æ°æ®é£é©æå' , keepAlive: true}, |
| | | component: () => import('@/views/line_graph/DataRiskRank.vue') |
| | | component: () => import('@/views/risk_assessment/DataRiskRank.vue') |
| | | }, |
| | | |
| | | // æ°æ®é£é©æå |
| | | { |
| | | path: "/riskrank", |
| | | name: 'riskrank', |
| | | meta: { title: '综åé£é©æå' , keepAlive: true }, |
| | | component: () => import('@/views/line_graph/SiteComprehensiveRskRanking.vue') |
| | | component: () => import('@/views/risk_assessment/SiteComprehensiveRskRanking.vue') |
| | | }, |
| | | |
| | | // é£è¡å·¡æ£ |
| | |
| | | path: "/detail/:siteName/:month", |
| | | name: 'detail', |
| | | meta: { title: 'ç«ç¹å
·ä½ä¿¡æ¯',transition: 'slide-left' }, |
| | | component: () => import('@/views/line_graph/components/SiteDetail.vue') |
| | | component: () => import('@/views/risk_assessment/components/SiteDetail.vue') |
| | | }, |
| | | |
| | | // é£é©æ¨¡ååµå
¥ |
| | |
| | | path: "/subRiskModel", |
| | | name: 'subRiskModel', |
| | | meta: { title: 'é£é©æ¨¡ååµå
¥' }, |
| | | component: () => import('@/views/line_graph/components/subRiskModel.vue') |
| | | component: () => import('@/views/risk_assessment/components/subRiskModel.vue') |
| | | }, |
| | | |
| | | ], |
| | |
| | | <!-- |
| | | è¿ç¨æç´¢ ç«ç¹åç§° è¾å
¥æ¡ç»ä»¶ |
| | | æ ¹æ®è¾å
¥ç«ç¹çå
容æä¾å¯¹åºçè¾å
¥å»ºè®® |
| | | 1.åç¶ç»ä»¶ä¼ å
¥ç«ç¹åå å 设å¤ç¼ç |
| | | 2.å¯ä»¥éæ©å»ºè®®æè
ä»»æè¾å
¥ |
| | | 3.ç¶ç»ä»¶å¯ä»¥è®¾ç½®è¾å
¥æ¡ææ é»è®¤çç«ç¹åç§° |
| | | 4.ç¶ç»ä»¶å¯ä»¥è®¾ç½®æ¯å¦éè¦æ ¹æ®éä¸çå¼å¸¸ç±»åæ¥ç»åºç«ç¹å»ºè®® |
| | | ** |
| | | å¨ç¶ç»ä»¶ä¸è®¾ç½® |
| | | <InputSearch :isNeedDefaultSite="1" @submit-value="(n)=>form.name=n"> </InputSearch> |
| | |
| | | default:'-1' |
| | | } |
| | | }, |
| | | emits: ['submitValue', 'submitSiteNums'], |
| | | emits: ['submitValue', 'submitSiteNums','submitMncode'], |
| | | data() { |
| | | return { |
| | | // ç¨æ·éä¸çå¼ |
| | | state: '', |
| | | // ä¿åè¾å
¥å»ºè®®çç«ç¹åç§° |
| | | siteNames: [] |
| | | siteNames: [], |
| | | // ä¿åè¾å
¥å»ºè®®çç«ç¹è®¾å¤ç¼å· |
| | | siteNamesAndMnCode:[] |
| | | } |
| | | }, |
| | | watch:{ |
| | |
| | | if(this.siteName != '-1' && this.siteName != ''){ |
| | | this.state = this.siteName |
| | | this.$emit('submitValue', this.state) |
| | | } |
| | | }, |
| | | state(){ |
| | | if(this.state != '' && this.state != null){ |
| | | // æ¥æ¾å¯¹åºç设å¤ç¼å· |
| | | this.onSiteNameSelected(this.state) |
| | | } |
| | | } |
| | | }, |
| | |
| | | const sites = res.data.data |
| | | sites.filter((item) => { |
| | | this.siteNames.push(item['name']) |
| | | let temp = {} |
| | | temp.name = item.name |
| | | temp.mnCode = item.mnCode |
| | | this.siteNamesAndMnCode.push(temp) |
| | | }) |
| | | }) |
| | | |
| | |
| | | const sites = response.data.data |
| | | sites.filter((item) => { |
| | | this.siteNames.push(item['name']) |
| | | let temp = {} |
| | | temp.name = item.name |
| | | temp.mnCode = item.mnCode |
| | | this.siteNamesAndMnCode.push(temp) |
| | | }) |
| | | this.$emit('submitSiteNums', this.siteNames.length) |
| | | }) |
| | | } |
| | | }, |
| | | // æ ¹æ®éä¸çç«ç¹æ¥è¯¢è®¾å¤ç¼å· |
| | | onSiteNameSelected(siteName) { |
| | | const selectedSite = this.siteNamesAndMnCode.find((site) => site.name == siteName); |
| | | if (selectedSite) { |
| | | this.$emit('submitMncode',selectedSite.mnCode) |
| | | }else{ |
| | | this.$emit('submitMncode','') |
| | | } |
| | | }, |
| | | |
| | |
| | | clearSiteName() { |
| | | this.state = '' |
| | | this.$emit('submitValue', this.state) |
| | | } |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | |
| | | popper-class="my-autocomplete" |
| | | placeholder="请è¾å
¥" |
| | | @select="handleSelect" |
| | | @change="handleSelect" |
| | | clearable |
| | | @clear="clearSiteName" |
| | | > |
| | |
| | | |
| | | <script> |
| | | import dayjs from 'dayjs'; |
| | | |
| | | import time from '@/utils/time.js' |
| | | export default { |
| | | props:{ |
| | | month:{ |
| | |
| | | pre_month(){ |
| | | this.value = dayjs().subtract(1,'month').startOf('month').format('YYYY-MM-DD') |
| | | this.$emit('submitValue',this.value) |
| | | }, |
| | | judgeDateValid(date) { |
| | | return time.judgeDateValid(date) |
| | | } |
| | | } |
| | | } |
| | |
| | | v-model="value" |
| | | type="month" |
| | | placeholder="éæ©æä»½" |
| | | :disabled-date="judgeDateValid" |
| | | @change="$emit('submitValue',value)" |
| | | /> |
| | | </div> |
| | |
| | | }, |
| | | *** |
| | | --> |
| | | |
| | | |
| | | <script> |
| | | import dayjs from 'dayjs'; |
| | | import time from '@/utils/time.js' |
| | | export default { |
| | | props: { |
| | | beginAndEndTime:{ |
| | |
| | | }, |
| | | methods: { |
| | | initShortCuts() { |
| | | // this.shortcuts = [ |
| | | // { |
| | | // text: 'å䏿¥', |
| | | // value: () => { |
| | | // const start = dayjs().subtract(1,'day').format('YYYY-MM-DD 00:00:00') |
| | | // const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59') |
| | | // return [start, end]; |
| | | // } |
| | | // }, |
| | | |
| | | // { |
| | | // text: 'å7天', |
| | | // value: () => { |
| | | // const start = dayjs().subtract(7,'day').format('YYYY-MM-DD 00:00:00'); |
| | | // const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59'); |
| | | // return [start, end]; |
| | | // } |
| | | // }, |
| | | // { |
| | | // text: 'ä¸ä¸æ', |
| | | // value: () => { |
| | | // const start = dayjs().subtract(1,'month').startOf('month').format('YYYY-MM-DD HH:mm:ss'); |
| | | // const end = dayjs().subtract(1,'month').endOf('month').format('YYYY-MM-DD HH:mm:ss'); |
| | | // return [start, end]; |
| | | // } |
| | | // } |
| | | // ]; |
| | | |
| | | |
| | | this.shortcuts = [ |
| | | { |
| | | text: 'å䏿¥', |
| | | value: () => { |
| | | if (this.time[0]=='2023-06-01 12:00:00' && this.time[1] == '2023-06-20 16:00:00'){ |
| | | const start = dayjs().subtract(1,'day').format('YYYY-MM-DD 00:00:00') |
| | | const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59') |
| | | return [start, end]; |
| | | }else{ |
| | | const start = dayjs(this.time[0]).subtract(1,'day').format('YYYY-MM-DD 00:00:00') |
| | | const end = dayjs(this.time[1]).subtract(1,'day').format('YYYY-MM-DD 23:59:59') |
| | | return [start, end]; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | { |
| | | text: 'å7天', |
| | | value: () => { |
| | | if (this.time[0]=='2023-06-01 12:00:00' && this.time[1] == '2023-06-20 16:00:00'){ |
| | | const start = dayjs().subtract(7,'day').format('YYYY-MM-DD 00:00:00'); |
| | | const end = dayjs().subtract(1,'day').format('YYYY-MM-DD 23:59:59'); |
| | | return [start, end]; |
| | | }else{ |
| | | const start = dayjs(this.time[0]).subtract(7,'day').format('YYYY-MM-DD 00:00:00') |
| | | const end = dayjs(this.time[1]).subtract(7,'day').format('YYYY-MM-DD 23:59:59') |
| | | return [start, end]; |
| | | } |
| | | |
| | | } |
| | | }, |
| | | { |
| | | text: 'ä¸ä¸æ', |
| | | value: () => { |
| | | if (this.time[0]=='2023-06-01 12:00:00' && this.time[1] == '2023-06-20 16:00:00'){ |
| | | const start = dayjs().subtract(1,'month').startOf('month').format('YYYY-MM-DD HH:mm:ss'); |
| | | const end = dayjs().subtract(1,'month').endOf('month').format('YYYY-MM-DD HH:mm:ss'); |
| | | return [start, end]; |
| | | }else{ |
| | | const start = dayjs(this.time[0]).subtract(1,'month').format('YYYY-MM-DD HH:mm:ss') |
| | | const end = dayjs(this.time[1]).subtract(1,'month').format('YYYY-MM-DD HH:mm:ss') |
| | | return [start, end]; |
| | | } |
| | | |
| | | } |
| | | } |
| | | ]; |
| | | |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | initOneWeekAgoTime() { |
| | | switch (this.timeType) { |
| | | case 'day': |
| | |
| | | this.time[0] = dayjs().subtract(1, 'month').format('YYYY-MM-DD HH:mm:ss'); |
| | | this.time[1] = dayjs().format('YYYY-MM-DD HH:mm:ss'); |
| | | } |
| | | }, |
| | | judgeDateValid(date) { |
| | | return time.judgeDateValid(date) |
| | | } |
| | | } |
| | | }; |
| | |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | :disabled-date="judgeDateValid" |
| | | @change="$emit('submitTime', time)" |
| | | :default-time = "defaultTime" |
| | | |
| | |
| | | font-size: 14px; |
| | | } |
| | | |
| | | /* .pick-date { |
| | | width: 200px; |
| | | } */ |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import dayjs from 'dayjs' |
| | | |
| | | export default { |
| | | // è·å该æä»½å¤©æ° |
| | | // æ ¹æ®èµ·å§æ¶é´æå»ºxè½´ |
| | | // æ ¹æ®å¤©æ°éå |
| | | // æ¥æå¤©æ°+1 |
| | | // æ·»å å°xè½´æ°ç» |
| | | // ç´å°éåçæ¬¡æ° |
| | | // æ ¹æ®å¤©æ°éå |
| | | // 对为空ççå¤©æ°æ°æ® è¿è¡è¡¥å
yè½´æ°æ®ä¸ºnull |
| | | |
| | | /** |
| | | * æ ¹æ®ä¼ å
¥çç»è®¡æ°æ®ï¼èµ·å§æ¶é´ï¼è¿å宿´çx,yè½´æ°æ® |
| | | * @paramï¼ ç»è®¡æ°æ®ï¼å¼å§æ¶é´ï¼ç»ææ¶é´ |
| | | * @returnsï¼x,yè½´æ°æ® |
| | | */ |
| | | getLineChartXYData(analysisData, beginTime, endTime) { |
| | | // xè½´ |
| | | let xData = [] |
| | | // yè½´çå¹³åå¼ |
| | | let yAvg = [] |
| | | // yè½´çå¨çº¿ç |
| | | let yOnline = [] |
| | | // yè½´çææå¼ |
| | | let yValid = [] |
| | | // yè½´çè¶
æ ç |
| | | let yExceed = [] |
| | | // ä¿åx,yè½´å¼ |
| | | let obj = {} |
| | | |
| | | // å¼å§æ¥æä¸º |
| | | let dateBegin = dayjs(beginTime).subtract(1, 'day').format('YYYY-MM-DD') |
| | | let dateEnd = dayjs(endTime).format('YYYY-MM-DD') |
| | | |
| | | // å½åçæ¥æä¸ºå¼å§æ¥æçåä¸å¤© |
| | | let currentDate = dateBegin |
| | | // å¯¹æ æ°æ®çæ¥æè¿è¡å¡«å
|
| | | while (currentDate < dateEnd) { |
| | | // å½åæ¥æå¢å 1天 |
| | | currentDate = dayjs(currentDate).add(1, 'day').format('YYYY-MM-DD') |
| | | |
| | | // æ ¹æ®æ¥ææ¥æ¾å¯¹åºæ°æ® |
| | | let tempData = this.findDate(analysisData, currentDate) |
| | | // æ¾å°å¯¹åºæ¥æçæ°æ®ï¼ |
| | | if (tempData) { |
| | | xData.push(tempData.lst) |
| | | yAvg.push(tempData.dayAvg) |
| | | yOnline.push(this.deleteLastStr(tempData.dayOnline)) |
| | | yValid.push(this.deleteLastStr(tempData.dayValid)) |
| | | yExceed.push(this.deleteLastStr(tempData.dayExceeding)) |
| | | continue |
| | | } |
| | | |
| | | // æªåç°è¯¥æ¥æçæ°æ® |
| | | xData.push(currentDate) |
| | | yAvg.push(null) |
| | | yOnline.push(null) |
| | | yValid.push(null) |
| | | yExceed.push(null) |
| | | } |
| | | |
| | | obj.xData = xData |
| | | obj.yAvg = yAvg |
| | | obj.yOnline = yOnline |
| | | obj.yValid = yValid |
| | | obj.yExceed = yExceed |
| | | return obj |
| | | }, |
| | | |
| | | /** |
| | | * è·åæå¤©æ° |
| | | * @paramï¼ |
| | | * @returnsï¼ |
| | | */ |
| | | backMonthDayNums(time) { |
| | | return dayjs(time).daysInMonth() |
| | | }, |
| | | |
| | | /** |
| | | * è¿åæ æ°æ®çæ¶é´æ®µ |
| | | * @paramï¼ |
| | | * @returnsï¼ |
| | | */ |
| | | backNoDataInteval(dataBeginTime, dataEndTime) { |
| | | const result = [] |
| | | // æ°æ®å¼å§æ¶é´ |
| | | const start = dayjs(dataBeginTime) |
| | | // æ°æ®ç»ææ¶é´ |
| | | const end = dayjs(dataEndTime) |
| | | // 该æç1å· |
| | | const monthStart = start.startOf('month') |
| | | // 该ææåä¸å¤© |
| | | const monthEnd = start.endOf('month') |
| | | |
| | | // æ°æ®èµ·å§ä¸çäºæå ä¸ æ°æ®ç»æä¸çäºææ« |
| | | if (!start.isSame(monthStart, 'day') && !end.isSame(monthEnd, 'day')) { |
| | | result.push([monthStart.format('YYYY-MM-DD'), start.format('YYYY-MM-DD')]) |
| | | result.push([end.format('YYYY-MM-DD'), monthEnd.format('YYYY-MM-DD')]) |
| | | } |
| | | |
| | | // æ°æ®èµ·å§çäºæå ä¸ æ°æ®ç»æä¸çäºææ« |
| | | if (start.isSame(monthStart, 'day') && !end.isSame(monthEnd, 'day')) { |
| | | result.push([end.format('YYYY-MM-DD'), monthEnd.format('YYYY-MM-DD')]) |
| | | } |
| | | |
| | | // æ°æ®èµ·å§ä¸çäºæå ä¸ æ°æ®ç»æçäºææ« |
| | | if (!start.isSame(monthStart, 'day') && end.isSame(monthEnd, 'day')) { |
| | | result.push([monthStart.format('YYYY-MM-DD'), start.format('YYYY-MM-DD')]) |
| | | } |
| | | |
| | | // æ°æ®èµ·å§çäºæå ä¸ æ°æ®ç»æçäºææ« (è¿ç§æ
嵿²¡æç©ºæ°æ®çæ¶é´é´é) |
| | | return result |
| | | }, |
| | | |
| | | // ç»ææ æ°æ®åºå |
| | | getMarkArea(timeInteval) { |
| | | let result = [] |
| | | for (let i = 0; i < timeInteval.length; i++) { |
| | | let temp = [] |
| | | for (let j = 0; j < timeInteval[i].length; j++) { |
| | | let obj = {} |
| | | // ç»ç¬¬ä¸ä¸ªå¯¹è±¡å ä¸name屿§ |
| | | if (j == 0) { |
| | | obj.name = 'æ æ°æ®' |
| | | } |
| | | obj.xAxis = timeInteval[i][j] |
| | | temp.push(obj) |
| | | } |
| | | result.push(temp) |
| | | } |
| | | return result |
| | | }, |
| | | |
| | | /** |
| | | * æ¾å°å¯¹è±¡æ°ç»ä¸å±æ§lstdçå¼ |
| | | * @paramï¼ å¯¹è±¡æ°ç» ï¼mnCodeçäºvalue |
| | | * @returnsï¼ |
| | | */ |
| | | findDate(analysisData, date) { |
| | | if (analysisData.length == 0) { |
| | | return false |
| | | } |
| | | |
| | | // æ¥æ¾æ¥æ |
| | | for (let i = 0; i < analysisData.length; i++) { |
| | | if (analysisData[i].lst == date) { |
| | | return analysisData[i] |
| | | } |
| | | } |
| | | |
| | | return false |
| | | }, |
| | | |
| | | /** |
| | | * å»é¤å符串çç¾åå· |
| | | * @paramï¼ |
| | | * @returnsï¼ |
| | | */ |
| | | deleteLastStr(valueStr) { |
| | | return valueStr.slice(0, -1) |
| | | } |
| | | } |
| | |
| | | obj.region = 'éå±±åº' |
| | | obj.monitorType = 'æ¬å°' |
| | | obj.siteName = res.name |
| | | obj.mnCode = res.mnCode |
| | | obj.beginTime = beginTime |
| | | obj.endTime = endTime |
| | | obj.riskValue = weight |
| | | if (weight >= 0.6) { |
| | | obj.riskGrage = 'é«é£é©' |
| | | obj.riskAdvice = '建议对该ç«ç¹è¿è¡çº¿ä¸æ§æ³æ£æ¥ï¼ä¸é¡¹æ°æ®å¯¹æ¯' |
| | | obj.riskAdvice = '1.è¥ä¸æ¶åè¶
æ æå¨çº¿çãææçå¼å¸¸ï¼å¸¸ææ°æ®å®¡æ ¸å³å¯ï¼\n2.è¥æ¶åè¶
æ æå¨çº¿çãææççå¼å¸¸ï¼å»ºè®®éè¿å®æ³æå¡å°ç¨åºãçæµç管微信群ççº¿ä¸æ¹å¼æç¤ºç«ç¹æå±åä½ï¼åæ¶å¼å±èªæ¥èªçº ï¼' |
| | | } else if (weight < 0.6 && weight >= 0.2) { |
| | | obj.riskGrage = 'ä¸é£é©' |
| | | obj.riskAdvice = '建议å¼å±å¸¸æè¿½è¸ªåæ' |
| | | obj.riskAdvice = '1.建议éè¿å®æ³æå¡å°ç¨åºãçæµç管微信群ççº¿ä¸æ¹å¼æç¤ºç«ç¹æå±åä½ï¼èç¦å½ååå¨çé®é¢æéæ£ï¼åæ¶å¼å±èªæ¥èªçº ï¼\n2.è¥åæ¶åå¨å¨çº¿çæææçæåº¦ä¸è¾¾æ ï¼å»ºè®®çµè¯éç¥è¯¥ç«ç¹æå±åä½è¿è¡åºæ¥ç»´æ¤ï¼å¹¶è¿è¡ä¸é¡¹å®¡æ ¸ï¼' |
| | | } else { |
| | | obj.riskGrage = 'ä½é£é©' |
| | | obj.riskAdvice = '建议å¼å¯¼ä¼ä¸é¿æä¿æ' |
| | | obj.riskAdvice = '1.å»ºè®®åæ¶æé该ç«ç¹æå±åä½è¿è¡åºæ¥ç»´æ¤ï¼\n2.è¥åæ¶åå¨è¶
æ ã临çè¶
æ ãé级çªåçå¼å¸¸æ¶ï¼å»ºè®®å°è¯¥ç«ç¹ç§»äº¤ç¯å¢æ§æ³å¤§éå¼å±ç°åºæ§æ³æ£æ¥ï¼\n3.è¥æç»ä¸¤æå以ä¸ä¸ºé«é£é©ï¼å»ºè®®å°è¯¥ç«ç¹çº³å
¥å¹´åº¦æ½æµæ¯å¯¹æ¸
åï¼' |
| | | } |
| | | table.push(obj) |
| | | }) |
| | |
| | | // import rank from '@/utils/risk_estimate_common_function/rank.js'; |
| | | // import dayjs from 'dayjs.js'; |
| | | |
| | | |
| | | |
| | | export default { |
| | | |
| | | // // è®¡ç®æ¥é£é©å¼ |
| | | // calDailyRisk(allTypeRiskValue){ |
| | | // let dailyRiskValue = allTypeRiskValue.onlineRisk*0.1 + allTypeRiskValue.validRisk*0.2 + allTypeRiskValue.exceedingRisk*0.2 + allTypeRiskValue.exceptionTypeAggregation*0.2 + allTypeRiskValue.typicalExceptionRepetitionRate*0.3 |
| | | // return dailyRiskValue |
| | | // }, |
| | | |
| | | // // è®¡ç®æé£é©å¼ |
| | | // calMonthRisk(DailyRiskValues,month){ |
| | | // // æ ¹æ®æä»½è·å¾è¯¥æçå¤©æ° |
| | | // let dayNum = dayjs(month).daysInMonth() |
| | | // // ç´¯å æ¥é£é©å¼ |
| | | // let sum = 0 |
| | | // for(let i in DailyRiskValues){ |
| | | // sum += i |
| | | // } |
| | | // // æ¥å¼å¸¸ç±»åèéççå/å½æå¤©æ° |
| | | // let monthRiskValue = sum /dayNum |
| | | // return monthRiskValue |
| | | // }, |
| | | /** |
| | | * ç±åæ¡æåº¦å¼è®¡ç®é£é©å¼ |
| | | * @paramï¼ |
| | | * @returnsï¼ |
| | | */ |
| | | calRiskValue(monthlyRiskData) { |
| | | // é£é©å¼ |
| | | let riskValue = monthlyRiskData.onlineRisk*0.1 + monthlyRiskData.validRisk*0.2 + monthlyRiskData.exceedRisk*0.2 + monthlyRiskData.exceptionTypeAggregation*0.2 + monthlyRiskData.typicalExceptionRepetitionRate*0.3 |
| | | return riskValue |
| | | }, |
| | | |
| | | |
| | | // calRiskValue(allTypeRiskValue,queryMonth){ |
| | | // // 对设å¤ç¼å·è¿è¡åç» |
| | | // let groupeObj = rank.groupByMncode(allTypeRiskValue) |
| | | // // |
| | | // for (let mnCode in groupeObj){ |
| | | // // è·å¾è®¾å¤ç¼å·å¯¹åºçæ°æ® |
| | | // let dayData = groupeObj[mnCode] |
| | | |
| | | // // ä¿åæè®¾å¤ç¼å·è¯¥æ®µæ¶é´çæ¥é£é©å¼ |
| | | // let dailyRiskValues = [] |
| | | // // è®¡ç®æ¥é£é©å¼ |
| | | // for(let item in dayData){ |
| | | // let dailyRiskValue = this.calDailyRisk(item) |
| | | // dailyRiskValues.push(dailyRiskValue) |
| | | // } |
| | | // } |
| | | |
| | | // } |
| | | |
| | | // è®¡ç®æåº¦é£é©å¼ |
| | | /** |
| | | * è®¡ç®æåº¦é£é©å¼ |
| | | * @paramï¼ |
| | | * @returnsï¼ |
| | | */ |
| | | calMonthlyRiskValue(exceptionRiskValue){ |
| | | // ä¿åæåº¦é£é©å¼ |
| | | let monthlyRiskValue = [] |
| | | // è®¡ç®æ¯ä¸ªç«ç¹çæåº¦é£é©å¼ |
| | | for(let item in exceptionRiskValue){ |
| | | let value = item.onlineRisk*0.1 + item.validRisk*0.2 + item.exceedingRisk*0.2 + item.exceptionTypeAggregation*0.2 + item.typicalExceptionRepetitionRate*0.3 |
| | | monthlyRiskValue.push(value) |
| | | let risk = this.calRiskValue(item) |
| | | monthlyRiskValue.push(risk) |
| | | } |
| | | |
| | | // éåºæå |
| | | monthlyRiskValue.sort((a, b) => b - a) |
| | | |
| | | return monthlyRiskValue |
| | | }, |
| | | |
| | | /** |
| | | * ç»è£
æè¡¨æ ¼çè¡ |
| | | * @paramï¼ ç«ç¹çæåº¦å驿°æ®ï¼è¯¥ç«ç¹çæåº¦é£é©å¼ |
| | | * @returnsï¼ |
| | | */ |
| | | organizeTableRow(monthlyRiskData,riskValue) { |
| | | let obj = {} |
| | | obj.siteName = monthlyRiskData.name |
| | | obj.region = 'éå±±åº' |
| | | obj.mnCode = monthlyRiskData.mnCode |
| | | obj.monitorType = 'æ¬å°' |
| | | obj.riskValue = riskValue |
| | | obj.beginTime = monthlyRiskData.lst |
| | | obj.endTime = monthlyRiskData.lst |
| | | |
| | | // æ ¹æ®æåº¦é£é©å¼ï¼è¿å对åºçé£é©ç级åé£é©å»ºè®® |
| | | let riskGradeAndAdvice = this.judgeRiskGradeAndAdvice(riskValue) |
| | | obj.riskGrade = riskGradeAndAdvice[0] |
| | | obj.riskAdvice = riskGradeAndAdvice[1] |
| | | |
| | | return obj |
| | | }, |
| | | |
| | | /** |
| | | * æ ¹æ®æåº¦é£é©å¼ï¼è¿å对åºçé£é©ç级åé£é©å»ºè®® |
| | | * @paramï¼ æåº¦é£é©å¼ |
| | | */ |
| | | judgeRiskGradeAndAdvice(monthlyRiskValue){ |
| | | let temp = [] |
| | | // ä½é£é© |
| | | if(monthlyRiskValue < 0.2) { |
| | | temp.push('ä½é£é©') |
| | | let advice = '1.å»ºè®®åæ¶æé该ç«ç¹æå±åä½è¿è¡åºæ¥ç»´æ¤ï¼\n2.è¥åæ¶åå¨è¶
æ ã临çè¶
æ ãé级çªåçå¼å¸¸æ¶ï¼å»ºè®®å°è¯¥ç«ç¹ç§»äº¤ç¯å¢æ§æ³å¤§éå¼å±ç°åºæ§æ³æ£æ¥ï¼\n3.è¥æç»ä¸¤æå以ä¸ä¸ºé«é£é©ï¼å»ºè®®å°è¯¥ç«ç¹çº³å
¥å¹´åº¦æ½æµæ¯å¯¹æ¸
åï¼' |
| | | temp.push(advice) |
| | | } |
| | | // ä¸é£é© |
| | | if (monthlyRiskValue < 0.6 && monthlyRiskValue >= 0.2) { |
| | | temp.push('ä¸é£é©') |
| | | let advice = '1.建议éè¿å®æ³æå¡å°ç¨åºãçæµç管微信群ççº¿ä¸æ¹å¼æç¤ºç«ç¹æå±åä½ï¼èç¦å½ååå¨çé®é¢æéæ£ï¼åæ¶å¼å±èªæ¥èªçº ï¼\n2.è¥åæ¶åå¨å¨çº¿çæææçæåº¦ä¸è¾¾æ ï¼å»ºè®®çµè¯éç¥è¯¥ç«ç¹æå±åä½è¿è¡åºæ¥ç»´æ¤ï¼å¹¶è¿è¡ä¸é¡¹å®¡æ ¸ï¼' |
| | | temp.push(advice) |
| | | } |
| | | // é«é£é© |
| | | if (monthlyRiskValue >= 0.6) { |
| | | temp.push('é«é£é©') |
| | | let advice = '1.è¥ä¸æ¶åè¶
æ æå¨çº¿çãææçå¼å¸¸ï¼å¸¸ææ°æ®å®¡æ ¸å³å¯ï¼\n2.è¥æ¶åè¶
æ æå¨çº¿çãææççå¼å¸¸ï¼å»ºè®®éè¿å®æ³æå¡å°ç¨åºãçæµç管微信群ççº¿ä¸æ¹å¼æç¤ºç«ç¹æå±åä½ï¼åæ¶å¼å±èªæ¥èªçº ï¼' |
| | | temp.push(advice) |
| | | } |
| | | return temp |
| | | }, |
| | | |
| | | |
| | | // éåå¯¹æ¯æ¡æåº¦å¼å¸¸é£é©å¼ |
| | | // 计ç®ç»¼åé£é©å¼ |
| | | // æ¼æ¥æ°ç对象 |
| | | // è¿åè¡¨æ ¼å¯¹è±¡ |
| | | |
| | | /** |
| | | * è¿å综åé£é©æåçè¡¨æ ¼æ°æ® |
| | | * @paramï¼ åç«ç¹æåº¦å驿°æ® |
| | | * @returnsï¼è¡¨æ ¼æ°æ® |
| | | */ |
| | | backComprehensiveRiskTableData(allExceptionData){ |
| | | let tableData = [] |
| | | // éåå¯¹æ¯æ¡æåº¦å¼å¸¸é£é© |
| | | allExceptionData.forEach(element => { |
| | | |
| | | // 计ç®å¾å°æåº¦é£é©å¼ |
| | | let monthlyRiskValue = this.calRiskValue(element) |
| | | // ç»æè¡¨æ ¼è¡çåæ®µ |
| | | let tableRow = this.organizeTableRow(element,monthlyRiskValue.toFixed(2)) |
| | | |
| | | tableData.push(tableRow) |
| | | }); |
| | | |
| | | return tableData |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | |
| | | |
| | | // 夿已éçæä»½æ¯å¦å¤§äºå½åæä»½ |
| | | judgeDateValid(date){ |
| | | // è·å¾å½ææä»½ |
| | | let currentMonth = dayjs() |
| | | let selectMonth = date.getTime() |
| | | // 鿩大äºç°å¨æä»½ |
| | | if(selectMonth > currentMonth){ |
| | | return true |
| | | } |
| | | |
| | | return false |
| | | } |
| | | |
| | | } |
| | |
| | | // ç»ææ¶é´ |
| | | endTime: '' |
| | | }, |
| | | // æç´¢æ¡ä¼ é䏿¥ç设å¤ç¼å· |
| | | tempMnCode :'', |
| | | // è¿åçæ°æ® |
| | | tableData: [], |
| | | // è¡¨æ ¼æ°æ® |
| | |
| | | |
| | | // æ¥è¯¢æ°æ® |
| | | handleSubmit() { |
| | | // if (this.isExceedOneMonth(this.form.beginTime, this.form.endTime)) { |
| | | // alert('æ¶é´è·¨åº¦ä¸è½è¶
è¿ä¸ä¸ªæ'); |
| | | // return; |
| | | // } |
| | | |
| | | this.loading = true; |
| | | this.queryButton = true |
| | | let params = {}; |
| | |
| | | if (this.scenarioType.length != 0) { |
| | | params['scenarioType'] = this.scenarioType.join(); |
| | | } |
| | | |
| | | this.$http.get('/dust/history1', { params: params }).then((response) => { |
| | | // ä¿åè¿åç |
| | | this.tableData = response.data.data.rows; |
| | |
| | | <el-form-item> |
| | | <AreaAndmonitorType></AreaAndmonitorType> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <InputSearch isNeedDefaultSite="1" @submit-value="(n) => (form.name = n)"> |
| | | </InputSearch> |
| | |
| | | </div> |
| | | <div class="button-and-export"> |
| | | <el-form-item> |
| | | <!-- <el-button |
| | | type="primary" |
| | | @click="handleSubmit" |
| | | style="margin-left: 10px" |
| | | ><el-icon style="margin-right: 6px;font-size: 1.2em;"><i-ep-Search/></el-icon>æ¥è¯¢</el-button |
| | | > |
| | | <el-button type="success" @click="exportDom" round><el-icon style="margin-right: 6px;margin-bottom:2px;font-size: 1.2em;"><i-ep-Download ></i-ep-Download></el-icon>å¯¼åºæ°æ®</el-button> --> |
| | | <ButtonClick style="margin-right: 12px;" content="æç´¢" type="primary" :loading="queryButton" @do-search="handleSubmit"></ButtonClick> |
| | | <ButtonExportExcel content="å¯¼åºæ°æ®" type="success" :loading="exportButton" @do-export="exportDom"></ButtonExportExcel> |
| | | </el-form-item> |
| | |
| | | watch: { |
| | | selectedRowIndex(newVaue) { |
| | | // å¤äºè¡¨æ ¼çæå䏿¡æ°æ® 设置âä¸ä¸æ¡âæé®ä¸å¯ç¹ |
| | | // if (newVaue === this.displayData.length - 1) { |
| | | // this.dialog.isPreCantouch = true |
| | | // //ç¨æ·å
ç¹äºç¬¬ä¸æ¡ï¼pre为true,ç¶åç¹å»æå䏿¡,next为trueãæ¤æ¶ä¸¤ä¸ªæé®é½è¢«å°é |
| | | // if (this.dialog.isNextCantouch == true) { |
| | | // this.dialog.isNextCantouch = false |
| | | // } |
| | | // } |
| | | // // å¤äºè¡¨æ ¼ç¬¬ä¸æ¡æ°æ® 设置âä¸ä¸æ¡âæé®ä¸å¯ç¹ |
| | | // else if (newVaue === 0) { |
| | | // this.dialog.isNextCantouch = true |
| | | // //ç¨æ·å
ç¹äºè¡¨æ ¼æå䏿¡,next为true,ç¶åç¹å»ç¬¬ä¸æ¡ï¼pre为trueãæ¤æ¶ä¸¤ä¸ªæé®é½è¢«å°é |
| | | // 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为true,ç¶åç¹å»æå䏿¡,next为trueãæ¤æ¶ä¸¤ä¸ªæé®é½è¢«å°é |
| | |
| | | // çå¬ å¤ææé®æ¯å¦å¯ç¹å» |
| | | watch: { |
| | | selectedRowIndex(newVaue) { |
| | | // // å¤äºè¡¨æ ¼çæå䏿¡æ°æ® 设置âä¸ä¸æ¡âæé®ä¸å¯ç¹ |
| | | // if (newVaue === this.displayData.length - 1) { |
| | | // this.dialog.isPreCantouch = true |
| | | // //ç¨æ·å
ç¹äºç¬¬ä¸æ¡ï¼pre为true,ç¶åç¹å»æå䏿¡,next为trueãæ¤æ¶ä¸¤ä¸ªæé®é½è¢«å°é |
| | | // if (this.dialog.isNextCantouch == true) { |
| | | // this.dialog.isNextCantouch = false |
| | | // } |
| | | // } |
| | | // // å¤äºè¡¨æ ¼ç¬¬ä¸æ¡æ°æ® 设置âä¸ä¸æ¡âæé®ä¸å¯ç¹ |
| | | // else if (newVaue === 0) { |
| | | // this.dialog.isNextCantouch = true |
| | | // //ç¨æ·å
ç¹äºè¡¨æ ¼æå䏿¡,next为true,ç¶åç¹å»ç¬¬ä¸æ¡ï¼pre为trueãæ¤æ¶ä¸¤ä¸ªæé®é½è¢«å°é |
| | | // 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 |
| | |
| | | }) |
| | | }, |
| | | close() { |
| | | // if (this.auditDialog.checkerNotes || this.auditDialog.enterpriseNotes) { |
| | | // ElMessageBox.confirm('è¿å°ä¼ï¼ç¡®å®è¦å
³éå', 'æç¤º', |
| | | // { |
| | | // confirmButtonText: 'ç¡®å®', |
| | | // cancelButtonText: 'åæ¶', |
| | | // type: 'warning', |
| | | // center :'true', |
| | | // icon: markRaw(Delete), |
| | | // draggable: true, |
| | | // }).then(() => { |
| | | // ElMessage({ |
| | | // type: 'success', |
| | | // message: 'å·²å
³é', |
| | | // }) |
| | | // this.auditDialog.visible = false |
| | | // }) |
| | | // }else{ |
| | | // this.auditDialog.visible = false |
| | | // } |
| | | |
| | | this.auditDialog.visible = false |
| | | }, |
| | | // è¡¨æ ¼è¡çé¢è² |
| | |
| | | <div><span class="diag-head-text1">ç«ç¹åç§°ï¼</span>{{ tableCurrentRowData.name }}</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> |
| | | <span v-else-if="tableCurrentRowData.exceptionType == '2'">è¶
æ </span> |
| | | <span v-else-if="tableCurrentRowData.exceptionType == '3'">æ°æ®é¿æ¶é´æ æ³¢å¨</span> |
| | | <span v-else-if="tableCurrentRowData.exceptionType == '4'">é级çªåå¼å¸¸</span> |
| | | <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> |
| | | <span class="diag-head-text1">å¼å¸¸æ¶é´æ®µï¼</span>{{ tableCurrentRowData.beginTime }} ~ |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- <div class="chart-jump-button"> |
| | | <el-button |
| | | type="danger" |
| | | :loading="loading.preButton" |
| | | :disabled="dialog.isPreCantouch || flag.banTouch" |
| | | @click="getPreviousRowData" |
| | | >䏿¡å¼å¸¸</el-button |
| | | > |
| | | <el-button |
| | | type="danger" |
| | | :loading="loading.afterButton" |
| | | :disabled="dialog.isNextCantouch || flag.banTouch" |
| | | @click="getNextRowData" |
| | | >䏿¡å¼å¸¸</el-button |
| | | > |
| | | </div> --> |
| | | <div class="chart-jump-button"> |
| | | <el-button |
| | | type="danger" |
| | |
| | | fixed |
| | | :index="indexMethod2" |
| | | ></el-table-column> |
| | | <!-- <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="lst" label="ééæ¶é´" align="center" show-overflow-tooltip /> |
| | | <el-table-column |
| | | prop="dustValue" |
| | |
| | | <script> |
| | | <!-- <script> |
| | | export default { |
| | | data() { |
| | | return{ |
| | |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | | </style> --> |
| | | <script> export default { |
| | | data() { |
| | | return { |
| | | form: { |
| | | name: '', |
| | | mnCode:'' |
| | | }, |
| | | siteData: [] // ä¿åææç«ç¹åå设å¤ç¼å·çæ°æ® }; |
| | | }, |
| | | |
| | | mounted() { |
| | | this.loadAllSites(); |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | |
| | | loadAllSites() { |
| | | this.$http.get('/dust/sitename').then((response) => { |
| | | this.siteData = response.data.data; |
| | | }); |
| | | |
| | | }, |
| | | |
| | | onSiteNameSelected(siteName) { |
| | | |
| | | const selectedSite = this.siteData.find((site) => site.siteName === siteName); |
| | | |
| | | if (selectedSite) { |
| | | this.form.mnCode = selectedSite.mnCode; |
| | | } |
| | | // å¦ææ²¡ææ¾å°å¯¹åºç设å¤ç¼å·ï¼æ¸
空mnCode |
| | | else |
| | | { this.form.mnCode = ''; |
| | | |
| | | |
| | | } } |
| | | } , |
| | | watch: { |
| | | 'form.name'(newValue) { |
| | | this.onSiteNameSelected(newValue); |
| | | } } } |
| | | |
| | | } |
| | | } |
| | | |
copy from src/views/line_graph/DataRiskModel.vue
copy to src/views/risk_assessment/DataRiskModel.vue
Îļþ´Ó src/views/line_graph/DataRiskModel.vue ¸´ÖÆ |
| | |
| | | import ButtonClick from '@/sfc/ButtonClick.vue' |
| | | import dayjs from 'dayjs' |
| | | import MonthSelect from '@/sfc/MonthSelect.vue' |
| | | import riskApi from '@/api/risk/riskApi.js' |
| | | import riskValue from '@/utils/risk_estimate_common_function/riskValue.js' |
| | | import lineChart from '@/utils/chartFunction/lineChart.js' |
| | | export default { |
| | | components: { |
| | | LineChart, |
| | |
| | | // ç«ç¹åç§° |
| | | name: '', |
| | | // 设å¤ç¼å· |
| | | number: '', |
| | | number: '3234', |
| | | // å¼å§æ¶é´ |
| | | beginTime: '', |
| | | // ç»ææ¶é´ |
| | | endTime: '' |
| | | }, |
| | | month: '', |
| | | // ä¼ éç»æä»½ç»ä»¶çå¼ |
| | | sfc_month: '', |
| | | |
| | | // æçº¿å¾é
置项 |
| | | option: {}, |
| | | // æ°æ®æ¸
å |
| | |
| | | // å¼å¸¸ç±»åæ®èé度 |
| | | exceptionTypeAggregation: 0 |
| | | }, |
| | | status: { |
| | | isHasData: false |
| | | }, |
| | | |
| | | // æ¥è¯¢æé®å è½½ææ |
| | | queryButton: false, |
| | | |
| | | // é£é©å¼æåååçç«ç¹ |
| | | top_10_sites_with_risk_values: [{ name: '', riskValue: 0.2 }], |
| | | // é£é©å¼ |
| | | weight: '' |
| | | weight: '', |
| | | // æ æ°æ®é
ç½®æ¶é´æ®µ |
| | | areaColor: [] |
| | | } |
| | | }, |
| | | |
| | | watch: { |
| | | sName() { |
| | | // å½å«ç页é¢è°ç¨æ¶ |
| | | if (this.sName != '' || this.month_1 != '') { |
| | | // æ´æ°ç«ç¹åååæ¶é´ |
| | | this.form.name = this.sName |
| | | this.month = this.month_1 |
| | | this.parentDataFlag = true |
| | | // æ´æ°ææ¸
å |
| | | this.getRiskRank() |
| | | // æ´æ°ç»è®¡æ°æ® |
| | | this.getAnalysisData() |
| | | // 计ç®é£é©å¼ |
| | | this.calRiskValue() |
| | | } |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | | // // å è½½é£é©å¼æé«çç«ç¹æ°æ® |
| | | this.ShowDefaultData() |
| | | }, |
| | | computed: { |
| | | // é£é©ç级 |
| | | riskGradeAndAdvice() { |
| | | return riskApi.getRiskAdvice(this.weight) |
| | | } |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | async updateOriginPage() { |
| | | this.screenLoading = true |
| | | // æ´æ°æåæ¸
åï¼å¹¶å¾å°é£é©å¼æé«ç«ç¹ |
| | | this.form.name = await this.getRiskRank() |
| | | let arr = await this.getRiskRank() |
| | | this.form.name = arr[0] |
| | | this.form.number = arr[1] |
| | | this.screenLoading = false |
| | | |
| | | // æ´æ°æ¥ç»è®¡æ°æ® |
| | | this.getAnalysisData() |
| | | // 计ç®é£é©å¼ |
| | |
| | | |
| | | // 计ç®é£é©å¼ |
| | | calRiskValue() { |
| | | exceptionApi.analysisdataByType(this.month, 'month').then((response) => { |
| | | const chartData = response.data.data |
| | | |
| | | if (response.data.data.length == 0) { |
| | | return |
| | | } |
| | | // ä»å¯¹è±¡æ°ç»æ¾å°è¯¥ç«ç¹æå¨çå
ç´ |
| | | let siteItem = this.findObjectByPropertyValue(chartData, 'name', this.form.name) |
| | | if (Object.keys(siteItem).length === 0) { |
| | | return |
| | | } |
| | | let arr = [] |
| | | arr.push(siteItem) |
| | | exceptionApi |
| | | .exceptiondata1({ |
| | | siteName: this.form.name, |
| | | beginTime: this.form.beginTime, |
| | | endTime: this.form.endTime |
| | | }) |
| | | .then((res) => { |
| | | let table = index.merge(arr, res.data.data, this.form.beginTime, this.form.endTime) |
| | | this.weight = table[0].riskValue |
| | | }) |
| | | riskApi.queryRiskValue(this.form.number, this.month, 'month').then((response) => { |
| | | this.weight = riskValue.calRiskValue(response.data.data[0]).toFixed(2) |
| | | }) |
| | | }, |
| | | |
| | |
| | | this.isNoData = true |
| | | return |
| | | } |
| | | this.begin = this.chartData[0].lst |
| | | this.end = this.chartData[this.chartData.length - 1].lst |
| | | // åææ°æ®ä¸çææ©æ¶é´ |
| | | let begin = this.chartData[0].lst |
| | | // åææ°æ®ä¸çæææ¶é´ |
| | | let end = this.chartData[this.chartData.length - 1].lst |
| | | |
| | | // ç§»é¤ç©ºæ°æ®ç¶æ |
| | | this.isNoData = false |
| | | |
| | | // æ æ°æ®çæ¶é´æ®µ |
| | | let noDataTimeInteval = lineChart.backNoDataInteval(begin, end) |
| | | // æ æ°æ®é
ç½®æ¶é´æ®µ |
| | | this.areaColor = lineChart.getMarkArea(noDataTimeInteval) |
| | | console.log('åºå', this.areaColor) |
| | | this.setChart() |
| | | // æçº¿å¾æ°æ® |
| | | let temp = index.calBillData(this.chartData, this.begin, this.end) |
| | | let temp = index.calBillData(this.chartData, begin, end) |
| | | this.bill.min = temp['min'] |
| | | this.bill.max = temp['max'] |
| | | |
| | |
| | | // éæ©å
¶ä»å¼ç±»åæ¶ |
| | | setChart() { |
| | | if (this.chartData.length) { |
| | | // xè½´æ¥ææ¶é´ |
| | | let dateList = [] |
| | | //é¢ç²ç©å¹³åæµåº¦ |
| | | let dayAvg = [] |
| | | let dataOnline = [] |
| | | let dataValid = [] |
| | | let dataExceed = [] |
| | | this.chartData.forEach((item) => { |
| | | //xè½´æ¥æ |
| | | dateList.push(item.lst) |
| | | // å岿²¹çæµåº¦ |
| | | dayAvg.push(item.dayAvg) |
| | | dataOnline.push(item.dayOnline.slice(0, -1)) |
| | | dataValid.push(item.dayValid.slice(0, -1)) |
| | | dataExceed.push(item.dayExceeding.slice(0, -1)) |
| | | }) |
| | | // æå»ºæçº¿å¾x,yæ°æ® |
| | | let obj = lineChart.getLineChartXYData( |
| | | this.chartData, |
| | | this.form.beginTime, |
| | | this.form.endTime |
| | | ) |
| | | |
| | | this.chartData1 = { |
| | | x: dateList, |
| | | y: dayAvg |
| | | x: obj.xData, |
| | | y: obj.yAvg |
| | | } |
| | | this.chartData2 = { |
| | | x: dateList, |
| | | y: dataOnline |
| | | x: obj.xData, |
| | | y: obj.yOnline |
| | | } |
| | | this.chartData3 = { |
| | | x: dateList, |
| | | y: dataValid |
| | | x: obj.xData, |
| | | y: obj.yValid |
| | | } |
| | | this.chartData4 = { |
| | | x: dateList, |
| | | y: dataExceed |
| | | x: obj.xData, |
| | | y: obj.yExceed |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // å¾å°å10é£é©æåæ¸
å |
| | | async getRiskRank() { |
| | | let staticsData = await exceptionApi.analysisdataByType(this.month, 'month') |
| | | let response = await riskApi.queryRiskValue('', this.month, 'month') |
| | | |
| | | let exceptionData = await exceptionApi.exceptiondata1({ |
| | | siteName: '', |
| | | beginTime: this.form.beginTime, |
| | | endTime: this.form.endTime |
| | | }) |
| | | let tableData = riskValue.backComprehensiveRiskTableData(response.data.data) |
| | | |
| | | const riskValueSites = index.merge( |
| | | staticsData.data.data, |
| | | exceptionData.data.data, |
| | | this.form.beginTime, |
| | | this.form.endTime |
| | | ) |
| | | this.top_10_sites_with_risk_values = this.getTopRiskData(riskValueSites, 10) |
| | | this.top_10_sites_with_risk_values = this.getTopRiskData(tableData, 10) |
| | | if (this.top_10_sites_with_risk_values.length != 0) { |
| | | // è¡¨æ ¼æé£é©å¼ååæå |
| | | this.$nextTick(() => { |
| | | this.$refs.table.sort('riskValue', 'descending') |
| | | }) |
| | | // Promise |
| | | return this.top_10_sites_with_risk_values[0].siteName |
| | | // ä¿åé£é©å¼æé«çç«ç¹åç§°å设å¤ç¼å· |
| | | let temp = [] |
| | | temp.push( |
| | | this.top_10_sites_with_risk_values[0].siteName, |
| | | this.top_10_sites_with_risk_values[0].mnCode |
| | | ) |
| | | return temp |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * éåºæåï¼è¿åéåºånumçå
ç´ |
| | | * @paramï¼ å¯¹è±¡æ°ç»ï¼è¿åçæ°é |
| | |
| | | :site-name="form.name" |
| | | isNeedDefaultSite="0" |
| | | @submit-value="(n) => (form.name = n)" |
| | | @submit-mncode="(n) => (form.number = n)" |
| | | ></InputSearch> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <MonthSelect :month="this.month_1" @submit-value="giveMonth"></MonthSelect> |
| | | <MonthSelect @submit-value="giveMonth"></MonthSelect> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | |
| | | <div v-loading="screenLoading" class="wait-name"> |
| | | <div class="chart-container" v-show="!isNoData && !screenLoading"> |
| | | <div class="time-text"> |
| | | <span>æ°æ®ç»è®¡æ¶æ®µï¼{{ begin }} ~ {{ end }}</span> |
| | | <span>æ°æ®ç»è®¡æ¶æ®µï¼{{ form.beginTime }} ~ {{ form.endTime }}</span> |
| | | <span class="site-name">{{ form.name }}</span> |
| | | </div> |
| | | |
| | |
| | | <el-card shadow="never" class="table-class"> |
| | | <el-table |
| | | ref="table" |
| | | highlight-current-row="true" |
| | | :highlight-current-row="true" |
| | | :data="top_10_sites_with_risk_values" |
| | | :default-sort="{ prop: 'riskValue', order: 'descending' }" |
| | | height="540" |
| | | > |
| | | <!-- :index="indexMethod" --> |
| | | |
| | | <el-table-column |
| | | type="index" |
| | | label="åºå·" |
| | | :index="indexMethod" |
| | | fixed |
| | | width="52" |
| | | show-overflow-tooltip |
| | |
| | | show-overflow-tooltip |
| | | align="center" |
| | | /> |
| | | <!-- <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> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-col :span="11"> |
| | | <el-card shadow="never" class="table-class"> |
| | | <DustRadarChart |
| | | :name="[ |
| | |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="3"> |
| | | <el-card shadow="never" class="card-height"> |
| | | <el-col :span="4"> |
| | | <el-card shadow="never" class="card-height risk-card"> |
| | | <template #header> |
| | | <h1 |
| | | :class="{ |
| | |
| | | é£é©å¼(0~1)ï¼{{ weight }} |
| | | </h1> |
| | | </template> |
| | | <div class="risk-text-container"> |
| | | |
| | | <div class="risk-grade"> |
| | | <strong>é£é©ç级ï¼</strong> |
| | | <span v-if="weight >= 0.6"> é«é£é©</span> |
| | | <span v-else-if="weight >= 0.2 && weight < 0.6"> ä¸é£é©</span> |
| | | <span v-else> ä½é£é©</span> |
| | | <h1 class="sub-title">é£é©ç级ï¼</h1> |
| | | <span class="sub-title">{{ riskGradeAndAdvice.riskGrade }} </span> |
| | | </div> |
| | | |
| | | <div class="risk-advice"> |
| | | <strong>管æ§å»ºè®®ï¼</strong> |
| | | <span v-if="weight >= 0.6"> 建议对该ç«ç¹è¿è¡çº¿ä¸æ§æ³æ£æ¥ï¼ä¸é¡¹æ°æ®å¯¹æ¯</span> |
| | | <span v-else-if="weight >= 0.2 && weight < 0.6"> 建议å¼å±å¸¸æè¿½è¸ªåæ</span> |
| | | <span v-else> 建议å¼å¯¼ä¼ä¸é¿æä¿æ</span> |
| | | <h1 class="sub-title">管æ§å»ºè®®ï¼</h1> |
| | | <div v-for="item in riskGradeAndAdvice.riskAdvice" :key="item" class="risk-advice-text"> |
| | | {{ item }} |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="grade-instance"> |
| | | <div class="container"> |
| | | <div class="block-color heigh"></div> |
| | |
| | | <div>ä½é£é©(ï¼0.2)</div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="4"> |
| | | <el-card shadow="never" class="card-height"> |
| | | <template #header><span class="title-16">é£é©è¯¦æ
</span></template> |
| | | <template #header> |
| | | <span class="title-16">é£é©è¯¦æ
</span> |
| | | </template> |
| | | |
| | | <el-form> |
| | | <el-form-item label="æå¤§å¼ï¼"> {{ bill.max }} mg/m³ </el-form-item> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-card shadow="never" class="card-value"> |
| | | <LineChart title="æ¥åå¼" :chartData="chartData1" yName="mg/m³" seriesName="æ¥åå¼"> |
| | | <LineChart |
| | | title="æ¥åå¼" |
| | | :chartData="chartData1" |
| | | yName="mg/m³" |
| | | seriesName="æ¥åå¼" |
| | | :areaColor="areaColor" |
| | | > |
| | | </LineChart> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-card shadow="never" class="card-value"> |
| | | <LineChart title="æ¥å¨çº¿ç" :chartData="chartData2" yName="%" seriesName="æ¥å¨çº¿ç"> |
| | | <LineChart |
| | | title="æ¥å¨çº¿ç" |
| | | :chartData="chartData2" |
| | | yName="%" |
| | | seriesName="æ¥å¨çº¿ç" |
| | | :areaColor="areaColor" |
| | | > |
| | | </LineChart> |
| | | </el-card> |
| | | </el-col> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-card shadow="never" class="card-value"> |
| | | <LineChart title="æ¥ææç" :chartData="chartData3" yName="%" seriesName="æ¥ææç"> |
| | | <LineChart |
| | | title="æ¥ææç" |
| | | :chartData="chartData3" |
| | | yName="%" |
| | | seriesName="æ¥ææç" |
| | | :areaColor="areaColor" |
| | | > |
| | | </LineChart> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-card shadow="never" class="card-value"> |
| | | <LineChart title="æ¥è¶
æ ç" :chartData="chartData4" yName="%" seriesName="æ¥è¶
æ ç"> |
| | | <LineChart |
| | | title="æ¥è¶
æ ç" |
| | | :chartData="chartData4" |
| | | yName="%" |
| | | seriesName="æ¥è¶
æ ç" |
| | | :areaColor="areaColor" |
| | | > |
| | | </LineChart> |
| | | </el-card> |
| | | </el-col> |
| | |
| | | width: 98%; |
| | | /* height: 600px; */ |
| | | } |
| | | .card-value { |
| | | /* min-width:900px; */ |
| | | /* padding:0px */ |
| | | } |
| | | |
| | | .card-height { |
| | | height: 570px; |
| | | } |
| | |
| | | line-height: 60px; |
| | | } |
| | | .risk-advice { |
| | | margin: 40px 0px; |
| | | /* margin: 20px 0px; */ |
| | | } |
| | | .container { |
| | | display: flex; |
| | | margin-bottom: 10px; |
| | | } |
| | | .grade-instance { |
| | | margin-top: 80px; |
| | | /* margin-top: 50px; */ |
| | | } |
| | | .block-color { |
| | | width: 1em; |
| | |
| | | } |
| | | .weightColor-low { |
| | | color: #9fdb1d; |
| | | font-size: 16px; |
| | | } |
| | | .weightColor-medium { |
| | | color: #dabe09; |
| | | font-size: 16px; |
| | | } |
| | | .weightColor-heigh { |
| | | color: red; |
| | | font-size: 16px; |
| | | } |
| | | .risk-grade { |
| | | display: flex; |
| | | margin-top: 10px; |
| | | } |
| | | :deep().el-table__header-wrapper { |
| | | color: red; |
| | |
| | | .site-name { |
| | | margin-left: 20px; |
| | | } |
| | | .risk-advice-text { |
| | | font-size: 14px; |
| | | color: #333333; |
| | | letter-spacing: 1.5px; |
| | | margin-top: 10px; |
| | | } |
| | | .sub-title { |
| | | font-size: 14px; |
| | | color: #333333; |
| | | } |
| | | |
| | | .risk-text-container{ |
| | | height: 490px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-around; |
| | | } |
| | | </style> |
ÎļþÃû´Ó src/views/line_graph/DataRiskRank.vue ÐÞ¸Ä |
| | |
| | | }, |
| | | |
| | | mounted() { |
| | | this.form.name = '' |
| | | this.fetchData() |
| | | this.calTableHeight() |
| | | }, |
| | |
| | | let params = {} |
| | | params['page'] = this.currentPage |
| | | params['pageSize'] = this.pageSize |
| | | if (this.form.name) { |
| | | params['siteName'] = this.form.name |
| | | } |
| | | params['siteName'] = '' |
| | | if (this.form.beginTime) { |
| | | params['beginTime'] = this.form.beginTime |
| | | } |
ÎļþÃû´Ó src/views/line_graph/SiteComprehensiveRskRanking.vue ÐÞ¸Ä |
| | |
| | | <script> |
| | | import AreaAndmonitorType from '@/sfc/AreaAndmonitorType.vue' |
| | | import exceptionApi from '@/api/exceptionApi.js' |
| | | import { useCommonFunction } from '../../utils/common.js' |
| | | import index from '@/utils/risk_estimate_common_function/index.js' |
| | | import dayjs from 'dayjs' |
| | | import ButtonExportExcel from '@/sfc/ButtonExportExcel.vue' |
| | | import ButtonClick from '@/sfc/ButtonClick.vue' |
| | | import { ElMessage } from 'element-plus' |
| | | import MonthSelect from '@/sfc/MonthSelect.vue'; |
| | | import SiteDetail from '@/views/line_graph/components/SiteDetail.vue' |
| | | import { useLoadingStore } from '@/stores/loadingStore'; |
| | | import { mapStores } from 'pinia'; |
| | | import riskApi from '@/api/risk/riskApi.js'; |
| | | import riskValue from '@/utils/risk_estimate_common_function/riskValue.js'; |
| | | import MonthSelect from '@/sfc/MonthSelect.vue' |
| | | import { useLoadingStore } from '@/stores/loadingStore' |
| | | import { mapStores } from 'pinia' |
| | | import riskApi from '@/api/risk/riskApi.js' |
| | | import riskValue from '@/utils/risk_estimate_common_function/riskValue.js' |
| | | export default { |
| | | components: { |
| | | AreaAndmonitorType, |
| | | ButtonExportExcel, |
| | | ButtonClick, |
| | | MonthSelect, |
| | | SiteDetail, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | return { exportToExcel } |
| | | }, |
| | | computed: { |
| | | ...mapStores(useLoadingStore), |
| | | ...mapStores(useLoadingStore) |
| | | }, |
| | | mounted(){ |
| | | // |
| | |
| | | this.calTableHeight() |
| | | }, |
| | | methods: { |
| | | |
| | | /** |
| | | * å°ä¸å½æ åæ¶é´è½¬ä¸ºæå®æ ¼å¼ |
| | | * @paramï¼ |
| | |
| | | */ |
| | | giveMonth(val){ |
| | | //å°ä¸å½æ åæ¶é´è½¬ä¸ºæå®æ ¼å¼(该ç»ä»¶è¿åçæ åæ¶é´çæ ¼å¼ï¼æä»¥å¿
é¡»çå è¿ä¸ªå½æ°) |
| | | this.form.month = dayjs(val).format('YYYY-MM-DD'); |
| | | 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); |
| | | |
| | | console.log(this.form.beginTime, this.form.endTime) |
| | | }, |
| | | |
| | | // åè½ï¼æ¹åè¡¨æ ¼æä¸ªåå
æ ¼çé¢è² |
| | |
| | | // å¹³åå¼ä¸æ»¡è¶³æ åæ¶ |
| | | if (columnIndex == 4) { |
| | | if (row.riskValue >= 0.8) { |
| | | return 'warning-row'; |
| | | return 'warning-row' |
| | | } |
| | | } |
| | | |
| | | |
| | | }, |
| | | // åè½ï¼è¡¨æ ¼é«åº¦æ ¹æ®å
容èªéåº |
| | | calTableHeight() { |
| | |
| | | // å
¶ä¸ä¸ä¸ª40æ¯çåçæ»å¤è¾¹è· |
| | | this.tableHeight = `calc(100vh - ${h1}px - 40px - 40px - var(--el-main-padding) * 2` |
| | | }, |
| | | // ç¹å»é£é©æåæé® |
| | | // fetchData() { |
| | | // this.loading = true |
| | | // this.queryButton = true |
| | | // exceptionApi |
| | | // .analysisdataByType(this.form.month, 'month') |
| | | // .then((response) => { |
| | | // this.chartData = response.data.data |
| | | // this.queryButton = false |
| | | // this.isNoData = false |
| | | |
| | | // if (response.data.data.length == 0) { |
| | | // this.isNoData = true |
| | | // return |
| | | // } |
| | | |
| | | // exceptionApi |
| | | // .exceptiondata1({ |
| | | // siteName: '', |
| | | // beginTime: this.form.beginTime, |
| | | // endTime: this.form.endTime |
| | | // }) |
| | | // .then((res) => { |
| | | // this.isNoData = false |
| | | |
| | | // this.table = index.merge( |
| | | // this.chartData, |
| | | // res.data.data, |
| | | // this.form.beginTime, |
| | | // this.form.endTime |
| | | // ) |
| | | // this.loading = false |
| | | |
| | | // this.$nextTick(()=>{ |
| | | // this.$refs.table.sort('riskValue','descending') |
| | | |
| | | // }) |
| | | |
| | | // }) |
| | | |
| | | // }) |
| | | // }, |
| | | |
| | | // ç¹å»é£é©æåæé® |
| | | fetchData() { |
| | | this.loading = true |
| | | this.queryButton = true |
| | | riskApi |
| | | .queryRiskValue('',this.form.month, 'month') |
| | | .then((response) => { |
| | | riskApi.queryRiskValue('', this.form.month, 'month').then((response) => { |
| | | if (response.data.data.length == 0) { |
| | | this.isNoData = true |
| | | return |
| | | } |
| | | |
| | | this.table = riskValue.calMonthlyRiskValue(response.data.data) |
| | | this.table = riskValue.backComprehensiveRiskTableData(response.data.data) |
| | | console.log('表', this.table) |
| | | this.queryButton = false |
| | | this.isNoData = false |
| | | this.loading = false |
| | | |
| | | this.$nextTick(()=>{ |
| | | this.$refs.table.sort('riskValue','descending') |
| | | |
| | | }) |
| | | }) |
| | | }, |
| | |
| | | this.fetchData() |
| | | // å¼å¸¸æ°æ® |
| | | // this.exceptiondataCount() |
| | | }, |
| | | |
| | | // åå
æ ¼å
容æ¢è¡ |
| | | wrapIndex(index) { |
| | | return index.replace(/\n/g, '<br/>') |
| | | }, |
| | | |
| | | /** |
| | |
| | | } |
| | | }, |
| | | openDetail(row){ |
| | | const encodedSiteName = encodeURIComponent(row.siteName); |
| | | const encodedSiteName = encodeURIComponent(row.siteName) |
| | | this.$router.push(`/detail/${encodedSiteName}/${this.form.month}`) |
| | | |
| | | // this.$router.push(`/detail/${row.siteName}/${this.form.month}`) |
| | | } |
| | | } |
| | | } |
| | |
| | | type="index" |
| | | prop="name" |
| | | label="åºå·" |
| | | :index="indexMethod" |
| | | fixed |
| | | align="center" |
| | | width="55" |
| | |
| | | /> |
| | | <el-table-column prop="siteName" label="ç«ç¹åç§°" align="center" show-overflow-tooltip > |
| | | <template #default="{ row }"> |
| | | <el-button type="primary" text class="table-button" @click="openDetail(row)" |
| | | >{{row.siteName}}</el-button |
| | | > |
| | | <el-button type="primary" text class="table-button" @click="openDetail(row)">{{ |
| | | row.siteName |
| | | }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="region" label="åºå" align="center" width="80" show-overflow-tooltip /> |
| | | <el-table-column prop="monitorType" label="æ£æµç±»å" align="center" width="80" show-overflow-tooltip /> |
| | | <el-table-column |
| | | prop="monitorType" |
| | | label="æ£æµç±»å" |
| | | align="center" |
| | | width="80" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column |
| | | prop="riskValue" |
| | | label="é£é©å¼" |
| | |
| | | width="100" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column prop="riskGrage" label="é£é©ç级" align="center" width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="riskAdvice" label="ç®¡æ§æªæ½" align="center" show-overflow-tooltip /> |
| | | <el-table-column |
| | | prop="riskGrade" |
| | | label="é£é©ç级" |
| | | align="center" |
| | | width="100" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column prop="riskAdvice" label="ç®¡æ§æªæ½" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | <div v-html="wrapIndex(scope.row.riskAdvice)"></div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="beginTime" |
| | | label="å¼å§æ¥æ" |
| | |
| | | /> |
| | | </el-table> |
| | | <el-empty v-show="isNoData" :image-size="200" /> |
| | | |
| | | |
| | | |
| | | </template> |
| | | |
| | | <style scoped> |
| | |
| | | text-decoration: underline; |
| | | border-radius: 0px; |
| | | } |
| | | |
| | | .el-table { |
| | | color: #333333; |
| | | } |
| | | </style> |
ÎļþÃû´Ó src/views/line_graph/components/DustRadarChart.vue ÐÞ¸Ä |
| | |
| | | |
| | | <style scoped> |
| | | .chart { |
| | | width: 650px; |
| | | /* width: 650px; */ |
| | | width: 620px; |
| | | height: 500px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | <script> |
| | | export default { |
| | | props:{ |
| | | dialogVisible:{ |
| | | type:Boolean, |
| | | default:false |
| | | } |
| | | }, |
| | | data() { |
| | | return{ |
| | | // dialogVisible:false |
| | | isOpen:false |
| | | } |
| | | }, |
| | | watch:{ |
| | | dialogVisible(){ |
| | | this.isOpen = this.dialogVisible |
| | | } |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <el-dialog |
| | | v-model="isOpen" |
| | | width="80%" |
| | | > |
| | | 11111 |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
ÎļþÃû´Ó src/views/line_graph/components/LineChart.vue ÐÞ¸Ä |
| | |
| | | seriesName: { |
| | | type: String, |
| | | default: 'ç³»åä¸' |
| | | }, |
| | | areaColor: { |
| | | type: Array, |
| | | default: () => { |
| | | return [] |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | }, |
| | | mounted() { |
| | | this.intiChart() |
| | | |
| | | window.addEventListener('resize', this.resizeChart) |
| | | }, |
| | | watch: { |
| | |
| | | toolbox: { |
| | | // å·¥å
·æ |
| | | feature: { |
| | | // dataZoom: { |
| | | // // åºåç¼©æ¾ |
| | | // yAxisIndex: 'none' |
| | | // }, |
| | | |
| | | // ä¿å为å¾ç |
| | | saveAsImage: {} |
| | | } |
| | |
| | | { |
| | | name: this.seriesName, |
| | | type: 'line', |
| | | data: this.chartData.y |
| | | data: this.chartData.y, |
| | | // 忢æå®æ¶é´åºé´çèæ¯é¢è² |
| | | |
| | | markArea: { |
| | | itemStyle: { |
| | | color: '#e5e6eb' |
| | | }, |
| | | |
| | | data: this.areaColor |
| | | } |
| | | } |
| | | ] |
| | | } |
| | |
| | | height: 300px; |
| | | margin-top: 25px; |
| | | margin-left: 30px; |
| | | color: #535a64; |
| | | } |
| | | </style> |
ÎļþÃû´Ó src/views/line_graph/components/SiteDetail.vue ÐÞ¸Ä |
| | |
| | | <!--ç¹å»ç«ç¹ 跳转è³é£é©æ¨¡åé¡µé¢ --> |
| | | <script> |
| | | import subRiskModel from '@/views/line_graph/components/subRiskModel.vue' |
| | | import subRiskModel from '@/views/risk_assessment/components/subRiskModel.vue' |
| | | export default { |
| | | components: { |
| | | subRiskModel |
ÎļþÃû´Ó src/views/line_graph/DataRiskModel.vue ÐÞ¸Ä |
| | |
| | | <!-- æ¥åå¼ --> |
| | | <!-- é£é©æ¨¡åçé¡µé¢ |
| | | åºå«ï¼ |
| | | 1.æ¥åç¶ç»ä»¶ä¼ å |
| | | 2.æ åå§å è½½æ°æ®ï¼æ mountedï¼ |
| | | --> |
| | | |
| | | <script> |
| | | import InputSearch from '@/sfc/InputSearch.vue' |
| | | // import InputSearch from '@/sfc/InputSearch.vue' |
| | | import AreaAndmonitorType from '@/sfc/AreaAndmonitorType.vue' |
| | | import DustRadarChart from './components/DustRadarChart.vue' |
| | | import DustRadarChart from '@/views/risk_assessment/components/DustRadarChart.vue' |
| | | import exceptionApi from '@/api/exceptionApi.js' |
| | | import LineChart from './components/LineChart.vue' |
| | | import LineChart from '@/views/risk_assessment/components/LineChart.vue' |
| | | import index from '@/utils/risk_estimate_common_function/index.js' |
| | | import ButtonClick from '@/sfc/ButtonClick.vue' |
| | | import dayjs from 'dayjs' |
| | | import MonthSelect from '@/sfc/MonthSelect.vue' |
| | | export default { |
| | | props: { |
| | | sName: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | month_1: { |
| | | type: String, |
| | | default: '' |
| | | } |
| | | }, |
| | | components: { |
| | | LineChart, |
| | | InputSearch, |
| | | // DateSelectWithShortCuts, |
| | | // InputSearch, |
| | | AreaAndmonitorType, |
| | | DustRadarChart, |
| | | ButtonClick, |
| | |
| | | chartData2: {}, |
| | | chartData3: {}, |
| | | chartData4: {}, |
| | | //devId:'', //设å¤ç¼å· |
| | | begin: '', //å¼å§æ¶é´ |
| | | end: '', //ç»ææ¶é´ |
| | | |
| | |
| | | name: '', |
| | | // 设å¤ç¼å· |
| | | number: '', |
| | | |
| | | // month:'', |
| | | // å¼å§æ¶é´ |
| | | beginTime: '', |
| | | // ç»ææ¶é´ |
| | |
| | | // æ´æ°ç«ç¹åååæ¶é´ |
| | | this.form.name = this.sName |
| | | this.month = this.month_1 |
| | | // åæ¶æ´æ°æèµ·å§æ¶é´ |
| | | this.form.beginTime = dayjs(this.month).startOf().format('YYYY-MM-DD HH:mm:ss') |
| | | this.form.endTime = dayjs(this.month).endOf('month').format('YYYY-MM-DD HH:mm:ss') |
| | | |
| | | this.parentDataFlag = true |
| | | // æ´æ°ææ¸
å |
| | | this.getRiskRank() |
| | | |
| | | // æ´æ°ç»è®¡æ°æ® |
| | | this.getAnalysisData() |
| | | // 计ç®é£é©å¼ |
| | |
| | | } |
| | | }, |
| | | |
| | | mounted() { |
| | | // // å è½½é£é©å¼æé«çç«ç¹æ°æ® |
| | | this.ShowDefaultData() |
| | | }, |
| | | mounted() {}, |
| | | |
| | | methods: { |
| | | // æ¥è¯¢ç«ç¹ç»è®¡ä¿¡æ¯ |
| | |
| | | // åæ¶æ´æ°å¼å§åç»ææ¶é´ |
| | | this.form.beginTime = dayjs(this.month).startOf().format('YYYY-MM-DD HH:mm:ss') |
| | | this.form.endTime = dayjs(this.month).endOf('month').format('YYYY-MM-DD HH:mm:ss') |
| | | console.log(this.form.beginTime, this.form.endTime) |
| | | }, |
| | | |
| | | /** |
| | |
| | | |
| | | // å è½½é»è®¤å±ç¤ºçå
容 |
| | | async updateOriginPage() { |
| | | this.screenLoading = true |
| | | // æ´æ°æåæ¸
åï¼å¹¶å¾å°é£é©å¼æé«ç«ç¹ |
| | | this.form.name = await this.getRiskRank() |
| | | this.screenLoading = false |
| | | |
| | | // æ´æ°æ¥ç»è®¡æ°æ® |
| | | this.getAnalysisData() |
| | | // 计ç®é£é©å¼ |
| | |
| | | if (this.form.endTime) { |
| | | params['endTime'] = this.form.endTime |
| | | } |
| | | this.screenLoading = true |
| | | this.loading = true |
| | | this.queryButton = true |
| | | exceptionApi |
| | |
| | | |
| | | // ç§»é¤ç©ºæ°æ®ç¶æ |
| | | this.isNoData = false |
| | | this.screenLoading = false |
| | | this.setChart() |
| | | // æçº¿å¾æ°æ® |
| | | let temp = index.calBillData(this.chartData, this.begin, this.end) |
| | |
| | | y: dataExceed |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // å¾å°å10é£é©æåæ¸
å |
| | | async getRiskRank() { |
| | | let staticsData = await exceptionApi.analysisdataByType(this.month, 'month') |
| | | |
| | | let exceptionData = await exceptionApi.exceptiondata1({ |
| | | siteName: '', |
| | | beginTime: this.form.beginTime, |
| | | endTime: this.form.endTime |
| | | }) |
| | | |
| | | const riskValueSites = index.merge( |
| | | staticsData.data.data, |
| | | exceptionData.data.data, |
| | | this.form.beginTime, |
| | | this.form.endTime |
| | | ) |
| | | this.top_10_sites_with_risk_values = this.getTopRiskData(riskValueSites, 10) |
| | | if (this.top_10_sites_with_risk_values.length != 0) { |
| | | // è¡¨æ ¼æé£é©å¼ååæå |
| | | this.$nextTick(() => { |
| | | this.$refs.table.sort('riskValue', 'descending') |
| | | }) |
| | | // Promise |
| | | return this.top_10_sites_with_risk_values[0].siteName |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * éåºæåï¼è¿åéåºånumçå
ç´ |
| | | * @paramï¼ å¯¹è±¡æ°ç»ï¼è¿åçæ°é |
| | | */ |
| | | getTopRiskData(arr, num) { |
| | | // æç
§riskValueéåºæå |
| | | arr.sort((a, b) => b.riskValue - a.riskValue) |
| | | // è·åånum个å
ç´ |
| | | return arr.slice(0, num) |
| | | } |
| | | } |
| | | } |
| | |
| | | <el-form-item class="form-item"> |
| | | <AreaAndmonitorType></AreaAndmonitorType> |
| | | </el-form-item> |
| | | <el-form-item class="form-item"> |
| | | |
| | | <!-- <el-form-item class="form-item"> |
| | | <InputSearch |
| | | :site-name="form.name" |
| | | isNeedDefaultSite="0" |
| | | @submit-value="(n) => (form.name = n)" |
| | | ></InputSearch> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item> |
| | | <!-- <el-form-item> |
| | | <MonthSelect :month="this.month_1" @submit-value="giveMonth"></MonthSelect> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item> |
| | | <!-- <el-form-item> |
| | | <ButtonClick |
| | | content="é£é©è¯ä¼°" |
| | | type="primary" |
| | | :loading="queryButton" |
| | | @do-search="riskAssessment" |
| | | ></ButtonClick> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | |
| | | <div v-loading="screenLoading" class="wait-name"> |
| | |
| | | </div> |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="5"> |
| | | <el-card shadow="never" 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 |
| | | width="52" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | prop="siteName" |
| | | label="ç«ç¹åç§°" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | > |
| | | <template #default="{ row }"> |
| | | <el-button |
| | | type="primary" |
| | | text |
| | | class="table-button" |
| | | @click="querySiteStaticsInfo(row)" |
| | | >{{ row.siteName }}</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="riskValue" |
| | | label="é£é©å¼" |
| | | sortable |
| | | show-overflow-tooltip |
| | | align="center" |
| | | /> |
| | | <!-- <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> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-card shadow="never" class="table-class"> |
| | | <el-col :span="14"> |
| | | <el-card shadow="never"> |
| | | <DustRadarChart |
| | | :name="[ |
| | | 'æ°æ®ææé£é©', |
| | | 'å
¸åå¼å¸¸å¤ç°é£é©', |
| | | 'å¼å¸¸ç±»åèéé£é©', |
| | | 'è¶
æ å¼å¸¸é£é©', |
| | | 'æ°æ®è¶
æ é£é©', |
| | | 'æ°æ®å¨çº¿é£é©' |
| | | ]" |
| | | :yData="[ |
| | |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="3"> |
| | | <el-col :span="5"> |
| | | <el-card shadow="never" class="card-height"> |
| | | <template #header> |
| | | <h1 |
| | |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="4"> |
| | | <el-col :span="5"> |
| | | <el-card shadow="never" class="card-height"> |
| | | <template #header><span class="title-16">é£é©è¯¦æ
</span></template> |
| | | |
| | |
| | | /* padding:0px */ |
| | | } |
| | | .card-height { |
| | | height: 570px; |
| | | height: 540px; |
| | | } |
| | | .el-header { |
| | | background-color: #010408; |
| | |
| | | .table-class { |
| | | /* border: 1px solid blue; */ |
| | | /* margin: 20px 0px 20px 0px; */ |
| | | height: 570px; |
| | | height: 540px; |
| | | } |
| | | |
| | | .table-button { |