From 8149580e1d1bd502dceffedf88858a87f131b3ee Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 04 二月 2026 15:24:45 +0800
Subject: [PATCH] 修改入库、出库来源选项

---
 src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue |  125 +++++++++++++++++++++++++++++++----------
 1 files changed, 93 insertions(+), 32 deletions(-)

diff --git a/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue b/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
index 4cd8970..b7fa07e 100644
--- a/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
+++ b/src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
@@ -4,6 +4,7 @@
 			v-model="dialogFormVisible"
 			title="璁¢噺鍣ㄥ叿"
 			width="50%"
+			draggable
 			@close="closeDia"
 		>
 			<el-form
@@ -50,11 +51,14 @@
 						</el-form-item>
 					</el-col>
 					<el-col :span="12">
-						<el-form-item label="鏈夋晥鏈燂細" prop="valid">
+						<el-form-item label="鏈夋晥鏃ユ湡(澶�)锛�" prop="valid">
 							<el-input
 								v-model="form.valid"
-								placeholder="璇疯緭鍏�"
+								type="number"
+								placeholder="璇疯緭鍏ユ湁鏁堟湡澶╂暟"
 								clearable
+								:min="1"
+								@input="handleValidInput"
 							>
 								<template #append>鏃�</template>
 							</el-input>
@@ -67,7 +71,9 @@
 							<el-select
 								v-model="form.userId"
 								placeholder="璇烽�夋嫨"
-								disabled
+                filterable
+                default-first-option
+                :reserve-keyword="false"
 								clearable
 							>
 								<el-option
@@ -88,29 +94,28 @@
 								format="YYYY-MM-DD"
 								type="date"
 								placeholder="璇烽�夋嫨"
-								disabled
 								clearable
 							/>
 						</el-form-item>
 					</el-col>
 				</el-row>
-				<el-row :gutter="30">
-					<el-col :span="24">
-						<el-form-item label="闄勪欢鏉愭枡锛�" prop="remark">
-							<el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload
-												 :headers="upload.headers" :before-upload="handleBeforeUpload" :on-error="handleUploadError"
-												 :on-success="handleUploadSuccess" :on-remove="handleRemove">
-								<el-button type="primary" v-if="operationType !== 'view'">涓婁紶</el-button>
-								<template #tip v-if="operationType !== 'view'">
-									<div class="el-upload__tip">
-										鏂囦欢鏍煎紡鏀寔
-										doc锛宒ocx锛寈ls锛寈lsx锛宲pt锛宲ptx锛宲df锛宼xt锛寈ml锛宩pg锛宩peg锛宲ng锛実if锛宐mp锛宺ar锛寊ip锛�7z
-									</div>
-								</template>
-							</el-upload>
-						</el-form-item>
-					</el-col>
-				</el-row>
+<!--				<el-row :gutter="30">-->
+<!--					<el-col :span="24">-->
+<!--						<el-form-item label="闄勪欢鏉愭枡锛�" prop="remark">-->
+<!--							<el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload-->
+<!--												 :headers="upload.headers" :before-upload="handleBeforeUpload" :on-error="handleUploadError"-->
+<!--												 :on-success="handleUploadSuccess" :on-remove="handleRemove">-->
+<!--								<el-button type="primary" v-if="operationType !== 'view'">涓婁紶</el-button>-->
+<!--								<template #tip v-if="operationType !== 'view'">-->
+<!--									<div class="el-upload__tip">-->
+<!--										鏂囦欢鏍煎紡鏀寔-->
+<!--										doc锛宒ocx锛寈ls锛寈lsx锛宲pt锛宲ptx锛宲df锛宼xt锛寈ml锛宩pg锛宩peg锛宲ng锛実if锛宐mp锛宺ar锛寊ip锛�7z-->
+<!--									</div>-->
+<!--								</template>-->
+<!--							</el-upload>-->
+<!--						</el-form-item>-->
+<!--					</el-col>-->
+<!--				</el-row>-->
 			</el-form>
 			<template #footer>
 				<div class="dialog-footer">
@@ -123,12 +128,14 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
+import {ref, reactive, toRefs, getCurrentInstance} from "vue";
 import useUserStore from "@/store/modules/user.js";
 import {userListNoPageByTenantId} from "@/api/system/user.js";
 import {afterSalesServiceAdd, afterSalesServiceUpdate} from "@/api/customerService/index.js";
 import {getToken} from "@/utils/auth.js";
 import {ledgerRecordUpdate, ledgerRecordVerifying} from "@/api/equipmentManagement/calibration.js";
+import {delLedgerFile} from "@/api/salesManagement/salesLedger.js";
+import { getCurrentDate } from "@/utils/index.js";
 const { proxy } = getCurrentInstance()
 const emit = defineEmits(['close'])
 const dialogFormVisible = ref(false);
@@ -143,11 +150,37 @@
 		recordDate: "",
 		userId: "",
 		entryDate: "",
+    tempFileIds: []
 	},
 	rules: {
 		code: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
 		name: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
-		valid: [{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'
+			}
+		],
 		recordDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
 		userId: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
 		entryDate: [{required: true, message: "璇烽�夋嫨", trigger: "change"}],
@@ -165,15 +198,29 @@
 
 // 鎵撳紑寮规
 const openDialog = (type, row) => {
+  console.log(row)
 	operationType.value = type;
 	dialogFormVisible.value = true;
 	userListNoPageByTenantId().then((res) => {
 		userList.value = res.data;
 	});
+  fileList.value = []
+	if(type !== "add"){
+	  form.value.tempFileIds = [];
+  }
 	if (type === "edit") {
 		form.value.valid = row.valid;
 		form.value.recordDate = row.recordDate;
+    fileList.value = row.commonFiles;
 	}
+	if(type === "add"){
+    fileList.value = row.commonFiles;
+  }
+	if(type === "verifying"){
+		form.value.valid = row.valid;
+		form.value.recordDate = row.mostDate;
+	}
+
 	form.value.id = row.id;
 	form.value.code = row.code;
 	form.value.name = row.name;
@@ -196,6 +243,7 @@
 	proxy.$modal.closeLoading();
 	if (res.code === 200) {
 		file.tempId = res.data.tempId;
+		form.value.tempFileIds.push(file.tempId);
 		proxy.$modal.msgSuccess("涓婁紶鎴愬姛");
 	} else {
 		proxy.$modal.msgError(res.msg);
@@ -213,10 +261,31 @@
 	}
 }
 
+// 澶勭悊鏈夋晥鏃ユ湡杈撳叆锛屽彧鍏佽姝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") {
+			if (operationType.value === "verifying") {
 				ledgerRecordVerifying(form.value).then(response => {
 					proxy.$modal.msgSuccess("妫�瀹氭牎鍑嗘垚鍔�")
 					closeDia()
@@ -236,14 +305,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