From c7b4b9a2f4c0f05aeb60a9e3f5fba5d9a3676f3f Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期一, 18 八月 2025 16:22:42 +0800 Subject: [PATCH] 中强恒兴设备管理页面添加 --- src/views/equipmentManagement/ledger/Form.vue | 66 +++++++++++++++++++++++++------- 1 files changed, 51 insertions(+), 15 deletions(-) diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue index 68934ff..108dbe4 100644 --- a/src/views/equipmentManagement/ledger/Form.vue +++ b/src/views/equipmentManagement/ledger/Form.vue @@ -1,5 +1,5 @@ <template> - <el-form :model="form" label-width="100px"> + <el-form :model="form" label-width="100px" :rules="formRules" ref="formRef"> <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="璁惧鍚嶇О" prop="deviceName"> @@ -8,7 +8,12 @@ </el-col> <el-col :span="12"> <el-form-item label="瑙勬牸鍨嬪彿" prop="deviceModel"> - <el-input v-model="form.deviceModel" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" /> + <el-input v-model="form.deviceModel" :disabled="(form.deviceModel != null && operationType === 'edit')" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="璁惧鍝佺墝" prop="deviceBrand"> + <el-input v-model="form.deviceBrand" placeholder="璇疯緭鍏ヨ澶囧搧鐗�" /> </el-form-item> </el-col> <el-col :span="12"> @@ -17,8 +22,18 @@ </el-form-item> </el-col> <el-col :span="12"> + <el-form-item label="瀛樻斁浣嶇疆" prop="storageLocation"> + <el-input v-model="form.storageLocation" placeholder="璇疯緭鍏ュ瓨鏀句綅缃�" /> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="鍗曚綅" prop="unit"> <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鍚敤鎶樻棫" prop="enableDepreciation"> + <el-switch v-model="form.enableDepreciation" :active-value="true" :inactive-value="false" /> </el-form-item> </el-col> <el-col :span="12"> @@ -37,7 +52,6 @@ placeholder="璇疯緭鍏ュ惈绋庡崟浠�" maxlength="10" @change="mathNum" - @input="handleNumberInput" /> </el-form-item> </el-col> @@ -45,7 +59,7 @@ <el-form-item label="鍚◣鎬讳环" prop="taxIncludingPriceTotal"> <el-input v-model="form.taxIncludingPriceTotal" - placeholder="璇疯緭鍏ュ惈绋庢�讳环" + placeholder="鑷姩鐢熸垚" type="number" disabled /> @@ -76,7 +90,7 @@ <el-form-item label="涓嶅惈绋庢�讳环" prop="unTaxIncludingPriceTotal"> <el-input v-model="form.unTaxIncludingPriceTotal" - placeholder="璇疯緭鍏ヤ笉鍚◣鎬讳环" + placeholder="鑷姩鐢熸垚" type="number" disabled /> @@ -114,15 +128,30 @@ calculateTaxExclusiveTotalPrice, } from "@/utils/summarizeTable"; import { ElMessage } from "element-plus"; +import {ref} from "vue"; defineOptions({ name: "璁惧鍙拌处琛ㄥ崟", }); +const formRef = ref(null); +const operationType = ref(''); +const formRules = { + deviceName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }], + deviceModel: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }], + supplierName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }], + unit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }], + number: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }], + taxIncludingPriceUnit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }], + taxRate: [{ required: true, trigger: "change", message: "璇疯緭鍏�" }], +} const { form, resetForm } = useFormData({ deviceName: undefined, // 璁惧鍚嶇О deviceModel: undefined, // 瑙勬牸鍨嬪彿 + deviceBrand: undefined, // 璁惧鍝佺墝 supplierName: undefined, // 渚涘簲鍟� + storageLocation: undefined, // 瀛樻斁浣嶇疆 + enableDepreciation: false, // 鏄惁鍚敤鎶樻棫 unit: undefined, // 鍗曚綅 number: undefined, // 鏁伴噺 taxIncludingPriceUnit: undefined, // 鍚◣鍗曚环 @@ -134,11 +163,17 @@ }); const loadForm = async (id) => { + if (id) { + operationType.value = 'edit' + } const { code, data } = await getLedgerById(id); if (code == 200) { form.deviceName = data.deviceName; form.deviceModel = data.deviceModel; + form.deviceBrand = data.deviceBrand; form.supplierName = data.supplierName; + form.storageLocation = data.storageLocation; + form.enableDepreciation = data.enableDepreciation; form.unit = data.unit; form.number = data.number; form.taxIncludingPriceUnit = data.taxIncludingPriceUnit; @@ -170,22 +205,23 @@ } }; -const handleNumberInput = (value) => { - // 绉婚櫎鎵�鏈夐潪鏁板瓧瀛楃 - let num = value.replace(/[^\d.]/g, ""); +// 娓呴櫎琛ㄥ崟鏍¢獙鐘舵�� +const clearValidate = () => { + formRef.value?.clearValidate(); +}; - // 闄愬埗闀垮害涓�10 - if (num.length > 10) { - num = num.slice(0, 10); - } - - // 鏇存柊鍊� - form.taxIncludingPriceUnit = num; +// 閲嶇疆琛ㄥ崟鏁版嵁鍜屾牎楠岀姸鎬� +const resetFormAndValidate = () => { + resetForm(); + clearValidate(); }; defineExpose({ form, loadForm, resetForm, + clearValidate, + resetFormAndValidate, + formRef, }); </script> -- Gitblit v1.9.3