Browse Source

fix(收款明细): 优化精网号输入验证与查询逻辑

- 将 jwcode 输入框的 @blur 事件拆分为 @focus、@blur 和 @keyup.enter 事件,避免重复查询
- 增加输入值的去空格、非空校验、纯数字校验和长度校验
- 优化后端返回数据处理,增加对返回码 0 和特定区域提示的处理
- 统一使用清理后的 jwcode 变量进行 API 请求
lihuilin/feature-20260121173255-多语言二期2合并
zhangrenyuan 1 month ago
parent
commit
125b4b5681
  1. 44
      src/views/moneyManage/receiveDetail/receiveService.vue

44
src/views/moneyManage/receiveDetail/receiveService.vue

@ -208,7 +208,7 @@
label-position="left"> label-position="left">
<el-form-item :label="t('common_add.jwcode')" required prop="jwcode"> <el-form-item :label="t('common_add.jwcode')" required prop="jwcode">
<el-input v-model="addFormData.jwcode" :placeholder="t('common_add.jwcodePlaceholder')" <el-input v-model="addFormData.jwcode" :placeholder="t('common_add.jwcodePlaceholder')"
@blur="jwcodeSeachMarket" />
@focus="handleJwcodeFocus" @blur="handleJwcodeBlur" @keyup.enter="handleJwcodeEnter" />
</el-form-item> </el-form-item>
<el-form-item :label="t('common_add.customerName')" required prop="name"> <el-form-item :label="t('common_add.customerName')" required prop="name">
<el-input disabled v-model="addFormData.name" <el-input disabled v-model="addFormData.name"
@ -669,19 +669,57 @@ const ifGroup = () => {
isGroup.value = false 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 () => { const jwcodeSeachMarket = async () => {
try { 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({ const result = await request({
url: '/cashCollection/getNameAndMarket', 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')) ElMessage.success(t('elmessage.customerSuccess'))
addFormData.value.market = result.data.market addFormData.value.market = result.data.market
addFormData.value.marketName = result.data.marketName addFormData.value.marketName = result.data.marketName
addFormData.value.name = result.data.name 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 { } else {
ElMessage.error(t('elmessage.customerNotExist')) ElMessage.error(t('elmessage.customerNotExist'))
} }

Loading…
Cancel
Save