Browse Source

Merge branch 'feature-sy-v1.0.1' of http://gitlab.datameta.com/project/water/shuili-vue into feature-sy-v1.0.1

master_tdsql
hejunjie 1 year ago
parent
commit
acdd774a5f
  1. 71
      src/views/aiSupervision/fourPredictions/warnInfo/components/forecastDetail.vue
  2. 1480
      src/views/aiSupervision/fourPredictions/warnInfo/js/detailData.js

71
src/views/aiSupervision/fourPredictions/warnInfo/components/forecastDetail.vue

@ -26,43 +26,24 @@
</div> </div>
<div class="warn-analysis"> <div class="warn-analysis">
<span class="title-name">{{ item.tableName }}</span> <span class="title-name">{{ item.tableName }}</span>
<el-table height="258" :data="item.tableData" border> <el-table height="258" v-if="!loading" :data="item.tableData" border class="table-fixed" ref="table-fixed">
<el-table-column prop="projectName" align="center" label="站点名称"> <el-table-column v-for="(items, indexs) in analysisTableColumnData" :key="indexs" :prop="items.prop" align="center" :label="items.label" width="110">
</el-table-column>
<el-table-column prop="warningType" align="center" label="预警类型">
</el-table-column>
<el-table-column prop="warningStatus" align="center" label="预警状态">
<template slot-scope="scope"> <template slot-scope="scope">
<div @click="openWarnDeal(scope.row)" <div @click="openWarnDeal(scope.row)" v-if="items.prop === 'warningStatus'"
:class="{ 'green-span': scope.row.warningStatus !== '1' }" class="default-span"> :class="{ 'green-span': scope.row.warningStatus !== '1' }" class="default-span">
{{ scope.row.warningStatus === '1' ? '处理中' : '已处理' }} {{ scope.row.warningStatus === '1' ? '处理中' : '已处理' }}
</div> </div>
<div v-else>{{ scope.row[`${items.prop}`] }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="warningInfo" align="center" label="预报">
</el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
</div> </div>
<div class="water-leve-forecast"> <div class="water-leve-forecast">
<span class="title-name">{{warnDetailData.wranTypeName}}</span> <span class="title-name">{{warnDetailData.wranTypeName}}</span>
<el-table height="235" :data="flowTableData" border> <el-table height="235" v-if="!loading" :data="flowTableData" border class="table-fixed">
<el-table-column prop="projectName" align="center" label="工程名称"> <el-table-column v-for="(item, index) in flowTableColumnData" :key="index" :prop="item.prop" align="center" :label="item.label">
</el-table-column>
<el-table-column prop="projectID" align="center" label="ID">
</el-table-column>
<el-table-column prop="rainFlow" align="center" label="预报雨量">
</el-table-column>
<el-table-column prop="waterFlow" align="center" label="预报来水量">
</el-table-column>
<el-table-column prop="outFlow" align="center" label="预报出库流量">
</el-table-column>
<el-table-column prop="water" align="center" label="预报水位">
</el-table-column>
<el-table-column prop="flow" align="center" label="河道流量">
</el-table-column>
<el-table-column prop="warningTime" align="center" label="预报时间">
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
@ -184,7 +165,10 @@ export default {
value: '1小时' value: '1小时'
}, },
], ],
isSuccessDeal: false isSuccessDeal: false,
analysisTableColumnData: [],
flowTableColumnData: [],
loading: false
}; };
}, },
watch: { watch: {
@ -204,13 +188,16 @@ export default {
}, },
methods: { methods: {
init () { init () {
this.resetData()
if (!this.warnItem.length) return if (!this.warnItem.length) return
this.loading = true
this.warnDetailData = this.warnItem.find(item => item.warnType === this.selectValue) this.warnDetailData = this.warnItem.find(item => item.warnType === this.selectValue)
const { warnTypeList, checkbox, analysisTableData, flowTableData, flowWaterChartData, analysisTableName } = this.warnDetailData const { warnTypeList, checkbox, analysisTableData, flowTableData, flowWaterChartData, analysisTableName, analysisTableColumnData, flowTableColumnData } = this.warnDetailData
this.radioOptions = warnTypeList this.radioOptions = warnTypeList
this.flowTableData = flowTableData this.flowTableData = flowTableData
this.isCheckbox = checkbox this.isCheckbox = checkbox
this.analysisList = [] this.analysisTableColumnData = analysisTableColumnData
this.flowTableColumnData = flowTableColumnData
if (checkbox) { if (checkbox) {
this.checkedValue.forEach(elem => { this.checkedValue.forEach(elem => {
let chart = flowWaterChartData.find(item => item.id === elem) let chart = flowWaterChartData.find(item => item.id === elem)
@ -222,9 +209,12 @@ export default {
} }
this.$nextTick(() => { this.$nextTick(() => {
this.initChart() this.initChart()
this.loading = false
}); });
}, },
changeProject (data) { changeProject (data) {
this.loading = true
this.radioValue = data this.radioValue = data
this.checkedValue = ['1'] this.checkedValue = ['1']
this.analysisList = [] this.analysisList = []
@ -232,9 +222,11 @@ export default {
this.analysisList.push({ chartId: 'chart' + data, chartData: chart, tableName: this.warnDetailData.analysisTableName, tableData: this.warnDetailData.analysisTableData }) this.analysisList.push({ chartId: 'chart' + data, chartData: chart, tableName: this.warnDetailData.analysisTableName, tableData: this.warnDetailData.analysisTableData })
this.$nextTick(() => { this.$nextTick(() => {
this.initChart() this.initChart()
this.loading = false
}); });
}, },
changeCheckProject (data) { changeCheckProject (data) {
this.loading = true
this.radioValue = '1' this.radioValue = '1'
this.checkedValue = data this.checkedValue = data
this.analysisList = [] this.analysisList = []
@ -244,18 +236,22 @@ export default {
}); });
this.$nextTick(() => { this.$nextTick(() => {
this.initChart() this.initChart()
this.loading = false
}); });
}, },
changeType (val) { changeType (val) {
this.resetData()
this.loading = true
this.warnDetailData = this.warnItem.find(item => item.warnType === this.selectValue) this.warnDetailData = this.warnItem.find(item => item.warnType === this.selectValue)
const { warnTypeList, checkbox, analysisTableData, flowTableData, flowWaterChartData, analysisTableName } = this.warnDetailData const { warnTypeList, checkbox, analysisTableData, flowTableData, flowWaterChartData, analysisTableName, analysisTableColumnData, flowTableColumnData } = this.warnDetailData
this.radioOptions = warnTypeList this.radioOptions = warnTypeList
this.flowTableData = flowTableData this.flowTableData = flowTableData
this.isCheckbox = checkbox this.isCheckbox = checkbox
this.analysisTableColumnData = analysisTableColumnData
this.flowTableColumnData = flowTableColumnData
this.selectValue = val this.selectValue = val
this.radioValue = '1' this.radioValue = '1'
this.checkedValue = ['1'] this.checkedValue = ['1']
this.analysisList = []
if (checkbox) { if (checkbox) {
this.checkedValue.forEach(elem => { this.checkedValue.forEach(elem => {
let chart = flowWaterChartData.find(item => item.id === elem) let chart = flowWaterChartData.find(item => item.id === elem)
@ -267,8 +263,17 @@ export default {
} }
this.$nextTick(() => { this.$nextTick(() => {
this.initChart() this.initChart()
this.loading = false
}); });
}, },
resetData() {
this.analysisList = []
this.analysisTableColumnData = []
this.flowTableColumnData = []
this.radioOptions = []
this.flowTableData = []
this.isCheckbox = false
},
initChart () { initChart () {
this.analysisList.forEach((data) => { this.analysisList.forEach((data) => {
let chart = echarts.init(document.getElementById(data.chartId)); let chart = echarts.init(document.getElementById(data.chartId));
@ -461,6 +466,7 @@ export default {
.warn-analysis { .warn-analysis {
flex: 1; flex: 1;
height: 300px; height: 300px;
padding-right: 16px;
border-right: 1px solid #E5E5E5; border-right: 1px solid #E5E5E5;
} }
} }
@ -501,6 +507,11 @@ export default {
.green-span { .green-span {
color: #31A08E; color: #31A08E;
} }
::v-deep.table-fixed {
.el-table__body-wrapper {
height: calc(100% - 44px) !important;
}
}
} }
::v-deep.drawer-wrapper { ::v-deep.drawer-wrapper {

1480
src/views/aiSupervision/fourPredictions/warnInfo/js/detailData.js

File diff suppressed because it is too large
Loading…
Cancel
Save