From 5f00696dfb25bc90034448ceb634ed1ef256681a Mon Sep 17 00:00:00 2001
From: qiyunfeng-create <1940665526@qq.com>
Date: 星期四, 21 八月 2025 21:13:35 +0800
Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/xiehe_website

---
 src/layout/components/login.vue |  217 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 115 insertions(+), 102 deletions(-)

diff --git a/src/layout/components/login.vue b/src/layout/components/login.vue
index b09f083..173eb42 100644
--- a/src/layout/components/login.vue
+++ b/src/layout/components/login.vue
@@ -50,19 +50,23 @@
                   validator: (_, value, callback) => {
                     if (
                       !/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(
-                        value,
+                        value
                       )
                     ) {
-                      callback('璇疯緭鍏�11浣嶇數璇濆彿鐮�')
+                      callback('璇疯緭鍏�11浣嶇數璇濆彿鐮�');
                     } else {
-                      callback()
+                      callback();
                     }
                   },
                 },
               ]"
               prop="telNumber"
             >
-              <el-input v-model="passFormData.telNumber" placeholder="璇疯緭鍏ユ墜鏈哄彿" size="large">
+              <el-input
+                v-model="passFormData.telNumber"
+                placeholder="璇疯緭鍏ユ墜鏈哄彿"
+                size="large"
+              >
                 <template #prepend>
                   <el-select
                     v-model="select"
@@ -76,7 +80,9 @@
               </el-input>
             </el-form-item>
             <el-form-item>
-              <el-button class="yanzhengBtn" @click="sliderImgDialogVisable = true">楠岃瘉</el-button>
+              <el-button class="yanzhengBtn" @click="sliderImgDialogVisable = true"
+                >楠岃瘉</el-button
+              >
             </el-form-item>
             <el-form-item
               v-if="signUpWay === 'authSignUp'"
@@ -87,13 +93,19 @@
               ]"
               prop="telCode"
             >
-              <el-input v-model="passFormData.telCode" placeholder="璇疯緭鍏ラ獙璇佺爜" size="large" />
+              <el-input
+                v-model="passFormData.telCode"
+                placeholder="璇疯緭鍏ラ獙璇佺爜"
+                size="large"
+              />
               <el-button
                 type="primary"
                 class="codeBtn"
                 :disabled="countDown != 0"
                 @click="getCode(passFormRef)"
-                >{{ countDown == 0 ? '鑾峰彇楠岃瘉鐮�' : '楠岃瘉鐮�(' + countDown + 's)' }}</el-button
+                >{{
+                  countDown == 0 ? "鑾峰彇楠岃瘉鐮�" : "楠岃瘉鐮�(" + countDown + "s)"
+                }}</el-button
               >
             </el-form-item>
             <el-form-item
@@ -104,9 +116,9 @@
                 {
                   validator: (rule, value, callback) => {
                     if (!/\d/.test(value) || /^\d+$/.test(value)) {
-                      callback('瀵嗙爜涓嶈兘涓虹函鏁板瓧鎴栧瓧姣�')
+                      callback('瀵嗙爜涓嶈兘涓虹函鏁板瓧鎴栧瓧姣�');
                     } else {
-                      callback()
+                      callback();
                     }
                   },
                 },
@@ -162,49 +174,49 @@
 </template>
 
 <script setup>
-import { ref, inject, watchEffect, reactive, nextTick } from 'vue'
-import dialogLeftImg from '@/assets/images/header/dialogLeftImg.png'
-import verify from '@/components/sliderImg/component/verify.vue'
-import '@/components/sliderImg/sliderImg.js'
-import '@/components/sliderImg/sliderImg.css'
-import { ElMessage } from 'element-plus'
-import { useUserStore } from '@/stores'
-import { useRouter } from 'vue-router'
-const router = useRouter()
+import { ref, inject, watchEffect, reactive, nextTick } from "vue";
+import dialogLeftImg from "@/assets/images/header/dialogLeftImg.png";
+import verify from "@/components/sliderImg/component/verify.vue";
+import "@/components/sliderImg/sliderImg.js";
+import "@/components/sliderImg/sliderImg.css";
+import { ElMessage } from "element-plus";
+import { useUserStore } from "@/store";
+import { useRouter } from "vue-router";
+const router = useRouter();
 
-const userStore = useUserStore()
+const userStore = useUserStore();
 
-const MG = inject('MG')
-const config = inject('config')
-const dialogFormVisible = ref(false)
-const sliderImgDialogVisable = ref(false)
-const flag = ref('logIn') // 鐧诲綍鎴栨敞鍐�
+const MG = inject("MG");
+const config = inject("config");
+const dialogFormVisible = ref(false);
+const sliderImgDialogVisable = ref(false);
+const flag = ref("logIn"); // 鐧诲綍鎴栨敞鍐�
 
-const signUpWay = ref('authSignUp') // 鐧诲綍鏂瑰紡
-const select = ref('涓浗+86')
-const countDown = ref(0) // 鍊掕鏃舵椂闂�
-let timer = null // 鍊掕鏃跺疄渚�
-const passFormRef = ref()
+const signUpWay = ref("authSignUp"); // 鐧诲綍鏂瑰紡
+const select = ref("涓浗+86");
+const countDown = ref(0); // 鍊掕鏃舵椂闂�
+let timer = null; // 鍊掕鏃跺疄渚�
+const passFormRef = ref();
 const passFormData = ref({
-  telNumber: '',
-  password: '',
-  telCode: '',
-  password: '',
-  confirmPassword: '',
-})
+  telNumber: "",
+  password: "",
+  telCode: "",
+  password: "",
+  confirmPassword: "",
+});
 const closeDialog = () => {
-  countDown.value = 0
-  clearInterval(timer)
+  countDown.value = 0;
+  clearInterval(timer);
   if (passFormRef.value) {
-    passFormRef.value.resetFields()
+    passFormRef.value.resetFields();
   }
-  dialogFormVisible.value = false
-}
+  dialogFormVisible.value = false;
+};
 // 寮圭獥鎵撳紑浜嬩欢
-const openDialog = () => {}
+const openDialog = () => {};
 
 const loginImgVerify = (code) => {
-  sliderImgDialogVisable.value = false
+  sliderImgDialogVisable.value = false;
   MG.identity
     .getPhoneCode({
       phoneNumber: passFormData.value.telNumber,
@@ -212,19 +224,19 @@
       appRefCode: config.appRefCode,
     })
     .then((res) => {
-      if (res == '楠岃瘉鐮佸彂閫佹垚鍔�') {
-        getSecond(60)
-        ElMessage.success(res)
+      if (res == "楠岃瘉鐮佸彂閫佹垚鍔�") {
+        getSecond(60);
+        ElMessage.success(res);
       } else {
-        ElMessage.error(res)
+        ElMessage.error(res);
       }
-    })
-}
+    });
+};
 
 watchEffect(() => {
   if (dialogFormVisible.value) {
   }
-})
+});
 
 //鐧诲綍
 
@@ -233,38 +245,39 @@
     phoneNumber: passFormData.value.telNumber,
     phoneCaptcha: passFormData.value.telCode,
     appRefCode: config.appRefCode,
-    platform: 'string',
-  }
+    platform: "string",
+  };
   MG.identity.loginByMobilePhone(query).then((res) => {
-    console.log('res', res)
-    userStore.setToken(res.data.accessToken)
+    console.log("res", res);
+    userStore.setToken(res.data.accessToken);
 
-    getUserInfo()
-  })
-}
+    getUserInfo();
+  });
+};
 
 const getUserInfo = () => {
   MG.identity.getCurrentAppUser().then((res) => {
-    console.log('res', res)
+    console.log("res", res);
     if (res) {
-      let userInfo = res.infoList.find((item) => item.type == 'userInfo')
-      let userTypeObj = res.infoList.find((item) => item.type == 'userType')
+      let userInfo = res.infoList.find((item) => item.type == "userInfo");
+      let userTypeObj = res.infoList.find((item) => item.type == "userType");
       const userData = {
-        userName: userInfo && userInfo.data ? JSON.parse(userInfo.data).name : '',
-        school: userInfo && userInfo.data ? JSON.parse(userInfo.data).school : '',
-        city: userInfo && userInfo.data ? JSON.parse(userInfo.data).city : '',
-        cityCode: userInfo && userInfo.data ? JSON.parse(userInfo.data).cityCode : '',
-        address: userInfo && userInfo.data ? JSON.parse(userInfo.data).address : '',
-        userType: userTypeObj && userTypeObj.data ? JSON.parse(userTypeObj.data).userType : '',
-      }
-      localStorage.setItem('jsek-isUserInfo', userData?.userType == '' ? '-1' : '1')
-      let teacherRole = res.roleLinks.find((item) => item.role.refCode == 'teacher')
-      let teacherInfos = res.infoList.find((item) => item.type == 'teacherInfo')
-      let wechatInfo = res.infoList.find((item) => item.type == 'WeChat')
-      let studentInfo = res.infoList.find((item) => item.type == 'Default')
-      let phoneInfo = res.secretList.find((item) => item.type == 'MobilePhone')
+        userName: userInfo && userInfo.data ? JSON.parse(userInfo.data).name : "",
+        school: userInfo && userInfo.data ? JSON.parse(userInfo.data).school : "",
+        city: userInfo && userInfo.data ? JSON.parse(userInfo.data).city : "",
+        cityCode: userInfo && userInfo.data ? JSON.parse(userInfo.data).cityCode : "",
+        address: userInfo && userInfo.data ? JSON.parse(userInfo.data).address : "",
+        userType:
+          userTypeObj && userTypeObj.data ? JSON.parse(userTypeObj.data).userType : "",
+      };
+      localStorage.setItem("xiehe-isUserInfo", userData?.userType == "" ? "-1" : "1");
+      let teacherRole = res.roleLinks.find((item) => item.role.refCode == "teacher");
+      let teacherInfos = res.infoList.find((item) => item.type == "teacherInfo");
+      let wechatInfo = res.infoList.find((item) => item.type == "WeChat");
+      let studentInfo = res.infoList.find((item) => item.type == "Default");
+      let phoneInfo = res.secretList.find((item) => item.type == "MobilePhone");
       // let nameAndPassword = res.secretList.find((item) => item.type == 'LoginNameAndPassword')
-      let emailInfo = res.secretList.find((item) => item.type == 'EMail')
+      let emailInfo = res.secretList.find((item) => item.type == "EMail");
       if (teacherRole && teacherInfos) {
         userStore.setUserInfo({
           ...userData,
@@ -272,19 +285,19 @@
           phoneNumber: phoneInfo?.credential,
           Email: emailInfo ? emailInfo.credential : JSON.parse(teacherInfos.data).email,
           icon: wechatInfo?.icon,
-          role: 'Teacher',
+          role: "Teacher",
           roleId: teacherRole.role.id,
           userId: res.userId,
-        })
+        });
       } else if (wechatInfo) {
         userStore.setUserInfo({
           ...userData,
           ...wechatInfo,
           phoneNumber: phoneInfo?.credential,
           Email: emailInfo?.credential,
-          role: 'Student',
+          role: "Student",
           userId: res.userId,
-        })
+        });
       } else if (studentInfo) {
         userStore.setUserInfo({
           ...userData,
@@ -292,9 +305,9 @@
           icon: wechatInfo?.icon,
           phoneNumber: phoneInfo?.credential,
           Email: emailInfo?.credential,
-          role: 'Student',
+          role: "Student",
           userId: res.userId,
-        })
+        });
       } else if (phoneInfo) {
         userStore.setUserInfo({
           ...userData,
@@ -302,32 +315,32 @@
           name: phoneInfo?.credential,
           icon: phoneInfo?.icon,
           phoneNumber: phoneInfo?.credential,
-          role: 'Student',
+          role: "Student",
           userId: res.userId,
-        })
+        });
       }
     }
-    router.go(0)
-  })
-}
+    router.go(0);
+  });
+};
 
 // 鍊掕鏃�
 const getSecond = (time) => {
   if (!timer) {
-    countDown.value = time
+    countDown.value = time;
     timer = setInterval(() => {
-      countDown.value--
+      countDown.value--;
       if (countDown.value == 0) {
-        clearInterval(timer)
-        timer = null
+        clearInterval(timer);
+        timer = null;
       }
-    }, 1000)
+    }, 1000);
   }
-}
+};
 
 // 鐧诲綍鍜岄噸缃瘑鐮佹寜閽寜閽�
 const signInSystem = async (formEl) => {
-  if (!formEl) return
+  if (!formEl) return;
   formEl.validate((valid) => {
     if (valid) {
       // if (signUpWay.value === 'phone') {
@@ -341,27 +354,27 @@
       //   changePassword()
       // }
     }
-  })
-}
+  });
+};
 
 const logIn = () => {
-  dialogFormVisible.value = true
-  flag.value = 'logIn'
-}
+  dialogFormVisible.value = true;
+  flag.value = "logIn";
+};
 
 // 鎵撳紑娉ㄥ唽寮圭獥
 const signUp = () => {
-  dialogFormVisible.value = true
-  flag.value = 'signUp'
-}
+  dialogFormVisible.value = true;
+  flag.value = "signUp";
+};
 const wechatLoginOpen = () => {
-  signUpWay.value = 'wechat'
-}
+  signUpWay.value = "wechat";
+};
 
 defineExpose({
   logIn,
   signUp,
-})
+});
 </script>
 
 <style lang="less" scoped>

--
Gitblit v1.9.1