|
@@ -14,7 +14,7 @@
|
|
|
<el-form ref="form" :model="form" label-width="auto" size="small">
|
|
|
<el-row :gutter="24">
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="监测站点">
|
|
|
+ <el-form-item label="设备名称" label-width="110px">
|
|
|
<el-select
|
|
|
v-model="form.siteId"
|
|
|
filterable
|
|
@@ -33,8 +33,8 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="数据日期范围">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="数据日期范围" label-width="110px">
|
|
|
<el-date-picker
|
|
|
v-model="form.date"
|
|
|
type="daterange"
|
|
@@ -46,14 +46,35 @@
|
|
|
:picker-options="pickerOptions"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
format="yyyy/MM/dd"
|
|
|
- style="width: 250px"
|
|
|
- :clearable="true"
|
|
|
+ style="width: 100%"
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="6" style="display: inline-flex">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="checkedTime"
|
|
|
+ style="padding: 8px 0"
|
|
|
+ ></el-checkbox>
|
|
|
+ <el-form-item label="时间段" label-width="60px">
|
|
|
+ <el-time-picker
|
|
|
+ is-range
|
|
|
+ :disabled="!checkedTime"
|
|
|
+ format="HH:mm:ss"
|
|
|
+ value-format="HH:mm:ss"
|
|
|
+ v-model="form.time"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ placeholder="选择时间范围"
|
|
|
+ >
|
|
|
+ </el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="指标" label-width="120px">
|
|
|
+ <el-form-item label="指标" label-width="110px">
|
|
|
<el-radio-group
|
|
|
v-model="form.displayCode"
|
|
|
size="small"
|
|
@@ -68,21 +89,22 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-
|
|
|
- <el-col :span="7" style="position: relative">
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="6" style="position: relative">
|
|
|
<el-checkbox v-model="checked" class="db-check-box"></el-checkbox>
|
|
|
- <el-form-item label="站点对比" label-width="100px">
|
|
|
+ <el-form-item label="设备对比" label-width="110px">
|
|
|
<el-select
|
|
|
v-model="form.siteId2"
|
|
|
:disabled="!checked"
|
|
|
filterable
|
|
|
multiple
|
|
|
collapse-tags
|
|
|
- placeholder="选择站点"
|
|
|
+ placeholder="选择设备"
|
|
|
style="width: 100%"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="(item, index) in siteOption"
|
|
|
+ v-for="(item, index) in contrastSiteOption"
|
|
|
:key="index"
|
|
|
:label="item.siteName"
|
|
|
:value="item.siteId"
|
|
@@ -92,8 +114,10 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="同比开始时间">
|
|
|
+ <el-form-item label="同比开始时间" label-width="110px">
|
|
|
<el-date-picker
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ format="yyyy-MM-dd"
|
|
|
v-model="form.date2"
|
|
|
:disabled="!checked"
|
|
|
type="date"
|
|
@@ -102,22 +126,12 @@
|
|
|
></el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="2">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label-width="0">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- size="small"
|
|
|
- style="width: 85px"
|
|
|
- @click="query()"
|
|
|
+ <el-button type="primary" size="small" @click="query()"
|
|
|
>查询</el-button
|
|
|
>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-form-item label-width="0">
|
|
|
- <el-button type="primary" size="small" style="width: 85px"
|
|
|
- >导出</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" size="small">导出</el-button>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -134,7 +148,7 @@
|
|
|
<el-tabs v-model="activeName" style="height: 550px">
|
|
|
<el-tab-pane label="图表" name="first">
|
|
|
<div class="chart-div">
|
|
|
- <div class="chart-title" v-cloak>反向流量</div>
|
|
|
+ <div class="chart-title" v-cloak>{{ echartTitle }}</div>
|
|
|
<div ref="chart" class="chartBox"></div>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
@@ -155,23 +169,58 @@
|
|
|
<template slot="empty">
|
|
|
<img src="@/assets/icon/null.png" alt="" />
|
|
|
</template>
|
|
|
- <el-table-column prop="date" label="序号" width="50" align="center">
|
|
|
+ <el-table-column
|
|
|
+ prop="date"
|
|
|
+ label="序号"
|
|
|
+ width="50px"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
|
|
|
</el-table-column>
|
|
|
+
|
|
|
<el-table-column
|
|
|
- prop="collectionDates"
|
|
|
- label="采集时间"
|
|
|
+ prop="name"
|
|
|
+ label="设备名称"
|
|
|
align="center"
|
|
|
></el-table-column>
|
|
|
<el-table-column
|
|
|
+ prop="displayName"
|
|
|
+ label="指标名称"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="scadaTime"
|
|
|
+ label="采集时间"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
+ <!-- <el-table-column
|
|
|
v-for="(item, index) in targetData"
|
|
|
:key="index"
|
|
|
:prop="item.targetCode + 's'"
|
|
|
:label="item.targetName"
|
|
|
align="center"
|
|
|
>
|
|
|
- </el-table-column>
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ prop="value"
|
|
|
+ label="采集值"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="unit"
|
|
|
+ label="单位"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
</el-table>
|
|
|
+ <el-pagination
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :current-page="pagination.current"
|
|
|
+ :page-sizes="[20, 60, 100, 200]"
|
|
|
+ :page-size="pagination.size"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="pagination.total"
|
|
|
+ ></el-pagination>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</el-dialog>
|
|
@@ -238,6 +287,7 @@ export default {
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ pagination:{current:1,size:40,total:0},
|
|
|
indicators: [],
|
|
|
areaColor: [
|
|
|
["rgba(126, 215, 243)", "rgba(250, 253, 254)"],
|
|
@@ -251,11 +301,14 @@ export default {
|
|
|
], // 曲线图表颜色
|
|
|
dialogVisible: false,
|
|
|
siteOption: [],
|
|
|
+ contrastSiteOption: [], //对比
|
|
|
form: {
|
|
|
date: [
|
|
|
// this.$moment().format("YYYY-MM-DD 00:00:00"),
|
|
|
// this.$moment().format("YYYY-MM-DD 23:59:59")
|
|
|
],
|
|
|
+ time: ["00:00:00", "23:59:59"],
|
|
|
+ date2: "",
|
|
|
},
|
|
|
checked: false,
|
|
|
radio: 1,
|
|
@@ -265,13 +318,12 @@ export default {
|
|
|
tableData: [], // 列表数据
|
|
|
dialogDragWidth: "520px",
|
|
|
timeType: 1,
|
|
|
+ checkedTime: false,
|
|
|
+ echartTitle: "",
|
|
|
};
|
|
|
},
|
|
|
- created() {
|
|
|
- },
|
|
|
- mounted() {
|
|
|
-
|
|
|
- },
|
|
|
+ created() {},
|
|
|
+ mounted() {},
|
|
|
watch: {
|
|
|
radio(val, oldVal) {
|
|
|
// if (val == 3) this.form['date'] = this.getSevenDate()
|
|
@@ -282,17 +334,24 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
initDate() {
|
|
|
- let start =new Date(new Date() - 24*60*60*1000);
|
|
|
+ let start = new Date(new Date() - 24 * 60 * 60 * 1000);
|
|
|
const end = new Date();
|
|
|
- const sYear = start.getFullYear()
|
|
|
- const sMonth = (start.getMonth() + 1) > 9 ? start.getMonth() + 1 : '0' + (start.getMonth() + 1)
|
|
|
- const sDay = start.getDate() > 9 ? start.getDate() : '0' + start.getDate()
|
|
|
- let sTime = sYear + '-' + sMonth + '-' + sDay + ''
|
|
|
- const eYear = end.getFullYear()
|
|
|
- const eMonth = (end.getMonth() + 1) > 9 ? end.getMonth() + 1 : '0' + (end.getMonth() + 1)
|
|
|
- const eDay = end.getDate() > 9 ? end.getDate() : '0' + end.getDate()
|
|
|
- let eTime = eYear + '-' + eMonth + '-' + eDay + ''
|
|
|
- return [sTime,eTime]
|
|
|
+ const sYear = start.getFullYear();
|
|
|
+ const sMonth =
|
|
|
+ start.getMonth() + 1 > 9
|
|
|
+ ? start.getMonth() + 1
|
|
|
+ : "0" + (start.getMonth() + 1);
|
|
|
+ const sDay =
|
|
|
+ start.getDate() > 9 ? start.getDate() : "0" + start.getDate();
|
|
|
+ let sTime = sYear + "-" + sMonth + "-" + sDay + "";
|
|
|
+ const eYear = end.getFullYear();
|
|
|
+ const eMonth =
|
|
|
+ end.getMonth() + 1 > 9
|
|
|
+ ? end.getMonth() + 1
|
|
|
+ : "0" + (end.getMonth() + 1);
|
|
|
+ const eDay = end.getDate() > 9 ? end.getDate() : "0" + end.getDate();
|
|
|
+ let eTime = eYear + "-" + eMonth + "-" + eDay + "";
|
|
|
+ return [sTime, eTime];
|
|
|
},
|
|
|
|
|
|
show(siteId = null) {
|
|
@@ -303,6 +362,7 @@ export default {
|
|
|
// this.getHistoryCurve({ siteId: siteId })
|
|
|
// }
|
|
|
},
|
|
|
+
|
|
|
/**
|
|
|
* 获取站点
|
|
|
*/
|
|
@@ -312,6 +372,9 @@ export default {
|
|
|
this.siteOption = res.result;
|
|
|
if (this.siteOption.length > 0) {
|
|
|
this.$set(this.form, "siteId", siteId);
|
|
|
+ this.contrastSiteOption = this.siteOption.filter(
|
|
|
+ (item) => item.siteId != siteId
|
|
|
+ );
|
|
|
let siteSelect = this.siteOption.find((item) => {
|
|
|
return item.siteId == siteId;
|
|
|
});
|
|
@@ -324,6 +387,7 @@ export default {
|
|
|
code: item.indexCode,
|
|
|
};
|
|
|
});
|
|
|
+ this.echartTitle = this.indicators[0].displayName;
|
|
|
this.$set(this.form, "displayCode", this.indicators[0].code);
|
|
|
this.getCurve();
|
|
|
}
|
|
@@ -333,25 +397,25 @@ export default {
|
|
|
/**
|
|
|
* 指标选择事件
|
|
|
*/
|
|
|
- indicatorChange() {
|
|
|
+ indicatorChange(code) {
|
|
|
+ const index = this.indicators.find((item) => item.code == code);
|
|
|
+ this.echartTitle = index.displayName;
|
|
|
this.getCurve();
|
|
|
},
|
|
|
+ handleCurrentChange(val){
|
|
|
+ this.pagination.current = val
|
|
|
+ //"pagination.current"
|
|
|
+ },
|
|
|
+ handleSizeChange(val){
|
|
|
+ this.pagination.size = val
|
|
|
+ },
|
|
|
/**
|
|
|
* 曲线
|
|
|
*/
|
|
|
getCurve() {
|
|
|
- let date = this.initDate()
|
|
|
- if(this.form.date.length == 0) this.form.date = date
|
|
|
- let params = {
|
|
|
- code: this.form.displayCode,
|
|
|
- deviceIds: this.form.siteId,
|
|
|
- start:(this.form.date.length == 0 ? date[0]:this.form.date[0]) + ' 00:00:00',
|
|
|
- end:(this.form.date.length == 0 ? date[1]:this.form.date[1]) + ' 23:59:59',
|
|
|
- size: 10000,
|
|
|
- current: 1,
|
|
|
- };
|
|
|
+ let params = this.getQueryParams(false);
|
|
|
+ if (!params) return;
|
|
|
getScadaInfo(params).then((res) => {
|
|
|
- console.log("曲线数据::", res);
|
|
|
if (res.code == 1) {
|
|
|
let mainSiteData = res.result.records;
|
|
|
let newList = mainSiteData.sort((a, b) => {
|
|
@@ -372,6 +436,72 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ this.paginationTableQuery()
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询
|
|
|
+ */
|
|
|
+ paginationTableQuery(){
|
|
|
+ let param = this.getQueryParams(true);
|
|
|
+ if (!param) return;
|
|
|
+ getScadaInfo(param).then((res) => {
|
|
|
+ if (res.code == 1) {
|
|
|
+ this.tableData = res.result.records;
|
|
|
+ this.pagination.total = res.result.total;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取查询参数
|
|
|
+ * @type 是否查询表数据 true是,false否
|
|
|
+ */
|
|
|
+ getQueryParams(type) {
|
|
|
+ let date = this.initDate();
|
|
|
+ if (this.form.date.length == 0) this.form.date = date;
|
|
|
+ let params = {
|
|
|
+ code: this.form.displayCode,
|
|
|
+ deviceIds: this.form.siteId,
|
|
|
+ start:
|
|
|
+ (this.form.date.length == 0 ? date[0] : this.form.date[0]) +
|
|
|
+ " 00:00:00",
|
|
|
+ end:
|
|
|
+ (this.form.date.length == 0 ? date[1] : this.form.date[1]) +
|
|
|
+ " 23:59:59",
|
|
|
+ isStatisticsScada: type, //是否查询表数据 true是,false否
|
|
|
+ size: 10000,
|
|
|
+ current: 1,
|
|
|
+ };
|
|
|
+
|
|
|
+ if (this.checkedTime) {
|
|
|
+ if (!this.form.time) {
|
|
|
+ this.$message.warning("请选择时间段");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ Object.assign(params, {
|
|
|
+ sameStart: this.form.time[0],
|
|
|
+ sameEnd: this.form.time[1],
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.checked) {
|
|
|
+ if (!this.form.siteId2 || this.form.siteId2.length < 1) {
|
|
|
+ this.$message.warning("请选择对比设备");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (!this.form.date2) {
|
|
|
+ this.$message.warning("请选择同比开始时间");
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ Object.assign(params, {
|
|
|
+ isSiteCompared: true,
|
|
|
+ startTime: this.form.date2,
|
|
|
+ });
|
|
|
+ const siteId = this.form.siteId2.toString();
|
|
|
+ params.deviceIds += "," + siteId;
|
|
|
+ }
|
|
|
+ return params;
|
|
|
},
|
|
|
/**
|
|
|
* 请求参数
|
|
@@ -419,7 +549,6 @@ export default {
|
|
|
this.tableData = [];
|
|
|
return;
|
|
|
}
|
|
|
- // const tableData = res.result.list[0]
|
|
|
// 显示最新时间
|
|
|
if (
|
|
|
!params.hasOwnProperty("beginTime") &&
|
|
@@ -498,6 +627,7 @@ export default {
|
|
|
* 获取查询时间
|
|
|
*/
|
|
|
getQueryTime() {
|
|
|
+ debugger;
|
|
|
// 当前时间
|
|
|
const CURRENT_TIME = this.$moment().format("YYYY-MM-DD HH:mm:ss");
|
|
|
let endTime = "";
|
|
@@ -566,7 +696,7 @@ export default {
|
|
|
query() {
|
|
|
//let params = this.readyParams();
|
|
|
//this.getHistoryCurve(params);
|
|
|
- this.getCurve()
|
|
|
+ this.getCurve();
|
|
|
},
|
|
|
getSeries(seriesList) {
|
|
|
let list = [];
|