From 85428f0bf3bbf08d65200cffc38dd1e96af34da6 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期一, 07 七月 2025 22:25:17 +0800
Subject: [PATCH] '-'

---
 src/views/home/index.vue |  298 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 177 insertions(+), 121 deletions(-)

diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 041ec08..b59bcc4 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -1,3 +1,4 @@
+el
 <template>
   <div class="header">
     <img width="227px" height="74px" src="@/assets/home/logo.png" alt="" />
@@ -41,64 +42,71 @@
       </div>
     </div>
     <div class="right">
-      <el-tabs v-model="activeName" class="demo-tabs">
+      <!-- <el-tabs v-model="activeName" class="demo-tabs">
         <el-tab-pane label="鎰忓悜鍏紑" name="first">
-          鎰忓悜鍏紑
-          <!-- <div class="item">
-            <span
-              ><span style="color: #145ccd; font-weight: 600">路</span
-              >銆愬洓宸濈渷鎴愰兘甯傘��2024骞寸煶鐩樿閬撲粯瀹剁鏉戠伯娌逛骇涓氬洯鍖哄強閰嶅鍩虹璁炬柦寤鸿椤圭洰纾嬪晢鍏憡</span
-            >
-            <span>2024-04-15 18:10</span>
-          </div>
-          <div class="item">
-            <span
-              ><span style="color: #145ccd; font-weight: 600">路</span
-              >銆愬洓宸濈渷鎴愰兘甯傘�戠唺鐚胺娓稿涓績灞�閮ㄦ敼閫犻」鐩鍟嗗叕鍛�</span
-            >
-            <span>2024-04-15 18:10</span>
-          </div>
-          <div class="item">
-            <span
-              ><span style="color: #145ccd; font-weight: 600">路</span
-              >銆愬洓宸濈渷鎴愰兘甯傘�戜腹鏅閬撴皯婀栫ぞ鍖虹孩鐧藉枩浜嬫湇鍔″満鎵�纾嬪晢鍏憡</span
-            >
-            <span>2024-04-15 18:10</span>
-          </div>
-          <div class="item">
-            <span
-              ><span style="color: #145ccd; font-weight: 600">路</span
-              >銆愬洓宸濈渷鎴愰兘甯傘�戞垚閮戒笢閮ㄦ柊鍖轰笁宀旀箹楂樼骇涓浣撹壓涓績鍓嶄复鏃跺仠杞﹀尯鍜屾鏍¢棬涓や晶闂ㄥ崼瀹ら棿鍖哄煙榛戝寲鍙婃帓姘存彁鍗囪В闄ゅ唴娑濋」鐩鍟嗗叕鍛�</span
-            >
-            <span>2024-04-15 18:10</span>
-          </div>
-          <div class="item">
-            <span
-              ><span style="color: #145ccd; font-weight: 600">路</span
-              >銆愬洓宸濈渷鎴愰兘甯傘�戝洓宸濈渷鎴愰兘鎴掓瘨搴峰鎵�鐥呮畫鎴掓瘨浜哄憳搴峰娲诲姩涓績缁翠慨鏀归�犻」鐩浜屾纾嬪晢鍏憡</span
-            >
-            <span>2024-04-15 18:10</span>
-          </div>
-          <div class="item">
-            <span
-              ><span style="color: #145ccd; font-weight: 600">路</span
-              >銆愬洓宸濈渷鎴愰兘甯傘�戣�佸共閮ㄦ椿鍔ㄤ腑蹇冭淇敼閫犻」鐩鍟嗗叕鍛�</span
-            >
-            <span>2024-04-15 18:10</span>
-          </div>
-          <div class="item">
-            <span
-              ><span style="color: #145ccd; font-weight: 600">路</span
-              >銆愬洓宸濈渷鎴愰兘甯傘�戦噾鐗涘尯鎶㈤櫓鏁戠伨宸ョ▼椤圭洰宸ョ▼闃熶紞鍌ㄥ搴擄紙鎴垮缓銆佸競鏀跨被锛夋嫑鏍囧叕鍛�</span
-            >
-            <span>2024-04-15 18:10</span>
-          </div> -->
-        </el-tab-pane>
+          鎰忓悜鍏紑 -->
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘��2024骞寸煶鐩樿閬撲粯瀹剁鏉戠伯娌逛骇涓氬洯鍖哄強閰嶅鍩虹璁炬柦寤鸿椤圭洰纾嬪晢鍏憡</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘�戠唺鐚胺娓稿涓績灞�閮ㄦ敼閫犻」鐩鍟嗗叕鍛�</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘�戜腹鏅閬撴皯婀栫ぞ鍖虹孩鐧藉枩浜嬫湇鍔″満鎵�纾嬪晢鍏憡</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘�戞垚閮戒笢閮ㄦ柊鍖轰笁宀旀箹楂樼骇涓浣撹壓涓績鍓嶄复鏃跺仠杞﹀尯鍜屾鏍¢棬涓や晶闂ㄥ崼瀹ら棿鍖哄煙榛戝寲鍙婃帓姘存彁鍗囪В闄ゅ唴娑濋」鐩鍟嗗叕鍛�</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘�戝洓宸濈渷鎴愰兘鎴掓瘨搴峰鎵�鐥呮畫鎴掓瘨浜哄憳搴峰娲诲姩涓績缁翠慨鏀归�犻」鐩浜屾纾嬪晢鍏憡</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘�戣�佸共閮ㄦ椿鍔ㄤ腑蹇冭淇敼閫犻」鐩鍟嗗叕鍛�</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘�戦噾鐗涘尯鎶㈤櫓鏁戠伨宸ョ▼椤圭洰宸ョ▼闃熶紞鍌ㄥ搴擄紙鎴垮缓銆佸競鏀跨被锛夋嫑鏍囧叕鍛�</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <div class="item">
+        <span
+          ><span style="color: #145ccd; font-weight: 600">路</span
+          >銆愬洓宸濈渷鎴愰兘甯傘�戦噾鐗涘尯鎶㈤櫓鏁戠伨宸ョ▼椤圭洰宸ョ▼闃熶紞鍌ㄥ搴擄紙鎴垮缓銆佸競鏀跨被锛夋嫑鏍囧叕鍛�</span
+        >
+        <span>2024-04-15 18:10</span>
+      </div>
+      <!-- </el-tab-pane>
         <el-tab-pane label="宸ョ▼鎷涙爣" name="second">宸ョ▼鎷涙爣</el-tab-pane>
         <el-tab-pane label="璐х墿鎷涙爣" name="third">璐х墿鎷涙爣</el-tab-pane>
         <el-tab-pane label="鏈嶅姟鎷涙爣" name="fourth">鏈嶅姟鎷涙爣</el-tab-pane>
-        <el-tab-pane label="缃戜笂绔炰环" name="fourth">缃戜笂绔炰环</el-tab-pane>
-      </el-tabs>
+        <el-tab-pane label="缃戜笂绔炰环" name="fourth1">缃戜笂绔炰环</el-tab-pane>
+      </el-tabs> -->
     </div>
   </div>
   <div class="daixie">
@@ -140,7 +148,7 @@
   <div class="user">
     <div class="all">
       <div class="left">
-        <div class="item item1">
+        <div v-for="item in state.roleList" :key="item.id" class="item item1">
           <div class="box">
             <img
               width="18px"
@@ -148,65 +156,51 @@
               src="@/assets/home/car1.png"
               alt=""
             />
-            閲囪喘浜�
+            {{ item.name }}
           </div>
           <div>
-            <span class="hover:cursor-pointer" @click="toRegister">娉ㄥ唽</span
-            ><span class="m-2">|</span
-            ><span class="hover:cursor-pointer" @click="toLogin">鐧诲綍</span>
-          </div>
-        </div>
-        <div class="item">
-          <div class="box">
-            <img
-              width="18px"
-              height="18px"
-              src="@/assets/home/car.png"
-              alt=""
-            />
-            浠g悊鏈烘瀯
-          </div>
-          <div>
-            <span class="hover:cursor-pointer" @click="toRegister">娉ㄥ唽</span
-            ><span class="m-2">|</span
-            ><span class="hover:cursor-pointer" @click="toLogin">鐧诲綍</span>
-          </div>
-        </div>
-        <div class="item">
-          <div class="box">
-            <img
-              width="18px"
-              height="18px"
-              src="@/assets/home/car.png"
-              alt=""
-            />渚涘簲鍟�
-          </div>
-          <div>
-            <span class="hover:cursor-pointer" @click="toRegister">娉ㄥ唽</span
-            ><span class="m-2">|</span
-            ><span class="hover:cursor-pointer" @click="toLogin">鐧诲綍</span>
-          </div>
-        </div>
-        <div class="item">
-          <div class="box">
-            <img
-              width="18px"
-              height="18px"
-              src="@/assets/home/car.png"
-              alt=""
-            />璇勫涓撳
-          </div>
-          <div>
-            <span class="hover:cursor-pointer" @click="toRegister">娉ㄥ唽</span
-            ><span class="m-2">|</span
-            ><span class="hover:cursor-pointer" @click="toLogin">鐧诲綍</span>
+            <el-link
+              v-if="state.rolesCode.indexOf(item.code) !== -1"
+              :underline="false"
+              class="hover:cursor-pointer"
+              @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="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(item)"
+              >杩涘叆</el-link
+            >
+            <el-link
+              v-else
+              :underline="false"
+              class="hover:cursor-pointer"
+              :disabled="!!state.accessToken"
+              @click="toLogin(item)"
+              >鐧诲綍</el-link
+            >
           </div>
         </div>
       </div>
       <div class="right" />
     </div>
   </div>
-
   <div class="more">
     <div class="content">
       <div class="item">
@@ -399,19 +393,64 @@
 </template>
 
 <script lang="ts" setup>
-import { ref } from "vue";
+import { onMounted, ref, computed, reactive } from "vue";
 import myFooter from "./component/myFooter.vue";
-let activeName = ref("first");
+import { useUserStoreHook } from "@/store/modules/user";
+import { exRole } from "@/api/register/index.ts";
+import { storageLocal, isString, isIncludeAllChildren } from "@pureadmin/utils";
+
+import { getToken } from "@/utils/auth";
 import { useRoute, useRouter } from "vue-router";
-defineOptions({
-  name: "Home"
-});
 const router = useRouter();
+
+defineOptions({
+  name: "Main"
+});
+let activeName = ref("first");
+/** 瑙掕壊锛堝鏋滄樀绉颁负绌哄垯鏄剧ず鐢ㄦ埛鍚嶏級 */
+const getUseRoles = () => {
+  state.userInfo = storageLocal().getItem("user-info");
+  state.userInfo?.exRoles.forEach(element => {
+    state.rolesCode.push(element.code);
+  });
+};
+const state = reactive({
+  roleList: [],
+  rolesCode: [],
+  userInfo: {},
+  accessToken: ""
+});
+onMounted(() => {
+  exRole().then(res => {
+    state.roleList = res.result;
+  });
+  getUseRoles();
+  state.accessToken = getToken()?.accessToken;
+});
+
 const toRegister = () => {
   router.push({ name: "Register" });
 };
-const toLogin = () => {
-  router.push({ name: "Login" });
+// 閫�鍑�
+const logOut = () => {
+  useUserStoreHook().logOut();
+};
+// 鐢宠
+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>
 
@@ -552,9 +591,12 @@
         justify-content: space-between;
         align-items: center;
         padding: 0 30px;
-        height: 25%;
+        height: 23%;
         text-align: left;
         color: #5f5f5f;
+        // box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
+        border-radius: 6px;
+        margin-bottom: 10px;
         .box {
           display: flex;
           justify-content: center;
@@ -569,13 +611,13 @@
         color: #ffffff;
       }
     }
-    .left :first-child {
-      border-top-left-radius: 8px;
-      border-top-right-radius: 8px;
-    }
-    .left *:not(:first-child):not(:last-child) {
-      border-bottom: #c6c6c6 1px solid;
-    }
+    // .left :first-child {
+    //   border-top-left-radius: 8px;
+    //   border-top-right-radius: 8px;
+    // }
+    // .left *:not(:first-child):not(:last-child) {
+    //   border-bottom: #c6c6c6 1px solid;
+    // }
     .right {
       background: #a9b3c4;
       width: 75%;
@@ -721,4 +763,18 @@
     border-radius: 4px;
   }
 }
+a {
+  font-size: 16px;
+
+  // font-weight: 600;
+  color: #fff;
+}
+a:hover,
+a:active {
+  color: #fff;
+}
+.el-link.is-disabled {
+  color: #a8abb2;
+  cursor: not-allowed;
+}
 </style>

--
Gitblit v1.9.1