feat:新增PDD跳转注册页面code授权码

This commit is contained in:
yuhawu 2025-09-05 17:04:07 +08:00
parent 72283b50ce
commit 05ecbce6cf

View File

@ -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 = '验证码无效,请重新输入'