update - 耗能趋势分析优化、部门类型优化

master
yinq 6 days ago
parent 5886bc93e1
commit 8bfac43415

@ -71,10 +71,10 @@
icon="el-icon-search" icon="el-icon-search"
size="mini" size="mini"
@click="handleQuery" @click="handleQuery"
>搜索</el-button >搜索</el-button
> >
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button >重置</el-button
> >
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -88,7 +88,7 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['energy:ShuiMeasurement:add']" v-hasPermi="['energy:ShuiMeasurement:add']"
>新增</el-button >新增</el-button
> >
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@ -98,7 +98,7 @@
icon="el-icon-sort" icon="el-icon-sort"
size="mini" size="mini"
@click="toggleExpandAll" @click="toggleExpandAll"
>展开/折叠</el-button >展开/折叠</el-button
> >
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@ -161,7 +161,7 @@
<el-table-column label="祖级列表" align="center" prop="ancestors" /> <el-table-column label="祖级列表" align="center" prop="ancestors" />
<el-table-column label="等级" align="center" prop="grade" /> <el-table-column label="等级" align="center" prop="grade" />
<el-table-column label="建筑类型" align="center" prop="buildId" /> <el-table-column label="建筑类型" align="center" prop="buildId" />
<el-table-column label="分项类型" align="center" prop="subentryId" /> <el-table-column label="部门类型" align="center" prop="subentryId" />
<el-table-column label="业态类型" align="center" prop="businessId" /> <el-table-column label="业态类型" align="center" prop="businessId" />
<el-table-column label="传感器仪表" align="center" prop="meterTypeId" /> <el-table-column label="传感器仪表" align="center" prop="meterTypeId" />
<el-table-column label="测量器具" align="center" prop="meterId" /> <el-table-column label="测量器具" align="center" prop="meterId" />
@ -205,7 +205,7 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['energy:ShuiMeasurement:edit']" v-hasPermi="['energy:ShuiMeasurement:edit']"
>修改</el-button >修改</el-button
> >
<el-button <el-button
size="mini" size="mini"
@ -213,7 +213,7 @@
icon="el-icon-plus" icon="el-icon-plus"
@click="handleAdd(scope.row)" @click="handleAdd(scope.row)"
v-hasPermi="['energy:ShuiMeasurement:add']" v-hasPermi="['energy:ShuiMeasurement:add']"
>新增</el-button >新增</el-button
> >
<el-button <el-button
size="mini" size="mini"
@ -221,7 +221,7 @@
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['energy:ShuiMeasurement:remove']" v-hasPermi="['energy:ShuiMeasurement:remove']"
>删除</el-button >删除</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
@ -240,7 +240,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-button type="primary" @click="selectDevice" <el-button type="primary" @click="selectDevice"
>选择采集设备</el-button >选择采集设备</el-button
> >
</el-col> </el-col>
</el-row> </el-row>
@ -280,8 +280,8 @@
<el-form-item label="CBS物理编号" prop="physicalCode"> <el-form-item label="CBS物理编号" prop="physicalCode">
<el-input v-model="form.physicalCode" placeholder="physicalCode" /> <el-input v-model="form.physicalCode" placeholder="physicalCode" />
</el-form-item> </el-form-item>
<el-form-item label="通讯地址" prop="connCode"> <el-form-item label="通讯地址" prop="addressCode">
<el-input v-model="form.connCode" placeholder="请填写通讯地址" /> <el-input v-model="form.addressCode" placeholder="请填写通讯地址" />
</el-form-item> </el-form-item>
<el-form-item label="计量设备状态" prop="monitorStatus"> <el-form-item label="计量设备状态" prop="monitorStatus">
<el-radio-group v-model="form.monitorStatus"> <el-radio-group v-model="form.monitorStatus">
@ -289,7 +289,7 @@
v-for="dict in dict.type.monitorStatus" v-for="dict in dict.type.monitorStatus"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="parseInt(dict.value)"
>{{ dict.label }}</el-radio >{{ dict.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
@ -314,7 +314,7 @@
:props="defaultProps" :props="defaultProps"
></el-tree> ></el-tree>
</el-form-item> </el-form-item>
<el-form-item label="分项类型" prop="subentryId"> <el-form-item label="部门类型" prop="subentryId">
<el-tree <el-tree
class="tree-border" class="tree-border"
:data="subentryOptions" :data="subentryOptions"
@ -365,7 +365,7 @@
v-for="dict in dict.type.public_share_type" v-for="dict in dict.type.public_share_type"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="parseInt(dict.value)"
>{{ dict.label }}</el-radio >{{ dict.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
@ -439,10 +439,10 @@
icon="el-icon-search" icon="el-icon-search"
size="mini" size="mini"
@click="handleQuery1" @click="handleQuery1"
>搜索</el-button >搜索</el-button
> >
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery1" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery1"
>重置</el-button >重置</el-button
> >
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -585,7 +585,7 @@ export default {
children: "children", children: "children",
label: "label", label: "label",
}, },
// //
subentryOptions: [], subentryOptions: [],
// //
businessOptions: [], businessOptions: [],
@ -683,7 +683,6 @@ export default {
updateBy: null, updateBy: null,
updateTime: null, updateTime: null,
publicShareType: null, publicShareType: null,
connCode: null,
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -850,7 +849,7 @@ export default {
this.buildOptions = response.data; this.buildOptions = response.data;
}); });
}, },
/** 查询分项类型树结构 */ /** 查询部门类型树结构 */
getSubentrySelect() { getSubentrySelect() {
subentryTreeSelect().then((response) => { subentryTreeSelect().then((response) => {
this.subentryOptions = response.data; this.subentryOptions = response.data;
@ -872,7 +871,7 @@ export default {
let checkedKeystr = checkedKeys.join(); let checkedKeystr = checkedKeys.join();
return checkedKeystr; return checkedKeystr;
}, },
// //
getSubentryAllCheckedKeys() { getSubentryAllCheckedKeys() {
// //
let checkedKeys = this.$refs.subentry.getCheckedKeys(); let checkedKeys = this.$refs.subentry.getCheckedKeys();

@ -9,18 +9,18 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="分项类型编号" prop="subentryId"> <el-form-item label="部门类型编号" prop="subentryId">
<el-input <el-input
v-model="queryParams.subentryId" v-model="queryParams.subentryId"
placeholder="请输入分项类型编号" placeholder="请输入部门类型编号"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="分项类型名称" prop="subentryName"> <el-form-item label="部门类型名称" prop="subentryName">
<el-input <el-input
v-model="queryParams.subentryName" v-model="queryParams.subentryName"
placeholder="请输入分项类型名称" placeholder="请输入部门类型名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
@ -52,7 +52,7 @@
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -91,16 +91,16 @@
:default-expand-all="isExpandAll" :default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
> >
<!-- <el-table-column label="父级编号" prop="parentId" />--> <!-- <el-table-column label="父级编号" prop="parentId" />-->
<!-- <el-table-column label="分项类型编号" align="center" prop="subentryId" />--> <!-- <el-table-column label="部门类型编号" align="center" prop="subentryId" />-->
<el-table-column label="分项类型名称" align="center" prop="subentryName" /> <el-table-column label="部门类型名称" align="center" prop="subentryName" />
<el-table-column label="状态" align="center" prop="subentryStatus"> <el-table-column label="状态" align="center" prop="subentryStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.monitorStatus" :value="scope.row.subentryStatus"/> <dict-tag :options="dict.type.monitorStatus" :value="scope.row.subentryStatus"/>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="权限标识" align="center" prop="deptId" />--> <!-- <el-table-column label="权限标识" align="center" prop="deptId" />-->
<!-- <el-table-column label="权限标识" align="center" prop="userId" />--> <!-- <el-table-column label="权限标识" align="center" prop="userId" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -128,17 +128,17 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 添加或修改分项类型管理对话框 --> <!-- 添加或修改部门类型管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="auto"> <el-form ref="form" :model="form" :rules="rules" label-width="auto">
<el-form-item label="父级编号" prop="parentId"> <el-form-item label="父级编号" prop="parentId">
<treeselect v-model="form.parentId" :options="subentryTypeOptions" :normalizer="normalizer" placeholder="请选择父级编号" /> <treeselect v-model="form.parentId" :options="subentryTypeOptions" :normalizer="normalizer" placeholder="请选择父级编号" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="分项类型编号" prop="subentryId"> <!-- <el-form-item label="部门类型编号" prop="subentryId">
<el-input v-model="form.subentryId" placeholder="请输入分项类型编号" /> <el-input v-model="form.subentryId" placeholder="请输入部门类型编号" />
</el-form-item> --> </el-form-item> -->
<el-form-item label="分项类型名称" prop="subentryName" label-width="100px"> <el-form-item label="部门类型名称" prop="subentryName" label-width="100px">
<el-input v-model="form.subentryName" placeholder="请输入分项类型名称" /> <el-input v-model="form.subentryName" placeholder="请输入部门类型名称" />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="subentryStatus"> <el-form-item label="状态" prop="subentryStatus">
<el-radio-group v-model="form.subentryStatus"> <el-radio-group v-model="form.subentryStatus">
@ -183,9 +183,9 @@ export default {
list: null, list: null,
// //
showSearch: true, showSearch: true,
// //
subentryTypeList: [], subentryTypeList: [],
// //
subentryTypeOptions: [], subentryTypeOptions: [],
// //
title: "", title: "",
@ -215,7 +215,7 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
/** 查询分项类型管理列表 */ /** 查询部门类型管理列表 */
getList() { getList() {
this.loading = true; this.loading = true;
listSubentryType(this.queryParams).then(response => { listSubentryType(this.queryParams).then(response => {
@ -224,7 +224,7 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
/** 转换分项类型管理数据结构 */ /** 转换部门类型管理数据结构 */
normalizer(node) { normalizer(node) {
if (node.children && !node.children.length) { if (node.children && !node.children.length) {
delete node.children; delete node.children;
@ -235,7 +235,7 @@ export default {
children: node.children children: node.children
}; };
}, },
/** 查询分项类型管理下拉树结构 */ /** 查询部门类型管理下拉树结构 */
getTreeselect() { getTreeselect() {
listSubentryType().then(response => { listSubentryType().then(response => {
this.subentryTypeOptions = []; this.subentryTypeOptions = [];
@ -285,7 +285,7 @@ export default {
this.form.parentId = 0; this.form.parentId = 0;
} }
this.open = true; this.open = true;
this.title = "添加分项类型管理"; this.title = "添加部门类型管理";
}, },
/** 展开/折叠操作 */ /** 展开/折叠操作 */
toggleExpandAll() { toggleExpandAll() {
@ -305,7 +305,7 @@ export default {
getSubentryType(row.objid).then(response => { getSubentryType(row.objid).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改分项类型管理"; this.title = "修改部门类型管理";
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
@ -330,7 +330,7 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.$modal.confirm('是否确认删除分项类型管理编号为"' + row.objid + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除部门类型管理编号为"' + row.objid + '"的数据项?').then(function() {
return delSubentryType(row.objid); return delSubentryType(row.objid);
}).then(() => { }).then(() => {
this.getList(); this.getList();

@ -53,7 +53,7 @@
:type="getDatePickerType" :type="getDatePickerType"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
:placeholder="getDatePickerPlaceholder" :placeholder="getDatePickerPlaceholder"
style="width: 240px" style="width: 200px"
@change="handleQuery" @change="handleQuery"
/> />
<span class="mx-2">-</span> <span class="mx-2">-</span>
@ -62,16 +62,16 @@
:type="getDatePickerType" :type="getDatePickerType"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
:placeholder="getDatePickerPlaceholder" :placeholder="getDatePickerPlaceholder"
style="width: 240px" style="width: 200px"
@change="handleEndTimeChange" @change="handleEndTimeChange"
/> />
</el-form-item> </el-form-item>
<el-form-item label="时间范围" prop="status"> <el-form-item label="时间范围" prop="type">
<el-select <el-select
v-model="queryParams.type" v-model="queryParams.type"
placeholder="请选择" placeholder="请选择"
clearable clearable
style="width: 240px" style="width: 100px"
@change="handleTimeRangeChange" @change="handleTimeRangeChange"
> >
<el-option <el-option
@ -82,6 +82,17 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="类型对应关系" prop="relationType" label-width="100px">
<el-select v-model="queryParams.relationType" @change="getRelationTreeData" placeholder="请选择类型对应关系"
style="width: 100px">
<el-option
v-for="dict in statisticalUnit"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-form> </el-form>
<!--柱状图 --> <!--柱状图 -->
<el-card style="height: 750px; margin-bottom: 20px"> <el-card style="height: 750px; margin-bottom: 20px">
@ -99,6 +110,7 @@ import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import * as echarts from "echarts"; import * as echarts from "echarts";
import {treeDat} from "@/api/energy/energy/base/typeRelation"; import {treeDat} from "@/api/energy/energy/base/typeRelation";
import {treeDatthree, treeDattwo} from "../../../../api/energy/energy/base/typeRelation";
export default { export default {
name: "EnergyConsumptionTrendAnalysis", name: "EnergyConsumptionTrendAnalysis",
@ -166,6 +178,7 @@ export default {
endTime: '', endTime: '',
energyType: 2, energyType: 2,
monitorIds: '', monitorIds: '',
relationType: '0',
}, },
// //
columns: [ columns: [
@ -287,6 +300,11 @@ export default {
{label: "月", value: "month"}, {label: "月", value: "month"},
{label: "年", value: "year"}, {label: "年", value: "year"},
], ],
statisticalUnit: [
{label: "建筑", value: "0"},
{label: "业态", value: "1"},
{label: "部门", value: "2"}
],
// //
chartOptions: { chartOptions: {
lineChart: { lineChart: {
@ -340,7 +358,7 @@ export default {
const minutes = pad(date.getMinutes()); const minutes = pad(date.getMinutes());
const seconds = pad(date.getSeconds()); const seconds = pad(date.getSeconds());
switch(type) { switch (type) {
case 'year': case 'year':
return `${year}-01-01 00:00:00`; return `${year}-01-01 00:00:00`;
case 'month': case 'month':
@ -360,7 +378,7 @@ export default {
const month = pad(date.getMonth() + 1); const month = pad(date.getMonth() + 1);
const day = pad(date.getDate()); const day = pad(date.getDate());
switch(type) { switch (type) {
case 'year': case 'year':
return `${year}-12-31 23:59:59`; return `${year}-12-31 23:59:59`;
case 'month': case 'month':
@ -428,16 +446,39 @@ export default {
}, },
/** 查询部门下拉树结构 */ /** 查询部门下拉树结构 */
getDeptTree() { getDeptTree() {
treeDat().then((response) => { if (this.queryParams.relationType == '0') {
response.map((item, index) => { treeDat().then(response => {
item, response.map((item, index) => {
item.oid = item.id, item,
item.lable = item.name item.oid = item.id,
}) item.lable = item.name
this.deptOptions = this.tranListToTreeData(response); })
console.log(this.deptOptions) this.deptOptions = this.tranListToTreeData(response);
//this.deptOptions = response.data; });
}); } else if (this.queryParams.relationType == '1') {
treeDattwo().then(response => {
response.map((item, index) => {
item,
item.oid = item.id,
item.lable = item.name
})
this.deptOptions = this.tranListToTreeData(response);
});
} else if (this.queryParams.relationType == '2') {
treeDatthree().then(response => {
response.map((item, index) => {
item,
item.oid = item.id,
item.lable = item.name
})
this.deptOptions = this.tranListToTreeData(response);
});
}
this.dynamicTags = [];
console.log(this.deptOptions)
},
getRelationTreeData() {
this.getDeptTree();
}, },
// //
filterNode(value, data) { filterNode(value, data) {
@ -497,6 +538,7 @@ export default {
type: this.queryParams.type, type: this.queryParams.type,
startTime: this.queryParams.startTime, startTime: this.queryParams.startTime,
endTime: this.queryParams.endTime, endTime: this.queryParams.endTime,
relationType: this.queryParams.relationType,
monitorIds, monitorIds,
energyType: 2 energyType: 2
}); });
@ -533,7 +575,7 @@ export default {
}, },
computed: { computed: {
getDatePickerType() { getDatePickerType() {
switch(this.queryParams.type) { switch (this.queryParams.type) {
case 'year': case 'year':
return 'year'; return 'year';
case 'month': case 'month':
@ -546,7 +588,7 @@ export default {
} }
}, },
getDatePickerPlaceholder() { getDatePickerPlaceholder() {
switch(this.queryParams.type) { switch (this.queryParams.type) {
case 'year': case 'year':
return '选择年份'; return '选择年份';
case 'month': case 'month':

Loading…
Cancel
Save