diff --git a/src/views/redirectUrl/index.vue b/src/views/redirectUrl/index.vue index 6eb9509..42ad2e9 100644 --- a/src/views/redirectUrl/index.vue +++ b/src/views/redirectUrl/index.vue @@ -15,7 +15,7 @@ - + @@ -160,7 +160,8 @@ const formData = ref({ // 表单验证规则 const rules = { username: [ - { required: true, message: '请输入用户名', trigger: 'blur' }, + // 由于用户名字段已隐藏,且由系统自动生成,移除必填验证 + // { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 2, max: 20, message: '用户名长度在2到20个字符', trigger: 'blur' } ], phoneNumber: [ @@ -210,18 +211,18 @@ const rules = { const getUrlParams = () => { const query = route.query urlParams.value = { - pddMallId: query.pddMallId || '', - pddMallName: decodeURIComponent(query.pddMallName || ''), - type: query.type || '', - accessToken: query.accessToken || '', - skuSpec: decodeURIComponent(query.skuSpec || ''), + // pddMallId: query.pddMallId || '', + // pddMallName: decodeURIComponent(query.pddMallName || ''), + // type: query.type || '', + // accessToken: query.accessToken || '', + // skuSpec: decodeURIComponent(query.skuSpec || ''), code: query.code || '' } // 将 "pdd" + pddMallId 回填到用户名 - if (urlParams.value.pddMallId) { - formData.value.username = 'pdd' + urlParams.value.pddMallId - } + // if (urlParams.value.pddMallId) { + // formData.value.username = 'pdd' + urlParams.value.pddMallId + // } } // 获取验证码 @@ -300,6 +301,43 @@ const handleRegister = async () => { loading.value = true + // 如果有授权码,先调用拼多多获取token接口 + if (urlParams.value.code) { + try { + const response = await fetch(getApiUrl(`/huidiao/pdd/getPddToken?code=${urlParams.value.code}`), { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }) + + const result = await response.json() + if (result.code === 200 && result.data) { + // 获取成功,更新URL参数 + urlParams.value.accessToken = result.data.accessToken || '' + urlParams.value.pddMallId = result.data.pddMallId || '' + urlParams.value.pddMallName = result.data.pddMallName || '' + urlParams.value.skuSpec = result.data.skuSpec || '' + + // 更新用户名 + if (urlParams.value.pddMallId) { + formData.value.username = 'pdd' + urlParams.value.pddMallId + } + + console.log('获取拼多多Token成功:', result.data) + } else { + // 获取失败但继续注册流程 + console.error('获取拼多多Token失败:', result.msg || '未知错误') + if (result.msg) { + ElMessage.warning(`获取拼多多信息: ${result.msg}`) + } + } + } catch (error) { + console.error('调用拼多多Token接口失败:', error) + ElMessage.warning('获取拼多多店铺信息失败,将使用URL中的参数') + } + } + // 构建注册数据 const registerData = { username: formData.value.username, @@ -311,11 +349,11 @@ const handleRegister = async () => { tenantId: formData.value.tenantId, userType: formData.value.userType, // 拼多多相关参数 - pddMallId: urlParams.value.pddMallId, - pddMallName: urlParams.value.pddMallName, - pddType: urlParams.value.type, - accessToken: urlParams.value.accessToken, - skuSpec: urlParams.value.skuSpec + pddMallId: urlParams.value.pddMallId || '', + pddMallName: urlParams.value.pddMallName || '', + pddType: urlParams.value.type || '', + accessToken: urlParams.value.accessToken || '', + skuSpec: urlParams.value.skuSpec || '' } // 只在验证码启用时添加验证码相关字段 @@ -340,11 +378,25 @@ const handleRegister = async () => { // 注册成功后可以跳转到登录页面或其他页面 // router.push('/login') } else { - // 处理验证码相关错误 + // 处理各种错误情况 let errorMessage = result.msg || '注册失败,请重试' - + + // 处理店铺已存在的情况 + if (result.msg === '店铺已存在') { + errorMessage = '该店铺已经绑定,请复制右侧网址登录使用' + // 显示特殊提示 + ElMessageBox.alert( + '该拼多多店铺已经绑定到系统中,请直接登录使用。', + '店铺已绑定', + { + confirmButtonText: '我知道了', + type: 'warning', + center: true + } + ) + } // 将英文验证码错误转换为中文 - if (result.msg === 'Captcha error') { + else if (result.msg === 'Captcha error') { errorMessage = '验证码错误,请重新输入' } else if (result.msg === 'Captcha invalid') { errorMessage = '验证码无效,请重新输入'