|
|
@ -804,11 +804,12 @@ const handleJwcodeBlur = () => { |
|
|
// 精网号失焦:查询客户姓名和地区 |
|
|
// 精网号失焦:查询客户姓名和地区 |
|
|
const jwcodeQuerying = ref(false) |
|
|
const jwcodeQuerying = ref(false) |
|
|
let jwcodeQueryPromise = null |
|
|
let jwcodeQueryPromise = null |
|
|
|
|
|
// 缓存上次查询成功的精网号 |
|
|
|
|
|
const lastSearchedJwcode = ref('') |
|
|
const jwcodeSeachMarket = async () => { |
|
|
const jwcodeSeachMarket = async () => { |
|
|
try { |
|
|
try { |
|
|
if (jwcodeQuerying.value && jwcodeQueryPromise) { |
|
|
if (jwcodeQuerying.value && jwcodeQueryPromise) { |
|
|
await jwcodeQueryPromise |
|
|
|
|
|
return |
|
|
|
|
|
|
|
|
return await jwcodeQueryPromise |
|
|
} |
|
|
} |
|
|
const jwcode = String(addFormData.value.jwcode ?? '').replace(/\s/g, '') |
|
|
const jwcode = String(addFormData.value.jwcode ?? '').replace(/\s/g, '') |
|
|
addFormData.value.jwcode = jwcode |
|
|
addFormData.value.jwcode = jwcode |
|
|
@ -824,6 +825,12 @@ const jwcodeSeachMarket = async () => { |
|
|
ElMessage.error(t('elmessage.limitJwcodeLength')) |
|
|
ElMessage.error(t('elmessage.limitJwcodeLength')) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 如果当前精网号已经查询过并且成功,则直接返回上次的结果缓存(模拟成功) |
|
|
|
|
|
if (lastSearchedJwcode.value === jwcode && addFormData.value.name && addFormData.value.market) { |
|
|
|
|
|
return { code: 200, data: { market: addFormData.value.market, marketName: addFormData.value.marketName, name: addFormData.value.name } } |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
jwcodeQuerying.value = true |
|
|
jwcodeQuerying.value = true |
|
|
jwcodeQueryPromise = request({ |
|
|
jwcodeQueryPromise = request({ |
|
|
url: '/cashCollection/getNameAndMarket', |
|
|
url: '/cashCollection/getNameAndMarket', |
|
|
@ -835,25 +842,32 @@ const jwcodeSeachMarket = async () => { |
|
|
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 |
|
|
|
|
|
lastSearchedJwcode.value = jwcode // 记录成功的精网号 |
|
|
if (addFormRef.value) { |
|
|
if (addFormRef.value) { |
|
|
addFormRef.value.validateField('name'); |
|
|
addFormRef.value.validateField('name'); |
|
|
addFormRef.value.validateField('market'); |
|
|
addFormRef.value.validateField('market'); |
|
|
} |
|
|
} |
|
|
|
|
|
return result; // 新增:成功时返回完整对象以便外层判断 |
|
|
} else if (result.code == 0) { |
|
|
} else if (result.code == 0) { |
|
|
|
|
|
lastSearchedJwcode.value = '' // 查询失败清空缓存 |
|
|
const region = result.data && result.data.market |
|
|
const region = result.data && result.data.market |
|
|
if (region) { |
|
|
if (region) { |
|
|
ElMessage.info({ |
|
|
ElMessage.info({ |
|
|
message: t('elmessage.userRegionHint', { region }), |
|
|
message: t('elmessage.userRegionHint', { region }), |
|
|
customClass: 'custom-blue-message' |
|
|
customClass: 'custom-blue-message' |
|
|
}) |
|
|
}) |
|
|
return |
|
|
|
|
|
} |
|
|
} |
|
|
ElMessage.error(t('elmessage.customerNotExist')) |
|
|
ElMessage.error(t('elmessage.customerNotExist')) |
|
|
|
|
|
return result; // 新增:如果code为0,返回完整对象以便外层阻断流程 |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
lastSearchedJwcode.value = '' // 查询失败清空缓存 |
|
|
ElMessage.error(t('elmessage.customerNotExist')) |
|
|
ElMessage.error(t('elmessage.customerNotExist')) |
|
|
|
|
|
return result; // 其他错误也返回 |
|
|
} |
|
|
} |
|
|
} catch (error) { |
|
|
} catch (error) { |
|
|
console.log(error); |
|
|
console.log(error); |
|
|
|
|
|
lastSearchedJwcode.value = '' |
|
|
|
|
|
return { code: 500 }; // 异常时返回错误码 |
|
|
} finally { |
|
|
} finally { |
|
|
jwcodeQuerying.value = false |
|
|
jwcodeQuerying.value = false |
|
|
jwcodeQueryPromise = null |
|
|
jwcodeQueryPromise = null |
|
|
@ -862,8 +876,9 @@ const jwcodeSeachMarket = async () => { |
|
|
|
|
|
|
|
|
const waitJwcodeQuery = async () => { |
|
|
const waitJwcodeQuery = async () => { |
|
|
if (jwcodeQuerying.value && jwcodeQueryPromise) { |
|
|
if (jwcodeQuerying.value && jwcodeQueryPromise) { |
|
|
await jwcodeQueryPromise |
|
|
|
|
|
|
|
|
return await jwcodeQueryPromise |
|
|
} |
|
|
} |
|
|
|
|
|
return null |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const LastGoodsName = ref('') |
|
|
const LastGoodsName = ref('') |
|
|
@ -935,7 +950,9 @@ const testGold = () => { |
|
|
// 客服新增收款 |
|
|
// 客服新增收款 |
|
|
const handleAddForm = async () => { |
|
|
const handleAddForm = async () => { |
|
|
try { |
|
|
try { |
|
|
await waitJwcodeQuery() |
|
|
|
|
|
|
|
|
// 如果失焦事件已经触发了查询,这里会等待并拿到结果,否则返回null |
|
|
|
|
|
const waitResult = await waitJwcodeQuery() |
|
|
|
|
|
|
|
|
await addFormRef.value.validate(); |
|
|
await addFormRef.value.validate(); |
|
|
if (!testGold().valid) { |
|
|
if (!testGold().valid) { |
|
|
ElMessage.error(testGold().message); |
|
|
ElMessage.error(testGold().message); |
|
|
@ -976,6 +993,19 @@ const handleAddForm = async () => { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
ifAddDone.value = true |
|
|
ifAddDone.value = true |
|
|
|
|
|
|
|
|
|
|
|
// 核心判断:如果上面没有拦截到正在进行的请求,说明是直接点击的提交,需要主动查一次 |
|
|
|
|
|
let jwcodeResult = waitResult |
|
|
|
|
|
if (!jwcodeResult) { |
|
|
|
|
|
jwcodeResult = await jwcodeSeachMarket() |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 判断精网号查询的结果,如果是返回错误或者是 code=0 则直接退出新增流程 |
|
|
|
|
|
if (!jwcodeResult || jwcodeResult.code === 0 || jwcodeResult.code === 500) { |
|
|
|
|
|
ifAddDone.value = false; |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
const result = await request({ |
|
|
const result = await request({ |
|
|
url: '/cashCollection/add', |
|
|
url: '/cashCollection/add', |
|
|
data: { |
|
|
data: { |
|
|
|