From 752b14d2caa47ccceac328f79389fbf5e2e62ce4 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 24 九月 2025 15:18:39 +0800
Subject: [PATCH] 分析追溯
---
src/pages/equipmentManagement/ledger/detail.vue | 194 ++++++++++++++++++++++++++++++++----------------
1 files changed, 128 insertions(+), 66 deletions(-)
diff --git a/src/pages/equipmentManagement/ledger/detail.vue b/src/pages/equipmentManagement/ledger/detail.vue
index 70db8b2..1b4ca9f 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,59 @@
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) {
+ isValid = false;
+ errorMessage = '璇疯緭鍏ヨ澶囧悕绉�';
+ } else if (!form.value.deviceModel) {
+ isValid = false;
+ errorMessage = '璇疯緭鍏ヨ鏍煎瀷鍙�';
+ } else if (!form.value.supplierName) {
+ isValid = false;
+ errorMessage = '璇疯緭鍏ヤ緵搴斿晢';
+ } else if (!form.value.unit) {
+ 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 +373,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