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 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"
|
<el-input v-model="formData.username" placeholder="用户名" size="large" :prefix-icon="User"
|
||||||
disabled />
|
disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -160,7 +160,8 @@ const formData = ref({
|
|||||||
// 表单验证规则
|
// 表单验证规则
|
||||||
const rules = {
|
const rules = {
|
||||||
username: [
|
username: [
|
||||||
{ required: true, message: '请输入用户名', trigger: 'blur' },
|
// 由于用户名字段已隐藏,且由系统自动生成,移除必填验证
|
||||||
|
// { required: true, message: '请输入用户名', trigger: 'blur' },
|
||||||
{ min: 2, max: 20, message: '用户名长度在2到20个字符', trigger: 'blur' }
|
{ min: 2, max: 20, message: '用户名长度在2到20个字符', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
phoneNumber: [
|
phoneNumber: [
|
||||||
@ -210,18 +211,18 @@ const rules = {
|
|||||||
const getUrlParams = () => {
|
const getUrlParams = () => {
|
||||||
const query = route.query
|
const query = route.query
|
||||||
urlParams.value = {
|
urlParams.value = {
|
||||||
pddMallId: query.pddMallId || '',
|
// pddMallId: query.pddMallId || '',
|
||||||
pddMallName: decodeURIComponent(query.pddMallName || ''),
|
// pddMallName: decodeURIComponent(query.pddMallName || ''),
|
||||||
type: query.type || '',
|
// type: query.type || '',
|
||||||
accessToken: query.accessToken || '',
|
// accessToken: query.accessToken || '',
|
||||||
skuSpec: decodeURIComponent(query.skuSpec || ''),
|
// skuSpec: decodeURIComponent(query.skuSpec || ''),
|
||||||
code: query.code || ''
|
code: query.code || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将 "pdd" + pddMallId 回填到用户名
|
// 将 "pdd" + pddMallId 回填到用户名
|
||||||
if (urlParams.value.pddMallId) {
|
// if (urlParams.value.pddMallId) {
|
||||||
formData.value.username = 'pdd' + urlParams.value.pddMallId
|
// formData.value.username = 'pdd' + urlParams.value.pddMallId
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取验证码
|
// 获取验证码
|
||||||
@ -300,6 +301,43 @@ const handleRegister = async () => {
|
|||||||
|
|
||||||
loading.value = true
|
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 = {
|
const registerData = {
|
||||||
username: formData.value.username,
|
username: formData.value.username,
|
||||||
@ -311,11 +349,11 @@ const handleRegister = async () => {
|
|||||||
tenantId: formData.value.tenantId,
|
tenantId: formData.value.tenantId,
|
||||||
userType: formData.value.userType,
|
userType: formData.value.userType,
|
||||||
// 拼多多相关参数
|
// 拼多多相关参数
|
||||||
pddMallId: urlParams.value.pddMallId,
|
pddMallId: urlParams.value.pddMallId || '',
|
||||||
pddMallName: urlParams.value.pddMallName,
|
pddMallName: urlParams.value.pddMallName || '',
|
||||||
pddType: urlParams.value.type,
|
pddType: urlParams.value.type || '',
|
||||||
accessToken: urlParams.value.accessToken,
|
accessToken: urlParams.value.accessToken || '',
|
||||||
skuSpec: urlParams.value.skuSpec
|
skuSpec: urlParams.value.skuSpec || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
// 只在验证码启用时添加验证码相关字段
|
// 只在验证码启用时添加验证码相关字段
|
||||||
@ -340,11 +378,25 @@ const handleRegister = async () => {
|
|||||||
// 注册成功后可以跳转到登录页面或其他页面
|
// 注册成功后可以跳转到登录页面或其他页面
|
||||||
// router.push('/login')
|
// router.push('/login')
|
||||||
} else {
|
} else {
|
||||||
// 处理验证码相关错误
|
// 处理各种错误情况
|
||||||
let errorMessage = result.msg || '注册失败,请重试'
|
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 = '验证码错误,请重新输入'
|
errorMessage = '验证码错误,请重新输入'
|
||||||
} else if (result.msg === 'Captcha invalid') {
|
} else if (result.msg === 'Captcha invalid') {
|
||||||
errorMessage = '验证码无效,请重新输入'
|
errorMessage = '验证码无效,请重新输入'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user