From ee42bf1badae06026efa79dc17d2a541297ab49b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 03 九月 2025 17:43:31 +0800
Subject: [PATCH] 采购管理整体样式优化,搜索条件修改

---
 src/pages/equipmentManagement/ledger/detail.vue |  200 +++++++++++++++++++++++++++++++++----------------
 1 files changed, 134 insertions(+), 66 deletions(-)

diff --git a/src/pages/equipmentManagement/ledger/detail.vue b/src/pages/equipmentManagement/ledger/detail.vue
index 70db8b2..2c798e6 100644
--- a/src/pages/equipmentManagement/ledger/detail.vue
+++ b/src/pages/equipmentManagement/ledger/detail.vue
@@ -1,10 +1,10 @@
 <template>
-	<view class="equipment-detail">
+	<view class="account-detail">
 		<!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 -->
 		<PageHeader title="璁惧鍙拌处璇︽儏" @back="goBack" />
 		
 		<!-- 琛ㄥ崟鍐呭 -->
-		<u-form @submit="sendForm" ref="formRef" :rules="formRules" label-width="110">
+		<u-form @submit="sendForm" ref="formRef" :model="form" :rules="formRules" label-width="110">
 			<!-- 鍩烘湰淇℃伅 -->
 			<u-cell-group title="鍩烘湰淇℃伅">
 				<u-form-item label="璁惧鍚嶇О" prop="deviceName" required border-bottom>
@@ -22,13 +22,13 @@
 						clearable
 					/>
 				</u-form-item>
-				<u-form-item label="璁惧鍝佺墝" prop="deviceBrand" required border-bottom>
+				<!-- <u-form-item label="璁惧鍝佺墝" prop="deviceBrand" required border-bottom>
 					<u-input
 						v-model="form.deviceBrand"
 						placeholder="璇疯緭鍏ヨ澶囧搧鐗�"
 						clearable
 					/>
-				</u-form-item>
+				</u-form-item> -->
 				<u-form-item label="渚涘簲鍟�" prop="supplierName" required border-bottom>
 					<u-input
 						v-model="form.supplierName"
@@ -36,13 +36,13 @@
 						clearable
 					/>
 				</u-form-item>
-				<u-form-item label="瀛樻斁浣嶇疆" prop="storageLocation" required border-bottom>
+				<!-- <u-form-item label="瀛樻斁浣嶇疆" prop="storageLocation" required border-bottom>
 					<u-input
 						v-model="form.storageLocation"
 						placeholder="璇疯緭鍏ュ瓨鏀句綅缃�"
 						clearable
 					/>
-				</u-form-item>
+				</u-form-item> -->
 				<u-form-item label="鍗曚綅" prop="unit" required border-bottom>
 					<u-input
 						v-model="form.unit"
@@ -50,13 +50,13 @@
 						clearable
 					/>
 				</u-form-item>
-				<u-form-item label="鍚敤鎶樻棫" prop="enableDepreciation" required border-bottom>
+				<!-- <u-form-item label="鍚敤鎶樻棫" prop="enableDepreciation" required border-bottom>
 					<u-switch
 						v-model="form.enableDepreciation"
 						:active-value="true"
 						:inactive-value="false"
 					/>
-				</u-form-item>
+				</u-form-item> -->
 				<u-form-item label="鏁伴噺" prop="number" required border-bottom>
 					<u-input
 						v-model="form.number"
@@ -186,9 +186,46 @@
 	supplierName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
 	storageLocation: [{ 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: "璇疯緭鍏�" }],
+	// 鏁板瓧绫诲瀷瀛楁闇�瑕佺壒娈婂鐞嗭紝纭繚鏈夋暟鍊兼椂涓嶄細瑙﹀彂蹇呭~鏍¢獙
+	number: [{
+		required: true,
+		trigger: "blur",
+		message: "璇疯緭鍏�",
+		validator: (rule, value, callback) => {
+			// 瀵逛簬鏁板瓧绫诲瀷锛屾鏌ユ槸鍚︿负鏈夋晥鏁板瓧锛堝寘鎷�0锛�
+			if (value !== undefined && value !== null && value !== '' && !isNaN(value)) {
+				callback();
+			} else {
+				callback(new Error('璇疯緭鍏ユ暟閲�'));
+			}
+		}
+	}],
+	taxIncludingPriceUnit: [{
+		required: true,
+		trigger: "blur",
+		message: "璇疯緭鍏�",
+		validator: (rule, value, callback) => {
+			// 瀵逛簬鏁板瓧绫诲瀷锛屾鏌ユ槸鍚︿负鏈夋晥鏁板瓧锛堝寘鎷�0锛�
+			if (value !== undefined && value !== null && value !== '' && !isNaN(value)) {
+				callback();
+			} else {
+				callback(new Error('璇疯緭鍏ュ惈绋庡崟浠�'));
+			}
+		}
+	}],
+	taxRate: [{
+		required: true,
+		trigger: "change",
+		message: "璇烽�夋嫨",
+		validator: (rule, value, callback) => {
+			// 妫�鏌ョ◣鐜囨槸鍚︿负鏈夋晥鏁板瓧
+			if (value !== undefined && value !== null && value !== '' && !isNaN(value)) {
+				callback();
+			} else {
+				callback(new Error('璇烽�夋嫨绋庣巼'));
+			}
+		}
+	}],
 	createTime: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
 };
 
@@ -218,6 +255,8 @@
 	}
 	try {
 		const { code, data } = await getLedgerById(id);
+		console.log(data);
+		
 		if (code == 200) {
 			form.value.deviceName = data.deviceName;
 			form.value.deviceModel = data.deviceModel;
@@ -232,6 +271,11 @@
 			form.value.taxRate = data.taxRate;
 			form.value.unTaxIncludingPriceTotal = data.unTaxIncludingPriceTotal;
 			form.value.createTime = data.createTime;
+			
+			// 鏁版嵁鍔犺浇瀹屾垚鍚庯紝閲嶇疆琛ㄥ崟楠岃瘉鐘舵��
+			setTimeout(() => {
+				clearValidate();
+			}, 100);
 		}
 	} catch (e) {
 		showToast('鑾峰彇璇︽儏澶辫触');
@@ -240,11 +284,12 @@
 
 // 鏁板璁$畻
 const mathNum = () => {
-	if (!form.value.taxIncludingPriceUnit) {
+	// 鍙湁鍦ㄦ柊澧炴ā寮忔垨鑰呭瓧娈电‘瀹炰负绌烘椂鎵嶆樉绀烘彁绀�
+	if (operationType.value !== 'edit' || (form.value.taxIncludingPriceUnit === undefined || form.value.taxIncludingPriceUnit === '')) {
 		showToast("璇疯緭鍏ュ崟浠�");
 		return;
 	}
-	if (!form.value.number) {
+	if (operationType.value !== 'edit' || (form.value.number === undefined || form.value.number === '')) {
 		showToast("璇疯緭鍏ユ暟閲�");
 		return;
 	}
@@ -265,47 +310,65 @@
 	formRef.value?.clearValidate();
 };
 
-// 閲嶇疆琛ㄥ崟鏁版嵁鍜屾牎楠岀姸鎬�
-const resetForm = () => {
-	form.value = {
-		deviceName: undefined,
-		deviceModel: undefined,
-		deviceBrand: undefined,
-		supplierName: undefined,
-		storageLocation: undefined,
-		unit: undefined,
-		enableDepreciation: false,
-		number: undefined,
-		taxIncludingPriceUnit: undefined,
-		taxIncludingPriceTotal: undefined,
-		taxRate: undefined,
-		unTaxIncludingPriceTotal: undefined,
-		createTime: dayjs().format("YYYY-MM-DD"),
-	};
-};
-
-const resetFormAndValidate = () => {
-	resetForm();
-	clearValidate();
-};
-
 // 鎻愪氦琛ㄥ崟
 const sendForm = async () => {
 	try {
-		// 鎵嬪姩楠岃瘉琛ㄥ崟
-		await formRef.value?.validate();
+		// 妫�鏌ュ繀濉瓧娈�
+		let isValid = true;
+		let errorMessage = '';
+		
+		// 妫�鏌ユ枃鏈被鍨嬪繀濉瓧娈�
+		if (!form.value.deviceName || form.value.deviceName.trim() === '') {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ヨ澶囧悕绉�';
+		} else if (!form.value.deviceModel || form.value.deviceModel.trim() === '') {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ヨ鏍煎瀷鍙�';
+		} else if (!form.value.deviceBrand || form.value.deviceBrand.trim() === '') {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ヨ澶囧搧鐗�';
+		} else if (!form.value.supplierName || form.value.supplierName.trim() === '') {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ヤ緵搴斿晢';
+		} else if (!form.value.storageLocation || form.value.storageLocation.trim() === '') {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ュ瓨鏀句綅缃�';
+		} else if (!form.value.unit || form.value.unit.trim() === '') {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ュ崟浣�';
+		}
+		
+		// 妫�鏌ユ暟瀛楃被鍨嬪繀濉瓧娈�
+		else if (form.value.number === undefined || form.value.number === null || form.value.number === '' || isNaN(form.value.number)) {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ユ暟閲�';
+		} else if (form.value.taxIncludingPriceUnit === undefined || form.value.taxIncludingPriceUnit === null || form.value.taxIncludingPriceUnit === '' || isNaN(form.value.taxIncludingPriceUnit)) {
+			isValid = false;
+			errorMessage = '璇疯緭鍏ュ惈绋庡崟浠�';
+		} else if (form.value.taxRate === undefined || form.value.taxRate === null || form.value.taxRate === '' || isNaN(form.value.taxRate)) {
+			isValid = false;
+			errorMessage = '璇烽�夋嫨绋庣巼';
+		} else if (!form.value.createTime || form.value.createTime.trim() === '') {
+			isValid = false;
+			errorMessage = '璇烽�夋嫨褰曞叆鏃ユ湡';
+		}
+		
+		// 濡傛灉楠岃瘉澶辫触锛屾樉绀洪敊璇彁绀�
+		if (!isValid) {
+			showToast(errorMessage);
+			return;
+		}
+		
+		// 楠岃瘉閫氳繃锛屾樉绀烘彁浜や腑鎻愮ず
+		showToast('姝e湪鎻愪氦琛ㄥ崟...');
 		
 		loading.value = true;
 		const id = getPageId();
 		
 		// 鍑嗗鎻愪氦鏁版嵁锛宑reateTime 鍔犱笂褰撳墠鏃跺垎绉�
 		const submitData = { ...form.value };
-		if (submitData.createTime && !submitData.createTime.includes(':')) {
-			// 濡傛灉 createTime 鍙寘鍚棩鏈燂紝娣诲姞褰撳墠鏃跺垎绉�
-			submitData.createTime = submitData.createTime + ' ' + dayjs().format('HH:mm:ss');
-		}
 		
-		const { code } = id
+		const { code, res } = id
 			? await editLedger({ id: id, ...submitData })
 			: await addLedger(submitData);
 		
@@ -316,47 +379,52 @@
 			}, 1500);
 		} else {
 			loading.value = false;
+			console.log(res);
 		}
 	} catch (e) {
 		loading.value = false;
-		showToast('琛ㄥ崟楠岃瘉澶辫触');
+		showToast('鎻愪氦澶辫触');
 	}
 };
 
 // 杩斿洖涓婁竴椤�
 const goBack = () => {
+	// 浣跨敤鍚庢竻闄torage涓殑ID锛岄伩鍏嶆暟鎹畫鐣�
+			uni.removeStorageSync('ledgerId');
 	uni.navigateBack();
 };
 
 // 鑾峰彇椤甸潰鍙傛暟
 const getPageParams = () => {
-	const pages = getCurrentPages();
-	const currentPage = pages[pages.length - 1];
-	const options = currentPage.options;
-	
-	if (options.id) {
-		// 缂栬緫妯″紡锛岃幏鍙栬鎯�
-		loadForm(options.id);
-	} else {
-		// 鏂板妯″紡
+	try {
+		// 浼樺厛浠巗torage涓幏鍙朓D
+		const ledgerId = uni.getStorageSync('ledgerId');
+		
+		if (ledgerId) {
+			// 缂栬緫妯″紡锛岃幏鍙栬鎯�
+			loadForm(ledgerId);
+		} else {
+			// 鏂板妯″紡
+			operationType.value = 'add';
+		}
+	} catch (e) {
 		operationType.value = 'add';
 	}
 };
 
 // 鑾峰彇椤甸潰ID
 const getPageId = () => {
-	const pages = getCurrentPages();
-	const currentPage = pages[pages.length - 1];
-	const options = currentPage.options;
-	return options.id;
-};
-
-
-
-// 纭绋庣巼閫夋嫨
-const onTaxRateConfirm = (e) => {
-	form.value.taxRate = e.value;
-	mathNum(); // 閲嶆柊璁$畻
+	try {
+		// 浼樺厛浠巗torage涓幏鍙朓D
+		const ledgerId = uni.getStorageSync('ledgerId');
+		
+		if (ledgerId) {
+			return ledgerId;
+		}
+	} catch (e) {
+		console.error('鑾峰彇椤甸潰ID鍑洪敊:', e);
+	}
+	return null;
 };
 
 // 閫夋嫨绋庣巼

--
Gitblit v1.9.3