import { useAuth } from "@queenjs-modules/auth"; import { CaptchaInput } from "@queenjs-modules/auth/components/components/captcha"; import { Button, Form, Input } from "ant-design-vue"; import { queenApi } from "queenjs"; import { defineComponent, reactive } from "vue"; const layout = { wrapperCol: { span: 24 }, }; const tailLayout = { wrapperCol: { span: 24 }, }; export default defineComponent({ emits: ["success"], setup(props, { emit }) { const auth = useAuth(); const state = reactive({ loading: false, }); const formState = reactive({ phone: "", code: "", password: "", rePwd: "", }); const rules = reactive({ phone: [{ required: true, message: "手机号不能为空", trigger: "change" }], code: [{ required: true, message: "验证码不能为空", trigger: "change" }], password: [ { required: true, message: "密码不能为空", trigger: "change" }, ], rePwd: [{ required: true, message: "请确认密码", trigger: "change" }], }); const { validate, validateInfos } = Form.useForm(formState, rules); const submit = async () => { try { state.loading = true; const { rePwd, ...formData } = await validate(); if (rePwd !== formData.password) { queenApi.messageError("输入密码不一致!"); return; } await auth.actions.resetPassword(formData); emit("success"); } finally { state.loading = false; } }; function getCodeByClick() { return auth.actions.getSmsCode({ phone: formState.phone, use: "resetPasswd", }); } return () => (