From 85c54d88f139096614aea4b06f2166cae27729d7 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期五, 22 八月 2025 10:11:19 +0800 Subject: [PATCH] 用户管理 --- src/views/home/index.vue | 60 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 47 insertions(+), 13 deletions(-) diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 782c517..897cbb0 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -152,7 +152,7 @@ v-else-if="!state.accessToken" :underline="false" class="hover:cursor-pointer" - @click="toRegister" + @click="toRegister(item)" >娉ㄥ唽</el-link > <el-link @@ -161,7 +161,11 @@ class="hover:cursor-pointer" @click="toApply(item)" ><span v-if="item.name !== '璇勫涓撳'">鐢宠</span></el-link - ><span v-if="item.name !== '璇勫涓撳'" class="m-2">|</span> + ><span + v-if="!state.accessToken || item.name !== '璇勫涓撳'" + class="m-2" + >|</span + > <el-link v-if="state.rolesCode.indexOf(item.code) !== -1" :underline="false" @@ -374,18 +378,24 @@ <my-footer /> </template> -<script lang="ts" setup> +<script lang="tsx" setup> import { onMounted, ref, computed, reactive } from "vue"; import MyFooter from "./component/myFooter.vue"; import MyHeader from "./component/myHeader.vue"; import { useUserStoreHook } from "@/store/modules/user"; import { exRole } from "@/api/register/index"; import { storageLocal, isString, isIncludeAllChildren } from "@pureadmin/utils"; +import { initRouter, getTopMenu } from "@/router/utils"; import { getToken } from "@/utils/auth"; import { useRoute, useRouter } from "vue-router"; const router = useRouter(); import { useUserStore } from "@/store/modules/user"; +import { addDialog } from "@/components/ReDialog"; +import { applyRole } from "@/api/register/index"; +import { message } from "@/utils/message"; +import type { userType } from "@/store/types"; +import type { RoleItem } from "@/api/types"; const userStore = useUserStore(); @@ -398,14 +408,14 @@ /** 瑙掕壊锛堝鏋滄樀绉颁负绌哄垯鏄剧ず鐢ㄦ埛鍚嶏級 */ const getUseRoles = () => { state.userInfo = storageLocal().getItem("user-info"); - state.userInfo?.exRoles.forEach(element => { + state.userInfo?.exRoles.forEach((element: RoleItem) => { state.rolesCode.push(element.code); }); }; const state = reactive({ roleList: [], rolesCode: [], - userInfo: {}, + userInfo: {} as userType, accessToken: "" }); onMounted(() => { @@ -417,8 +427,8 @@ state.accessToken = getToken()?.accessToken; }); -const toRegister = () => { - router.push({ name: "Register" }); +const toRegister = item => { + router.push({ name: "newRegister", query: { code: item.code } }); }; // 閫�鍑� const logOut = () => { @@ -428,20 +438,44 @@ }; // 鐢宠 const toApply = item => { - router.push({ name: "RegisterNav", query: { code: item.code } }); + addDialog({ + width: "20%", + title: "纭淇℃伅", + contentRenderer: () => <p>鏄惁鐢宠涓簕item.name}锛�</p>, // jsx 璇硶 锛堟敞鎰忓湪.vue鏂囦欢鍚敤jsx璇硶锛岄渶瑕佸湪script寮�鍚痩ang="tsx"锛� + closeCallBack: ({ options, args }) => { + if (args?.command === "cancel") { + // 鎮ㄧ偣鍑讳簡鍙栨秷鎸夐挳 + } else if (args?.command === "sure") { + applyRole({ ruleCode: item.code }).then(res => { + if (res.code == 200) { + message("鐢宠鎴愬姛锛�", { type: "success" }); + } else { + message(res?.message || "鐢宠澶辫触锛�", { type: "error" }); + } + }); + } else { + } + } + }); + // router.push({ name: "RegisterNav", query: { code: item.code } }); }; // 鍘婚椤� const toWelcome = async item => { - if (useUserStoreHook().nowRole.code !== item.code) { - await useUserStoreHook().changeLogoInExRule({ + // if (useUserStoreHook().nowRole.code !== item.code) { + // 鑾峰彇鍚庣璺敱 + initRouter().then(() => { + console.log("hhhh"); + + useUserStoreHook().changeLogoInExRule({ ruleCode: item.code }); - } - router.push({ name: "Mine" }); + router.push({ name: "Welcome" }); + }); + // } }; // 鍘荤櫥褰� const toLogin = item => { - router.push({ name: "Login", query: item }); + router.push({ name: "Login" }); }; </script> -- Gitblit v1.9.1