From 0d0a26f9c6af83e04909412dea29921f16ad1b2e Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 14 八月 2025 17:16:07 +0800
Subject: [PATCH] 重写用电区域,设备能耗添加用电区域字段
---
src/views/energyManagement/energyArea/index.vue | 387 ++++++++++++++++++++++--------------------
src/views/energyManagement/energyPower/components/formDia.vue | 55 +++++
src/api/energyManagement/index.js | 97 +++++-----
3 files changed, 304 insertions(+), 235 deletions(-)
diff --git a/src/api/energyManagement/index.js b/src/api/energyManagement/index.js
index 629c17c..f2c5494 100644
--- a/src/api/energyManagement/index.js
+++ b/src/api/energyManagement/index.js
@@ -4,117 +4,124 @@
// 璁惧鑳借��-鍒嗛〉鏌ヨ
export function equipmentEnergyListPage(query) {
return request({
- url: '/equipmentEnergyConsumption/listPage',
- method: 'get',
+ url: "/equipmentEnergyConsumption/listPage",
+ method: "get",
params: query,
- })
+ });
}
// -鑳芥簮瓒嬪娍-鍒嗛〉鏌ヨ
export function listPageByTrend(query) {
return request({
- url: '/equipmentEnergyConsumption/listPageByTrend',
- method: 'get',
+ url: "/equipmentEnergyConsumption/listPageByTrend",
+ method: "get",
params: query,
- })
+ });
}
// 鍖哄煙-鍒嗛〉鏌ヨ
export function areaListPage(query) {
return request({
- url: '/electricityConsumptionArea/listPage',
- method: 'get',
+ url: "/electricityConsumptionArea/listPage",
+ method: "get",
params: query,
- })
+ });
+}
+
+// 鍖哄煙-鏍�
+export function areaListTree(query) {
+ return request({
+ url: "/electricityConsumptionArea/list",
+ method: "get",
+ params: query,
+ });
}
// 鏃堕棿鍛ㄦ湡-鍒嗛〉鏌ヨ
export function periodListPage(query) {
return request({
- url: '/energyPeriod/listPage',
- method: 'get',
+ url: "/energyPeriod/listPage",
+ method: "get",
params: query,
- })
+ });
}
// 璁惧鑳借��-鍒犻櫎
export function equipmentEnergyDelete(query) {
return request({
- url: '/equipmentEnergyConsumption/delete',
- method: 'delete',
+ url: "/equipmentEnergyConsumption/delete",
+ method: "delete",
data: query,
- })
+ });
}
// 鍖哄煙-鍒犻櫎
export function areaDelete(query) {
return request({
- url: '/electricityConsumptionArea/delete',
- method: 'delete',
+ url: "/electricityConsumptionArea/delete",
+ method: "delete",
data: query,
- })
+ });
}
// 鏃堕棿鍛ㄦ湡-鍒犻櫎
export function periodDelete(query) {
return request({
- url: '/energyPeriod/delete',
- method: 'delete',
+ url: "/energyPeriod/delete",
+ method: "delete",
data: query,
- })
+ });
}
-
// 璁惧鑳借��-鏂板
export function equipmentEnergyAdd(query) {
return request({
- url: '/equipmentEnergyConsumption/add',
- method: 'post',
+ url: "/equipmentEnergyConsumption/add",
+ method: "post",
data: query,
- })
+ });
}
// 鍖哄煙-鏂板
export function areaAdd(query) {
return request({
- url: '/electricityConsumptionArea/add',
- method: 'post',
+ url: "/electricityConsumptionArea/add",
+ method: "post",
data: query,
- })
+ });
}
// 鏃堕棿鍛ㄦ湡-鏂板
export function periodAdd(query) {
return request({
- url: '/energyPeriod/add',
- method: 'post',
+ url: "/energyPeriod/add",
+ method: "post",
data: query,
- })
+ });
}
// 璁惧鑳借��-淇敼
export function equipmentEnergyUpdate(query) {
return request({
- url: '/equipmentEnergyConsumption/update',
- method: 'post',
+ url: "/equipmentEnergyConsumption/update",
+ method: "post",
data: query,
- })
+ });
}
//鍖哄煙-淇敼
export function areaUpdate(query) {
return request({
- url: '/electricityConsumptionArea/update',
- method: 'post',
+ url: "/electricityConsumptionArea/update",
+ method: "post",
data: query,
- })
+ });
}
// 鏃堕棿鍛ㄦ湡-淇敼
export function periodUpdate(query) {
return request({
- url: '/energyPeriod/update',
- method: 'post',
+ url: "/energyPeriod/update",
+ method: "post",
data: query,
- })
+ });
}
-
// 璁惧涓嬫媺妗嗘煡璇�
export function deviceList(query) {
return request({
- url: '/equipmentEnergyConsumption/deviceList',
- method: 'get',
- })
-}
\ No newline at end of file
+ url: "/equipmentEnergyConsumption/deviceList",
+ method: "get",
+ });
+}
diff --git a/src/views/energyManagement/energyArea/index.vue b/src/views/energyManagement/energyArea/index.vue
index 25ce083..63feff8 100644
--- a/src/views/energyManagement/energyArea/index.vue
+++ b/src/views/energyManagement/energyArea/index.vue
@@ -2,39 +2,72 @@
<div class="app-container product-view">
<div class="left">
<div>
- <el-input v-model="search" style="width: 210px" placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" @change="searchFilter"
- @clear="searchFilter" clearable prefix-icon="Search" />
- <el-button type="primary" @click="openProDia('add')" style="margin-left: 10px">鏂板鐖跺尯鍩�</el-button>
+ <el-input
+ v-model="search"
+ style="width: 210px"
+ placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�"
+ @change="searchFilter"
+ @clear="searchFilter"
+ clearable
+ prefix-icon="Search"
+ />
+ <el-button
+ type="primary"
+ @click="openProDia('addOne')"
+ style="margin-left: 10px"
+ >鏂板鐖跺尯鍩�</el-button
+ >
</div>
<div ref="containerRef">
- <el-tree ref="tree" v-loading="treeLoad" :data="list" @node-click="handleNodeClick"
- :expand-on-click-node="false" default-expand-all :default-expanded-keys="expandedKeys" :draggable="true"
- :filter-node-method="filterNode" :props="{ children: 'children', label: 'label' }" highlight-current
- node-key="id" style="
+ <el-tree
+ ref="tree"
+ v-loading="treeLoad"
+ :data="list"
+ @node-click="handleNodeClick"
+ :expand-on-click-node="false"
+ default-expand-all
+ :default-expanded-keys="expandedKeys"
+ :draggable="true"
+ :filter-node-method="filterNode"
+ :props="{ children: 'children', label: 'label' }"
+ highlight-current
+ node-key="id"
+ style="
height: calc(100vh - 190px);
overflow-y: scroll;
scrollbar-width: none;
- ">
+ margin-top: 10px;
+ "
+ >
<template #default="{ node, data }">
<div class="custom-tree-node">
<span class="tree-node-content">
<el-icon class="orange-icon">
<component :is="data.children && data.children.length > 0
- ? node.expanded ? 'FolderOpened' : 'Folder' : 'Tickets'" />
+ ? node.expanded ? 'FolderOpened' : 'Folder' : 'Tickets'" />
</el-icon>
- {{ data.fuId==null ? data.id : '' || data.areaName }}
+ {{ data.label }}
</span>
<div>
- <el-button v-if="node.level < 2" type="primary" link @click="openProDia('edit', data)">
+ <el-button
+ type="primary"
+ link
+ @click="openProDia('edit', data)"
+ >
缂栬緫
</el-button>
- <!-- <el-button v-if="node.level < 2" type="primary" link @click="openProDia('add', data)" :disabled="node.level >= 3">
+ <el-button type="primary" link @click="openModelDia('add','', data.id)">
娣诲姞瀛愬尯鍩�
- </el-button> -->
- <!-- <el-button v-if="!node.childNodes.length" style="margin-left: 4px" type="danger" link
- @click="remove(node, data)">
+ </el-button>
+ <el-button
+ v-if="!node.childNodes.length"
+ style="margin-left: 4px"
+ type="danger"
+ link
+ @click="remove(node, data)"
+ >
鍒犻櫎
- </el-button> -->
+ </el-button>
</div>
</div>
</template>
@@ -42,26 +75,47 @@
</div>
</div>
<div class="right">
- <div style="margin-bottom: 10px">
+ <div style="margin-bottom: 10px" v-if="isShowButton">
<el-button type="primary" @click="openModelDia('add')">
- 鏂板鍖哄煙
+ 鏂板瀛愬尯鍩�
</el-button>
- <ImportExcel @uploadSuccess="getModelList" />
- <el-button type="danger" @click="handleDelete" style="margin-left: 10px" plain>
+ <el-button
+ type="danger"
+ @click="handleDelete"
+ style="margin-left: 10px"
+ plain
+ >
鍒犻櫎
</el-button>
</div>
- <PIMTable rowKey="id" :column="tableColumn" :tableData="tableData" :page="page" :isSelection="true"
- @selection-change="handleSelectionChange" :tableLoading="tableLoading" @pagination="pagination"></PIMTable>
+ <PIMTable
+ rowKey="id"
+ :column="tableColumn"
+ :tableData="tableData"
+ :page="page"
+ :isSelection="true"
+ @selection-change="handleSelectionChange"
+ :tableLoading="tableLoading"
+ @pagination="pagination"
+ ></PIMTable>
</div>
<el-dialog v-model="productDia" title="鍖哄煙" width="400px" @keydown.enter.prevent>
- <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
- <el-row>
+ <el-form
+ :model="form"
+ label-width="140px"
+ label-position="top"
+ :rules="rules"
+ ref="formRef"
+ >
+ <el-row :gutter="30">
<el-col :span="24">
- <el-form-item label="鍖哄煙绫诲瀷锛�" prop="areaType">
- <el-select v-model="form.areaType" placeholder="璇烽�夋嫨鍖哄煙绫诲瀷" clearable @keydown.enter.prevent>
- <el-option v-for="item in areaTypeList" :key="item" :label="item" :value="item" />
- </el-select>
+ <el-form-item label="鍖哄煙鍚嶇О锛�" prop="areaName">
+ <el-input
+ v-model="form.areaName"
+ placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"
+ clearable
+ @keydown.enter.prevent
+ />
</el-form-item>
</el-col>
</el-row>
@@ -69,38 +123,45 @@
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm">纭</el-button>
- <!-- <el-button type="primary" @click="submitModelForm">纭</el-button> -->
<el-button @click="closeProDia">鍙栨秷</el-button>
</div>
</template>
</el-dialog>
- <el-dialog v-model="modelDia" title="鍖哄煙" width="400px" @close="closeModelDia" @keydown.enter.prevent>
- <el-form :model="form" label-width="140px" label-position="top" :rules="modelRules" ref="modelFormRef">
- <el-row>
- <el-col :span="24">
- <el-form-item label="鍖哄煙鍚嶇О锛�" prop="areaName">
- <el-input v-model="form.areaName" placeholder="璇疯緭鍏ュ尯鍩熷悕绉�" clearable @keydown.enter.prevent />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="鍖哄煙绫诲瀷锛�" prop="areaType">
- <el-select v-model="form.areaType" placeholder="璇烽�夋嫨鍖哄煙绫诲瀷" clearable @keydown.enter.prevent>
- <el-option v-for="item in areaTypeList" :key="item" :label="item" :value="item" />
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="鐖跺尯鍩燂細" prop="fuId">
- <el-select v-model="form.fuId" placeholder="璇烽�夋嫨鐖跺尯鍩�" clearable @keydown.enter.prevent>
- <el-option v-for="item in list" :key="item.id" :label="item.label" :value="item.id" />
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
+ <el-dialog
+ v-model="modelDia"
+ title="瀛愬尯鍩�"
+ width="400px"
+ @close="closeModelDia"
+ @keydown.enter.prevent
+ >
+ <el-form
+ :model="modelForm"
+ label-width="140px"
+ label-position="top"
+ :rules="modelRules"
+ ref="modelFormRef"
+ >
+ <el-form-item label="鐖跺尯鍩燂細" prop="fuId">
+ <el-cascader v-model="modelForm.fuId" :options="list" :props="{
+ value: 'id',
+ label: 'label',
+ children: 'children',
+ checkStrictly: true,
+ }" />
+ </el-form-item>
+ <el-form-item label="鍖哄煙绫诲瀷锛�" prop="areaType">
+ <el-select v-model="modelForm.areaType" placeholder="璇烽�夋嫨">
+ <el-option v-for="item in area_type" :key="item.value" :label="item.label" :value="item.value" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍖哄煙鍚嶇О锛�" prop="areaName">
+ <el-input
+ v-model="modelForm.areaName"
+ placeholder="璇疯緭鍏ュ崟浣�"
+ clearable
+ @keydown.enter.prevent
+ />
+ </el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
@@ -113,10 +174,14 @@
</template>
<script setup>
-import { ref, onMounted } from "vue";
+import { ref } from "vue";
import { ElMessageBox } from "element-plus";
-import { areaListPage, areaDelete, areaAdd, areaUpdate } from "@/api/energyManagement/index.js";
-// import ImportExcel from "../../../ImportExcel/index.vue";
+import {
+ areaAdd,
+ areaDelete,
+ areaListPage,
+ areaListTree,
+} from "@/api/energyManagement/index.js";
const { proxy } = getCurrentInstance();
const tree = ref(null);
@@ -132,37 +197,24 @@
const treeLoad = ref(false);
const list = ref([]);
const expandedKeys = ref([]);
-const areaTypeList = ref([
- "灞呮皯鐢ㄧ數鍖哄煙",
- "鍟嗕笟鐢ㄧ數鍖哄煙",
- "宸ヤ笟鐢ㄧ數鍖哄煙",
- "鍐滀笟鐢ㄧ數鍖哄煙",
- "鍏叡浜嬩笟鐢ㄧ數鍖哄煙",
- "浜ら�氱敤鐢靛尯鍩�",
- "鐗规畩鐢ㄧ數鍖哄煙"
-])
+const {area_type} = proxy.useDict("area_type")
const tableColumn = ref([
{
- label: "鍖哄煙缂栧彿",
- prop: "id"
- },
- {
label: "鍖哄煙鍚嶇О",
- prop: "areaName"
+ prop: "areaName",
},
{
label: "鍖哄煙绫诲瀷",
- prop: "areaType"
- },
- {
- label: "鐖跺尯鍩�",
- prop: "fuId",
+ prop: "areaType",
+ dataType: "tag",
+ formatData: (row) => {
+ return area_type.value.find(item => item.value == row)?.label;
+ }
},
{
dataType: "action",
label: "鎿嶄綔",
align: "center",
- fixed: 'right',
operation: [
{
name: "缂栬緫",
@@ -180,49 +232,36 @@
const selectedRows = ref([]);
const page = reactive({
current: 1,
- size: 30,
+ size: 10,
total: 0,
});
const data = reactive({
form: {
- id: "",
areaName: "",
- areaType: "",
+ },
+ rules: {
+ areaName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ },
+ modelForm: {
+ areaName: "",
fuId: "",
- sort: ""
},
modelRules: {
- model: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ areaName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ fuId: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
},
});
-const { form, rules, modelRules } = toRefs(data);
-// const originalRecords = ref([]);
-// const parentItems = ref([]);
+const { form, rules, modelForm, modelRules } = toRefs(data);
+
// 鏌ヨ浜у搧鏍�
-const getProductTeeList = () => {
+const getProductTreeList = () => {
treeLoad.value = true;
- areaListPage({
- current: page.current,
- size: page.size,
- })
+ areaListTree()
.then((res) => {
- const originalRecords = res.data.records;
- console.log(originalRecords);
- // 绛涢�塮uId涓虹┖鐨勯」浣滀负鐖惰妭鐐�
- list.value = originalRecords.filter(item => !item.fuId);
- // 涓烘瘡涓埗鑺傜偣娣诲姞children骞跺尮閰嶅瓙鑺傜偣
- list.value.forEach(parent => {
- parent.children = originalRecords.filter(child => child.fuId === parent.id);
+ list.value = res;
+ list.value.forEach((a) => {
+ expandedKeys.value.push(a.label);
});
- // // 鏇存柊鍒楄〃鏁版嵁涓烘爲褰㈢粨鏋�
- // list.value = parentItems.value;
-
- console.log('鏍戝舰缁撴瀯鏁版嵁:', list.value);
-
- // list.value.forEach((a) => {
- // expandedKeys.value.push(a.label);
- // });
treeLoad.value = false;
})
.catch((err) => {
@@ -236,28 +275,23 @@
// 鎵撳紑浜у搧寮规
const openProDia = (type, data) => {
operationType.value = type;
- modelOperationType.value = type;
-
productDia.value = true;
- form.value.areaType = "";
+ form.value.areaName = "";
if (type === "edit") {
- form.value.id = data.id;
form.value.areaName = data.areaName;
- form.value.areaType = data.areaType;
- form.value.fuId = data.fuId;
- form.value.sort = data.sort;
}
};
// 鎵撳紑瑙勬牸鍨嬪彿寮规
-const openModelDia = (type, data) => {
+const openModelDia = (type, data,fatherId) => {
modelOperationType.value = type;
modelDia.value = true;
- form.value.areaName = "";
- form.value.areaType = "";
- form.value.fuId = "";
- form.value.sort = "";
+ modelForm.value.fuId = "";
+ modelForm.value.areaType = "";
+ modelForm.value.areaName = "";
+ modelForm.value.id = "";
+ modelForm.value.fuId = fatherId;
if (type === "edit") {
- form.value = { ...data };
+ modelForm.value = { ...data };
}
};
// 鎻愪氦浜у搧鍚嶇О淇敼
@@ -265,24 +299,20 @@
proxy.$refs.formRef.validate((valid) => {
if (valid) {
if (operationType.value === "add") {
- // form.value.fuId = currentId.value;
- // form.value.id = "";
- areaAdd(form.value).then((res) => {
- proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
- closeProDia();
- getProductTeeList();
- getModelList();
-
- });
- }else {
+ form.value.parentId = currentId.value;
+ form.value.id = "";
+ } else if (operationType.value === "addOne") {
+ form.value.id = "";
+ form.value.parentId = "";
+ } else {
form.value.id = currentId.value;
- areaUpdate(form.value).then((res) => {
- proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
- closeProDia();
- getModelList();
- getProductTeeList();
- });
+ form.value.parentId = "";
}
+ areaAdd(form.value).then((res) => {
+ proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+ closeProDia();
+ getProductTreeList();
+ });
}
});
};
@@ -306,8 +336,7 @@
areaDelete(ids)
.then((res) => {
proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- getProductTeeList();
- getModelList();
+ getProductTreeList();
})
.finally(() => {
tableLoading.value = false;
@@ -320,32 +349,24 @@
// 閫夋嫨浜у搧
const handleNodeClick = (val, node, el) => {
// 鍒ゆ柇鏄惁涓哄彾瀛愯妭鐐�
- // isShowButton.value = !(val.children && val.children.length > 0);
+ isShowButton.value = !(val.children && val.children.length > 0);
// 鍙湁鍙跺瓙鑺傜偣鎵嶆墽琛屼互涓嬮�昏緫
currentId.value = val.id;
currentParentId.value = val.parentId;
- getModelList();
+ getModelList(true);
};
-// 鎻愪氦鍖哄煙
+// 鎻愪氦瑙勬牸鍨嬪彿淇敼
const submitModelForm = () => {
proxy.$refs.modelFormRef.validate((valid) => {
if (valid) {
- if (modelOperationType.value === "add") {
- form.value.fuId = currentId.value;
- areaAdd(form.value).then((res) => {
- proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
- });
- }
- else {
- // form.value.id = currentId.value;
- areaUpdate(form.value).then((res) => {
- proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
- });
- }
- closeModelDia();
- getModelList();
- getProductTeeList();
+ modelForm.value.fuId = currentId.value;
+ areaAdd(modelForm.value).then((res) => {
+ proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+ closeModelDia();
+ getModelList();
+ getProductTreeList();
+ });
}
});
};
@@ -359,19 +380,29 @@
selectedRows.value = selection;
};
-// 鏌ヨ鍖哄煙
-const getModelList = () => {
+// 鏌ヨ瑙勬牸鍨嬪彿
+const pagination = (obj) => {
+ page.current = obj.page;
+ page.size = obj.limit;
+ getModelList();
+};
+const getModelList = (val = false) => {
tableLoading.value = true;
- areaListPage({
- fuId: currentId.value,
+ let obj = {
+ id: currentId.value,
+ fuId:currentId.value,
current: page.current,
- size: page.size,
- }).then((res) => {
+ size: page.size
+ }
+ if(val){
+ delete obj.id;
+ }else{
+ delete obj.fuId
+ }
+ areaListPage(obj).then((res) => {
console.log("res", res);
- const originalRecords = res.data.records;
- // 绛涢�塮uId涓虹┖鐨勯」浣滀负鐖惰妭鐐�
- tableData.value = originalRecords.filter(item => item.fuId === currentId.value);
- page.total = res.total;
+ tableData.value = res.data.records;
+ page.total = res.data.total;
tableLoading.value = false;
});
};
@@ -394,8 +425,8 @@
areaDelete(ids)
.then((res) => {
proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- getModelList();
- getProductTeeList();
+ getModelList();
+ getProductTreeList();
})
.finally(() => {
tableLoading.value = false;
@@ -441,30 +472,24 @@
// 娌″尮閰嶅埌杩斿洖false
return false;
};
-onMounted(() => {
- getProductTeeList();
-});
-
+getProductTreeList();
</script>
<style scoped>
.product-view {
display: flex;
}
-
.left {
width: 380px;
padding: 16px;
background: #ffffff;
}
-
.right {
width: calc(100% - 380px);
padding: 16px;
margin-left: 20px;
background: #ffffff;
}
-
.custom-tree-node {
flex: 1;
display: flex;
@@ -473,18 +498,14 @@
font-size: 14px;
padding-right: 8px;
}
-
.tree-node-content {
display: flex;
- align-items: center;
- /* 鍨傜洿灞呬腑 */
+ align-items: center; /* 鍨傜洿灞呬腑 */
height: 100%;
}
-
.orange-icon {
color: orange;
font-size: 18px;
- margin-right: 8px;
- /* 鍥炬爣涓庢枃瀛椾箣闂村姞鐐归棿璺� */
+ margin-right: 8px; /* 鍥炬爣涓庢枃瀛椾箣闂村姞鐐归棿璺� */
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/energyManagement/energyPower/components/formDia.vue b/src/views/energyManagement/energyPower/components/formDia.vue
index 30f1c36..518a254 100644
--- a/src/views/energyManagement/energyPower/components/formDia.vue
+++ b/src/views/energyManagement/energyPower/components/formDia.vue
@@ -35,6 +35,25 @@
</el-form-item>
</el-col>
<el-col :span="12">
+ <el-form-item label="鐢ㄧ數娑堣�楀尯鍩燂細" prop="electricityConsumptionAreaId">
+ <el-cascader
+ v-model="form.electricityConsumptionAreaId"
+ :options="areaList"
+ :props="{
+ value: 'id',
+ label: 'label',
+ children: 'children',
+ checkStrictly: true,
+ }"
+ placeholder="璇烽�夋嫨鍖哄煙"
+ clearable
+ style="width: 100%"
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
<el-form-item label="姣忔棩闄愬埗鐢甸噺锛�" prop="everyNum">
<el-input
v-model="form.everyNum"
@@ -43,8 +62,6 @@
/>
</el-form-item>
</el-col>
- </el-row>
- <el-row :gutter="30">
<el-col :span="12">
<el-form-item label="棰濆畾鍔熺巼锛�" prop="powerRating">
<el-input
@@ -54,6 +71,8 @@
/>
</el-form-item>
</el-col>
+ </el-row>
+ <el-row :gutter="30">
<el-col :span="12">
<el-form-item label="瀹為檯鍔熺巼锛�" prop="powerActual">
<el-input
@@ -63,8 +82,6 @@
/>
</el-form-item>
</el-col>
- </el-row>
- <el-row :gutter="30">
<el-col :span="12">
<el-form-item label="杩愯鏃堕棿锛�" prop="runDate">
<el-date-picker
@@ -78,6 +95,8 @@
/>
</el-form-item>
</el-col>
+ </el-row>
+ <el-row :gutter="30">
<el-col :span="12">
<el-form-item label="褰撴棩鐢ㄧ數閲忥細" prop="dayNum">
<el-input
@@ -102,7 +121,7 @@
<script setup>
import {ref} from "vue";
import useUserStore from "@/store/modules/user.js";
-import {deviceList, equipmentEnergyAdd, equipmentEnergyUpdate} from "@/api/energyManagement/index.js";
+import {deviceList, equipmentEnergyAdd, equipmentEnergyUpdate, areaListTree} from "@/api/energyManagement/index.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
const dialogFormVisible = ref(false);
@@ -118,6 +137,7 @@
powerActual: "",
runDate: "",
dayNum: "",
+ electricityConsumptionAreaId: "",
},
rules: {
code: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
@@ -126,10 +146,12 @@
powerRating: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
powerActual: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
dayNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ electricityConsumptionAreaId: [{ required: true, message: "璇烽�夋嫨鍖哄煙", trigger: "change" }],
},
})
const { form, rules } = toRefs(data);
const codeList = ref([])
+const areaList = ref([])
// 鎵撳紑寮规
const openDialog = (type, row) => {
@@ -139,11 +161,24 @@
// form.value.maintenanceTime = getCurrentDate();
form.value = {}
proxy.resetForm("formRef");
+
+ // 鑾峰彇璁惧鍒楄〃
deviceList().then((res) => {
codeList.value = res.data;
});
+
+ // 鑾峰彇鍖哄煙鍒楄〃
+ areaListTree().then((res) => {
+ areaList.value = res;
+ console.log("areaList", res);
+ });
+
if (type === "edit") {
form.value = {...row}
+ // 缂栬緫鏃讹紝灏嗗崟涓狪D杞崲涓烘暟缁勬牸寮忕敤浜庡洖鏄�
+ if (row.electricityConsumptionAreaId) {
+ form.value.electricityConsumptionAreaId = [row.electricityConsumptionAreaId];
+ }
}
}
const setName = (code) => {
@@ -156,13 +191,19 @@
const submitForm = () => {
proxy.$refs["formRef"].validate(valid => {
if (valid) {
+ // 鎻愪氦鍓嶅鐞� electricityConsumptionAreaId锛屽彇鏁扮粍鐨勬渶鍚庝竴涓��
+ const submitData = { ...form.value };
+ if (Array.isArray(submitData.electricityConsumptionAreaId) && submitData.electricityConsumptionAreaId.length > 0) {
+ submitData.electricityConsumptionAreaId = submitData.electricityConsumptionAreaId[submitData.electricityConsumptionAreaId.length - 1];
+ }
+
if (operationType.value === "add") {
- equipmentEnergyAdd(form.value).then(response => {
+ equipmentEnergyAdd(submitData).then(response => {
proxy.$modal.msgSuccess("鏂板鎴愬姛")
closeDia()
})
} else {
- equipmentEnergyUpdate(form.value).then(response => {
+ equipmentEnergyUpdate(submitData).then(response => {
proxy.$modal.msgSuccess("淇敼鎴愬姛")
closeDia()
})
--
Gitblit v1.9.3