diff --git a/pages/homeIndex/chartOption.js b/pages/homeIndex/chartOption.js new file mode 100644 index 0000000..4016e27 --- /dev/null +++ b/pages/homeIndex/chartOption.js @@ -0,0 +1,100 @@ + +import echarts from 'echarts/lib/echarts'; +import moment from 'moment'; + +export default function DrpOption(data=[]) { + const maxY = Math.max(...data.map(item => item.sumDrp)) + let eopts = { + tooltip: { + trigger: 'axis', + }, + grid: { + x: 18, + y: 24, + x2: 28, + y2: 36, + borderWidth: 0, + bottom: '10%', + left: '8%', + width: '90%', + }, + calculable: true, + xAxis: [ + { + type: 'category', + data: data.map(o => moment(o.time).format("HH:mm")), + splitLine: { + show: false + }, + axisLabel: { + color: '#bbb', + fontSize: 14, + overflow: 'truncate', + }, + axisLine: { + lineStyle: { + color: '#dfdfdf', + width: 0.5 + } + }, + axisTick: { + show: false + } + } + ], + yAxis: [ + { + type: 'value', + position: 'left', + splitLine: { + show: true, + lineStyle: { + color: '#07a6ff', + width: 0.25, + type: 'dashed' + } + }, + axisLabel: { + color: '#bbb', + fontSize: 10, + }, + axisLine: { + show: false + }, + axisTick: { + show: false + }, + min: 0, + max:maxY + } + ], + // dataZoom: [ + // { + // type: 'slider', // 设置为滑动条类型 + // xAxisIndex: 0, // 指定控制第一个 x 轴 + // start: 0, // 初始窗口的起始位置(百分比) + // end: 100, // 初始窗口的结束位置(百分比) + + // } + // ], + } + let chartData = { + series: [ + { + name: '面雨量(mm)', + type: 'bar', + barWidth: '60%', + data: data.map(o => o.sumDrp), + itemStyle: { + normal: { + color: "#6395f9" + } + } + } + ] + } + return { + eopts, + chartData + } +} diff --git a/pages/homeIndex/index.vue b/pages/homeIndex/index.vue index 168961f..b3a09e9 100644 --- a/pages/homeIndex/index.vue +++ b/pages/homeIndex/index.vue @@ -13,7 +13,7 @@
{{ userList.data.userName }}
- {{ userList.data.orgList[0].positionList[0].orgName || '' }} + {{ userList.data.orgList[0].orgName || '' }}
@@ -32,6 +32,8 @@ :src="item.icon" mode="aspectFit" > +
+
@@ -48,10 +50,12 @@ src="../../static/tabs/ld.png" mode="aspectFit" >当前防汛应急响应:IV级 + >当前防汛应急响应: + {{level}} +

@@ -160,19 +164,21 @@

- +
- + - - + + - +
- + @@ -188,7 +194,6 @@ -

@@ -200,6 +205,67 @@

+ + + +
+

+ 雨情 +

+
+ + +
+
+
+ +
+
+ +
+

+ 水情 +

+
+ +
+
+
+
+
+
{{item.stnm}}
+
实时水位:{{item.z}}m
+
+
+ 监测时间:{{item.tm}} +
+
+
+
+
+
+
{{item.stnm}}
+
实时水位:{{item.normWatLev}}m
+
+
+ 监测时间:{{item.tm}} +
+
+
+
+
@@ -215,7 +281,9 @@ const dataType = { } import moment from 'moment' - +import {level} from "../../pages/utils/dicType" +import {disType} from "../utils/dicType.js" +import drpOption from "./chartOption.js" export default { data () { return { @@ -231,7 +299,38 @@ export default { ydate: '', showTextTypeTab: 1, tableData: {}, - tm: '' + tm: '', + level: '', + limit:disType(uni.getStorageSync('value').adcd), + timeList:[ + {text:'昨天08:00~当前时间',value:1}, + {text:'今天08:00~当前时间',value:2}, + {text:'昨天08:00~今天08:00',value:3}, + {text:'最近1小时',value:4}, + {text:'最近3小时',value:5}, + {text:'最近6小时',value:6}, + {text:'最近12小时',value:7}, + {text:'最近24小时',value:8}, + ], + value1:3, + rainChartData:[], + formData:{ + stm:moment() + .subtract(1, 'days') + .startOf('day') + .set({ hour: 8, minute: 0 }), + etm: moment() + .startOf('day') + .set({ hour: 8, minute: 0 }) + }, + rainChartData:[], + chartData:{}, + subList:["河道水情","水库水情"], + current:0, + hdList:[], + skList:[], + readStatus:false, + readYjStatus:false } }, computed: { @@ -307,9 +406,156 @@ export default { } ] } + }, + }, + watch:{ + rainChartData(newValue){ + this.chartData = {...drpOption(newValue)} + }, + limit:{ + handler(newValue){ + if(!newValue){ + this.getRainList(); + } + }, + immediate: true + }, + current:{ + handler(newValue){ + if(newValue == 0){ + this.getHdList() + }else{ + this.getSkList() + } + }, + immediate: true } }, methods: { + async getYjRead(){ + try { + const {data} = await uni.$http.get("/gunshiApp/xfflood/current/situation/flag") + if(data.code == 200){ + this.readYjStatus = data.data + } + } catch (error) { + uni.$showMsg() + } + }, + async getReadStatus(){ + try { + const {data} = await uni.$http.get("/gunshiApp/xfflood/xfProjectRun/has/read") + if(data.code == 200){ + this.readStatus = Object.values(data.data).some(item => item == true) + } + } catch (error) { + uni.$showMsg() + } + }, + jumpHdDetail(params){ + uni.navigateTo({ + url:`/pages/hdDetail/hdDetail?stcd=${params.stcd}&stnm=${params.stnm}&source=${params.source}&wrz=${params.wrz}&grz=${params.grz}` + }) + }, + jumpSkDetail(params){ + uni.navigateTo({ + url:`/pages/skDetail/skDetail?stcd=${params.stcd}&stnm=${params.stnm}&source=${params.source}&afsltdz=${params.afsltdz}&flLowLimLev=${params.flLowLimLev}&desFloodLev=${params.desFloodLev}&calFloodLev=${params.calFloodLev}&resCode=${params.resCode}` + }) + }, + async getSkList(){ + try { + const {data} = await uni.$http.post('/gunshiApp/xfflood/reservoir/water/list',{ + sources:["SW","SK"], + adcd:uni.getStorageSync('value').adcd + }) + if(data.code == 200){ + this.skList = data.data; + } + } catch (error) { + uni.$showMsg() + } + + }, + async getHdList(){ + try { + const {data} = await uni.$http.post('/gunshiApp/xfflood/river/water/list',{ + sources:["SH","SW"], + adcd:uni.getStorageSync('value').adcd + }) + if(data.code == 200){ + this.hdList = data.data; + } + } catch (error) { + uni.$showMsg() + } + + }, + subChange(e){ + this.current = e + }, + async getRainList(){ + try { + const {data} = await uni.$http.post('/gunshiApp/xfflood/real/rain/home/list',{ + start:this.formData.stm.format("YYYY-MM-DD HH:mm:ss"), + end:this.formData.etm.format("YYYY-MM-DD HH:mm:ss") + }) + if(data.code == 200){ + this.rainChartData = data.data; + } + } catch (error) { + uni.$showMsg() + } + + }, + changeTime(params){ + let tmValue=[]; + if(params === 1){ + tmValue=[moment() + .subtract(1, 'days') + .startOf('day') + .set({ hour: 8, minute: 0 }), + moment() + ] + }else if(params ===2){ + tmValue=[moment() + .startOf('day') + .set({ hour: 8, minute: 0 }), + moment() + ] + }else if(params ===3){ + tmValue=[moment() + .subtract(1, 'days') + .startOf('day') + .set({ hour: 8, minute: 0 }), + moment() + .startOf('day') + .set({ hour: 8, minute: 0 }) + ] + }else if(params ===4){ + tmValue=[moment().subtract(1, 'hours'), + moment() + ] + }else if(params ===5){ + tmValue=[moment().subtract(3, 'hours'), + moment() + ] + }else if(params ===6){ + tmValue=[moment().subtract(6, 'hours'), + moment() + ] + }else if(params ===7){ + tmValue=[moment().subtract(12, 'hours'), + moment() + ] + }else if(params ===8){ + tmValue=[moment().subtract(24, 'hours'), + moment() + ] + } + this.formData.stm=tmValue[0]; + this.formData.etm=tmValue[1]; + this.getRainList() + }, todetail (val) { console.log('val', val) if (val == 1) { @@ -402,17 +648,43 @@ export default { this.tm = d1 + h1 }, - + async getResponseLevel () { + try { + const {data} = await uni.$http.post('/gunshiApp/xfflood/xfEmerRespR/page',{ + pageSo:{pageSize: 10, pageNumber: 1}, + year:moment().format('YYYY') + }) + if(data.code == 200){ + if(data.data.records.length > 0){ + this.level = level(data.data.records[0].level) + }else{ + this.level = '无' + } + } + } catch (e) { + uni.$showMsg() + } + }, myNavigateTo (url) { uni.navigateTo({ url: url // 跳转到对应路径的页面 }) - } + }, + // 响应级别 + }, onLoad () { this.getSwiperList() this.getOverview() this.getDataTime() + this.getResponseLevel() + + }, + onShow(){ + this.getReadStatus() + if(this.limit == 1){ + this.getYjRead() + } } } @@ -469,6 +741,7 @@ export default { text-align: center; } .navIcon { + position: relative; width: 50px; height: 50px; /* border-radius: 10px; @@ -477,6 +750,15 @@ export default { justify-content: center; align-items: center; } +.readStatus{ + position: absolute; + top: 0; + right: 0; + width: 10px; + height: 10px; + border-radius: 50%; + background: #de2433; +} .warn { background-color: #fff; color: #de2433; @@ -515,7 +797,7 @@ export default { /* info_24 */ .info_24 { - padding: 20px; + padding: 15px; background-color: #fff; margin-bottom: 12rpx; } @@ -565,6 +847,7 @@ export default { /* 表格 */ .tableBox { + width: 100%; position: relative; } @@ -584,6 +867,7 @@ export default { color: #026be0; } .table_div { + widows: 100%; height: 100%; max-width: calc(100% - 0px); max-height: calc(100vh - 24px); @@ -616,7 +900,7 @@ export default { .table_cur td { height: 56rpx; - border-bottom: 1px solid #d8ddeb; + border-bottom: 1px solid #E5E9F2; font-size: 14px; color: #2f4056; padding: 0 10px; diff --git a/pages/rain/rain.vue b/pages/rain/rain.vue index 2955af5..bc28580 100644 --- a/pages/rain/rain.vue +++ b/pages/rain/rain.vue @@ -27,13 +27,13 @@ - + > @@ -253,6 +253,9 @@ } }, methods: { + changeForm(e){ + this.formData = {...this.formData,stArg:e} + }, handleJiangyu(e){ if(this.rainTime){ e.stopPropagation(); diff --git a/pages/utils/dicType.js b/pages/utils/dicType.js index c380939..22dbac3 100644 --- a/pages/utils/dicType.js +++ b/pages/utils/dicType.js @@ -24,4 +24,20 @@ export function disType(e) { type = 0; } return type; -} \ No newline at end of file +} + +// 响应等级判断 +// 县,乡镇判断 +export function level(e) { + let name; + if (e == 1) { + name = "Ⅰ级"; + } else if (e == 2) { + name = "Ⅱ级"; + } else if (e == 3) { + name = "Ⅲ级"; + } else if (e == 4) { + name = "Ⅳ级"; + } + return name +}
序号序号水库区域水库区域降雨量(mm)降雨量(mm)
{{ index + 1 }}{{ item.name }} + {{ item.name }} + {{ item.drp }}