diff --git a/src/apis/home.ts b/src/apis/home.ts
index 4c49cc3..7fd0279 100644
--- a/src/apis/home.ts
+++ b/src/apis/home.ts
@@ -1,7 +1,15 @@
// 登陆相关接口
import request from '@/utils/index'
+import { SmsType } from '@/constants/sms'
+
+// 获取短信验证码
+export const sendSMSCode = (phone: string, type: SmsType) => {
+ return request.post('/v1/auth/sendSMSCode', {
+ phone,
+ type,
+ });
+};
-// 轮播接口
export const getBannerList = () => request.get('/v1/home/home_banners')
// GPU说明列表
export const getGpuList = () => request.get('/v1/home/home_products')
diff --git a/src/constants/sms.ts b/src/constants/sms.ts
new file mode 100644
index 0000000..5d092f9
--- /dev/null
+++ b/src/constants/sms.ts
@@ -0,0 +1,5 @@
+export enum SmsType {
+ REGISTER = 'register',
+ LOGIN = 'login',
+ RESET_PASSWORD = 'restp', // 注意:按你后端实际字段来,如果是 restp 就用 restp
+}
\ No newline at end of file
diff --git a/src/views/login/component/register.vue b/src/views/login/component/register.vue
index adbcde8..c2174c0 100644
--- a/src/views/login/component/register.vue
+++ b/src/views/login/component/register.vue
@@ -3,7 +3,7 @@
@finish-failed="onFinishFailed" >
Fast亼算云账号注册
-
+
@@ -35,15 +35,22 @@
import { reactive, ref, shallowRef, computed, onMounted } from 'vue';
import { useRouter } from 'vue-router';
import apis from '@/apis';
+import { sendSMSCode } from '@/apis/home'
import { message, type FormInstance } from 'ant-design-vue';
import SmsCodeInput from '@/components/SmsCodeInput.vue';
import { validatePassword } from '@/utils/validotors'; // 根据实际路径调整
+import { SmsType } from '@/constants/sms';
+
const router = useRouter();
const formRef = ref();
const codeValidateStatus = shallowRef<'success' | 'warning' | 'error' | ''>('');
const codeHelp = shallowRef('');
const checked = ref(false);
+
+// 获取 SmsCodeInput 的 ref(用于重置倒计时)
+const smsInputRef = ref>();
+
interface FormState {
phone: string;
code: string;
@@ -64,6 +71,8 @@ const clearCodeError = () => {
codeValidateStatus.value = '';
codeHelp.value = '';
};
+
+
const querenPassword = (rule, value) => {
if (!value) {
return Promise.reject('请输入密码!');
@@ -89,12 +98,35 @@ const onFinish = async (values: FormState) => {
message.error(error);
}
});
-
};
const onFinishFailed = (errorInfo: any) => {
console.log('表单验证失败:', errorInfo);
};
+
+// 处理获取验证码
+const handleSendCode = async () => {
+ if (!formState.phone || !/^\d{11}$/.test(formState.phone)) {
+ message.warning('请输入正确的手机号');
+ return;
+ }
+
+ try {
+ // 调用短信接口(注册场景)
+ const res: any = await sendSMSCode(formState.phone, SmsType.REGISTER);
+ console.log('发送验证码请求成功:', res);
+ if (res.code === 1) {
+ message.success(res.msg);
+ // 重置子组件的倒计时
+ } else {
+ message.error(res.message);
+ }
+ // message.success('验证码已发送');
+ } catch (error: any) {
+ console.error('发送验证码失败:', error);
+ message.error(error?.response?.data?.message || '发送失败,请稍后重试');
+ }
+};