|
@@ -133,7 +133,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { smsCode, selectBusinessByCustomerName, registerCustomer } from '@/api/breg/index';
|
|
|
|
|
|
|
+import { smsCode, selectBusinessByCustomerName, registerCustomer, selectByPhone } from '@/api/breg/index';
|
|
|
import { onUnmounted } from 'vue';
|
|
import { onUnmounted } from 'vue';
|
|
|
import { onPath } from '@/utils/siteConfig';
|
|
import { onPath } from '@/utils/siteConfig';
|
|
|
const nextNum = ref<any>(1);
|
|
const nextNum = ref<any>(1);
|
|
@@ -174,25 +174,57 @@ const startCountdown = () => {
|
|
|
|
|
|
|
|
// 获取验证码
|
|
// 获取验证码
|
|
|
const sendSmsCode = () => {
|
|
const sendSmsCode = () => {
|
|
|
|
|
+ // 防止倒计时期间重复点击
|
|
|
if (countdown.value > 0) return;
|
|
if (countdown.value > 0) return;
|
|
|
|
|
|
|
|
- if (validateMobile(form.value.purchasePhone)) {
|
|
|
|
|
- smsCode({ phonenumber: form.value.purchasePhone }).then((res: any) => {
|
|
|
|
|
- if (res.code == 200) {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- message: '验证码已发送',
|
|
|
|
|
- type: 'success'
|
|
|
|
|
- });
|
|
|
|
|
- startCountdown();
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
|
|
+ const phone = form.value.purchasePhone;
|
|
|
|
|
+
|
|
|
|
|
+ // 1. 基础格式校验
|
|
|
|
|
+ if (!validateMobile(phone)) {
|
|
|
ElMessage({
|
|
ElMessage({
|
|
|
message: '请输入正确的手机号码',
|
|
message: '请输入正确的手机号码',
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
|
});
|
|
});
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 【新增】先调用接口查询用户是否存在
|
|
|
|
|
+ selectByPhone(phone)
|
|
|
|
|
+ .then((res: any) => {
|
|
|
|
|
+ // --- 后端返回 200 ---
|
|
|
|
|
+ // 根据你的后端逻辑:返回 200 代表 "用户不存在" (R.ok),允许注册
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ // 手机号可用,继续执行发送验证码逻辑
|
|
|
|
|
+ smsCode({ phonenumber: phone })
|
|
|
|
|
+ .then((smsRes: any) => {
|
|
|
|
|
+ if (smsRes.code === 200) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: '验证码已发送',
|
|
|
|
|
+ type: 'success'
|
|
|
|
|
+ });
|
|
|
|
|
+ startCountdown(); // 开始倒计时
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 发送短信接口业务失败
|
|
|
|
|
+ ElMessage.error(smsRes.msg || '发送验证码失败');
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((err: any) => {
|
|
|
|
|
+ // 发送短信接口网络错误或异常
|
|
|
|
|
+ ElMessage.error(err.msg || '发送验证码请求异常');
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((error: any) => {
|
|
|
|
|
+ // --- 后端返回非 200 (进入 catch) ---
|
|
|
|
|
+ // 根据你的后端逻辑:返回 fail 代表 "用户已存在" (R.fail("该手机号已注册"))
|
|
|
|
|
+ const msg = error.msg || '该手机号已注册,请直接登录';
|
|
|
|
|
+
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: msg,
|
|
|
|
|
+ type: 'warning' // 或者使用 'error'
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 验证手机号
|
|
// 验证手机号
|