From 754f4ccb397866d31bcfa71c3c8099539647a18b Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期五, 24 四月 2026 16:56:13 +0800
Subject: [PATCH] feat(设备保养/销售台账): 新增保养项目字段并统一数字格式显示

---
 src/pages/equipmentManagement/upkeep/add.vue |   38 ++++++++++++++++++++++++++------------
 1 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/src/pages/equipmentManagement/upkeep/add.vue b/src/pages/equipmentManagement/upkeep/add.vue
index fbdf304..9b1b65d 100644
--- a/src/pages/equipmentManagement/upkeep/add.vue
+++ b/src/pages/equipmentManagement/upkeep/add.vue
@@ -27,6 +27,13 @@
 					clearable
 				/>
 			</u-form-item>
+			<u-form-item label="淇濆吇椤圭洰" prop="maintenanceItem" border-bottom required>
+				<u-input
+					v-model="form.maintenanceItem"
+					placeholder="璇疯緭鍏ヤ繚鍏婚」鐩�"
+					clearable
+				/>
+			</u-form-item>
 			
 			<u-form-item label="璁″垝淇濆吇鏃ユ湡" prop="maintenancePlanTime" required border-bottom>
 				<u-input
@@ -97,7 +104,6 @@
 
 // 璁惧閫夐」
 const deviceOptions = ref([]);
-const deviceNameText = ref('');
 // 杞崲涓� action-sheet 闇�瑕佺殑鏍煎紡
 const deviceActions = computed(() => {
 	return deviceOptions.value.map(item => ({
@@ -115,12 +121,15 @@
 const formRules = {
 	deviceLedgerId: [{ required: true, trigger: "change", message: "璇烽�夋嫨璁惧鍚嶇О" }],
 	maintenancePlanTime: [{ required: true, trigger: "change", message: "璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" }],
+	maintenanceItem: [{ required: true, trigger: "blur", message: "璇疯緭鍏ヤ繚鍏婚」鐩�" }],
 };
 
 // 浣跨敤 ref 澹版槑琛ㄥ崟鏁版嵁
 const form = ref({
 	deviceLedgerId: undefined, // 璁惧ID
+	deviceNameText: '', // 璁惧鍚嶇О鏄剧ず
 	deviceModel: undefined, // 瑙勬牸鍨嬪彿
+	maintenanceItem: '', // 淇濆吇椤圭洰
 	maintenancePlanTime: dayjs().format("YYYY-MM-DD"), // 璁″垝淇濆吇鏃ユ湡
 });
 
@@ -137,12 +146,16 @@
 // 鍔犺浇琛ㄥ崟鏁版嵁锛堢紪杈戞ā寮忥級
 const loadForm = async (id) => {
 	if (id) {
+		console.log('id:', id);
+
 		operationType.value = 'edit';
 		try {
 			const { code, data } = await getUpkeepById(id);
+			console.log('鑾峰彇璇︽儏:', data);
 			if (code == 200) {
 				form.value.deviceLedgerId = data.deviceLedgerId;
 				form.value.deviceModel = data.deviceModel;
+				form.value.maintenanceItem = data.maintenanceItem;
 				form.value.maintenancePlanTime = dayjs(data.maintenancePlanTime).format("YYYY-MM-DD");
 				// 璁剧疆璁惧鍚嶇О鏄剧ず
 				const device = deviceOptions.value.find(item => item.id === data.deviceLedgerId);
@@ -187,24 +200,25 @@
 	}
 	
 	isScanning.value = true;
-	showToast('鎵爜鎴愬姛锛�3绉掑悗鑷姩濉厖璁惧淇℃伅');
+	showToast('鎵爜鎴愬姛');
 	
 	// 3绉掑悗澶勭悊鎵爜缁撴灉
 	scanTimer.value = setTimeout(() => {
 		processScanResult(scanResult);
 		isScanning.value = false;
-	}, 3000);
+	}, 1000);
 };
-
+function getDeviceIdByRegExp(url) {
+	// 鍖归厤deviceId=鍚庨潰鐨勬暟瀛�
+	const reg = /deviceId=(\d+)/;
+	const match = url.match(reg);
+	// 濡傛灉鍖归厤鍒扮粨鏋滐紝杩斿洖鏁板瓧绫诲瀷锛屽惁鍒欒繑鍥瀗ull
+	return match ? Number(match[1]) : null;
+}
 // 澶勭悊鎵爜缁撴灉骞跺尮閰嶈澶�
 const processScanResult = (scanResult) => {
-	// 鍦ㄨ澶囧垪琛ㄤ腑鏌ユ壘鍖归厤鐨勮澶�
-	// 鍋囪浜岀淮鐮佸唴瀹规槸璁惧鍚嶇О鎴栬澶囩紪鍙�
-	const matchedDevice = deviceOptions.value.find(device => 
-		device.deviceName === scanResult || 
-		device.deviceCode === scanResult ||
-		device.id.toString() === scanResult
-	);
+	const deviceId = getDeviceIdByRegExp(scanResult);
+	const matchedDevice = deviceOptions.value.find(item => item.id == deviceId);
 	
 	if (matchedDevice) {
 		// 鎵惧埌鍖归厤鐨勮澶囷紝鑷姩濉厖
@@ -227,7 +241,7 @@
 const onDeviceConfirm = (selected) => {
 	// selected 杩斿洖鐨勬槸閫変腑椤�
 	form.value.deviceLedgerId = selected.value;
-		form.value.deviceNameText = selected.name;
+	form.value.deviceNameText = selected.text;
 	const selectedDevice = deviceOptions.value.find(item => item.id === selected.value);
 	if (selectedDevice) {
 		form.value.deviceModel = selectedDevice.deviceModel;

--
Gitblit v1.9.3