feat:新增PDD跳转注册页面code授权码
This commit is contained in:
parent
72283b50ce
commit
05ecbce6cf
@ -15,7 +15,7 @@
|
||||
<!-- 表单 -->
|
||||
<el-form ref="formRef" :model="formData" :rules="rules" label-width="0">
|
||||
<!-- 用户名 -->
|
||||
<el-form-item prop="username">
|
||||
<el-form-item prop="username" style="display: none;">
|
||||
<el-input v-model="formData.username" placeholder="用户名" size="large" :prefix-icon="User"
|
||||
disabled />
|
||||
</el-form-item>
|
||||
@ -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 = '验证码无效,请重新输入'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user