From 95221fefe4337984b21588b20a3124979da7d4ca Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 04 八月 2025 13:32:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
src/views/index.vue | 10 -----
src/views/equipmentManagement/ledger/Modal.vue | 30 ++++++++------
src/views/equipmentManagement/ledger/Form.vue | 39 ++++++++++++-------
3 files changed, 42 insertions(+), 37 deletions(-)
diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue
index 68934ff..f7029ee 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">
@@ -37,7 +37,6 @@
placeholder="璇疯緭鍏ュ惈绋庡崟浠�"
maxlength="10"
@change="mathNum"
- @input="handleNumberInput"
/>
</el-form-item>
</el-col>
@@ -45,7 +44,7 @@
<el-form-item label="鍚◣鎬讳环" prop="taxIncludingPriceTotal">
<el-input
v-model="form.taxIncludingPriceTotal"
- placeholder="璇疯緭鍏ュ惈绋庢�讳环"
+ placeholder="鑷姩鐢熸垚"
type="number"
disabled
/>
@@ -76,7 +75,7 @@
<el-form-item label="涓嶅惈绋庢�讳环" prop="unTaxIncludingPriceTotal">
<el-input
v-model="form.unTaxIncludingPriceTotal"
- placeholder="璇疯緭鍏ヤ笉鍚◣鎬讳环"
+ placeholder="鑷姩鐢熸垚"
type="number"
disabled
/>
@@ -114,10 +113,21 @@
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, // 璁惧鍚嶇О
@@ -170,22 +180,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>
diff --git a/src/views/equipmentManagement/ledger/Modal.vue b/src/views/equipmentManagement/ledger/Modal.vue
index d228701..0cea56c 100644
--- a/src/views/equipmentManagement/ledger/Modal.vue
+++ b/src/views/equipmentManagement/ledger/Modal.vue
@@ -15,6 +15,7 @@
import { addLedger, editLedger } from "@/api/equipmentManagement/ledger";
import Form from "./Form.vue";
import { ElMessage } from "element-plus";
+const { proxy } = getCurrentInstance()
defineOptions({
name: "璁惧鍙拌处鏂板缂栬緫",
@@ -33,22 +34,25 @@
closeModal,
} = useModal({ title: "璁惧鍙拌处" });
-const sendForm = async () => {
- loading.value = true;
- const { code } = id.value
- ? await editLedger({ id: id.value, ...formRef.value.form })
- : await addLedger(formRef.value.form);
- if (code == 200) {
- emits("success");
- ElMessage({ message: "鎿嶄綔鎴愬姛", type: "success" });
- close();
- } else {
- loading.value = false;
- }
+const sendForm = () => {
+ proxy.$refs.formRef.$refs.formRef.validate(async valid => {
+ if (valid) {
+ const {code} = id.value
+ ? await editLedger({id: id.value, ...formRef.value.form})
+ : await addLedger(formRef.value.form);
+ if (code == 200) {
+ emits("success");
+ ElMessage({message: "鎿嶄綔鎴愬姛", type: "success"});
+ close();
+ } else {
+ loading.value = false;
+ }
+ }
+ })
};
const close = () => {
- formRef.value.resetForm();
+ formRef.value.resetFormAndValidate();
closeModal();
};
diff --git a/src/views/index.vue b/src/views/index.vue
index 402da7b..95fe72c 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -337,16 +337,6 @@
}
])
-// 鍚堝悓閲戦鍒嗘瀽鏁版嵁
-const contractList = [
- { name: '娣卞湷绉戞妧鏈夐檺鍏徃', percent: 36, value: 4544, color: '#4fc3f7' },
- { name: '鍖椾含绉戞妧鏈夐檺鍏徃', percent: 20, value: 4000, color: '#81c784' },
- { name: '骞垮窞绉戞妧鏈夐檺鍏徃', percent: 16, value: 3113, color: '#ffb74d' },
- { name: '涓婃捣绉戞妧鏈夐檺鍏徃', percent: 10, value: 2341, color: '#ba68c8' },
- { name: '鍗椾含绉戞妧鏈夐檺鍏徃', percent: 9, value: 1231, color: '#e57373' },
- { name: '鍖椾含鏈潵绉戞妧鏈夐檺鍏徃', percent: 9, value: 1231, color: '#64b5f6' }
-]
-
// 寰呭姙浜嬮」
const todoList = ref([])
const radio1 = ref(1)
--
Gitblit v1.9.3