feat: 添加入口

This commit is contained in:
rd
2025-07-30 10:50:26 +08:00
parent 896ac9ad74
commit 9434149d60
12 changed files with 5854 additions and 61 deletions

5789
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,6 +1,7 @@
<template>
<div class="right-wrap">
<div class="relative mr-12px" @click="setUnread">
<div class="agent-entry" :class="isAgentRoute ? 'agent' : ''" @click="handleAgentClick"></div>
<div class="relative mx-16px" @click="setUnread">
<SvgIcon
name="svg-taskCenter"
size="16"
@ -86,8 +87,12 @@ import icon3 from '@/assets/change.svg';
const enterpriseStore = useEnterpriseStore();
const userStore = useUserStore();
const sideBarStore = useSidebarStore();
const route = useRoute();
const hasUnreadInfo = computed(() => sideBarStore.unreadInfo.length);
const isAgentRoute = computed(() => {
return route.meta?.isAgentRoute;
});
const exitAccountModalRef = ref(null);
const downloadCenterModalRef = ref(null);
@ -117,15 +122,13 @@ const setUnread = () => {
sideBarStore.removeTaskUnreadInfo();
}
};
const handleAgentClick = () => {
router.push({ name: isAgentRoute.value ? 'Home' : 'AgentIndex' });
};
</script>
<style scoped lang="scss">
.right-wrap {
display: flex;
padding-right: 20px;
list-style: none;
align-items: center;
}
@import './style.scss';
</style>
<style lang="scss">
.layout-avatar-dropdown,

View File

@ -0,0 +1,27 @@
.right-wrap {
display: flex;
padding-right: 20px;
list-style: none;
align-items: center;
.agent-entry {
width: 100px;
height: 32px;
background: url('@/assets/img/agent/icon-entry.png') 100% 100%;
background-size: cover;
transition: all 0.3s;
cursor: pointer;
&:hover {
background: url('@/assets/img/agent/icon-entry-hover.png') 100% 100%;
background-size: cover;
}
&.agent {
background: url('@/assets/img/agent/icon-home.png') 100% 100%;
background-size: cover;
cursor: pointer;
&:hover {
background: url('@/assets/img/agent/icon-home-hover.png') 100% 100%;
background-size: cover;
}
}
}
}

View File

@ -35,50 +35,7 @@ export const router = createRouter({
id: MENU_GROUP_IDS.WORK_BENCH_ID,
},
},
{
path: '/agent/chat',
name: 'Chat',
component: () => import('@/views/agent/chat'),
meta: {
hideSidebar: true,
requiresAuth: false,
requireLogin: true,
hideFooter: true,
id: MENU_GROUP_IDS.WORK_BENCH_ID,
},
},
{
path: '/agent/workFlow',
name: 'WorkFlow',
component: () => import('@/views/agent/work-flow'),
meta: {
hideSidebar: true,
requiresAuth: false,
requireLogin: true,
hideFooter: true,
id: MENU_GROUP_IDS.WORK_BENCH_ID,
},
},
{
path: '/permission',
name: 'permission',
component: () => import('@/views/components/permission/choose-enterprise.vue'),
meta: {
requiresAuth: false,
requireLogin: true,
},
},
// {
// path: '/auth',
// name: 'auth',
// component: () => import('@/views/components/permission/auth.vue'),
// meta: {
// requiresAuth: false,
// requireLogin: true,
// },
// },
...appRoutes,
// REDIRECT_MAIN,
NOT_FOUND_ROUTE,
],
scrollBehavior() {

View File

@ -26,8 +26,36 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requiresAuth: false,
requireLogin: true,
hideFooter: true,
isAgentRoute: true
},
},
{
path: 'chat',
name: 'AgentChat',
component: () => import('@/views/agent/chat'),
meta: {
hideSidebar: true,
requiresAuth: false,
requireLogin: true,
hideFooter: true,
id: MENU_GROUP_IDS.AGENT,
isAgentRoute: true
},
},
{
path: 'workFlow',
name: 'AgentWorkFlow',
component: () => import('@/views/agent/work-flow'),
meta: {
hideSidebar: true,
requiresAuth: false,
requireLogin: true,
hideFooter: true,
id: MENU_GROUP_IDS.AGENT,
isAgentRoute: true
},
},
}
],
},
];

View File

@ -1,7 +1,3 @@
/*
* @Author: RenXiaoDong
* @Date: 2025-06-23 06:39:28
*/
import { IconBookmark } from '@arco-design/web-vue/es/icon';
import type { AppRouteRecordRaw } from '../types';
import { MENU_GROUP_IDS } from '@/router/constants';

View File

@ -1,7 +1,3 @@
/*
* @Author: RenXiaoDong
* @Date: 2025-06-23 04:29:03
*/
import { IconBookmark } from '@arco-design/web-vue/es/icon';
import type { AppRouteRecordRaw } from '../types';
import { MENU_GROUP_IDS } from '@/router/constants';

View File

@ -14,6 +14,7 @@ declare module 'vue-router' {
noAffix?: boolean; // if set true, the tag will not affix in the tab-bar
ignoreCache?: boolean; // if set true, the page will not be cached
hideSidebar?: boolean;
isAgentRoute?:boolean;
requireLogin?: boolean; // 是否需要登陆才能访问
}
}