|
@@ -5,14 +5,39 @@
|
|
|
style="height:100%;padding-bottom:32px;"
|
|
style="height:100%;padding-bottom:32px;"
|
|
|
>
|
|
>
|
|
|
<el-card style="margin:16px;height: 100%; overflow-y: auto">
|
|
<el-card style="margin:16px;height: 100%; overflow-y: auto">
|
|
|
- <data-report-left :treeData="treeData"></data-report-left>
|
|
|
|
|
|
|
+ <data-report-left
|
|
|
|
|
+ @setCurrentData="setCurrentData"
|
|
|
|
|
+ :treeData="treeData"
|
|
|
|
|
+ ></data-report-left>
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col
|
|
<el-col
|
|
|
:span="20"
|
|
:span="20"
|
|
|
>
|
|
>
|
|
|
<el-card style="overflow-y: hidden;min-height:180px;margin-bottom:16px;">
|
|
<el-card style="overflow-y: hidden;min-height:180px;margin-bottom:16px;">
|
|
|
- <div style="margin-bottom: 16px;"><span style="font-weight:bold">机井情况</span>(总数: 256口)</div>
|
|
|
|
|
|
|
+ <div style="margin-bottom: 16px; display:flex;justify-content:space-between">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span style="font-weight:bold">机井情况</span>(总数: {{ resData.tmnCount }} 口)
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="dateValue"
|
|
|
|
|
+ type="daterange"
|
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
+ :default-time="['00:00:00', '23:59:59']"
|
|
|
|
|
+ start-placeholder="开始日期"
|
|
|
|
|
+ end-placeholder="结束日期"
|
|
|
|
|
+ style="width: 300px; margin:0 16px"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-date-picker>
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ @click="getTopListHandler"
|
|
|
|
|
+ >查询</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
<div style="height:100px;width:auto;overflow:hidden">
|
|
<div style="height:100px;width:auto;overflow:hidden">
|
|
|
<el-row>
|
|
<el-row>
|
|
|
<el-col :span="14">
|
|
<el-col :span="14">
|
|
@@ -36,33 +61,33 @@
|
|
|
</el-row>
|
|
</el-row>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="10">
|
|
<el-col :span="10">
|
|
|
- <div style="display:flex;justify-content: space-evenly">
|
|
|
|
|
- <echarts-pie/>
|
|
|
|
|
- <div style="position:relative;left:-50px;">
|
|
|
|
|
|
|
+ <div style="display:flex;justify-content: space-around">
|
|
|
|
|
+ <echarts-pie style="width:30%;margin-left:5%" :proportion="proportion"/>
|
|
|
|
|
+ <div style="width:65%">
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<div class="radius_container">
|
|
<div class="radius_container">
|
|
|
<span class="radius"></span>
|
|
<span class="radius"></span>
|
|
|
- <span class="label">额定用水量:</span> 6256吨
|
|
|
|
|
|
|
+ <span class="label">计划用水量: </span> {{ resData.waterrightAmount }} 吨
|
|
|
</div>
|
|
</div>
|
|
|
<div class="radius_container">
|
|
<div class="radius_container">
|
|
|
<span class="radius"></span>
|
|
<span class="radius"></span>
|
|
|
- <span class="label">额定用水量:</span> 6256吨
|
|
|
|
|
|
|
+ <span class="label">累计用水量: </span> {{ resData.waterNumTotal }} 吨
|
|
|
</div>
|
|
</div>
|
|
|
<div class="radius_container">
|
|
<div class="radius_container">
|
|
|
<span class="radius"></span>
|
|
<span class="radius"></span>
|
|
|
- <span class="label">额定用水量:</span> 6256吨
|
|
|
|
|
|
|
+ <span class="label">累计用电量: </span> {{ resData.elecNumTotal }} 吨
|
|
|
</div>
|
|
</div>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<div class="radius_container">
|
|
<div class="radius_container">
|
|
|
- <span class="label">额定用水量:</span> 6256吨
|
|
|
|
|
|
|
+ <span class="label">累计费用: </span> {{ resData.useMoneyTotal }} 元
|
|
|
</div>
|
|
</div>
|
|
|
<div class="radius_container">
|
|
<div class="radius_container">
|
|
|
- <span class="label">额定用水量:</span> 6256吨
|
|
|
|
|
|
|
+ <span class="label">累计用水费用: </span> {{ resData.usewatermoneyTotal }} 元
|
|
|
</div>
|
|
</div>
|
|
|
<div class="radius_container">
|
|
<div class="radius_container">
|
|
|
- <span class="label">额定用水量:</span> 6256吨
|
|
|
|
|
|
|
+ <span class="label">累计用电费用: </span> {{ resData.useelecmoneyTotal }} 元
|
|
|
</div>
|
|
</div>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
@@ -76,28 +101,24 @@
|
|
|
<el-col :span="24" class="elrow-main__col-top">
|
|
<el-col :span="24" class="elrow-main__col-top">
|
|
|
<div>
|
|
<div>
|
|
|
<el-input
|
|
<el-input
|
|
|
- v-model="form.goodsName"
|
|
|
|
|
|
|
+ v-model="waterKeyword"
|
|
|
style="width: 250px;margin-right:20px;"
|
|
style="width: 250px;margin-right:20px;"
|
|
|
placeholder="请输入机井编号/机井名称"
|
|
placeholder="请输入机井编号/机井名称"
|
|
|
- @keyup.enter.native="handleSearch"
|
|
|
|
|
clearable
|
|
clearable
|
|
|
/>
|
|
/>
|
|
|
<el-select
|
|
<el-select
|
|
|
- v-model="form.goodsName"
|
|
|
|
|
- style="width: 200px;"
|
|
|
|
|
|
|
+ v-model="tmnstatusRunstatus"
|
|
|
|
|
+ style="width: 200px;margin-right:16px"
|
|
|
placeholder="设备状态"
|
|
placeholder="设备状态"
|
|
|
clearable
|
|
clearable
|
|
|
- ></el-select>
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- v-model="dateValue"
|
|
|
|
|
- type="daterange"
|
|
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
- :default-time="['00:00:00', '23:59:59']"
|
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
|
- end-placeholder="结束日期"
|
|
|
|
|
- style="width: 300px; margin:0 20px"
|
|
|
|
|
>
|
|
>
|
|
|
- </el-date-picker>
|
|
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in options"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ ></el-option>
|
|
|
|
|
+ </el-select>
|
|
|
<el-button
|
|
<el-button
|
|
|
type="primary"
|
|
type="primary"
|
|
|
size="small"
|
|
size="small"
|
|
@@ -116,8 +137,11 @@
|
|
|
>
|
|
>
|
|
|
<template #status="scope">
|
|
<template #status="scope">
|
|
|
<span style="display:flex;align-items:center;justify-content:center">
|
|
<span style="display:flex;align-items:center;justify-content:center">
|
|
|
- <span class="status"></span>
|
|
|
|
|
- {{ scope.row.name }}
|
|
|
|
|
|
|
+ <span class="status nowork" v-if="scope.row.tmnstatusRunstatusContent == '空闲中'"></span>
|
|
|
|
|
+ <span class="status work" v-if="scope.row.tmnstatusRunstatusContent == '工作中'"></span>
|
|
|
|
|
+ <span class="status error" v-if="scope.row.tmnstatusRunstatusContent == '故障'"></span>
|
|
|
|
|
+ <span class="status nolive" v-if="scope.row.tmnstatusRunstatusContent == '离线'"></span>
|
|
|
|
|
+ {{ scope.row.tmnstatusRunstatusContent }}
|
|
|
</span>
|
|
</span>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -149,12 +173,14 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+import { getBaseList, getTopList } from '@/api/tmn/index.js'
|
|
|
import EchartsPie from './components/echartsPie.vue'
|
|
import EchartsPie from './components/echartsPie.vue'
|
|
|
import BTable from '@/components/Table/index.vue';
|
|
import BTable from '@/components/Table/index.vue';
|
|
|
import DataReportLeft from '@/components/DataReportLeft/index.vue'
|
|
import DataReportLeft from '@/components/DataReportLeft/index.vue'
|
|
|
import realTimeMonitor from './components/realTimeMonitor.vue';
|
|
import realTimeMonitor from './components/realTimeMonitor.vue';
|
|
|
import IrrigationRecord from './components/IrrigationRecord.vue';
|
|
import IrrigationRecord from './components/IrrigationRecord.vue';
|
|
|
import { getTree } from '@/api/tree.js'
|
|
import { getTree } from '@/api/tree.js'
|
|
|
|
|
+import { assign, omit } from 'lodash-es';
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
name: 'monitoringMamage',
|
|
name: 'monitoringMamage',
|
|
@@ -167,69 +193,98 @@ export default {
|
|
|
},
|
|
},
|
|
|
dataList: [{
|
|
dataList: [{
|
|
|
title: '在线',
|
|
title: '在线',
|
|
|
- number: 551,
|
|
|
|
|
|
|
+ number: 0,
|
|
|
styleClass: 'radius'
|
|
styleClass: 'radius'
|
|
|
- },{
|
|
|
|
|
|
|
+ }, {
|
|
|
title: '运行',
|
|
title: '运行',
|
|
|
- number: 551,
|
|
|
|
|
|
|
+ number: 0,
|
|
|
styleClass: 'radius run'
|
|
styleClass: 'radius run'
|
|
|
- },{
|
|
|
|
|
|
|
+ }, {
|
|
|
title: '故障',
|
|
title: '故障',
|
|
|
- number: 551,
|
|
|
|
|
|
|
+ number: 0,
|
|
|
styleClass: 'radius error'
|
|
styleClass: 'radius error'
|
|
|
- },{
|
|
|
|
|
|
|
+ }, {
|
|
|
title: '告警',
|
|
title: '告警',
|
|
|
- number: 551,
|
|
|
|
|
|
|
+ number: 0,
|
|
|
styleClass: 'radius waring'
|
|
styleClass: 'radius waring'
|
|
|
- },{
|
|
|
|
|
|
|
+ }, {
|
|
|
title: '离线',
|
|
title: '离线',
|
|
|
- number: 551,
|
|
|
|
|
|
|
+ number: 0,
|
|
|
styleClass: 'radius noliving'
|
|
styleClass: 'radius noliving'
|
|
|
}],
|
|
}],
|
|
|
|
|
+ options: [
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '全部',
|
|
|
|
|
+ value: ''
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '空闲中',
|
|
|
|
|
+ value: 'I'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '工作中',
|
|
|
|
|
+ value: 'W'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '故障',
|
|
|
|
|
+ value: 'E'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '离线',
|
|
|
|
|
+ value: 'O'
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
treeData: [],
|
|
treeData: [],
|
|
|
loading: false,
|
|
loading: false,
|
|
|
realTimeShow: false,
|
|
realTimeShow: false,
|
|
|
irrigationShow: false,
|
|
irrigationShow: false,
|
|
|
|
|
+ waterKeyword: '',
|
|
|
|
|
+ tmnstatusRunstatus: '',
|
|
|
|
|
+ areaId: '',
|
|
|
|
|
+ startTime: '',
|
|
|
|
|
+ endTime: '',
|
|
|
|
|
+ proportion: 0,
|
|
|
|
|
+ resData: {},
|
|
|
columns: [
|
|
columns: [
|
|
|
{
|
|
{
|
|
|
label: '水电双计编号',
|
|
label: '水电双计编号',
|
|
|
- prop: 'person',
|
|
|
|
|
|
|
+ prop: 'tmnBizcode',
|
|
|
customRender: '',
|
|
customRender: '',
|
|
|
align: 'center'
|
|
align: 'center'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
label: '设备名称',
|
|
label: '设备名称',
|
|
|
- prop: 'area',
|
|
|
|
|
|
|
+ prop: 'tmnName',
|
|
|
customRender: '',
|
|
customRender: '',
|
|
|
align: 'center'
|
|
align: 'center'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
label: '水源名称',
|
|
label: '水源名称',
|
|
|
- prop: 'name',
|
|
|
|
|
|
|
+ prop: 'waterName',
|
|
|
customRender: '',
|
|
customRender: '',
|
|
|
align: 'center'
|
|
align: 'center'
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
label: '设备状态',
|
|
label: '设备状态',
|
|
|
- prop: 'phone',
|
|
|
|
|
|
|
+ prop: 'tmnstatusRunstatusContent',
|
|
|
customRender: 'status',
|
|
customRender: 'status',
|
|
|
align: 'center'
|
|
align: 'center'
|
|
|
- },{
|
|
|
|
|
|
|
+ }, {
|
|
|
label: '累计用水量',
|
|
label: '累计用水量',
|
|
|
- prop: 'phone',
|
|
|
|
|
|
|
+ prop: 'waterNumTotal',
|
|
|
customRender: '',
|
|
customRender: '',
|
|
|
align: 'center'
|
|
align: 'center'
|
|
|
- },{
|
|
|
|
|
|
|
+ }, {
|
|
|
label: '累计用电量',
|
|
label: '累计用电量',
|
|
|
- prop: 'phone',
|
|
|
|
|
|
|
+ prop: 'elecNumTotal',
|
|
|
customRender: '',
|
|
customRender: '',
|
|
|
align: 'center'
|
|
align: 'center'
|
|
|
- },{
|
|
|
|
|
|
|
+ }, {
|
|
|
label: '更新时间',
|
|
label: '更新时间',
|
|
|
- prop: 'phone',
|
|
|
|
|
|
|
+ prop: 'tmnstatusUpdateddate',
|
|
|
customRender: '',
|
|
customRender: '',
|
|
|
align: 'center'
|
|
align: 'center'
|
|
|
- },
|
|
|
|
|
|
|
+ },
|
|
|
{
|
|
{
|
|
|
label: '操作',
|
|
label: '操作',
|
|
|
customRender: 'operate',
|
|
customRender: 'operate',
|
|
@@ -240,55 +295,89 @@ export default {
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
- async getTreeList() {
|
|
|
|
|
- const treeList = this.$store.state.tree.treeList
|
|
|
|
|
- let res = []
|
|
|
|
|
- if (treeList.code === '000000') {
|
|
|
|
|
- res = treeList
|
|
|
|
|
- } else {
|
|
|
|
|
- res = await getTree()
|
|
|
|
|
- this.$store.dispatch('tree/setTree', res)
|
|
|
|
|
- }
|
|
|
|
|
- const data = res?.data
|
|
|
|
|
- this.treeData = data
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ // async getTreeList() {
|
|
|
|
|
+ // const treeList = this.$store.state.tree.treeList
|
|
|
|
|
+ // let res = []
|
|
|
|
|
+ // if (treeList.code === '000000') {
|
|
|
|
|
+ // res = treeList
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // res = await getTree()
|
|
|
|
|
+ // this.$store.dispatch('tree/setTree', res)
|
|
|
|
|
+ // }
|
|
|
|
|
+ // const data = res?.data
|
|
|
|
|
+ // this.treeData = data
|
|
|
|
|
+ // },
|
|
|
irrigationShowHistory() {
|
|
irrigationShowHistory() {
|
|
|
this.irrigationShow = true
|
|
this.irrigationShow = true
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
|
|
+ setCurrentData(areaId) {
|
|
|
|
|
+ this.currentClickId = areaId
|
|
|
|
|
+ this.$refs.tableRef.refresh(false);
|
|
|
|
|
+ },
|
|
|
realTime() {
|
|
realTime() {
|
|
|
this.realTimeShow = true
|
|
this.realTimeShow = true
|
|
|
},
|
|
},
|
|
|
- loadData() {
|
|
|
|
|
- return this.getTableData();
|
|
|
|
|
|
|
+ async loadData(parameter) {
|
|
|
|
|
+ if (!this.areaId) {
|
|
|
|
|
+ const treeList = this.$store.state.tree.treeList
|
|
|
|
|
+ let res = []
|
|
|
|
|
+ if (treeList.code === '000000') {
|
|
|
|
|
+ res = treeList
|
|
|
|
|
+ } else {
|
|
|
|
|
+ res = await getTree()
|
|
|
|
|
+ this.$store.dispatch('tree/setTree', res)
|
|
|
|
|
+ }
|
|
|
|
|
+ this.treeData = res?.data
|
|
|
|
|
+ this.cusareaName ||= this.treeData[0].cusareaName
|
|
|
|
|
+ this.areaId = this.treeData[0].cusareaId
|
|
|
|
|
+ }
|
|
|
|
|
+ const params = {
|
|
|
|
|
+ areaId: this.areaId,
|
|
|
|
|
+ tmnstatusRunstatus: this.tmnstatusRunstatus,
|
|
|
|
|
+ waterKeyword: this.waterKeyword
|
|
|
|
|
+ }
|
|
|
|
|
+ const payload = omit(assign({}, parameter, params), []);
|
|
|
|
|
+ this.getTopListHandler()
|
|
|
|
|
+ return this.getTableData(payload)
|
|
|
|
|
+ },
|
|
|
|
|
+ getTableData(payload) {
|
|
|
|
|
+ return getBaseList(payload)
|
|
|
},
|
|
},
|
|
|
- getTableData() {
|
|
|
|
|
- return Promise.resolve({
|
|
|
|
|
- data: [{
|
|
|
|
|
- person:"王大虎",
|
|
|
|
|
- area: '2016-05-02',
|
|
|
|
|
- name: '王小虎',
|
|
|
|
|
- phone: 1588888888,
|
|
|
|
|
- address: '上海市普陀区金沙江路 1518 弄'
|
|
|
|
|
|
|
+ async getTopListHandler() {
|
|
|
|
|
+ let [startTime, endTime] = this.dateValue
|
|
|
|
|
+ startTime ||= new Date().getFullYear()
|
|
|
|
|
+ const res = await getTopList({
|
|
|
|
|
+ areaId: this.areaId,
|
|
|
|
|
+ startTime,
|
|
|
|
|
+ endTime
|
|
|
|
|
+ })
|
|
|
|
|
+ const resData = res?.data
|
|
|
|
|
+ this.resData = resData
|
|
|
|
|
+ this.proportion = this.resData.proportion
|
|
|
|
|
+ this.dataList = [
|
|
|
|
|
+ {
|
|
|
|
|
+ title: '在线',
|
|
|
|
|
+ number: resData?.tmnCount1,
|
|
|
|
|
+ styleClass: 'radius'
|
|
|
}, {
|
|
}, {
|
|
|
- person:"王大虎",
|
|
|
|
|
- area: '2016-05-04',
|
|
|
|
|
- name: '王小虎',
|
|
|
|
|
- phone: 1588888888,
|
|
|
|
|
- address: '上海市普陀区金沙江路 1517 弄'
|
|
|
|
|
|
|
+ title: '运行',
|
|
|
|
|
+ number: resData?.tmnCount2,
|
|
|
|
|
+ styleClass: 'radius run'
|
|
|
}, {
|
|
}, {
|
|
|
- person:"王大虎",
|
|
|
|
|
- area: '2016-05-01',
|
|
|
|
|
- name: '王小虎',
|
|
|
|
|
- phone: 1588888888,
|
|
|
|
|
- address: '上海市普陀区金沙江路 1519 弄'
|
|
|
|
|
|
|
+ title: '故障',
|
|
|
|
|
+ number: resData?.tmnCount3,
|
|
|
|
|
+ styleClass: 'radius error'
|
|
|
}, {
|
|
}, {
|
|
|
- person:"王大虎",
|
|
|
|
|
- area: '2016-05-03',
|
|
|
|
|
- name: '王小虎',
|
|
|
|
|
- phone: 1588888888,
|
|
|
|
|
- address: '上海市普陀区金沙江路 1516 弄'
|
|
|
|
|
- }]
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ title: '告警',
|
|
|
|
|
+ number: resData?.tmnCount5,
|
|
|
|
|
+ styleClass: 'radius waring'
|
|
|
|
|
+ }, {
|
|
|
|
|
+ title: '离线',
|
|
|
|
|
+ number: resData?.tmnCount4,
|
|
|
|
|
+ styleClass: 'radius noliving'
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
},
|
|
},
|
|
|
handleSearch() {
|
|
handleSearch() {
|
|
|
this.$refs.tableRef.refresh(true);
|
|
this.$refs.tableRef.refresh(true);
|
|
@@ -298,7 +387,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
mounted() {
|
|
mounted() {
|
|
|
- this.getTreeList()
|
|
|
|
|
|
|
+ // this.getTreeList()
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|