This commit is contained in:
2024-04-08 10:41:43 +08:00
parent f960ece594
commit c85c6e4323
24 changed files with 1651 additions and 1564 deletions

View File

@@ -1,230 +1,271 @@
<template>
<div>
<el-drawer :title="drawerTitle" :visible.sync="visible" size="70%" @close='closeD' :show-close='false'>
<div class="box">
<el-form :inline="true">
<el-form-item label="方案名称">
<el-input v-model="name" size='small' readonly></el-input>
</el-form-item>
<el-form-item label="能源类型">
<el-input v-model="energyType" size='small' readonly></el-input>
</el-form-item>
<el-form-item>
<el-button type="success" size='small' v-if="showBtn" plain @click="addNew">新增</el-button>
<el-button type="danger" size='small' v-if="showBtn" plain @click="deleteAll">批量删除</el-button>
</el-form-item>
</el-form>
<base-table
:page="queryParams.pageNo"
:limit="queryParams.pageSize"
:table-props="tableProps"
:table-data="tableData"
:max-height="tableH"
:selectWidth="55"
@selection-change="selectChange"
>
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="80"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
:total="total"
@pagination="getList"
/>
</div>
</el-drawer>
<!-- 新增 -->
<energy-statistics-det-add ref="energyStatistics" @closeDet="closeDet" />
</div>
<div>
<el-drawer
:title="drawerTitle"
:visible.sync="visible"
size="70%"
@close="closeD"
:show-close="false">
<div class="box">
<el-form :inline="true">
<el-form-item label="方案名称">
<el-input
v-model="name"
size="small"
readonly></el-input>
</el-form-item>
<el-form-item label="能源类型">
<el-input
v-model="energyTypeLabel"
size="small"
readonly></el-input>
</el-form-item>
<el-form-item>
<el-button
type="success"
size="small"
v-if="showBtn"
plain
@click="addNew">
新增
</el-button>
<el-button
type="danger"
size="small"
v-if="showBtn"
plain
@click="deleteAll">
批量删除
</el-button>
</el-form-item>
</el-form>
<base-table
:page="queryParams.pageNo"
:limit="queryParams.pageSize"
:table-props="tableProps"
:table-data="tableData"
:max-height="tableH"
:selectWidth="55"
@selection-change="selectChange">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
:width="80"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
:total="total"
@pagination="getList" />
</div>
</el-drawer>
<!-- 新增 -->
<energy-statistics-det-add
ref="energyStatistics"
@closeDet="closeDet" />
</div>
</template>
<script>
import { getEnergyStatisticsDetPage, deleteEnergyStatisticsDet, deleteMany } from '@/api/monitoring/energyStatisticsDet'
import EnergyStatisticsDetAdd from './energyStatisticsDetAdd'
import { publicFormatter } from '@/utils/dict'
import {
getEnergyStatisticsDetPage,
deleteEnergyStatisticsDet,
deleteMany,
} from '@/api/monitoring/energyStatisticsDet';
import EnergyStatisticsDetAdd from './energyStatisticsDetAdd';
import { publicFormatter } from '@/utils/dict';
const tableProps = [
{
prop: 'objName',
label: '所属对象'
},
{
prop: 'objCode',
label: '对象编码'
},
{
prop: 'paramName',
label: '参数名称'
},
{
prop: 'unit',
label: '单位',
filter: publicFormatter('energy_unit')
},
{
prop: 'desc',
label: '描述'
}
]
{
prop: 'objName',
label: '所属对象',
},
{
prop: 'objCode',
label: '对象编码',
},
{
prop: 'paramName',
label: '参数名称',
},
{
prop: 'unit',
label: '单位',
filter: publicFormatter('unit_dict'),
},
{
prop: 'desc',
label: '描述',
},
];
export default {
name: 'EnergyStatisticsDet',
props: {
energyTypeList: {
type: Array,
required: true,
default: () => {
return []
}
}
},
data() {
return {
visible: false,
drawerTitle: '',
tableProps,
tableData: [],
tableBtn: [],
tableH: this.tableHeight(115),
total: 0,
queryParams: {
pageNo: 1,
pageSize: 30,
statisticsId: null
},
name: '',
energyType: '',
energyTypeId: '',
// 弹出层标题
addOrEditTitle: "",
// 是否显示弹出层
centervisible: false,
collectionList: [
{value: 0,label: '否'},
{value: 1,label: '是'}
],
showBtn: true,
selectedList: []
}
},
components: { EnergyStatisticsDetAdd },
created() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(115)
})
},
methods: {
init(data,title) {
this.visible = true
this.queryParams.statisticsId = data.id
this.name = data.name
this.energyType = data.energyType
this.energyTypeId = data.energyTypeId
this.getList()
if (title === 'detail') {
this.drawerTitle = '查看参数'
this.showBtn = false
this.tableBtn = []
} else {
this.drawerTitle = '参数绑定'
this.showBtn = true
this.tableBtn = [
{
type: 'delete',
btnName: '删除'
}
]
}
},
getList() {
console.log(this.queryParams)
getEnergyStatisticsDetPage({...this.queryParams}).then((res) => {
let arr = res.data.list || []
arr&&arr.map(item => {
this.collectionList.map(i => {
if (item.collection === i.value) {
item.collection = i.label
}
})
this.energyTypeList.map(j => {
if (item.typeId === j.id) {
item.typeId = j.name
}
})
})
this.tableData = arr
this.total = res.data.total;
})
},
// 新增
addNew() {
this.$nextTick(() => {
this.$refs.energyStatistics.init({'statisticsId': this.queryParams.statisticsId, energyTypeId:this.energyTypeId})
})
},
selectChange(val) {
console.log(val)
this.selectedList = val
},
// 批量删除
deleteAll() {
let arr = []
if (this.selectedList.length === 0) {
this.$modal.msgWarning("请选勾选数据")
return false
} else {
this.selectedList.map((item) => {
arr.push(item.id)
})
}
this.$modal.confirm('是否确认删除所有勾选的数据项?').then(function() {
return deleteMany(arr);
}).then(() => {
this.queryParams.pageNo = 1
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
handleCancel() {
this.$refs.energyStatistics.formClear()
this.centervisible = false
this.addOrEditTitle = ''
},
handleConfirm() {
this.$refs.energyStatistics.submitForm()
},
successSubmit() {
this.handleCancel()
this.getList()
},
handleClick(val) {
this.handleDelete(val.data)
},
/** 删除按钮操作 */
handleDelete(row) {
this.$modal.confirm('是否确认删除参数列名为"' + row.paramName + '"的数据项?').then(function() {
return deleteEnergyStatisticsDet(row.id);
}).then(() => {
this.queryParams.pageNo = 1
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
closeD() {
this.$emit('closeDrawer')
},
closeDet() { // 关闭新增框
this.getList()
}
}
}
name: 'EnergyStatisticsDet',
props: {
energyTypeList: {
type: Array,
required: true,
default: () => {
return [];
},
},
},
data() {
return {
visible: false,
drawerTitle: '',
tableProps,
tableData: [],
tableBtn: [],
tableH: this.tableHeight(115),
total: 0,
queryParams: {
pageNo: 1,
pageSize: 30,
statisticsId: null,
},
name: '',
energyTypeLabel: '',
energyTypeId: '',
// 弹出层标题
addOrEditTitle: '',
// 是否显示弹出层
centervisible: false,
collectionList: [
{ value: 0, label: '否' },
{ value: 1, label: '是' },
],
showBtn: true,
selectedList: [],
};
},
components: { EnergyStatisticsDetAdd },
created() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(115);
});
},
methods: {
init(data, title) {
this.visible = true;
this.queryParams.statisticsId = data.id;
this.name = data.name;
this.energyTypeLabel = data.energyTypeLabel;
this.energyTypeId = data.energyTypeId;
this.getList();
if (title === 'detail') {
this.drawerTitle = '查看参数';
this.showBtn = false;
this.tableBtn = [];
} else {
this.drawerTitle = '参数绑定';
this.showBtn = true;
this.tableBtn = [
{
type: 'delete',
btnName: '删除',
},
];
}
},
getList() {
console.log(this.queryParams);
getEnergyStatisticsDetPage({ ...this.queryParams }).then((res) => {
let arr = res.data.list || [];
arr &&
arr.map((item) => {
this.collectionList.map((i) => {
if (item.collection === i.value) {
item.collection = i.label;
}
});
this.energyTypeList.map((j) => {
if (item.typeId === j.id) {
item.typeId = j.name;
}
});
});
this.tableData = arr;
this.total = res.data.total;
});
},
// 新增
addNew() {
this.$nextTick(() => {
this.$refs.energyStatistics.init({
statisticsId: this.queryParams.statisticsId,
energyTypeId: this.energyTypeId,
});
});
},
selectChange(val) {
console.log(val);
this.selectedList = val;
},
// 批量删除
deleteAll() {
let arr = [];
if (this.selectedList.length === 0) {
this.$modal.msgWarning('请选勾选数据');
return false;
} else {
this.selectedList.map((item) => {
arr.push(item.id);
});
}
this.$modal
.confirm('是否确认删除所有勾选的数据项?')
.then(function () {
return deleteMany(arr);
})
.then(() => {
this.queryParams.pageNo = 1;
this.getList();
this.$modal.msgSuccess('删除成功');
})
.catch(() => {});
},
handleCancel() {
this.$refs.energyStatistics.formClear();
this.centervisible = false;
this.addOrEditTitle = '';
},
handleConfirm() {
this.$refs.energyStatistics.submitForm();
},
successSubmit() {
this.handleCancel();
this.getList();
},
handleClick(val) {
this.handleDelete(val.data);
},
/** 删除按钮操作 */
handleDelete(row) {
this.$modal
.confirm('是否确认删除参数列名为"' + row.paramName + '"的数据项?')
.then(function () {
return deleteEnergyStatisticsDet(row.id);
})
.then(() => {
this.queryParams.pageNo = 1;
this.getList();
this.$modal.msgSuccess('删除成功');
})
.catch(() => {});
},
closeD() {
this.$emit('closeDrawer');
},
closeDet() {
// 关闭新增框
this.getList();
},
},
};
</script>
<style lang="scss" scoped>
.box {
padding: 0 32px;
padding: 0 32px;
}
</style>

View File

@@ -1,179 +1,178 @@
<template>
<el-drawer
title="新增"
:visible.sync="centervisible"
size="60%"
@close='closeA'
:show-close='false'>
<div class="box">
<!-- 搜索工作栏 -->
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
:removeBlue='true'
@headBtnClick="buttonClick"
/>
<!-- 列表 -->
<base-table
:page="queryParams.pageNo"
:limit="queryParams.pageSize"
:table-props="tableProps"
:table-data="list"
:max-height="tableH"
:selectWidth="55"
@selection-change="selectChange"
>
</base-table>
<pagination
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
:total="total"
@pagination="getList"
/>
</div>
</el-drawer>
<el-drawer
title="新增"
:visible.sync="centervisible"
size="60%"
@close="closeA"
:show-close="false">
<div class="box">
<!-- 搜索工作栏 -->
<search-bar
:formConfigs="formConfig"
ref="searchBarForm"
:removeBlue="true"
@headBtnClick="buttonClick" />
<!-- 列表 -->
<base-table
:page="queryParams.pageNo"
:limit="queryParams.pageSize"
:table-props="tableProps"
:table-data="list"
:max-height="tableH"
:selectWidth="55"
@selection-change="selectChange"></base-table>
<pagination
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
:total="total"
@pagination="getList" />
</div>
</el-drawer>
</template>
<script>
import { addParamPage, createEnergyStatisticsDet } from '@/api/monitoring/energyStatisticsDet'
import { publicFormatter } from '@/utils/dict'
import {
addParamPage,
createEnergyStatisticsDet,
} from '@/api/monitoring/energyStatisticsDet';
import { publicFormatter } from '@/utils/dict';
const tableProps = [
{
prop: 'objName',
label: '所属对象'
},
{
prop: 'objCode',
label: '对象编码'
},
{
prop: 'paramName',
label: '参数名称'
},
{
prop: 'unit',
label: '单位',
filter: publicFormatter('energy_unit')
},
{
prop: 'desc',
label: '描述'
}
]
{
prop: 'objName',
label: '所属对象',
},
{
prop: 'objCode',
label: '对象编码',
},
{
prop: 'paramName',
label: '参数名称',
},
{
prop: 'unit',
label: '单位',
filter: publicFormatter('unit_dict'),
},
{
prop: 'desc',
label: '描述',
},
];
export default {
name: 'EnergyStatisticsDetAdd',
data() {
return {
centervisible: false,
formConfig: [
{
type: 'select',
label: '对象类型',
selectOptions: this.getDictDatas(this.DICT_TYPE.OBJECT_TYPE),
labelField: 'label',
valueField: 'value',
param: 'objType'
},
{
type: 'input',
label: '参数名称',
placeholder: '参数名称',
param: 'paramName'
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary'
},
{
type: 'separate'
},
{
type: 'button',
btnName: '关联',
name: 'add',
color: 'primary',
plain: true
}
],
queryParams: {
pageNo: 1,
pageSize: 20,
energyTypeId: null,
statisticId: null,
paramName: '',
objType: ''
},
tableProps,
list: [],
total: 0,
tableH: this.tableHeight(260),
selectedList: []
}
},
methods: {
init(param) {
this.queryParams.statisticId = param.statisticsId
this.queryParams.energyTypeId = param.energyTypeId
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260)
})
this.centervisible = true
this.getList()
},
getList() {
addParamPage({...this.queryParams}).then((res) => {
this.list = res.data.list || []
this.total = res.data.total
})
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.queryParams.pageNo = 1;
this.queryParams.objType = val.objType
this.queryParams.paramName = val.paramName
this.getList()
break
default:
// 关联
this.connectParam()
}
},
// 选中数据
selectChange(val) {
this.selectedList = val
},
// 关联
connectParam() {
let param = {
statisticsId: this.queryParams.statisticId,
plcParamIds: []
}
if (this.selectedList.length === 0) {
this.$modal.msgWarning("请选勾选数据")
return false
} else {
this.selectedList.map((item) => {
param.plcParamIds.push(item.id)
})
}
createEnergyStatisticsDet({...param}).then((res) => {
if (res.code === 0) {
this.$modal.msgSuccess("操作成功");
this.queryParams.pageNo = 1;
this.getList()
}
})
},
closeA() {
this.$emit('closeDet')
}
}
}
name: 'EnergyStatisticsDetAdd',
data() {
return {
centervisible: false,
formConfig: [
{
type: 'select',
label: '对象类型',
selectOptions: this.getDictDatas(this.DICT_TYPE.OBJECT_TYPE),
labelField: 'label',
valueField: 'value',
param: 'objType',
},
{
type: 'input',
label: '参数名称',
placeholder: '参数名称',
param: 'paramName',
},
{
type: 'button',
btnName: '查询',
name: 'search',
color: 'primary',
},
{
type: 'separate',
},
{
type: 'button',
btnName: '关联',
name: 'add',
color: 'primary',
plain: true,
},
],
queryParams: {
pageNo: 1,
pageSize: 20,
energyTypeId: null,
statisticId: null,
paramName: '',
objType: '',
},
tableProps,
list: [],
total: 0,
tableH: this.tableHeight(260),
selectedList: [],
};
},
methods: {
init(param) {
this.queryParams.statisticId = param.statisticsId;
this.queryParams.energyTypeId = param.energyTypeId;
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260);
});
this.centervisible = true;
this.getList();
},
getList() {
addParamPage({ ...this.queryParams }).then((res) => {
this.list = res.data.list || [];
this.total = res.data.total;
});
},
buttonClick(val) {
switch (val.btnName) {
case 'search':
this.queryParams.pageNo = 1;
this.queryParams.objType = val.objType;
this.queryParams.paramName = val.paramName;
this.getList();
break;
default:
// 关联
this.connectParam();
}
},
// 选中数据
selectChange(val) {
this.selectedList = val;
},
// 关联
connectParam() {
let param = {
statisticsId: this.queryParams.statisticId,
plcParamIds: [],
};
if (this.selectedList.length === 0) {
this.$modal.msgWarning('请选勾选数据');
return false;
} else {
this.selectedList.map((item) => {
param.plcParamIds.push(item.id);
});
}
createEnergyStatisticsDet({ ...param }).then((res) => {
if (res.code === 0) {
this.$modal.msgSuccess('操作成功');
this.queryParams.pageNo = 1;
this.getList();
}
});
},
closeA() {
this.$emit('closeDet');
},
},
};
</script>
<style lang="scss" scoped>
.box {
padding: 0 32px;
padding: 0 32px;
}
</style>

View File

@@ -53,6 +53,7 @@ import { publicFormatter } from '@/utils/dict';
import { getEnergyTypeListAll } from '@/api/base/energyType';
import EnergyStatisticsAdd from './components/energyStatisticsAdd';
import EnergyStatisticsDet from './components/energyStatisticsDet';
import tableHeightMixin from '@/mixins/lb/tableHeightMixin';
const tableProps = [
{
prop: 'name',
@@ -70,9 +71,9 @@ const tableProps = [
filter: publicFormatter('statistic_type'),
},
{
prop: 'energyType',
prop: 'energyTypeLabel',
label: '能源类型',
filter: publicFormatter('energy_type'),
showOverflowtooltip: true,
},
{
prop: 'paramNum',
@@ -86,6 +87,7 @@ const tableProps = [
export default {
name: 'EnergyStatistics',
components: { EnergyStatisticsAdd, EnergyStatisticsDet },
mixins: [tableHeightMixin],
data() {
return {
formConfig: [
@@ -139,7 +141,6 @@ export default {
}
: undefined,
].filter((v) => v),
tableH: this.tableHeight(260),
// 总条数
total: 0,
// 班次基础信息列表
@@ -158,9 +159,6 @@ export default {
};
},
created() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260);
});
this.getList();
},
mounted() {
@@ -187,6 +185,13 @@ export default {
getList() {
getEnergyStatisticsPage(this.queryParams).then((response) => {
let arr = response.data.list || [];
arr.map((item) => {
this.getDictDatas('energy_type').map((subItem) => {
if (item.energyType === subItem.value) {
item.energyTypeLabel = subItem.label;
}
});
});
this.list = arr;
this.total = response.data.total;
});