From bbdd646b82cb8c84079598b7200b1102fd247b28 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 29 十二月 2025 16:08:48 +0800
Subject: [PATCH] 昭德-巡检上传开发调整
---
src/pages/management/mould/equipmentRequisitionDialog.vue | 129 ++++++++++++++++++++++++++-----------------
1 files changed, 78 insertions(+), 51 deletions(-)
diff --git a/src/pages/management/mould/equipmentRequisitionDialog.vue b/src/pages/management/mould/equipmentRequisitionDialog.vue
index bae484b..d92e779 100644
--- a/src/pages/management/mould/equipmentRequisitionDialog.vue
+++ b/src/pages/management/mould/equipmentRequisitionDialog.vue
@@ -54,22 +54,6 @@
</template>
</u-form-item>
- <u-form-item v-if="isReturnMode" label="宸蹭娇鐢ㄦ暟閲�" border-bottom>
- <u-input
- :value="formData.usageQuantity"
- disabled
- placeholder="宸蹭娇鐢ㄦ暟閲�"
- />
- </u-form-item>
-
- <u-form-item v-if="isReturnMode" label="宸插綊杩樻暟閲�" border-bottom>
- <u-input
- :value="formData.totalReturnNo || 0"
- disabled
- placeholder="宸插綊杩樻暟閲�"
- />
- </u-form-item>
-
<u-form-item v-if="!isReturnMode && formData.status !== 2" label="棰嗙敤鏁伴噺" prop="usageQuantity" border-bottom required>
<view class="number-box-wrapper">
<u-number-box
@@ -95,12 +79,6 @@
/>
<text class="info-text" v-if="remainingReturnQuantity > 0">(鏈�澶歿{ remainingReturnQuantity }}鍙�)</text>
<text class="info-text" v-else>(宸插叏閮ㄥ綊杩�)</text>
- </view>
- <view
- v-if="remainingReturnQuantity > 0 && form.returnQuantity === remainingReturnQuantity"
- class="tip-text"
- >
- 馃挕 鎻愮ず锛氭湰娆″綊杩樺悗灏嗗畬鎴愬叏閮ㄥ綊杩�
</view>
</u-form-item>
@@ -141,8 +119,8 @@
</scroll-view>
<view class="popup-footer">
- <u-button @click="handleClose" :customStyle="{ marginRight: '10px', flex: 1 }">鍙栨秷</u-button>
- <u-button type="primary" @click="debouncedSubmit" v-if="!isViewMode" :customStyle="{ flex: 1 }">纭畾</u-button>
+ <u-button @click="handleClose" :customStyle="{ marginRight: '10px', flex: 1 }" :disabled="isSubmitting">鍙栨秷</u-button>
+ <u-button type="primary" @click="debouncedSubmit" v-if="!isViewMode" :customStyle="{ flex: 1 }" :loading="isSubmitting">纭畾</u-button>
</view>
</view>
@@ -348,13 +326,18 @@
// 棰嗙敤鏁伴噺鍙樺寲
const onUsageQuantityChange = (value) => {
// 纭繚鍊兼槸鏁板瓧绫诲瀷
- form.value.usageQuantity = Number(value) || 1;
- // 瑙﹀彂楠岃瘉
- nextTick(() => {
- if (formRef.value) {
- formRef.value.validateField('usageQuantity');
- }
- });
+ const numValue = Number(value) || 1;
+ form.value.usageQuantity = numValue;
+ // 鍙湁鍦ㄥ�兼湁鏁堟椂鎵嶈Е鍙戦獙璇侊紝閬垮厤榛樿鍊�1瑙﹀彂閿欒鎻愮ず
+ if (numValue >= 1) {
+ nextTick(() => {
+ if (formRef.value) {
+ // 娓呴櫎涔嬪墠鐨勯敊璇紝鐒跺悗閲嶆柊楠岃瘉
+ formRef.value.clearValidate('usageQuantity');
+ formRef.value.validateField('usageQuantity');
+ }
+ });
+ }
};
// 鑾峰彇璁惧鍒楄〃
@@ -458,6 +441,7 @@
const isEdit = computed(() => !!props.formData?.id);
const formRef = ref();
+const isSubmitting = ref(false);
// 鏃ユ湡閫夋嫨鍣�
const showDatePickerVisible = ref(false);
@@ -633,14 +617,15 @@
{
required: true,
message: "璇疯緭鍏ラ鐢ㄦ暟閲�",
- trigger: "change",
+ trigger: "blur",
validator: (rule, value, callback) => {
const numValue = Number(value) || 0;
- if (!value && value !== 0) {
+ // 濡傛灉鍊间负绌烘垨鏈畾涔夛紝鎵嶆姤閿�
+ if (value === null || value === undefined || value === '') {
callback(new Error("璇疯緭鍏ラ鐢ㄦ暟閲�"));
} else if (numValue < 1) {
callback(new Error("鑷冲皯棰嗙敤1鍙�"));
- } else if (maxQuantity.value !== null && numValue > maxQuantity.value) {
+ } else if (maxQuantity.value !== null && maxQuantity.value > 0 && numValue > maxQuantity.value) {
callback(new Error("棰嗙敤鏁伴噺涓嶈兘澶т簬璁惧鏁伴噺"));
} else {
callback();
@@ -657,6 +642,7 @@
function handleClose() {
emit("update:modelValue", false);
+ isSubmitting.value = false;
}
// 閫氱敤闃叉姈鍑芥暟
@@ -674,10 +660,45 @@
// 闃叉姈鍚庣殑鎻愪氦鏂规硶
const debouncedSubmit = debounce(handleSubmit, 800);
-function handleSubmit() {
- formRef.value.validate(async (valid) => {
- if (!valid) return;
+async function handleSubmit() {
+ console.log('handleSubmit 琚皟鐢�');
+ console.log('formRef.value:', formRef.value);
+ console.log('褰撳墠琛ㄥ崟鏁版嵁:', JSON.stringify(form.value));
+
+ if (isSubmitting.value) {
+ console.log('姝e湪鎻愪氦涓紝蹇界暐閲嶅鐐瑰嚮');
+ return;
+ }
+
+ if (!formRef.value) {
+ console.error('formRef 涓嶅瓨鍦�');
+ showToast('琛ㄥ崟寮曠敤涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇�', 'error');
+ return;
+ }
+
+ try {
+ console.log('寮�濮嬮獙璇佽〃鍗�...');
+ const valid = await formRef.value.validate().catch((errors) => {
+ console.log('琛ㄥ崟楠岃瘉澶辫触锛岄敊璇俊鎭�:', errors);
+ // 濡傛灉楠岃瘉澶辫触锛宔rrors 鍙兘鏄敊璇暟缁勬垨 false
+ if (errors && Array.isArray(errors) && errors.length > 0) {
+ const firstError = errors[0];
+ showToast(firstError.message || '璇峰畬鍠勮〃鍗曚俊鎭�', 'error');
+ } else {
+ showToast('璇峰畬鍠勮〃鍗曚俊鎭�', 'error');
+ }
+ return false;
+ });
+ console.log('琛ㄥ崟楠岃瘉缁撴灉:', valid);
+
+ if (!valid) {
+ console.log('琛ㄥ崟楠岃瘉澶辫触锛屽仠姝㈡彁浜�');
+ return;
+ }
+ console.log('琛ㄥ崟楠岃瘉閫氳繃锛屽紑濮嬫彁浜�');
+ isSubmitting.value = true;
+
let submitData = { ...form.value };
// 褰掕繕妯″紡澶勭悊
@@ -707,10 +728,12 @@
if (!result) {
showToast('宸插彇娑堝綊杩樻搷浣�', 'info');
+ isSubmitting.value = false;
return;
}
} catch (error) {
showToast('宸插彇娑堝綊杩樻搷浣�', 'info');
+ isSubmitting.value = false;
return;
}
@@ -741,21 +764,25 @@
};
}
- try {
- let { code, data } = await addOrEditUsageRecord(submitData);
- if (code !== 200) {
- showToast(data.msg || "鎿嶄綔澶辫触", 'error');
- return;
- }
- if (code == 200 && data == 1) {
- emit("submit", submitData);
- }
- handleClose();
- } catch (error) {
- console.error("鎻愪氦澶辫触:", error);
- showToast("鎿嶄綔澶辫触锛岃绋嶅悗鍐嶈瘯", 'error');
+ let { code, data } = await addOrEditUsageRecord(submitData);
+ if (code !== 200) {
+ showToast(data.msg || "鎿嶄綔澶辫触", 'error');
+ isSubmitting.value = false;
+ return;
}
- });
+ if (code == 200 && data == 1) {
+ showToast('鎿嶄綔鎴愬姛', 'success');
+ emit("submit", submitData);
+ handleClose();
+ } else {
+ showToast(data.msg || "鎿嶄綔澶辫触", 'error');
+ isSubmitting.value = false;
+ }
+ } catch (error) {
+ console.error("鎻愪氦澶辫触:", error);
+ showToast("鎿嶄綔澶辫触锛岃绋嶅悗鍐嶈瘯", 'error');
+ isSubmitting.value = false;
+ }
}
</script>
--
Gitblit v1.9.3