From 125b4b5681286e10334a0dc66b22b25fa97be4e3 Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Fri, 23 Jan 2026 10:10:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=94=B6=E6=AC=BE=E6=98=8E=E7=BB=86):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=B2=BE=E7=BD=91=E5=8F=B7=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E4=B8=8E=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 jwcode 输入框的 @blur 事件拆分为 @focus、@blur 和 @keyup.enter 事件,避免重复查询 - 增加输入值的去空格、非空校验、纯数字校验和长度校验 - 优化后端返回数据处理,增加对返回码 0 和特定区域提示的处理 - 统一使用清理后的 jwcode 变量进行 API 请求 --- .../moneyManage/receiveDetail/receiveService.vue | 44 ++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 7e212a5..5de7449 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -208,7 +208,7 @@ label-position="left"> + @focus="handleJwcodeFocus" @blur="handleJwcodeBlur" @keyup.enter="handleJwcodeEnter" /> { isGroup.value = false } } +//失焦和回车查询仅选一个 +const jwcodeQueriedInFocus = ref(false) +const handleJwcodeFocus = () => { + jwcodeQueriedInFocus.value = false +} +const handleJwcodeEnter = () => { + jwcodeQueriedInFocus.value = true + jwcodeSeachMarket() +} +const handleJwcodeBlur = () => { + if (jwcodeQueriedInFocus.value) return + jwcodeQueriedInFocus.value = true + jwcodeSeachMarket() +} // 精网号失焦:查询客户姓名和地区 const jwcodeSeachMarket = async () => { try { + const jwcode = String(addFormData.value.jwcode ?? '').replace(/\s/g, '') + addFormData.value.jwcode = jwcode + if (!jwcode) { + ElMessage.warning(t('elmessage.noEmptyJwcode')) + return + } + if (!/^[1-9]\d*$/.test(jwcode)) { + ElMessage.error(t('elmessage.checkJwcodeFormat')) + return + } + if (jwcode.length > 8) { + ElMessage.error(t('elmessage.limitJwcodeLength')) + return + } const result = await request({ url: '/cashCollection/getNameAndMarket', - data: addFormData.value.jwcode + data: jwcode }) - if (result.code == 200) { + if (result.code == 200 && result.data && Object.keys(result.data).length > 0) { ElMessage.success(t('elmessage.customerSuccess')) addFormData.value.market = result.data.market addFormData.value.marketName = result.data.marketName addFormData.value.name = result.data.name + } else if (result.code == 0) { + const region = result.data && result.data.market + if (region) { + ElMessage.info({ + message: t('elmessage.userRegionHint', { region }), + customClass: 'custom-blue-message' + }) + return + } + ElMessage.error(t('elmessage.customerNotExist')) } else { ElMessage.error(t('elmessage.customerNotExist')) }