| | |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { defineComponent } from "vue"; |
| | | import { defineComponent, onMounted } from "vue"; |
| | | import { ElConfigProvider } from "element-plus"; |
| | | import { ReDialog } from "@/components/ReDialog"; |
| | | import zhCn from "element-plus/es/locale/lang/zh-cn"; |
| | |
| | | } |
| | | }); |
| | | </script> |
| | | <script lang="ts" setup> |
| | | import { onMounted } from "vue"; |
| | | import { useUserStoreHook } from "@/store/modules/user"; |
| | | onMounted(() => { |
| | | useUserStoreHook().getRoleList(); |
| | | }); |
| | | </script> |
| | |
| | | export const refreshTokenApi = (data?: object) => { |
| | | return http.request<RefreshTokenResult>("post", "/refresh-token1", { data }); |
| | | }; |
| | | |
| | | // 切换角色 |
| | | export const getChangeLogoInExRule = params => { |
| | | return http.request<LoginResult>( |
| | | "post", |
| | | baseUrlApi(`/api/auth/changeLogoInExRule/${params.ruleCode}`) |
| | | ); |
| | | }; |
| | |
| | | userAvatar, |
| | | avatarsStyle, |
| | | userRoles, |
| | | userRolesList, |
| | | changRole, |
| | | toggleSideBar |
| | | } = useNav(); |
| | | </script> |
| | |
| | | </span> |
| | | <template #dropdown> |
| | | <el-dropdown-menu class="logout"> |
| | | <el-dropdown-item |
| | | v-for="item in userRolesList" |
| | | :key="item.code" |
| | | @click="changRole(item)" |
| | | > |
| | | {{ item.name }} |
| | | </el-dropdown-item> |
| | | <el-dropdown-item @click="logout"> |
| | | <IconifyIconOffline |
| | | <!-- <IconifyIconOffline |
| | | :icon="LogoutCircleRLine" |
| | | style="margin: 5px" |
| | | /> |
| | | /> --> |
| | | 退出系统 |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | |
| | | :key="item.path" |
| | | class="inline! items-stretch!" |
| | | > |
| | | <a @click.prevent="handleLink(item)"> |
| | | {{ item.meta.title }} |
| | | </a> |
| | | <a @click.prevent="handleLink(item)"> {{ item.meta.title }} </a> |
| | | </el-breadcrumb-item> |
| | | </transition-group> |
| | | </el-breadcrumb> |
| | |
| | | > |
| | | <li v-if="item.show" @click="selectTag(key, item)"> |
| | | <IconifyIconOffline :icon="item.icon" /> |
| | | {{ item.text }} |
| | | {{ item.text }}11 |
| | | </li> |
| | | </div> |
| | | </ul> |
| | |
| | | import { getConfig } from "@/config"; |
| | | import { emitter } from "@/utils/mitt"; |
| | | import Avatar from "@/assets/user.jpg"; |
| | | import { getTopMenu } from "@/router/utils"; |
| | | import { initRouter, getTopMenu, handleAliveRoute } from "@/router/utils"; |
| | | import { useFullscreen } from "@vueuse/core"; |
| | | import type { routeMetaType } from "../types"; |
| | | import { useRouter, useRoute } from "vue-router"; |
| | |
| | | import { usePermissionStoreHook } from "@/store/modules/permission"; |
| | | import ExitFullscreen from "~icons/ri/fullscreen-exit-fill"; |
| | | import Fullscreen from "~icons/ri/fullscreen-fill"; |
| | | import { unref } from "vue"; |
| | | |
| | | const errorInfo = |
| | | "The current routing configuration is incorrect, please check the configuration"; |
| | |
| | | |
| | | /** 角色 */ |
| | | const userRoles = computed(() => { |
| | | return useUserStoreHook()?.exRoles[0]; |
| | | return useUserStoreHook()?.nowRole; |
| | | }); |
| | | |
| | | /** 角色 */ |
| | | const userRolesList = computed(() => { |
| | | return useUserStoreHook()?.exRoles ?? []; |
| | | }); |
| | | |
| | | const avatarsStyle = computed(() => { |
| | |
| | | if (Title) document.title = `${meta.title} | ${Title}`; |
| | | else document.title = meta.title; |
| | | } |
| | | |
| | | /** 刷新路由 */ |
| | | function onFresh() { |
| | | const { fullPath, query } = unref(route); |
| | | router.replace({ |
| | | path: "/redirect" + fullPath, |
| | | query |
| | | }); |
| | | handleAliveRoute(route as ToRouteType, "refresh"); |
| | | } |
| | | /** 切换角色 */ |
| | | const changRole = item => { |
| | | useUserStoreHook() |
| | | .changeLogoInExRule({ |
| | | ruleCode: item.code |
| | | }) |
| | | .then(res => { |
| | | if (res.code == 200) { |
| | | // 获取后端路由 |
| | | initRouter(); |
| | | onFresh(); |
| | | } |
| | | }); |
| | | }; |
| | | /** 退出登录 */ |
| | | function logout() { |
| | | useUserStoreHook().logOut(); |
| | |
| | | pureApp, |
| | | username, |
| | | userRoles, |
| | | userRolesList, |
| | | userAvatar, |
| | | avatarsStyle, |
| | | tooltipEffect |
| | | tooltipEffect, |
| | | changRole |
| | | }; |
| | | } |
| | |
| | | getCurrentInstance |
| | | } from "vue"; |
| | | import type { tagsViewsType } from "../types"; |
| | | import { useUserStoreHook } from "@/store/modules/user"; |
| | | import { useRoute, useRouter } from "vue-router"; |
| | | import { responsiveStorageNameSpace } from "@/config"; |
| | | import { useSettingStoreHook } from "@/store/modules/settings"; |
| | |
| | | // 当前右键选中的路由信息 |
| | | const currentSelect = ref({}); |
| | | const isScrolling = ref(false); |
| | | const hasFlash = useUserStoreHook()?.nowRole.hasFlsh; |
| | | |
| | | /** 显示模式,默认灵动模式 */ |
| | | const showModel = ref( |
| | |
| | | } else { |
| | | if (to.path !== "/login") { |
| | | if (whiteList.indexOf(to.path) !== -1) { |
| | | console.log(to.path, "====1", noLoginList.indexOf(to.path)); |
| | | next(); |
| | | } else { |
| | | // if (noLoginList.indexOf(to.path) == -1) { |
| | |
| | | redirect: "/error/403", |
| | | meta: { |
| | | icon: "ri/information-line", |
| | | // showLink: false, |
| | | showLink: false, |
| | | title: "异常页面", |
| | | rank: 9 |
| | | }, |
| | |
| | | // redirect: "/error/403", |
| | | meta: { |
| | | icon: "ri/information-line", |
| | | // showLink: false, |
| | | // showLink: hasFlash, |
| | | title: "项目管理", |
| | | rank: 9 |
| | | } |
| | |
| | | type LoginResult, |
| | | type RefreshTokenResult, |
| | | getLogin, |
| | | refreshTokenApi |
| | | refreshTokenApi, |
| | | getChangeLogoInExRule |
| | | } from "@/api/user"; |
| | | import { useMultiTagsStoreHook } from "./multiTags"; |
| | | import { |
| | | type DataInfo, |
| | | setToken, |
| | | setRoleListInfo, |
| | | setNowRole, |
| | | removeToken, |
| | | userKey, |
| | | setEnterpriseInfo |
| | | } from "@/utils/auth"; |
| | | import { exRole } from "@/api/register/index"; |
| | | import { cusExtendInfo } from "@/api/mine"; |
| | | |
| | | export const useUserStore = defineStore("pure-user", { |
| | |
| | | loginDay: 1, |
| | | // 企业资料 |
| | | enterpriseInfo: |
| | | storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {} |
| | | storageLocal().getItem<DataInfo<number>>("enterpriseInfo") ?? {}, |
| | | nowRole: storageLocal().getItem<DataInfo<number>>("nowRole") ?? {}, |
| | | rolesList: storageLocal().getItem<DataInfo<number>>("rolesList") ?? [], |
| | | isFlsh: storageLocal().getItem<DataInfo<number>>("isFlsh") ?? false |
| | | }), |
| | | actions: { |
| | | /** 存储头像 */ |
| | |
| | | SET_NICKNAME(nickname: string) { |
| | | this.nickname = nickname; |
| | | }, |
| | | /** 存储角色 */ |
| | | /** 存储用户角色 */ |
| | | SET_ROLES(exRoles: Array<string>) { |
| | | this.exRoles = exRoles; |
| | | }, |
| | | /** 存储角色当前角色 */ |
| | | SET_NOW_ROLE(nowRole: object) { |
| | | this.nowRole = nowRole; |
| | | }, |
| | | /** 存储角色列表 */ |
| | | SET_ROLES_LIST(rolesList: Array<string>) { |
| | | this.rolesList = rolesList; |
| | | }, |
| | | /** 当前角色是否审核 */ |
| | | SET_IS_FLSH(isFlsh: boolean | string) { |
| | | this.isFlsh = isFlsh; |
| | | }, |
| | | /** 存储按钮级别权限 */ |
| | | SET_PERMS(permissions: Array<string>) { |
| | |
| | | this.loginDay = Number(value); |
| | | }, |
| | | /** 登入 */ |
| | | async loginByUsername(data) { |
| | | async loginByUsername(obj) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | getLogin(data) |
| | | getLogin(obj) |
| | | .then(data => { |
| | | if (data?.code == 200) setToken(data.result); |
| | | if (data?.code == 200) { |
| | | setToken(data.result); |
| | | this.getNowRole(obj.exRuleCode); |
| | | } |
| | | resolve(data); |
| | | }) |
| | | .catch(error => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | /** 获取角色列表 */ |
| | | async getRoleList() { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | exRole() |
| | | .then(data => { |
| | | if (data?.code == 200) { |
| | | setRoleListInfo(data.result); |
| | | if (this.nowRole.code) { |
| | | this.getNowRole(this.nowRole.code); |
| | | } |
| | | } |
| | | resolve(data); |
| | | }) |
| | | .catch(error => { |
| | | reject(error); |
| | | }); |
| | | }); |
| | | }, |
| | | /** 获取当前角色 */ |
| | | async getNowRole(code) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | const data = this.rolesList.find(item => { |
| | | return item.code == code; |
| | | }); |
| | | setNowRole(data); |
| | | resolve(data); |
| | | }); |
| | | }, |
| | | /** 切换角色 */ |
| | | async changeLogoInExRule(obj) { |
| | | return new Promise<LoginResult>((resolve, reject) => { |
| | | getChangeLogoInExRule(obj) |
| | | .then(data => { |
| | | if (data?.code == 200) { |
| | | setToken(data.result); |
| | | this.getNowRole(obj.ruleCode); |
| | | this.getCusExtendInfo(); |
| | | } |
| | | resolve(data); |
| | | }) |
| | | .catch(error => { |
| | |
| | | /** 前端登出(不调用接口) */ |
| | | logOut() { |
| | | this.username = ""; |
| | | this.exRoles = []; |
| | | this.permissions = []; |
| | | removeToken(); |
| | | useMultiTagsStoreHook().handleTags("equal", [...routerArrays]); |
| | | resetRouter(); |
| | | if (this.exRoles && this.exRoles.length == 1) { |
| | | router.push({ name: "Login", query: this.exRoles[0] }); |
| | | } else { |
| | | router.push({ name: "Login" }); |
| | | } |
| | | removeToken(); |
| | | this.exRoles = []; |
| | | router.push("/index"); |
| | | }, |
| | | /** 刷新`token` */ |
| | | async handRefreshToken(data) { |
| | |
| | | isRemembered?: boolean; |
| | | loginDay?: number; |
| | | enterpriseInfo: object; |
| | | nowRole: object; |
| | | rolesList: object; |
| | | }; |
| | |
| | | obj.username = data.enterpriseName; |
| | | storageLocal().setItem(userKey, obj); |
| | | } |
| | | |
| | | export function setRoleListInfo(data: DataInfo<Date>) { |
| | | useUserStoreHook().SET_ROLES_LIST(data); |
| | | storageLocal().setItem("rolesList", data); |
| | | } |
| | | |
| | | export function setNowRole(data: DataInfo<Date>) { |
| | | const list = storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? []; |
| | | if (list.length > 0) { |
| | | const obj = list.find(item => { |
| | | return item.code == data.code; |
| | | }); |
| | | data = { ...obj, ...data }; |
| | | } |
| | | useUserStoreHook().SET_NOW_ROLE(data); |
| | | storageLocal().setItem("nowRole", data); |
| | | } |
| | | |
| | | export function removeEnterpriseInfo() { |
| | | storageLocal().removeItem("enterpriseInfo"); |
| | | } |
| | |
| | | v-else |
| | | :underline="false" |
| | | class="hover:cursor-pointer" |
| | | @click="toApply" |
| | | @click="toApply(item)" |
| | | ><span v-if="item.name !== '评审专家'">申请</span></el-link |
| | | ><span v-if="item.name !== '评审专家'" class="m-2">|</span> |
| | | <el-link |
| | |
| | | accessToken: "" |
| | | }); |
| | | onMounted(() => { |
| | | exRole().then(res => { |
| | | state.roleList = res.result; |
| | | }); |
| | | // exRole().then(res => { |
| | | // state.roleList = res.result; |
| | | // }); |
| | | state.roleList = useUserStoreHook().rolesList; |
| | | getUseRoles(); |
| | | state.accessToken = getToken()?.accessToken; |
| | | }); |
| | |
| | | useUserStoreHook().logOut(); |
| | | }; |
| | | // 申请 |
| | | const toApply = () => {}; |
| | | const toApply = item => { |
| | | router.push({ name: "RegisterNav", query: { code: item.code } }); |
| | | }; |
| | | // 去首页 |
| | | const toWelcome = item => { |
| | | let role = state.userInfo?.exRoles.find(ele => { |
| | | return item.code == ele.code; |
| | | const toWelcome = async item => { |
| | | if (useUserStoreHook().nowRole.code !== item.code) { |
| | | await useUserStoreHook().changeLogoInExRule({ |
| | | ruleCode: item.code |
| | | }); |
| | | console.log(role); |
| | | if (role.hasFlsh) { |
| | | return router.push({ name: "Welcome" }); |
| | | } |
| | | router.push({ name: "RegisterNav", query: { code: role.code } }); |
| | | router.push({ name: "Mine" }); |
| | | }; |
| | | // 去登录 |
| | | const toLogin = item => { |
| | |
| | | if (res.code == 200) { |
| | | // 获取后端路由 |
| | | return initRouter().then(() => { |
| | | if (!res.result.exRoles[0].hasFlsh) { |
| | | if (res.result.exRoles.length == 0) { |
| | | disabled.value = true; |
| | | router |
| | | .replace({ |
| | | name: "RegisterNav", |
| | | query: { code: res.result.exRoles[0].code } |
| | | query: { code: state.ruleForm.exRoleCode } |
| | | }) |
| | | .then(() => { |
| | | message("登录成功", { type: "success" }); |
| | | }) |
| | | .finally(() => (disabled.value = false)); |
| | | } else if (res.result.exRoles.length > 0) { |
| | | let data = res.result.exRoles.find(item => { |
| | | return item.code == state.ruleForm.exRoleCode; |
| | | }); |
| | | console.log(data, "------------"); |
| | | |
| | | if (!data) { |
| | | router.replace({ |
| | | name: "RegisterNav", |
| | | query: { code: state.ruleForm.exRoleCode } |
| | | }); |
| | | } else if (data?.hasFlsh) { |
| | | router.replace("index"); |
| | | } else { |
| | | router.replace("welcome"); |
| | | router.replace("mine"); |
| | | } |
| | | } |
| | | useUserStoreHook().getCusExtendInfo(); |
| | | }); |
| | |
| | | const ruleFormRef = ref<FormInstance>(); |
| | | const isLoading = ref(false); |
| | | const showDialog = ref(false); |
| | | const nowRole = ref({}); |
| | | const state = reactive({ |
| | | userInfo: useUserStoreHook().enterpriseInfo, |
| | | headers: { |
| | |
| | | showDialog: false |
| | | }); |
| | | onMounted(async () => { |
| | | // let res = await useUserStoreHook().getCusExtendInfo(); |
| | | // if (res.code == 200) { |
| | | // state.userInfo = res.result; |
| | | // state.userInfo.enterpriseTypeName = res.result.enterpriseType; |
| | | // state.ruleForm = res.result; |
| | | // state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); |
| | | // } else { |
| | | // message(res.message, { |
| | | // type: "error" |
| | | // }); |
| | | // } |
| | | state.ruleForm = cloneDeep(state.userInfo); |
| | | console.log(state.userInfo); |
| | | |
| | | state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); |
| | | let nowRole = useUserStoreHook()?.exRoles; |
| | | if (nowRole.length >= 1 && !route.query.code) { |
| | | state.ruleForm.transactionCode = nowRole[0].code; |
| | | state.userInfo.transactionName = nowRole[0].name; |
| | | nowRole.value = useUserStoreHook()?.nowRole; |
| | | console.log(nowRole.value); |
| | | if (nowRole.value) { |
| | | state.ruleForm.transactionCode = nowRole.value.code; |
| | | state.userInfo.transactionName = nowRole.value.name; |
| | | } else { |
| | | state.ruleForm.transactionCode = route.query.code; |
| | | state.userInfo.enterpriseTypeName = route.query.name; |
| | |
| | | </script> |
| | | |
| | | <template> |
| | | <el-descriptions class="margin-top" title="" :column="3" :size="size" border> |
| | | <div> |
| | | <el-descriptions class="margin-top" title="" :column="3" border> |
| | | <!-- <template #extra> |
| | | <el-button type="primary">Operation</el-button> |
| | | </template> --> |
| | |
| | | <div class="cell-item">交易主体</div> |
| | | </template> |
| | | {{ state.userInfo.transactionName }} |
| | | <el-tag v-if="!nowRole.hasFlsh" type="danger">资料审核中 </el-tag> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <template #label> |
| | |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss"> |
| | |
| | | import { cloneDeep } from "@pureadmin/utils"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import { useRoute, useRouter } from "vue-router"; |
| | | import { cusExtendInfo, changeCusExtend } from "@/api/mine"; |
| | | import { changeCusExtend } from "@/api/mine"; |
| | | |
| | | const router = useRouter(); |
| | | const { route } = useNav(); |
| | |
| | | // type: "error" |
| | | // }); |
| | | // } |
| | | |
| | | let nowRole = useUserStoreHook()?.nowRole; |
| | | console.log(nowRole); |
| | | state.ruleForm.transactionCode = route.query.code; |
| | | if (nowRole?.code == useUserStoreHook().enterpriseInfo.transactionCode) { |
| | | state.ruleForm = cloneDeep(useUserStoreHook().enterpriseInfo); |
| | | state.ruleForm.enterpriseType = state.ruleForm.enterpriseType.split(","); |
| | | if (state.ruleForm.enterpriseType) { |
| | | isFirst.value = false; |
| | | } |
| | | let nowRole = useUserStoreHook()?.exRoles; |
| | | if (nowRole.length >= 1 && !route.query.code) { |
| | | state.ruleForm.transactionCode = nowRole[0].code; |
| | | } else { |
| | | state.ruleForm.transactionCode = route.query.code; |
| | | } |
| | | |
| | | let resTypes = await enterpriseTypes(); |
| | | state.enterpriseList = resTypes?.result; |
| | | }); |
| | |
| | | ? await createrExRolsInformation(obj) |
| | | : await changeCusExtend(obj); |
| | | if (res.code == "200") { |
| | | await useUserStoreHook().changeLogoInExRule({ |
| | | ruleCode: state.ruleForm.transactionCode |
| | | }); |
| | | await useUserStoreHook().getCusExtendInfo(); |
| | | active.value = 3; |
| | | } else { |