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