From 10a26b9b670efef0a2adba675c794c539846aa3c Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期五, 06 九月 2024 10:18:10 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override
---
north-glass-erp/northglass-erp/src/views/RegisterView.vue | 185 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 185 insertions(+), 0 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/views/RegisterView.vue b/north-glass-erp/northglass-erp/src/views/RegisterView.vue
new file mode 100644
index 0000000..30e0d48
--- /dev/null
+++ b/north-glass-erp/northglass-erp/src/views/RegisterView.vue
@@ -0,0 +1,185 @@
+<script setup lang="ts">
+ import {useRouter,useRoute} from 'vue-router'
+ import { reactive, ref } from 'vue'
+ import type { FormProps,FormInstance, FormRules } from 'element-plus'
+ import {ElMessage,ElMessageBox} from "element-plus";
+ import request from "@/utils/request";
+ import {Avatar, UserFilled} from "@element-plus/icons-vue";
+
+ const router = useRouter()
+ const route = useRoute()
+ let loginLoadings= ref(false)
+ const labelPosition = ref<FormProps['labelPosition']>('right')
+
+ //娉ㄥ唽鐢ㄦ埛鍙傛暟
+ const register = reactive({
+ userName: '',
+ // loginName: '',
+ password: '',
+ confirmPassword:''
+ })
+
+ /*鏂规硶*/
+ const checkName = (rule: any, value: any, callback: any) => {
+ if (value.trim() === '') {
+ callback(new Error('濮撳悕涓嶈兘涓虹┖'))
+ }else if(value.length>16){
+ callback(new Error('闀垮害涓嶈兘瓒呰繃16'))
+ }else{
+ callback()
+ }
+ }
+
+ const checkPassword = (rule: any, value: any, callback: any) => {
+ if (value.trim() === '') {
+ callback(new Error('瀵嗙爜涓嶈兘涓虹┖'))
+ }else if(value.length>16 || value.length<6){
+ callback(new Error('瀵嗙爜闀垮害涓嶈兘浣庝簬6鎴栬秴杩�16'))
+ }else{
+ callback()
+ }
+ }
+
+ const checkConfirmPassword = (rule: any, value: any, callback: any) => {
+ if (value.trim() === '') {
+ callback(new Error('纭瀵嗙爜涓嶈兘涓虹┖'))
+ }else if(value !== register.password){
+ callback(new Error('涓ゆ瀵嗙爜涓嶇浉鍚�'))
+ }else if(value.length>16 || value.length<6){
+ callback(new Error('瀵嗙爜闀垮害涓嶈兘浣庝簬6鎴栬秴杩�16'))
+ }else{
+ callback()
+ }
+ }
+
+ const ruleFormRef = ref<FormInstance>()
+ const rules = reactive<FormRules<typeof register>>({
+ userName: [{ validator: checkName, trigger: 'blur' }],
+ password:[{ validator: checkPassword, trigger: 'blur' }],
+ confirmPassword:[{ validator: checkConfirmPassword, trigger: 'blur' }],
+ // loginName: [{ validator: validateString, trigger: 'blur' }]
+ })
+
+ const submitForm = (formEl: FormInstance | undefined) => {
+ if (!formEl) return
+ formEl.validate((valid) => {
+ if (valid) {
+ loginLoadings.value=true
+ register.password = btoa(register.password)
+ request.post('/user/register',
+ register).then((res) => {
+ if(res['code']==200){
+ ElMessageBox.alert(
+ `<strong>鐢ㄦ埛:<i style="color: #1890FF;">'${res.data.userName}</i>'
+ <br>璐﹀彿ID:<i style="color: #1890FF;">${res.data.loginName}</i> </strong>`,
+ '娉ㄥ唽鎻愮ず锛�',
+ {
+ dangerouslyUseHTMLString: true,
+ confirmButtonText: '鐧婚檰',
+ center: true,
+ }
+ ).then(()=>{
+ router.push({
+ path:'/login',
+ query: {
+ id: res.data.loginName
+ }
+ })
+ })
+
+ ElMessage.success(`娉ㄥ唽鎴愬姛`)
+ loginLoadings.value=false
+ } else {
+ ElMessage.error(res['msg'])
+ return false
+ }
+ }).catch(error => {
+ ElMessage.error("鏈嶅姟鍣ㄨ繛鎺ュけ璐�")
+ loginLoadings.value=false
+ return false
+ }).then(() => {
+ register.password = atob(register.password)
+ })
+ }
+ })
+ }
+
+
+
+ // console.log(route.params)
+</script>
+
+<template>
+ <h2 style="color: #1890FF">
+ <span>
+ <el-icon><UserFilled /></el-icon>
+ <p>鍖楃幓ERP鐢ㄦ埛娉ㄥ唽</p>
+ </span>
+ </h2>
+ <div id="main-div">
+
+ <div id="register">
+ <el-form
+ :label-position="labelPosition"
+ label-width="100px"
+ :model="register"
+ ref="ruleFormRef"
+ status-icon
+ :rules="rules"
+ >
+ <el-form-item label="濮撳悕锛�" prop="userName">
+ <el-input v-model="register.userName" />
+ </el-form-item>
+<!-- <el-form-item label="鐧婚檰鍚嶏細" prop="loginName">-->
+<!-- <el-input v-model="register.loginName" />-->
+<!-- </el-form-item>-->
+ <el-form-item label="瀵嗙爜锛�" prop="password">
+ <el-input type="password" v-model="register.password" />
+ </el-form-item>
+ <el-form-item label="纭瀵嗙爜锛�" prop="confirmPassword">
+ <el-input type="password" v-model="register.confirmPassword" />
+ </el-form-item>
+ <el-form-item >
+ <el-button
+ :loading="loginLoadings"
+ type="primary"
+ @click="submitForm(ruleFormRef)"
+ >娉ㄥ唽
+ </el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ </div>
+
+</template>
+
+<style scoped>
+#main-div{
+ //overflow: hidden;
+ position: absolute;
+ left:50%;
+ top:50%;
+ transform: translate(-50%, -50%);
+
+}
+h2{
+ text-align: center;
+ width: 100vw;
+ margin-top: 10vh;
+}
+#register{
+ background-color: #FAFAFA;
+ width: 50vw;
+ height: 50vh;
+ border-radius: 12px;
+ box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
+ display:flex;
+ align-items:center;
+ justify-content:center;
+ min-height: 280px;
+}
+.el-form{
+ max-width: 300px;
+}
+
+</style>
\ No newline at end of file
--
Gitblit v1.8.0