From d5e65bf5925c8cd1fe0f0bf0b8b857006d64ad94 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 30 一月 2026 15:26:34 +0800
Subject: [PATCH] 进销存升级 1.部分输入框(有效日期、检定周期)输入做下限制(大于0的整数数字)
---
src/views/equipmentManagement/measurementEquipment/components/formDia.vue | 161 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 123 insertions(+), 38 deletions(-)
diff --git a/src/views/equipmentManagement/measurementEquipment/components/formDia.vue b/src/views/equipmentManagement/measurementEquipment/components/formDia.vue
index a9e08d1..8a1e302 100644
--- a/src/views/equipmentManagement/measurementEquipment/components/formDia.vue
+++ b/src/views/equipmentManagement/measurementEquipment/components/formDia.vue
@@ -4,6 +4,7 @@
v-model="dialogFormVisible"
title="璁¢噺鍣ㄥ叿"
width="50%"
+ draggable
@close="closeDia"
>
<el-form
@@ -14,8 +15,8 @@
ref="formRef"
>
<el-row :gutter="30">
- <el-col :span="12">
- <el-form-item label="璁¢噺鍣ㄥ叿缂栧彿锛�" prop="code">
+ <el-col :span="24">
+ <el-form-item label="鍑哄巶缂栧彿锛�" prop="code">
<el-input
v-model="form.code"
placeholder="璇疯緭鍏�"
@@ -23,40 +24,76 @@
/>
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="璁¢噺鍣ㄥ叿鍚嶇О锛�" prop="name">
- <el-input
- v-model="form.name"
- placeholder="璇疯緭鍏�"
- clearable
- />
- </el-form-item>
- </el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
+ <el-form-item label="瀹夎浣嶇疆锛�" prop="instationLocation">
<el-input
- v-model="form.model"
+ v-model="form.instationLocation"
placeholder="璇疯緭鍏�"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="棰勮涓嬫妫�瀹氭棩鏈燂細" prop="nextDate">
- <el-date-picker
- style="width: 100%"
- v-model="form.nextDate"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨"
- clearable
- />
+ <el-form-item label="妫�瀹氬崟浣嶏細" prop="unit">
+ <el-input
+ v-model="form.unit"
+ placeholder="璇疯緭鍏ユ瀹氬崟浣�"
+ clearable
+ />
</el-form-item>
</el-col>
</el-row>
+ <el-row :gutter="30">
+ <el-col :span="12">
+ <el-form-item label="璇佷功缂栧彿锛�" prop="model">
+ <el-input
+ v-model="form.model"
+ placeholder="璇疯緭鍏�"
+ clearable
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏈�鏂伴壌瀹氭棩鏈燂細" prop="mostDate">
+ <el-date-picker
+ style="width: 100%"
+ v-model="form.mostDate"
+ 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="valid">
+ <el-input
+ v-model="form.valid"
+ type="number"
+ placeholder="璇疯緭鍏ユ湁鏁堟湡澶╂暟"
+ clearable
+ :min="1"
+ @input="handleValidInput"
+ >
+ <template #append>鏃�</template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�瀹氬懆鏈燂細" prop="cycle">
+ <el-input
+ v-model="form.cycle"
+ placeholder="璇疯緭鍏ユ瀹氬懆鏈�"
+ clearable
+ />
+ </el-form-item>
+ </el-col>
+ </el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="褰曞叆浜猴細" prop="userId">
@@ -64,7 +101,9 @@
v-model="form.userId"
placeholder="璇烽�夋嫨"
clearable
- disabled
+ filterable
+ default-first-option
+ :reserve-keyword="false"
>
<el-option
v-for="item in userList"
@@ -81,9 +120,9 @@
style="width: 100%"
v-model="form.recordDate"
value-format="YYYY-MM-DD"
+ disabled
format="YYYY-MM-DD"
type="date"
- disabled
placeholder="璇烽�夋嫨"
clearable
/>
@@ -124,7 +163,8 @@
import {userListNoPageByTenantId} from "@/api/system/user.js";
import {afterSalesServiceAdd, afterSalesServiceUpdate} from "@/api/customerService/index.js";
import {getToken} from "@/utils/auth.js";
-import {measuringInstrumentAdd, measuringInstrumentUpdate} from "@/api/equipmentManagement/measurementEquipment.js";
+import {addMeasuringInstrumentLedger, updateMeasuringInstrumentLedger} from "@/api/equipmentManagement/measurementEquipment.js";
+import { getCurrentDate } from "@/utils/index.js";
const { proxy } = getCurrentInstance()
const emit = defineEmits(['close'])
const dialogFormVisible = ref(false);
@@ -134,22 +174,54 @@
const data = reactive({
form: {
code: "",
- name: "",
+ instationLocation: "",
+ mostDate:"",
model: "",
+ cycle:"",
validDate: "",
nextDate: "",
userId: "",
recordDate: "",
+ unit:"",
tempFileIds: []
},
rules: {
code: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
- name: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
model: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
validDate: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
nextDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
userId: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
recordDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
+ instationLocation: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
+ mostDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
+ cycle: [{required: true, message: "璇烽�夋嫨", trigger: "blur"}],
+ valid: [
+ {required: true, message: "璇疯緭鍏�", trigger: "blur"},
+ {
+ validator: (rule, value, callback) => {
+ if (value === '' || value === null || value === undefined) {
+ callback();
+ return;
+ }
+ const numValue = Number(value);
+ if (isNaN(numValue)) {
+ callback(new Error('璇疯緭鍏ユ湁鏁堢殑鏁板瓧'));
+ return;
+ }
+ if (numValue <= 0) {
+ callback(new Error('鍙兘杈撳叆姝f暟'));
+ return;
+ }
+ if (!Number.isInteger(numValue)) {
+ callback(new Error('璇疯緭鍏ユ暣鏁�'));
+ return;
+ }
+ callback();
+ },
+ trigger: 'blur'
+ }
+ ],
+ unit: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
}
})
const { form, rules } = toRefs(data);
@@ -210,17 +282,38 @@
}
}
+// 澶勭悊鏈夋晥鏃ユ湡杈撳叆锛屽彧鍏佽姝f暣鏁�
+const handleValidInput = (value) => {
+ if (value === '' || value === null || value === undefined) {
+ form.value.valid = '';
+ return;
+ }
+ // 杞崲涓哄瓧绗︿覆骞剁Щ闄ゆ墍鏈夐潪鏁板瓧瀛楃锛堝寘鎷礋鍙枫�佸皬鏁扮偣绛夛級
+ const numStr = String(value).replace(/[^0-9]/g, '');
+ if (numStr === '') {
+ form.value.valid = '';
+ return;
+ }
+ const numValue = parseInt(numStr, 10);
+ // 纭繚鏄鏁存暟锛堝ぇ浜�0锛�
+ if (numValue > 0 && !isNaN(numValue)) {
+ form.value.valid = numValue;
+ } else {
+ form.value.valid = '';
+ }
+}
+
const submitForm = () => {
proxy.$refs["formRef"].validate(valid => {
if (valid) {
if (operationType.value === "add") {
- measuringInstrumentAdd(form.value).then(response => {
+ addMeasuringInstrumentLedger(form.value).then(response => {
proxy.$modal.msgSuccess("鏂板鎴愬姛")
form.value.tempFileIds = []
closeDia()
})
} else {
- measuringInstrumentUpdate(form.value).then(response => {
+ updateMeasuringInstrumentLedger(form.value).then(response => {
proxy.$modal.msgSuccess("淇敼鎴愬姛")
form.value.tempFileIds = []
closeDia()
@@ -235,14 +328,6 @@
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,
});
--
Gitblit v1.9.3