Merge remote-tracking branch 'origin/main' into feature/v1.3_主agent_rxd

# Conflicts:
#	pnpm-lock.yaml
#	vite.config.ts
This commit is contained in:
rd
2025-08-14 15:08:52 +08:00
171 changed files with 12742 additions and 1264 deletions

View File

@ -1,20 +0,0 @@
/*
* @Author: RenXiaoDong
* @Date: 2025-06-19 01:45:53
*/
import { appRoutes } from '../routes';
const mixinRoutes = [...appRoutes];
const appClientMenus = mixinRoutes.map((el) => {
const { name, path, meta, redirect, children } = el;
return {
name,
path,
meta,
redirect,
children,
};
});
export default mixinRoutes;

View File

@ -23,8 +23,10 @@ export const DEFAULT_ROUTE = {
export const MENU_GROUP_IDS = {
DATA_ENGINE_ID: 1, // 全域数据分析
MANAGEMENT_ID: -1, // 管理中心
PROPERTY_ID: 10, // 资产营销平台
WORK_BENCH_ID: -99, // 工作
AGENT: 2, // 智能体
AGENT: 2,
MANAGEMENT_ID: 3, // 管理中心
PROPERTY_ID: 4, // 资产营销平
WORK_BENCH_ID: 5, // 工作台
WRITER_CREATIVE_GENERATION_WORKSHOP_ID: 6, // 内容稿件-写手侧
CREATIVE_GENERATION_WORKSHOP_ID: 7 // 创意生成工坊
};

View File

@ -4,7 +4,6 @@
*/
import { createRouter, createWebHistory } from 'vue-router';
import { appRoutes } from './routes';
import { NOT_FOUND_ROUTE } from './routes/base';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { MENU_GROUP_IDS } from './constants';
@ -18,7 +17,7 @@ export const router = createRouter({
{
path: '/login',
name: 'UserLogin',
component: () => import('@/views/components/login'),
component: () => import('@/views/components/login/index.vue'),
meta: {
requiresAuth: false,
requireLogin: false,
@ -27,7 +26,7 @@ export const router = createRouter({
{
path: '/',
name: 'Home',
component: () => import('@/views/components/workplace'),
component: () => import('@/views/components/workplace/index.vue'),
meta: {
hideSidebar: true,
requiresAuth: false,
@ -35,8 +34,18 @@ export const router = createRouter({
id: MENU_GROUP_IDS.WORK_BENCH_ID,
},
},
...appRoutes,
NOT_FOUND_ROUTE,
{
path: '/:pathMatch(.*)*',
name: 'notFound',
component: () => import('@/layouts/NotFound.vue'),
meta: {
requiresAuth: false,
hideInMenu: true,
hideSidebar: true,
},
},
],
scrollBehavior() {
return { top: 0 };

View File

@ -1,35 +0,0 @@
import type { RouteRecordRaw } from 'vue-router';
import { REDIRECT_ROUTE_NAME } from '@/router/constants';
// export const REDIRECT_MAIN: RouteRecordRaw = {
// path: '/redirect',
// name: 'redirect',
// meta: {
// requiresAuth: false,
// requireLogin: false,
// hideInMenu: true,
// },
// children: [
// {
// path: '/redirect/:path',
// name: REDIRECT_ROUTE_NAME,
// component: () => import('@/layouts/Basic.vue'),
// meta: {
// requiresAuth: false,
// requireLogin: false,
// hideInMenu: true,
// },
// },
// ],
// };
export const NOT_FOUND_ROUTE: RouteRecordRaw = {
path: '/:pathMatch(.*)*',
name: 'notFound',
component: () => import('@/layouts/NotFound.vue'),
meta: {
requiresAuth: false,
hideInMenu: true,
hideSidebar: true,
},
};

View File

@ -0,0 +1,138 @@
import type { AppRouteRecordRaw } from '../types';
import { MENU_GROUP_IDS } from '@/router/constants';
import IconContentManuscript from '@/assets/svg/svg-contentManuscript.svg';
const COMPONENTS: AppRouteRecordRaw[] = [
{
path: '/manuscript',
name: 'Manuscript',
redirect: 'manuscript/list',
meta: {
locale: '内容稿件',
icon: IconContentManuscript,
requiresAuth: true,
requireLogin: true,
roles: ['*'],
id: MENU_GROUP_IDS.CREATIVE_GENERATION_WORKSHOP_ID,
},
children: [
{
path: 'list',
name: 'ManuscriptList',
meta: {
locale: '内容稿件列表',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/creative-generation-workshop/manuscript/list/index.vue'),
},
{
path: 'upload',
name: 'ManuscriptUpload',
meta: {
locale: '稿件上传',
requiresAuth: true,
requireLogin: true,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'ManuscriptList',
},
component: () => import('@/views/creative-generation-workshop/manuscript/upload/index.vue'),
},
{
path: 'edit/:id',
name: 'ManuscriptEdit',
meta: {
locale: '账号详情',
requiresAuth: true,
requireLogin: true,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'ManuscriptList',
},
component: () => import('@/views/creative-generation-workshop/manuscript/edit/index.vue'),
},
{
path: 'detail/:id',
name: 'ManuscriptDetail',
meta: {
locale: '稿件详情',
requiresAuth: true,
requireLogin: true,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'ManuscriptList',
},
component: () => import('@/views/creative-generation-workshop/manuscript/detail/index.vue'),
},
{
path: 'check-list',
name: 'ManuscriptCheckList',
meta: {
locale: '内容稿件审核',
requiresAuth: true,
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/creative-generation-workshop/manuscript/check-list/index.vue'),
},
{
path: 'check-list/detail/:id',
name: 'ManuscriptCheckListDetail',
meta: {
locale: '内容稿件审核详情',
requiresAuth: true,
requireLogin: true,
hideFooter: true,
hideInMenu: true,
roles: ['*'],
activeMenu: 'ManuscriptCheckList',
},
component: () => import('@/views/creative-generation-workshop/manuscript/detail/index.vue'),
},
{
path: 'check',
name: 'ManuscriptCheck',
meta: {
locale: '稿件审核',
requiresAuth: true,
requireLogin: true,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'ManuscriptCheckList',
},
component: () => import('@/views/creative-generation-workshop/manuscript/check/index.vue'),
},
],
},
{
path: '/explore/list/:shareCode',
name: 'ExploreList',
meta: {
locale: '分享链接列表',
requiresAuth: false,
requireLogin: false,
roles: ['*'],
},
component: () => import('@/views/creative-generation-workshop/explore/list/index.vue'),
},
{
path: '/explore/detail/:shareCode/:id',
name: 'ExploreDetail',
meta: {
locale: '分享链接详情',
requiresAuth: false,
requireLogin: false,
roles: ['*'],
},
component: () => import('@/views/creative-generation-workshop/explore/detail/index.vue'),
},
];
export default COMPONENTS;

View File

@ -19,7 +19,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
{
path: 'person',
name: 'ManagementPerson',
component: () => import('@/views/components/management/person'),
component: () => import('@/views/components/management/person/index.vue'),
meta: {
locale: '个人信息',
requiresAuth: false,
@ -30,7 +30,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
{
path: 'enterprise',
name: 'ManagementEnterprise',
component: () => import('@/views/components/management/enterprise'),
component: () => import('@/views/components/management/enterprise/index.vue'),
meta: {
locale: '企业信息',
requiresAuth: false,
@ -41,7 +41,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
{
path: 'account',
name: 'ManagementAccount',
component: () => import('@/views/components/management/account'),
component: () => import('@/views/components/management/account/index.vue'),
meta: {
locale: '账号管理',
requiresAuth: false,

View File

@ -0,0 +1,115 @@
import type { AppRouteRecordRaw } from '../types';
import IconContentManuscript from '@/assets/svg/svg-contentManuscript.svg';
import { MENU_GROUP_IDS } from '@/router/constants';
// 内容稿件-写手端
const COMPONENTS: AppRouteRecordRaw[] = [
{
path: '/writer/manuscript',
name: 'WriterManuscript',
redirect: 'writer/manuscript/list',
meta: {
locale: '内容稿件',
icon: IconContentManuscript,
requiresAuth: false,
requireLogin: false,
roles: ['*'],
id: MENU_GROUP_IDS.WRITER_CREATIVE_GENERATION_WORKSHOP_ID,
},
children: [
{
path: 'list/:writerCode',
name: 'WriterManuscriptList',
meta: {
locale: '内容稿件列表',
requiresAuth: false,
requireLogin: false,
roles: ['*'],
},
component: () => import('@/views/creative-generation-workshop/manuscript-writer/list/index.vue'),
},
{
path: 'upload/:writerCode',
name: 'WriterManuscriptUpload',
meta: {
locale: '稿件上传',
requiresAuth: false,
requireLogin: false,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'WriterManuscriptList',
},
component: () => import('@/views/creative-generation-workshop/manuscript-writer/upload/index.vue'),
},
{
path: 'edit/:writerCode/:id',
name: 'WriterManuscriptEdit',
meta: {
locale: '账号详情',
requiresAuth: false,
requireLogin: false,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'WriterManuscriptList',
},
component: () => import('@/views/creative-generation-workshop/manuscript-writer/edit/index.vue'),
},
{
path: 'detail/:writerCode/:id',
name: 'WriterManuscriptDetail',
meta: {
locale: '稿件详情',
requiresAuth: false,
requireLogin: false,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'ManuscriptList',
},
component: () => import('@/views/creative-generation-workshop/manuscript-writer/detail/index.vue'),
},
{
path: 'check-list/:writerCode',
name: 'WriterManuscriptCheckList',
meta: {
locale: '内容稿件审核',
requiresAuth: false,
requireLogin: false,
roles: ['*'],
},
component: () => import('@/views/creative-generation-workshop/manuscript-writer/check-list/index.vue'),
},
{
path: 'check-list/detail/:id/:writerCode',
name: 'WriterManuscriptCheckListDetail',
meta: {
locale: '内容稿件审核详情',
requiresAuth: false,
requireLogin: false,
hideFooter: true,
hideInMenu: true,
roles: ['*'],
activeMenu: 'WriterManuscriptCheckList',
},
component: () => import('@/views/creative-generation-workshop/manuscript-writer/detail/index.vue'),
},
{
path: 'check/:writerCode',
name: 'WriterManuscriptCheck',
meta: {
locale: '稿件审核',
requiresAuth: false,
requireLogin: false,
hideFooter: true,
roles: ['*'],
hideInMenu: true,
activeMenu: 'WriterManuscriptCheckList',
},
component: () => import('@/views/creative-generation-workshop/manuscript-writer/check/index.vue'),
},
],
},
];
export default COMPONENTS;

View File

@ -60,7 +60,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/media-account/account-manage'),
component: () => import('@/views/property-marketing/media-account/account-manage/index.vue'),
},
{
path: 'dashboard',
@ -71,7 +71,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/media-account/account-dashboard'),
component: () => import('@/views/property-marketing/media-account/account-dashboard/index.vue'),
},
{
path: 'detail/:id',
@ -84,7 +84,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
hideInMenu: true,
activeMenu: 'MediaAccountAccountDashboard',
},
component: () => import('@/views/property-marketing/media-account/account-detail'),
component: () => import('@/views/property-marketing/media-account/account-detail/index.vue'),
},
],
},
@ -110,7 +110,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/account-manage'),
component: () => import('@/views/property-marketing/put-account/account-manage/index.vue'),
},
{
path: 'data',
@ -121,7 +121,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/account-data'),
component: () => import('@/views/property-marketing/put-account/account-data/index.vue'),
},
{
path: 'account-dashboard',
@ -132,7 +132,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/account-dashboard'),
component: () => import('@/views/property-marketing/put-account/account-dashboard/index.vue'),
},
{
path: 'investmentGuidelines',
@ -143,7 +143,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/put-account/investment-guidelines'),
component: () => import('@/views/property-marketing/put-account/investment-guidelines/index.vue'),
},
{
path: 'detail/:id',
@ -155,7 +155,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
roles: ['*'],
activeMenu: 'PutAccountInvestmentGuidelines',
},
component: () => import('@/views/property-marketing/put-account/investment-guidelines/detail'),
component: () => import('@/views/property-marketing/put-account/investment-guidelines/detail.vue'),
},
],
},
@ -181,7 +181,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
// requireLogin: true,
// roles: ['*'],
// },
// component: () => import('@/views/property-marketing/intelligent-solution/businessAnalysisReport'),
// component: () => import('@/views/property-marketing/intelligent-solution/businessAnalysisReport.vue'),
// },
// {
// path: 'competitiveProductAnalysisReport',
@ -192,7 +192,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
// requireLogin: true,
// roles: ['*'],
// },
// component: () => import('@/views/property-marketing/intelligent-solution/competitiveProductAnalysisReport'),
// component: () => import('@/views/property-marketing/intelligent-solution/competitiveProductAnalysisReport.vue'),
// },
// ],
// },
@ -218,7 +218,7 @@ const COMPONENTS: AppRouteRecordRaw[] = [
requireLogin: true,
roles: ['*'],
},
component: () => import('@/views/property-marketing/project-manage/project-list'),
component: () => import('@/views/property-marketing/project-manage/project-list/index.vue'),
},
],
},

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;
hideFooter?: boolean;
isAgentRoute?:boolean;
requireLogin?: boolean; // 是否需要登陆才能访问
}