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

This commit is contained in:
yuhawu 2025-09-06 16:44:08 +08:00
parent 05ecbce6cf
commit 3a2d61e13c

View File

@ -17,39 +17,39 @@
<!-- 用户名 --> <!-- 用户名 -->
<el-form-item prop="username" style="display: none;"> <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>
<!-- 手机号 --> <!-- 手机号 -->
<el-form-item prop="phoneNumber"> <el-form-item prop="phoneNumber">
<el-input v-model="formData.phoneNumber" placeholder="手机号" size="large" <el-input v-model="formData.phoneNumber" placeholder="手机号" size="large"
:prefix-icon="Phone" /> :prefix-icon="Phone"/>
</el-form-item> </el-form-item>
<!-- 密码 --> <!-- 密码 -->
<el-form-item prop="password"> <el-form-item prop="password">
<el-input v-model="formData.password" type="password" placeholder="密码" size="large" <el-input v-model="formData.password" type="password" placeholder="密码" size="large"
:prefix-icon="Lock" show-password /> :prefix-icon="Lock" show-password/>
</el-form-item> </el-form-item>
<!-- 确认密码 --> <!-- 确认密码 -->
<el-form-item prop="confirmPassword"> <el-form-item prop="confirmPassword">
<el-input v-model="formData.confirmPassword" type="password" placeholder="确认密码" size="large" <el-input v-model="formData.confirmPassword" type="password" placeholder="确认密码" size="large"
:prefix-icon="Lock" show-password /> :prefix-icon="Lock" show-password/>
</el-form-item> </el-form-item>
<!-- 邀请码 --> <!-- 邀请码 -->
<el-form-item prop="inviteCode"> <el-form-item prop="inviteCode">
<el-input v-model="formData.inviteCode" placeholder="邀请码(非必填)" size="large" <el-input v-model="formData.inviteCode" placeholder="邀请码(非必填)" size="large"
:prefix-icon="Message" /> :prefix-icon="Message"/>
</el-form-item> </el-form-item>
<!-- 验证码 --> <!-- 验证码 -->
<el-form-item v-if="captchaEnabled" prop="code"> <el-form-item v-if="captchaEnabled" prop="code">
<div class="captcha-row"> <div class="captcha-row">
<el-input v-model="formData.code" placeholder="验证码" size="large" :prefix-icon="Key" /> <el-input v-model="formData.code" placeholder="验证码" size="large" :prefix-icon="Key"/>
<div class="captcha-image" @click="getCaptcha"> <div class="captcha-image" @click="getCaptcha">
<img v-if="captchaImg" :src="captchaImg" alt="验证码" /> <img v-if="captchaImg" :src="captchaImg" alt="验证码"/>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
@ -96,7 +96,7 @@
<div class="flow-chart"> <div class="flow-chart">
<h3>操作流程图</h3> <h3>操作流程图</h3>
<div class="chart-container" @click="showFlowChart"> <div class="chart-container" @click="showFlowChart">
<img src="/flow-chart.png" alt="操作流程图" class="flow-image" /> <img src="/flow-chart.png" alt="操作流程图" class="flow-image"/>
<div class="click-tip">点击查看大图</div> <div class="click-tip">点击查看大图</div>
</div> </div>
</div> </div>
@ -112,7 +112,7 @@
<button class="close-btn" @click="closeImageViewer">×</button> <button class="close-btn" @click="closeImageViewer">×</button>
</div> </div>
<div class="image-viewer-content"> <div class="image-viewer-content">
<img src="/flow-chart.png" alt="操作流程图" class="full-image" /> <img src="/flow-chart.png" alt="操作流程图" class="full-image"/>
</div> </div>
</div> </div>
</div> </div>
@ -120,11 +120,11 @@
</template> </template>
<script setup> <script setup>
import { ref, onMounted } from 'vue' import {ref, onMounted} from 'vue'
import { useRoute } from 'vue-router' import {useRoute} from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus' import {ElMessage, ElMessageBox} from 'element-plus'
import { User, Phone, Lock, Message, Key } from '@element-plus/icons-vue' import {User, Phone, Lock, Message, Key} from '@element-plus/icons-vue'
import { getApiUrl } from '@/config/api' import {getApiUrl} from '@/config/api'
const route = useRoute() const route = useRoute()
const loading = ref(false) const loading = ref(false)
@ -162,18 +162,18 @@ 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: [
{ required: true, message: '请输入手机号', trigger: 'blur' }, {required: true, message: '请输入手机号', trigger: 'blur'},
{ pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' } {pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur'}
], ],
password: [ password: [
{ required: true, message: '请输入密码', trigger: 'blur' }, {required: true, message: '请输入密码', trigger: 'blur'},
{ min: 5, max: 20, message: '密码长度在5到20个字符', trigger: 'blur' } {min: 5, max: 20, message: '密码长度在5到20个字符', trigger: 'blur'}
], ],
confirmPassword: [ confirmPassword: [
{ required: true, message: '请确认密码', trigger: 'blur' }, {required: true, message: '请确认密码', trigger: 'blur'},
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
if (value !== formData.value.password) { if (value !== formData.value.password) {
@ -241,7 +241,7 @@ const getCaptcha = async () => {
if (contentType && contentType.includes('application/json')) { if (contentType && contentType.includes('application/json')) {
const result = await response.json() const result = await response.json()
if (result.code === 200) { if (result.code === 200) {
const { data } = result const {data} = result
// //
captchaEnabled.value = data.captchaEnabled === undefined ? true : data.captchaEnabled captchaEnabled.value = data.captchaEnabled === undefined ? true : data.captchaEnabled
@ -319,6 +319,7 @@ const handleRegister = async () => {
urlParams.value.pddMallName = result.data.pddMallName || '' urlParams.value.pddMallName = result.data.pddMallName || ''
urlParams.value.skuSpec = result.data.skuSpec || '' urlParams.value.skuSpec = result.data.skuSpec || ''
// //
if (urlParams.value.pddMallId) { if (urlParams.value.pddMallId) {
formData.value.username = 'pdd' + urlParams.value.pddMallId formData.value.username = 'pdd' + urlParams.value.pddMallId
@ -351,7 +352,7 @@ const handleRegister = async () => {
// //
pddMallId: urlParams.value.pddMallId || '', pddMallId: urlParams.value.pddMallId || '',
pddMallName: urlParams.value.pddMallName || '', pddMallName: urlParams.value.pddMallName || '',
pddType: urlParams.value.type || '', pddType: "2",
accessToken: urlParams.value.accessToken || '', accessToken: urlParams.value.accessToken || '',
skuSpec: urlParams.value.skuSpec || '' skuSpec: urlParams.value.skuSpec || ''
} }
@ -610,6 +611,7 @@ onMounted(() => {
.right-section { .right-section {
flex: 1; flex: 1;
max-width: 600px; max-width: 600px;
margin-left: 144px;
} }
.login-info { .login-info {