feat(能耗统计): 修改查询界面

feat(电计量设备信息): 部门类型取消多选
master
黄锦贤 4 days ago
parent 3e9f3de668
commit e1e6a861f6

@ -61,7 +61,7 @@
"sortablejs": "1.10.2", "sortablejs": "1.10.2",
"swiper": "^5.4.5", "swiper": "^5.4.5",
"v-scale-screen": "^1.0.2", "v-scale-screen": "^1.0.2",
"vue": "2.6.12", "vue": "^2.6.14",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
"vue-meta": "2.4.0", "vue-meta": "2.4.0",
@ -89,7 +89,7 @@
"sass-loader": "10.1.1", "sass-loader": "10.1.1",
"script-ext-html-webpack-plugin": "2.1.5", "script-ext-html-webpack-plugin": "2.1.5",
"svg-sprite-loader": "5.1.1", "svg-sprite-loader": "5.1.1",
"vue-template-compiler": "2.6.12" "vue-template-compiler": "^2.6.14"
}, },
"engines": { "engines": {
"node": ">=8.9", "node": ">=8.9",

@ -71,10 +71,12 @@
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 +90,8 @@
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 +101,8 @@
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">
@ -109,10 +113,11 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['energy:ShuiMeasurement:export']" v-hasPermi="['energy:ShuiMeasurement:export']"
>导出</el-button> >导出
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
{{list.length}} {{ list.length }}
</el-col> </el-col>
<right-toolbar <right-toolbar
:showSearch.sync="showSearch" :showSearch.sync="showSearch"
@ -136,8 +141,8 @@
prop="monitorId" prop="monitorId"
min-width="150" min-width="150"
/> />
<el-table-column label="计量设备名称" align="center" prop="monitorName" /> <el-table-column label="计量设备名称" align="center" prop="monitorName"/>
<el-table-column label="计量设备位置" align="center" prop="monitorAddr" /> <el-table-column label="计量设备位置" align="center" prop="monitorAddr"/>
<el-table-column label="计量设备类型" align="center" prop="monitorType"> <el-table-column label="计量设备类型" align="center" prop="monitorType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
@ -146,9 +151,9 @@
/> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="CBS房间编号" align="center" key="roomCode" prop="roomCode" /> <el-table-column label="CBS房间编号" align="center" key="roomCode" prop="roomCode"/>
<el-table-column label="CBS房间名称" align="center" key="roomName" prop="roomName" /> <el-table-column label="CBS房间名称" align="center" key="roomName" prop="roomName"/>
<el-table-column label="CBS物理编号" align="center" key="physicalCode" prop="physicalCode" /> <el-table-column label="CBS物理编号" align="center" key="physicalCode" prop="physicalCode"/>
<el-table-column label="计量设备状态" align="center" prop="monitorStatus"> <el-table-column label="计量设备状态" align="center" prop="monitorStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
@ -205,7 +210,8 @@
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 +219,8 @@
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 +228,8 @@
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 +248,8 @@
</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>
@ -254,7 +263,7 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="计量设备编号" prop="monitorId"> <el-form-item label="计量设备编号" prop="monitorId">
<el-input v-model="form.monitorId" placeholder="请输入计量设备名称" /> <el-input v-model="form.monitorId" placeholder="请输入计量设备名称"/>
</el-form-item> </el-form-item>
<el-form-item label="计量设备名称" prop="monitorName"> <el-form-item label="计量设备名称" prop="monitorName">
<el-input <el-input
@ -269,24 +278,25 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="monitorType" v-if="false"> <el-form-item label="类型" prop="monitorType" v-if="false">
<el-input v-model="form.monitorType" /> <el-input v-model="form.monitorType"/>
</el-form-item> </el-form-item>
<el-form-item label="CBS房间编号" prop="roomCode"> <el-form-item label="CBS房间编号" prop="roomCode">
<el-input v-model="form.roomCode" placeholder="请输入CBS房间编号" /> <el-input v-model="form.roomCode" placeholder="请输入CBS房间编号"/>
</el-form-item> </el-form-item>
<el-form-item label="CBS房间名称" prop="roomName"> <el-form-item label="CBS房间名称" prop="roomName">
<el-input v-model="form.roomName" placeholder="请输入房间名称" /> <el-input v-model="form.roomName" placeholder="请输入房间名称"/>
</el-form-item> </el-form-item>
<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="addressCode"> <el-form-item label="通讯地址" prop="addressCode">
<el-input v-model="form.addressCode" placeholder="请填写通讯地址" /> <el-input v-model="form.addressCode" placeholder="请填写通讯地址"/>
</el-form-item> </el-form-item>
<el-form-item label="电表类型" prop="electricityMeterType"> <el-form-item label="电表类型" prop="electricityMeterType">
<el-select v-model="form.electricityMeterType" clearable placeholder="请选择电表类型" style="width: 100%"> <el-select v-model="form.electricityMeterType" clearable placeholder="请选择电表类型" style="width: 100%">
<el-option <el-option
v-for="item in dict.type.electricity_type" :value="item.value+''" :key="item.value+''" :label="item.label" > v-for="item in dict.type.electricity_type" :value="item.value+''" :key="item.value+''"
:label="item.label">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -296,7 +306,8 @@
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>
@ -325,13 +336,15 @@
<el-tree <el-tree
class="tree-border" class="tree-border"
:data="subentryOptions" :data="subentryOptions"
accordion
show-checkbox show-checkbox
:check-strictly="true" :check-strictly="true"
:default-expanded-keys="twoKeys" :default-expanded-keys="[...subentryExpandedKeys]"
ref="subentry" ref="subentry"
node-key="id" node-key="id"
empty-text="加载中,请稍候" empty-text="加载中,请稍候"
:props="defaultProps" :props="defaultProps"
@check="handleCheckSubentryOptions"
></el-tree> ></el-tree>
</el-form-item> </el-form-item>
<el-form-item label="业态类型" prop="businessId"> <el-form-item label="业态类型" prop="businessId">
@ -348,19 +361,19 @@
></el-tree> ></el-tree>
</el-form-item> </el-form-item>
<el-form-item label="传感器仪表" prop="meterTypeId"> <el-form-item label="传感器仪表" prop="meterTypeId">
<el-input v-model="form.meterTypeId" placeholder="请输入传感器仪表" /> <el-input v-model="form.meterTypeId" placeholder="请输入传感器仪表"/>
</el-form-item> </el-form-item>
<el-form-item label="测量器具" prop="meterId"> <el-form-item label="测量器具" prop="meterId">
<el-input v-model="form.meterId" placeholder="请输入测量器具" /> <el-input v-model="form.meterId" placeholder="请输入测量器具"/>
</el-form-item> </el-form-item>
<el-form-item label="修正值" prop="correctValue"> <el-form-item label="修正值" prop="correctValue">
<el-input v-model="form.correctValue" placeholder="请输入修正值" /> <el-input v-model="form.correctValue" placeholder="请输入修正值"/>
</el-form-item> </el-form-item>
<el-form-item label="PT值" prop="pt"> <el-form-item label="PT值" prop="pt">
<el-input v-model="form.pt" placeholder="请输入PT值" /> <el-input v-model="form.pt" placeholder="请输入PT值"/>
</el-form-item> </el-form-item>
<el-form-item label="CT值" prop="ct"> <el-form-item label="CT值" prop="ct">
<el-input v-model="form.ct" placeholder="请输入CT值" /> <el-input v-model="form.ct" placeholder="请输入CT值"/>
</el-form-item> </el-form-item>
<el-form-item label="是否虚拟" label-width="100px" prop="isAmmeter"> <el-form-item label="是否虚拟" label-width="100px" prop="isAmmeter">
<el-radio v-model="form.isAmmeter" label="true"></el-radio> <el-radio v-model="form.isAmmeter" label="true"></el-radio>
@ -372,7 +385,8 @@
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>
@ -446,10 +460,12 @@
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>
@ -458,7 +474,7 @@
:data="typeList" :data="typeList"
@selection-change="handleSelectionChange1" @selection-change="handleSelectionChange1"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center"/>
<el-table-column <el-table-column
label="设备编号" label="设备编号"
align="center" align="center"
@ -469,7 +485,7 @@
align="center" align="center"
prop="collectDeviceName" prop="collectDeviceName"
/> />
<el-table-column label="生产厂家" align="center" prop="manufacturer" /> <el-table-column label="生产厂家" align="center" prop="manufacturer"/>
<el-table-column label="能源类型" align="center" prop="energyType"> <el-table-column label="能源类型" align="center" prop="energyType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
@ -506,13 +522,13 @@ import {
businessTreeSelect, businessTreeSelect,
treeselect, treeselect,
} from "@/api/energy/energy/waterManagement/shuiMeasurement"; } from "@/api/energy/energy/waterManagement/shuiMeasurement";
import { listInfo } from "@/api/energy/energy/base/info"; import {listInfo} from "@/api/energy/energy/base/info";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "ShuiMeasurement", name: "ShuiMeasurement",
dicts: ["isAmmeter", "monitorStatus", "energy_type", "public_share_type",'monitor_hierarchy','electricity_type'], dicts: ["isAmmeter", "monitorStatus", "energy_type", "public_share_type", 'monitor_hierarchy', 'electricity_type'],
components: { components: {
Treeselect, Treeselect,
}, },
@ -567,8 +583,8 @@ export default {
form: {}, form: {},
// //
rules: { rules: {
electricityMeterType:[ electricityMeterType: [
{ required: true, message: "电表类型不能为空", trigger: "blur" } {required: true, message: "电表类型不能为空", trigger: "blur"}
], ],
}, },
// //
@ -602,6 +618,7 @@ export default {
businessOptions: [], businessOptions: [],
// //
twoKeys: [], twoKeys: [],
subentryExpandedKeys: [],
}; };
}, },
created() { created() {
@ -645,16 +662,6 @@ export default {
children: node.children, children: node.children,
}; };
}, },
/** 查询计量设备信息下拉树结构 */
getTreeselect() {
this.queryParams.monitorType = 2;
listShuiMeasurement(this.queryParams).then((response) => {
this.ShuiMeasurementOptions = [];
const data = { objid: 0, monitorName: "顶级节点", children: [] };
data.children = this.handleTree(response.data, "objid", "parentId");
this.ShuiMeasurementOptions.push(data);
});
},
// //
cancel() { cancel() {
this.open = false; this.open = false;
@ -802,7 +809,8 @@ export default {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}) })
.catch(() => {}); .catch(() => {
});
}, },
// ------------------------------------------- // -------------------------------------------
/** 选择采集设备操作 */ /** 选择采集设备操作 */
@ -863,9 +871,32 @@ export default {
/** 查询部门类型树结构 */ /** 查询部门类型树结构 */
getSubentrySelect() { getSubentrySelect() {
subentryTreeSelect().then((response) => { subentryTreeSelect().then((response) => {
this.subentryOptions = response.data; this.setSubentryOptions(response.data, 0);
}); });
}, },
setSubentryOptions(data, level) {
data.forEach(item => {
if (item.children && item.children.length > 0) {
this.$set(item, 'disabled', true);
}
if (item.children) {
this.setSubentryOptions(item.children, level + 1);
}
});
if (level != 0) return
this.subentryOptions = data
this.subentryExpandedKeys =[].concat([this.form.subentryId])
},
handleCheckSubentryOptions(data, checkedStatus) {
const isParent = data.children && data.children.length > 0
if (isParent) {
this.$refs.subentry.setChecked(data.id, false)
return
}
if (checkedStatus.checkedKeys.includes(data.id)) {
this.$refs.subentry.setCheckedKeys([data.id])
}
},
/** 查询业态类型树结构 */ /** 查询业态类型树结构 */
getBusinessSelect() { getBusinessSelect() {
businessTreeSelect().then((response) => { businessTreeSelect().then((response) => {
@ -907,7 +938,7 @@ export default {
this.queryParams.monitorType = 2; this.queryParams.monitorType = 2;
listShuiMeasurement(this.queryParams).then((response) => { listShuiMeasurement(this.queryParams).then((response) => {
this.ShuiMeasurementOptions = []; this.ShuiMeasurementOptions = [];
const data = { objid: 0, monitorName: "顶级节点", children: [] }; const data = {objid: 0, monitorName: "顶级节点", children: []};
data.children = this.handleTree(response.data, "objid", "parentId"); data.children = this.handleTree(response.data, "objid", "parentId");
this.ShuiMeasurementOptions.push(data); this.ShuiMeasurementOptions.push(data);
}); });
@ -916,8 +947,8 @@ export default {
getAllTree(objid) { getAllTree(objid) {
return treeselect(objid).then((response) => { return treeselect(objid).then((response) => {
this.buildOptions = response.builds; this.buildOptions = response.builds;
this.subentryOptions = response.subentrys;
this.businessOptions = response.business; this.businessOptions = response.business;
this.setSubentryOptions(response.subentrys, 0);
return response; return response;
}); });
}, },
@ -930,3 +961,10 @@ export default {
}, },
}; };
</script> </script>
<style scoped>
/* 隐藏带 is-disabled 类名的复选框 */
/deep/ .el-checkbox__input.is-disabled .el-checkbox__inner {
display: none !important;
}
</style>

@ -162,6 +162,20 @@
prop="address" prop="address"
v-if="columns[2].visible" v-if="columns[2].visible"
/> />
<el-table-column
label="表具类型"
align="center"
key="publicShareType"
prop="publicShareType"
v-if="columns[3].visible"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.public_share_type"
:value="scope.row.publicShareType"
/>
</template>
</el-table-column>
<el-table-column <el-table-column
label="表具层级" label="表具层级"
align="center" align="center"
@ -183,6 +197,37 @@
prop="owningUser" prop="owningUser"
v-if="columns[3].visible" v-if="columns[3].visible"
/> />
<el-table-column
label="所属部门"
align="center"
key="subentryName"
prop="subentryName"
v-if="columns[3].visible"
/>
<el-table-column
label="尖电量(kW·h)"
align="center"
key="kwh1"
prop="kwh1"
/>
<el-table-column
label="峰电量(kW·h)"
align="center"
key="kwh2"
prop="kwh2"
/>
<el-table-column
label="平电量(kW·h)"
align="center"
key="kwh3"
prop="kwh3"
/>
<el-table-column
label="谷电量(kW·h)"
align="center"
key="kwh4"
prop="kwh4"
/>
<el-table-column <el-table-column
label="用电量(kW·h)" label="用电量(kW·h)"
align="center" align="center"
@ -255,7 +300,7 @@
highlight-current highlight-current
@check-change="handleCheckChange" @check-change="handleCheckChange"
/> />
</div> </div>http://192.168.58.226:81/ems/powerUse/Energystatistics
</el-col> </el-col>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -456,34 +501,34 @@ export default {
}, },
}, },
created() { created() {
this.dateRangeone = new Date(new Date().setHours(0, 0, 0, 0)); this.initDateRange();
var d = new Date(this.dateRangeone);
let m = ("0" + (d.getMonth() + 1)).slice(-2);
let tian = ("0" + d.getDate()).slice(-2);
let h = ("0" + d.getHours()).slice(-2);
let M = ("0" + d.getMinutes()).slice(-2);
let s = ("0" + d.getSeconds()).slice(-2);
console.log("d", d);
this.dateRangeone = d.getFullYear() + "-" + m + "-" + tian;
this.dateRangetwo = new Date(
new Date().setHours(0, 0, 0, 0) + 24 * 60 * 60 * 1000 - 1
);
var d1 = new Date(this.dateRangetwo);
let m1 = ("0" + (d1.getMonth() + 1)).slice(-2);
let tian1 = ("0" + d1.getDate()).slice(-2);
let h1 = ("0" + d1.getHours()).slice(-2);
let M1 = ("0" + d1.getMinutes()).slice(-2);
let s1 = ("0" + d1.getSeconds()).slice(-2);
console.log("tian1.length", tian1);
this.dateRangetwo = d1.getFullYear() + "-" + m1 + "-" + tian1;
//this.dateRangetwo = d1.getFullYear()+ '-'+m1+ '-'+tian1+ ' '+ h1+ ':'+M1+':'+s1;
this.getList(); this.getList();
//this.getDeptTree();
}, },
mounted() {}, mounted() {},
methods: { methods: {
initDateRange(){
this.dateRangeone = new Date(new Date().setHours(0, 0, 0, 0));
var d = new Date(this.dateRangeone);
let m = ("0" + (d.getMonth() + 1)).slice(-2);
let tian = ("0" + d.getDate()).slice(-2);
let h = ("0" + d.getHours()).slice(-2);
let M = ("0" + d.getMinutes()).slice(-2);
let s = ("0" + d.getSeconds()).slice(-2);
console.log("d", d);
this.dateRangeone = d.getFullYear() + "-" + m + "-" + tian;
this.dateRangetwo = new Date(
new Date().setHours(0, 0, 0, 0) + 24 * 60 * 60 * 1000 - 1
);
var d1 = new Date(this.dateRangetwo);
let m1 = ("0" + (d1.getMonth() + 1)).slice(-2);
let tian1 = ("0" + d1.getDate()).slice(-2);
let h1 = ("0" + d1.getHours()).slice(-2);
let M1 = ("0" + d1.getMinutes()).slice(-2);
let s1 = ("0" + d1.getSeconds()).slice(-2);
console.log("tian1.length", tian1);
this.dateRangetwo = d1.getFullYear() + "-" + m1 + "-" + tian1;
},
/** 查询用户列表 */ /** 查询用户列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -641,12 +686,9 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
//this.dateRange = []; this.initDateRange()
this.dateRangeone = ""; this.queryParams.publicShareType=null
this.dateRangetwo = ""; this.queryParams.monitorHierarchy=null
//this.resetForm("queryForm");
//this.queryParams.deptId = undefined;
//this.$refs.tree.setCurrentKey(null);
this.handleQuery(); this.handleQuery();
}, },
// //

Loading…
Cancel
Save