zhangwei
2025-08-22 85c54d88f139096614aea4b06f2166cae27729d7
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,29 +427,55 @@
  state.accessToken = getToken()?.accessToken;
});
const toRegister = () => {
  router.push({ name: "Register" });
const toRegister = item => {
  router.push({ name: "newRegister", query: { code: item.code } });
};
// 退出
const logOut = () => {
  useUserStoreHook().logOut();
  state.rolesCode = [];
  state.accessToken = "";
};
// 申请
const toApply = item => {
  router.push({ name: "RegisterNav", query: { code: item.code } });
  addDialog({
    width: "20%",
    title: "确认信息",
    contentRenderer: () => <p>是否申请为{item.name}!</p>, // jsx 语法 (注意在.vue文件启用jsx语法,需要在script开启lang="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>