From 3ccde21cc90e33dd1798306c87e8af1151b76681 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Sat, 28 Mar 2026 10:26:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E7=8A=B6=E6=80=81=EF=BC=8C?= =?UTF-8?q?=E7=A6=81=E7=94=A8=E7=8A=B6=E6=80=81=E6=AE=8B=E7=95=99=EF=BC=9B?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=8F=90=E4=BA=A4=E6=A0=A1=E9=AA=8C=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveService.vue | 33 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 0e3da62..d1d42b4 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -800,8 +800,14 @@ const handleJwcodeBlur = () => { } // 精网号失焦:查询客户姓名和地区 +const jwcodeQuerying = ref(false) +let jwcodeQueryPromise = null const jwcodeSeachMarket = async () => { try { + if (jwcodeQuerying.value && jwcodeQueryPromise) { + await jwcodeQueryPromise + return + } const jwcode = String(addFormData.value.jwcode ?? '').replace(/\s/g, '') addFormData.value.jwcode = jwcode if (!jwcode) { @@ -816,10 +822,12 @@ const jwcodeSeachMarket = async () => { ElMessage.error(t('elmessage.limitJwcodeLength')) return } - const result = await request({ + jwcodeQuerying.value = true + jwcodeQueryPromise = request({ url: '/cashCollection/getNameAndMarket', data: jwcode }) + const result = await jwcodeQueryPromise if (result.code == 200 && result.data && Object.keys(result.data).length > 0) { ElMessage.success(t('elmessage.customerSuccess')) addFormData.value.market = result.data.market @@ -844,6 +852,15 @@ const jwcodeSeachMarket = async () => { } } catch (error) { console.log(error); + } finally { + jwcodeQuerying.value = false + jwcodeQueryPromise = null + } +} + +const waitJwcodeQuery = async () => { + if (jwcodeQuerying.value && jwcodeQueryPromise) { + await jwcodeQueryPromise } } @@ -863,14 +880,22 @@ const openAddForm = (row) => { } console.log('这是编辑数据:', addFormData.value); showWallet(addFormData.value.receivedMarket) - jwcodeSeachMarket() + ifGroup() } else { // 新增模式 addOrEdit.value = 1 addFormData.value = { goodsName: '' } + isGroup.value = false + selectWallet.value = false } addFormisible.value = true + nextTick(() => { + // 打开弹窗后,主动同步校验状态,避免禁用状态下未触发 change 导致的红字残留 + addFormRef.value?.clearValidate?.(['receivedMarket', 'receivedWallet']) + addFormRef.value?.validateField?.('receivedMarket') + addFormRef.value?.validateField?.('receivedWallet') + }) } // 关闭新增/编辑弹窗 @@ -879,6 +904,8 @@ const closeAddForm = () => { addFormData.value = {} addOrEdit.value = 0 isGold.value = false + isGroup.value = false + selectWallet.value = false addFormRef.value?.resetFields(); } const testGold = () => { @@ -909,6 +936,7 @@ const testGold = () => { // 客服新增收款 const handleAddForm = async () => { try { + await waitJwcodeQuery() await addFormRef.value.validate(); if (!testGold().valid) { ElMessage.error(testGold().message); @@ -985,6 +1013,7 @@ const handleAddForm = async () => { // 客服编辑收款(撤回后重新提交) const handleEditForm = async () => { try { + await waitJwcodeQuery() await addFormRef.value.validate(); if (!testGold().valid) { ElMessage.error(testGold().message);