From d24208b83c83b0a1c8abaddfd81b5bd72624ecb3 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期五, 27 六月 2025 13:51:00 +0800 Subject: [PATCH] '-' --- src/router/modules/remaining.ts | 10 ++ vite.config.ts | 8 ++ src/views/home/index.vue | 47 ++++++++--- src/views/register/registernav.vue | 36 +++++++++ src/assets/home/success.png | 0 src/style/index.scss | 4 src/style/login.css | 2 src/views/login/index.vue | 58 +++++++++++++- src/style/element-plus-new.scss | 14 +++ src/views/register/index.vue | 5 + src/views/register/registersucess.vue | 31 +++++++ 11 files changed, 194 insertions(+), 21 deletions(-) diff --git a/src/assets/home/success.png b/src/assets/home/success.png new file mode 100644 index 0000000..5f48509 --- /dev/null +++ b/src/assets/home/success.png Binary files differ diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 6421398..db20f3d 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -52,6 +52,16 @@ } }, { + path: "/registernav", + name: "RegisterNav", + component: () => import("@/views/register/registernav.vue"), + meta: { + title: "娉ㄥ唽鍚戝", + showLink: false, + rank: 103 + } + }, + { path: "/redirect", component: Layout, meta: { diff --git a/src/style/element-plus-new.scss b/src/style/element-plus-new.scss new file mode 100644 index 0000000..18da45a --- /dev/null +++ b/src/style/element-plus-new.scss @@ -0,0 +1,14 @@ +// 淇敼element-plus涓婚鑹� +@forward "element-plus/theme-chalk/src/common/var.scss" with ( + $colors: ( + "primary": ( + "base": #007d7b, + ), + ), + + $button-padding-horizontal: ( + // "default": 80px + ) +); + + diff --git a/src/style/index.scss b/src/style/index.scss index aac8c32..56aeb00 100644 --- a/src/style/index.scss +++ b/src/style/index.scss @@ -24,7 +24,9 @@ --pure-theme-sidebar-logo: none; --pure-theme-menu-title-hover: initial; --pure-theme-menu-active-before: transparent; + --el-color-primary: #0F5FD2; } +$--color-primary: #0F5FD2; // 钃濊壊 /* 鐏拌壊妯″紡 */ .html-grey { @@ -34,4 +36,4 @@ /* 鑹插急妯″紡 */ .html-weakness { filter: invert(80%); -} +} \ No newline at end of file diff --git a/src/style/login.css b/src/style/login.css index c81363b..ca47538 100644 --- a/src/style/login.css +++ b/src/style/login.css @@ -55,7 +55,7 @@ .login-form h2 { text-transform: uppercase; margin: 15px 0; - color: #999; + color: var(--el-color-primary); font: bold 200% Consolas, Monaco, diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 9645a61..1b9e2ba 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -163,29 +163,36 @@ v-if="state.rolesCode.indexOf(item.code) !== -1" :underline="false" class="hover:cursor-pointer" - @click="toRegister" + @click="logOut" >閫�鍑�</el-link + > + <el-link + v-else-if="!state.accessToken" + :underline="false" + class="hover:cursor-pointer" + @click="toRegister" + >娉ㄥ唽</el-link > <el-link v-else :underline="false" class="hover:cursor-pointer" - @click="toRegister" + @click="toApply" >鐢宠</el-link ><span class="m-2">|</span> <el-link v-if="state.rolesCode.indexOf(item.code) !== -1" :underline="false" class="hover:cursor-pointer" - @click="toWelcome" + @click="toWelcome(item)" >杩涘叆</el-link > <el-link v-else :underline="false" class="hover:cursor-pointer" - :disabled="state.accessToken" - @click="toLogin" + :disabled="!!state.accessToken" + @click="toLogin(item)" >鐧诲綍</el-link > </div> @@ -394,6 +401,8 @@ import { getToken } from "@/utils/auth"; import { useRoute, useRouter } from "vue-router"; +const router = useRouter(); + defineOptions({ name: "Main" }); @@ -401,7 +410,7 @@ /** 瑙掕壊锛堝鏋滄樀绉颁负绌哄垯鏄剧ず鐢ㄦ埛鍚嶏級 */ const getUseRoles = () => { state.userInfo = storageLocal().getItem("user-info"); - state.userInfo.exRoles.forEach(element => { + state.userInfo?.exRoles.forEach(element => { state.rolesCode.push(element.code); }); }; @@ -416,18 +425,32 @@ state.roleList = res.result; }); getUseRoles(); - state.accessToken = getToken().accessToken; + state.accessToken = getToken()?.accessToken; }); -const router = useRouter(); const toRegister = () => { router.push({ name: "Register" }); }; -const toWelcome = () => { - router.push({ name: "Welcome" }); +// 閫�鍑� +const logOut = () => { + useUserStoreHook().logOut(); }; -const toLogin = () => { - router.push({ name: "Login" }); +// 鐢宠 +const toApply = () => {}; +// 鍘婚椤� +const toWelcome = item => { + let role = state.userInfo?.exRoles.find(ele => { + return item.code == ele.code; + }); + console.log(role); + if (role.hasFlsh) { + return router.push({ name: "Welcome" }); + } + router.push({ name: "RegisterNav" }); +}; +// 鍘荤櫥褰� +const toLogin = item => { + router.push({ name: "Login", query: item }); }; </script> diff --git a/src/views/login/index.vue b/src/views/login/index.vue index a9ca3a2..d8954bc 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -110,7 +110,8 @@ hideTenantForLogin: false, expirySeconds: 60, // 楠岃瘉鐮佽繃鏈熸椂闂� phoneSeconds: 0, // 鎵嬫満楠岃瘉鐮佸�掕鏃� - roleList: [] + roleList: [], + nowRole: {} }); // 楠岃瘉鐮佽繃鏈熻鏃跺櫒 let timer: any = null; @@ -119,7 +120,7 @@ // 椤甸潰鍒濆鍖� onMounted(async () => { // 鑻RL甯︽湁Token鍙傛暟锛堢涓夋柟鐧诲綍锛� - const accessToken = route.query.token; + // if (accessToken) await saveTokenAndInitRoutes(accessToken); // watch( // () => themeConfig.value.isLoaded, @@ -134,6 +135,13 @@ getCaptcha(); exRole().then(res => { state.roleList = res.result; + const role = route.query; + if (role.code) { + state.nowRole = role; + } else { + state.nowRole = state.roleList[0]; + } + state.ruleForm.exRoleCode = state.nowRole?.code; }); // 娉ㄥ唽楠岃瘉鐮佽繃鏈熻鏃跺櫒 // if (state.captchaEnabled) { @@ -242,7 +250,7 @@ <div class="login-form"> <!-- <avatar class="avatar" /> --> <Motion> - <h2 class="outline-hidden">{{ title }}</h2> + <h2 class="logintitle">{{ state.nowRole.name }}鐧诲綍</h2> </Motion> <el-form @@ -251,7 +259,7 @@ :rules="loginRules" size="large" > - <Motion :delay="150"> + <!-- <Motion :delay="150"> <el-form-item prop="exRoleCode"> <el-radio-group v-model="state.ruleForm.exRoleCode"> <el-radio @@ -262,7 +270,7 @@ > </el-radio-group> </el-form-item> - </Motion> + </Motion> --> <Motion :delay="100"> <el-form-item :rules="[ @@ -382,4 +390,44 @@ #suffix-span { cursor: pointer; } +.login-content-code { + display: flex; + align-items: center; + justify-content: space-around; + position: relative; + + .login-content-code-img { + width: 100%; + height: 40px; + line-height: 40px; + background-color: #ffffff; + // /* border: 1px solid rgb(220, 223, 230); */ + cursor: pointer; + transition: all ease 0.2s; + border-radius: 4px; + user-select: none; + + &:hover { + border-color: #c0c4cc; + transition: all ease 0.2s; + } + } +} + +.login-content-code-expired { + @extend .login-content-code; + &::before { + content: "楠岃瘉鐮佸凡杩囨湡"; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + border-radius: 4px; + background-color: rgba(0, 0, 0, 0.5); + color: #ffffff; + text-align: center; + line-height: 40px; + } +} </style> diff --git a/src/views/register/index.vue b/src/views/register/index.vue index ba4182c..7de31f3 100644 --- a/src/views/register/index.vue +++ b/src/views/register/index.vue @@ -359,7 +359,9 @@ label: `${idx + 1}` })); </script> - +<style scoped> +@import url("@/style/login.css"); +</style> <style lang="scss" scoped> .content { background-color: #f8f8f8; @@ -459,6 +461,7 @@ background-color: rgba(0, 0, 0, 0.5); color: #ffffff; text-align: center; + line-height: 40px; } } </style> diff --git a/src/views/register/registernav.vue b/src/views/register/registernav.vue new file mode 100644 index 0000000..12f11ea --- /dev/null +++ b/src/views/register/registernav.vue @@ -0,0 +1,36 @@ +<template> + <div class="content"> + <div class="header"> + <div class="headimg"> + <img width="167px" height="44px" src="@/assets/home/logo.png" alt="" /> + </div> + </div> + <div class="center w-[70%] h-[584px] bg-white mx-auto mt-25"> + <el-button type="primary">淇濆瓨</el-button> + </div> + </div> +</template> +<script setup> +defineOptions({ + name: "RegisterNav" +}); +</script> +<style lang="scss" scoped> +.content { + background-color: #f8f8f8; + width: 100%; + height: 100%; + .header { + display: flex; + align-items: center; + height: 80px; + width: 100%; + margin: 0 auto; + background-color: #fff; + .headimg { + width: 1200px; + margin: 0 auto; + } + } +} +</style> diff --git a/src/views/register/registersucess.vue b/src/views/register/registersucess.vue index 71e4d7b..c592f48 100644 --- a/src/views/register/registersucess.vue +++ b/src/views/register/registersucess.vue @@ -6,14 +6,43 @@ </div> </div> <div class="center w-[70%] h-[584px] bg-white mx-auto mt-25"> - <el-button type="primary">椹笂鐧诲綍</el-button> + <div + class="w-[20%] mx-auto flex flex-wrap justify-center items-center pt-38" + > + <div> + <img + width="90px" + height="90px" + src="@/assets/home/success.png" + alt="" + /> + </div> + <div class="w-[100%] text-center font-550 m-4 text-3xl"> + 璐﹀彿娉ㄥ唽鎴愬姛 + </div> + <div class="w-[100%] text-center font-bold m-4 mt-10 text-2xl"> + <el-button type="primary" class="w-[100%]">椹笂鐧诲綍</el-button> + </div> + <div + class="w-[100%] text-center text-[#0F5FD2] cursor-pointer" + @click="toIndex" + > + 瀹屾垚娉ㄥ唽锛岃繑鍥為椤� + </div> + </div> </div> </div> </template> <script setup> +import { useRoute, useRouter } from "vue-router"; +const router = useRouter(); + defineOptions({ name: "RegisterSucess" }); +const toIndex = () => { + router.replace("Index"); +}; </script> <style lang="scss" scoped> .content { diff --git a/vite.config.ts b/vite.config.ts index 0fc8d03..440e272 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -38,6 +38,14 @@ } }, plugins: getPluginsList(VITE_CDN, VITE_COMPRESSION), + css: { + preprocessorOptions: { + scss: { + // 鑷姩瀵煎叆瀹氬埗鍖栨牱寮忚繘琛屾枃浠惰鐩� + additionalData: `@use "@/style/element-plus-new.scss" as *;` + } + } + }, // https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options optimizeDeps: { include, -- Gitblit v1.9.1