From 77861fcc5ee1c4f8e7c6412b373cb438c7313930 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期三, 03 九月 2025 10:06:26 +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