chore: project controller ok

This commit is contained in:
xiaojunnuo
2026-02-13 21:28:17 +08:00
parent 3f87752d1f
commit 4ee6e38a94
42 changed files with 399 additions and 198 deletions
@@ -7,9 +7,9 @@
</a-menu-item>
</a-menu>
</template>
<div class="rounded pl-3 pr-3 px-2 py-1 flex-center flex pointer items-center bg-accent h-10 button-text">
<div class="rounded pl-3 pr-3 px-2 py-1 flex-center flex pointer items-center bg-accent h-10 button-text" title="当前项目">
<fs-icon icon="ion:apps" class="mr-1"></fs-icon>
{{ projectStore.currentProject?.name || "..." }}
当前项目{{ projectStore.currentProject?.name || "..." }}
<fs-icon icon="ion:chevron-down-outline" class="ml-1"></fs-icon>
</div>
</a-dropdown>
@@ -34,8 +34,8 @@ function handleMenuClick({ key }: any) {
<style lang="less">
.project-selector {
&.button-text {
min-width: 100px;
max-width: 150px;
min-width: 150px;
max-width: 250px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
@@ -10,6 +10,7 @@ import PageFooter from "./components/footer/index.vue";
import { useRouter } from "vue-router";
import MaxKBChat from "/@/components/ai/index.vue";
import { useI18n } from "vue-i18n";
import { useProjectStore } from "../store/project";
const { t } = useI18n();
@@ -77,15 +78,13 @@ const openChat = (q: string) => {
chatBox.value.openChat({ q });
};
provide("fn:ai.open", openChat);
const projectStore = useProjectStore();
</script>
<template>
<BasicLayout @clear-preferences-and-logout="handleLogout">
<template #header-left-0>
<div class="ml-1 mr-2">
<project-selector class="flex-center header-btn" />
</div>
</template>
<template #header-left-0> </template>
<template #user-dropdown>
<UserDropdown :avatar="avatar" :menus="menus" :text="userStore.userInfo?.nickName || userStore.userInfo?.username" description="" tag-text="" @logout="handleLogout" />
</template>
@@ -93,6 +92,9 @@ provide("fn:ai.open", openChat);
<LockScreen :avatar @to-login="handleLogout" />
</template>
<template #header-right-0>
<div v-if="projectStore.isEnterprise" class="ml-1 mr-2">
<project-selector class="flex-center header-btn" />
</div>
<div class="hover:bg-accent ml-1 mr-2 cursor-pointer rounded-full hidden md:block">
<tutorial-button class="flex-center header-btn" mode="nav" />
</div>
@@ -1,6 +1,7 @@
import { useSettingStore } from "/@/store/settings";
import aboutResource from "/@/router/source/modules/about";
import i18n from "/@/locales/i18n";
import { useProjectStore } from "/@/store/project";
export const certdResources = [
{
@@ -20,7 +21,10 @@ export const certdResources = [
path: "/certd/project",
component: "/certd/project/index.vue",
meta: {
show: true,
show: () => {
const projectStore = useProjectStore();
return projectStore.isEnterprise;
},
icon: "ion:apps",
permission: "sys:settings:edit",
keepAlive: true,
@@ -210,9 +210,11 @@ const headerSlots = computed(() => {
</template>
<!-- 侧边额外区域 -->
<template #side-extra>
1111
<LayoutExtraMenu :accordion="preferences.navigation.accordion" :collapse="preferences.sidebar.extraCollapse" :menus="wrapperMenus(extraMenus)" :rounded="isMenuRounded" :theme="sidebarTheme" />
</template>
<template #side-extra-title>
234234234
<VbenLogo v-if="preferences.logo.enable" :text="preferences.app.name" :theme="theme" />
</template>