| | |
| | | <template>
|
| | | <div class="register">
|
| | | <el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
|
| | | <h3 class="title">若依后台管理系统</h3>
|
| | | <h3 class="title">{{ title }}</h3>
|
| | | <el-form-item prop="username">
|
| | | <el-input
|
| | | v-model="registerForm.username"
|
| | |
| | | </el-form>
|
| | | <!-- 底部 -->
|
| | | <div class="el-register-footer">
|
| | | <span>Copyright © 2018-2022 ruoyi.vip All Rights Reserved.</span>
|
| | | <span>Copyright © 2018-2025 ruoyi.vip All Rights Reserved.</span>
|
| | | </div>
|
| | | </div>
|
| | | </template>
|
| | |
|
| | | <script setup>
|
| | | import { ElMessageBox } from "element-plus";
|
| | | import { getCodeImg, register } from "@/api/login";
|
| | | import { ElMessageBox } from "element-plus"
|
| | | import { getCodeImg, register } from "@/api/login"
|
| | |
|
| | | const router = useRouter();
|
| | | const { proxy } = getCurrentInstance();
|
| | | const title = import.meta.env.VITE_APP_TITLE
|
| | | const router = useRouter()
|
| | | const { proxy } = getCurrentInstance()
|
| | |
|
| | | const registerForm = ref({
|
| | | username: "",
|
| | |
| | | confirmPassword: "",
|
| | | code: "",
|
| | | uuid: ""
|
| | | });
|
| | | })
|
| | |
|
| | | const equalToPassword = (rule, value, callback) => {
|
| | | if (registerForm.value.password !== value) {
|
| | | callback(new Error("两次输入的密码不一致"));
|
| | | callback(new Error("两次输入的密码不一致"))
|
| | | } else {
|
| | | callback();
|
| | | callback()
|
| | | }
|
| | | };
|
| | | }
|
| | |
|
| | | const registerRules = {
|
| | | username: [
|
| | |
| | | ],
|
| | | password: [
|
| | | { required: true, trigger: "blur", message: "请输入您的密码" },
|
| | | { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }
|
| | | { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" },
|
| | | { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }
|
| | | ],
|
| | | confirmPassword: [
|
| | | { required: true, trigger: "blur", message: "请再次输入您的密码" },
|
| | | { required: true, validator: equalToPassword, trigger: "blur" }
|
| | | ],
|
| | | code: [{ required: true, trigger: "change", message: "请输入验证码" }]
|
| | | };
|
| | | }
|
| | |
|
| | | const codeUrl = ref("");
|
| | | const loading = ref(false);
|
| | | const captchaEnabled = ref(true);
|
| | | const codeUrl = ref("")
|
| | | const loading = ref(false)
|
| | | const captchaEnabled = ref(true)
|
| | |
|
| | | function handleRegister() {
|
| | | proxy.$refs.registerRef.validate(valid => {
|
| | | if (valid) {
|
| | | loading.value = true;
|
| | | loading.value = true
|
| | | register(registerForm.value).then(res => {
|
| | | const username = registerForm.value.username;
|
| | | const username = registerForm.value.username
|
| | | ElMessageBox.alert("<font color='red'>恭喜你,您的账号 " + username + " 注册成功!</font>", "系统提示", {
|
| | | dangerouslyUseHTMLString: true,
|
| | | type: "success",
|
| | | }).then(() => {
|
| | | router.push("/login");
|
| | | }).catch(() => {});
|
| | | router.push("/login")
|
| | | }).catch(() => {})
|
| | | }).catch(() => {
|
| | | loading.value = false;
|
| | | loading.value = false
|
| | | if (captchaEnabled) {
|
| | | getCode();
|
| | | getCode()
|
| | | }
|
| | | });
|
| | | })
|
| | | }
|
| | | });
|
| | | })
|
| | | }
|
| | |
|
| | | function getCode() {
|
| | | getCodeImg().then(res => {
|
| | | captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled;
|
| | | captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled
|
| | | if (captchaEnabled.value) {
|
| | | codeUrl.value = "data:image/gif;base64," + res.img;
|
| | | registerForm.value.uuid = res.uuid;
|
| | | codeUrl.value = "data:image/gif;base64," + res.img
|
| | | registerForm.value.uuid = res.uuid
|
| | | }
|
| | | });
|
| | | })
|
| | | }
|
| | |
|
| | | getCode();
|
| | | getCode()
|
| | | </script>
|
| | |
|
| | | <style lang='scss' scoped>
|
| | |
| | | justify-content: center;
|
| | | align-items: center;
|
| | | height: 100%;
|
| | | background-image: url("../assets/images/login-background.jpg");
|
| | | background-image: url("../assets/images/login-background.png");
|
| | | background-size: cover;
|
| | | }
|
| | | .title {
|