From fd0e3fd03817d6610c52b09fe27cccf0d3f96438 Mon Sep 17 00:00:00 2001 From: yaowanxin <3588231647@qq.com> Date: 星期二, 12 八月 2025 16:26:11 +0800 Subject: [PATCH] Merge branch 'dev_ai' of http://114.132.189.42:9002/r/product-inventory-management into ywx --- src/views/equipmentManagement/ledger/Form.vue | 87 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 76 insertions(+), 11 deletions(-) diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue index f6cc2cb..c1daab7 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,7 @@ </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 ? true : false" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" /> </el-form-item> </el-col> <el-col :span="12"> @@ -23,19 +23,20 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺" prop="number"> - <el-input + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.number" placeholder="璇疯緭鍏ユ暟閲�" - type="number" + @change="mathNum" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鍚◣鍗曚环" prop="taxIncludingPriceUnit"> - <el-input + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.taxIncludingPriceUnit" placeholder="璇疯緭鍏ュ惈绋庡崟浠�" - type="number" + maxlength="10" + @change="mathNum" /> </el-form-item> </el-col> @@ -43,28 +44,40 @@ <el-form-item label="鍚◣鎬讳环" prop="taxIncludingPriceTotal"> <el-input v-model="form.taxIncludingPriceTotal" - placeholder="璇疯緭鍏ュ惈绋庢�讳环" + placeholder="鑷姩鐢熸垚" type="number" + disabled /> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="绋庣巼" prop="taxRate"> - <el-input + <el-form-item label="绋庣巼(%)" prop="taxRate"> + <!-- <el-input v-model="form.taxRate" placeholder="璇疯緭鍏ョ◣鐜�" type="number" > <template #append> % </template> - </el-input> + </el-input> --> + <el-select + v-model="form.taxRate" + placeholder="璇烽�夋嫨" + clearable + @change="mathNum" + > + <el-option label="1" :value="1" /> + <el-option label="6" :value="6" /> + <el-option label="13" :value="13" /> + </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="涓嶅惈绋庢�讳环" prop="unTaxIncludingPriceTotal"> <el-input v-model="form.unTaxIncludingPriceTotal" - placeholder="璇疯緭鍏ヤ笉鍚◣鎬讳环" + placeholder="鑷姩鐢熸垚" type="number" + disabled /> </el-form-item> </el-col> @@ -95,10 +108,26 @@ // import useUserStore from "@/store/modules/user"; import { getLedgerById } from "@/api/equipmentManagement/ledger"; import dayjs from "dayjs"; +import { + calculateTaxIncludeTotalPrice, + calculateTaxExclusiveTotalPrice, +} from "@/utils/summarizeTable"; +import { ElMessage } from "element-plus"; +import {ref} from "vue"; defineOptions({ name: "璁惧鍙拌处琛ㄥ崟", }); +const formRef = ref(null); +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, // 璁惧鍚嶇О @@ -130,8 +159,44 @@ } }; +const mathNum = () => { + if (!form.taxIncludingPriceUnit) { + ElMessage.error("璇疯緭鍏ュ崟浠�"); + return; + } + if (!form.number) { + ElMessage.error("璇疯緭鍏ユ暟閲�"); + return; + } + form.taxIncludingPriceTotal = calculateTaxIncludeTotalPrice( + form.taxIncludingPriceUnit, + form.number + ); + if (form.taxRate) { + form.unTaxIncludingPriceTotal = calculateTaxExclusiveTotalPrice( + form.taxIncludingPriceTotal, + form.taxRate + ); + } +}; + +// 娓呴櫎琛ㄥ崟鏍¢獙鐘舵�� +const clearValidate = () => { + formRef.value?.clearValidate(); +}; + +// 閲嶇疆琛ㄥ崟鏁版嵁鍜屾牎楠岀姸鎬� +const resetFormAndValidate = () => { + resetForm(); + clearValidate(); +}; + defineExpose({ form, loadForm, + resetForm, + clearValidate, + resetFormAndValidate, + formRef, }); </script> -- Gitblit v1.9.3