| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog |
| | | v-model="dialogFormVisible" |
| | | title="设å¤è½è" |
| | | width="70%" |
| | | @close="closeDia" |
| | | > |
| | | <el-form |
| | | :model="form" |
| | | label-width="140px" |
| | | label-position="top" |
| | | :rules="rules" |
| | | ref="formRef" |
| | | > |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设å¤ï¼" prop="code"> |
| | | <el-select |
| | | v-model="form.code" |
| | | placeholder="è¯·éæ©" |
| | | clearable |
| | | @change="setName" |
| | | :disabled="operationType !== 'add'" |
| | | > |
| | | <el-option |
| | | v-for="item in codeList" |
| | | :key="item.deviceModel" |
| | | :label="item.deviceName" |
| | | :value="item.deviceModel" |
| | | > |
| | | {{item.deviceName + '--' + item.deviceModel}} |
| | | </el-option> |
| | | </el-select> |
| | | </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" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é¢å®åçï¼" prop="powerRating"> |
| | | <el-input |
| | | v-model="form.powerRating" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å®é
åçï¼" prop="powerActual"> |
| | | <el-input |
| | | v-model="form.powerActual" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¿è¡æ¶é´ï¼" prop="runDate"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="form.runDate" |
| | | value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" |
| | | type="date" |
| | | placeholder="è¯·éæ©" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="30"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="彿¥ç¨çµéï¼" prop="dayNum"> |
| | | <el-input |
| | | v-model="form.dayNum" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确认</el-button> |
| | | <el-button @click="closeDia">åæ¶</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import {ref} from "vue"; |
| | | import useUserStore from "@/store/modules/user.js"; |
| | | import {deviceList, equipmentEnergyAdd, equipmentEnergyUpdate, areaListTree} from "@/api/energyManagement/index.js"; |
| | | import { getCurrentDate } from "@/utils/index.js"; |
| | | const { proxy } = getCurrentInstance() |
| | | const emit = defineEmits(['close']) |
| | | const dialogFormVisible = ref(false); |
| | | const operationType = ref('') |
| | | const userStore = useUserStore(); |
| | | |
| | | const data = reactive({ |
| | | form: { |
| | | name: "", |
| | | code: "", |
| | | everyNum: "", |
| | | powerRating: "", |
| | | powerActual: "", |
| | | runDate: "", |
| | | dayNum: "", |
| | | electricityConsumptionAreaId: "", |
| | | }, |
| | | rules: { |
| | | code: [{ required: true, message: "è¯·éæ©", trigger: "change" }], |
| | | runDate: [{ required: true, message: "è¯·éæ©", trigger: "change" }], |
| | | everyNum: [{ required: true, message: "请è¾å
¥", trigger: "blur" }], |
| | | 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) => { |
| | | operationType.value = type; |
| | | dialogFormVisible.value = true; |
| | | // form.value.maintainer = userStore.nickName; |
| | | // 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} |
| | | // ç¼è¾æ¶ï¼å°å个ID转æ¢ä¸ºæ°ç»æ ¼å¼ç¨äºåæ¾ |
| | | if (row.electricityConsumptionAreaId) { |
| | | form.value.electricityConsumptionAreaId = [row.electricityConsumptionAreaId]; |
| | | } |
| | | } |
| | | } |
| | | const setName = (code) => { |
| | | const index = codeList.value.findIndex(item => item.deviceModel === code); |
| | | if (index > -1) { |
| | | console.log(codeList) |
| | | form.value.name = codeList.value[index].deviceName; |
| | | } |
| | | } |
| | | 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(submitData).then(response => { |
| | | proxy.$modal.msgSuccess("æ°å¢æå") |
| | | closeDia() |
| | | }) |
| | | } else { |
| | | equipmentEnergyUpdate(submitData).then(response => { |
| | | proxy.$modal.msgSuccess("ä¿®æ¹æå") |
| | | closeDia() |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | // å
³éå¼¹æ¡ |
| | | const closeDia = () => { |
| | | proxy.resetForm("formRef"); |
| | | dialogFormVisible.value = false; |
| | | emit('close') |
| | | }; |
| | | defineExpose({ |
| | | openDialog, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |