From 9ad80a31337e3f22b8e66344b13afacdb52c028b Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 29 七月 2025 16:03:29 +0800 Subject: [PATCH] 1.能源管理-开发、联调 --- src/views/energyManagement/energyPower/components/formDia.vue | 194 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 194 insertions(+), 0 deletions(-) diff --git a/src/views/energyManagement/energyPower/components/formDia.vue b/src/views/energyManagement/energyPower/components/formDia.vue new file mode 100644 index 0000000..30f1c36 --- /dev/null +++ b/src/views/energyManagement/energyPower/components/formDia.vue @@ -0,0 +1,194 @@ +<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="everyNum"> + <el-input + v-model="form.everyNum" + placeholder="璇疯緭鍏�" + clearable + /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="30"> + <el-col :span="12"> + <el-form-item label="棰濆畾鍔熺巼锛�" prop="powerRating"> + <el-input + v-model="form.powerRating" + placeholder="璇疯緭鍏�" + clearable + /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="瀹為檯鍔熺巼锛�" prop="powerActual"> + <el-input + v-model="form.powerActual" + placeholder="璇疯緭鍏�" + clearable + /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="30"> + <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-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} from "@/api/energyManagement/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: "", + }, + 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" }], + }, +}) +const { form, rules } = toRefs(data); +const codeList = 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; + }); + if (type === "edit") { + form.value = {...row} + } +} +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) { + if (operationType.value === "add") { + equipmentEnergyAdd(form.value).then(response => { + proxy.$modal.msgSuccess("鏂板鎴愬姛") + closeDia() + }) + } else { + equipmentEnergyUpdate(form.value).then(response => { + proxy.$modal.msgSuccess("淇敼鎴愬姛") + closeDia() + }) + } + } + }) +} +// 鍏抽棴寮规 +const closeDia = () => { + proxy.resetForm("formRef"); + dialogFormVisible.value = false; + emit('close') +}; +// 鑾峰彇褰撳墠鏃ユ湡骞舵牸寮忓寲涓� YYYY-MM-DD +function getCurrentDate() { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, "0"); // 鏈堜唤浠�0寮�濮� + const day = String(today.getDate()).padStart(2, "0"); + return `${year}-${month}-${day}`; +} +defineExpose({ + openDialog, +}); +</script> + +<style scoped> + +</style> \ No newline at end of file -- Gitblit v1.9.3