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