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