From 12ad43914f110e782b9a2b7a6350efa9e0741507 Mon Sep 17 00:00:00 2001 From: zhangtao <9480807882@qq.com> Date: Tue, 4 Aug 2026 20:51:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor(app):=20=E6=B8=85=E7=90=86=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 移除多个废弃的API模块、组件和页面文件 2. 重构个人中心和工作台的菜单结构 3. 替换旧分页组件为官方WdPagination 4. 统一空状态提示为wd-empty组件 5. 优化卡片布局和样式 6. 简化骨架屏实现逻辑 7. 调整首页通知栏样式适配暗色模式 --- backend/app/utils/console.py | 2 +- frontend/app/src/api/module_system/dict.ts | 80 --- frontend/app/src/api/module_system/menu.ts | 71 --- frontend/app/src/api/module_system/params.ts | 27 - frontend/app/src/api/module_system/version.ts | 45 -- frontend/app/src/components.d.ts | 8 +- .../app/src/components/DemoBlock copy.vue | 60 --- frontend/app/src/components/ListEmpty.vue | 15 - frontend/app/src/components/PaginationBar.vue | 32 -- .../app/src/components/PrivacyPopup copy.vue | 195 -------- frontend/app/src/components/SkeletonPage.vue | 39 +- frontend/app/src/components/StatusBadge.vue | 68 +++ frontend/app/src/pages.json | 260 ---------- frontend/app/src/pages/index/index.vue | 43 +- frontend/app/src/pages/mine/index.vue | 11 +- frontend/app/src/pages/work/index.vue | 28 +- frontend/app/src/subPages/about/index.vue | 35 +- .../app/src/subPages/biz/dashboard/index.vue | 309 ++---------- frontend/app/src/subPages/biz/dicts/index.vue | 318 ------------ .../app/src/subPages/biz/notices/index.vue | 20 +- .../app/src/subPages/biz/params/index.vue | 165 ------ .../src/subPages/biz/ticket-detail/index.vue | 347 ++----------- .../app/src/subPages/biz/tickets/index.vue | 20 +- .../src/subPages/biz/user-detail/index.vue | 416 +++------------- .../app/src/subPages/biz/versions/index.vue | 206 -------- .../app/src/subPages/dev/ai-models/index.vue | 387 +++------------ frontend/app/src/subPages/dev/chat/index.vue | 33 +- .../src/subPages/monitor/loginlogs/index.vue | 20 +- .../app/src/subPages/monitor/online/index.vue | 20 +- .../app/src/subPages/monitor/oplogs/index.vue | 20 +- .../app/src/subPages/setting/ci/index.vue | 428 ---------------- .../src/subPages/setting/create-uni/index.vue | 252 ---------- .../src/subPages/setting/feedback/index.vue | 27 - .../app/src/subPages/setting/icon/index.vue | 10 - frontend/app/src/subPages/setting/index.vue | 27 +- .../app/src/subPages/setting/pinia/index.vue | 26 - .../src/subPages/setting/request/index.vue | 28 -- .../setting/router/demo-aftereach.vue | 54 -- .../subPages/setting/router/demo-guard.vue | 83 ---- .../subPages/setting/router/demo-object.vue | 123 ----- .../subPages/setting/router/demo-params.vue | 182 ------- .../setting/router/demo-protected.vue | 54 -- .../subPages/setting/router/demo-query.vue | 201 -------- .../subPages/setting/router/demo-string.vue | 85 ---- .../app/src/subPages/setting/router/index.vue | 469 ------------------ .../app/src/subPages/setting/skills/index.vue | 162 ------ .../app/src/subPages/setting/styles/index.vue | 28 -- .../app/src/subPages/system/depts/index.vue | 161 ------ .../app/src/subPages/system/menus/index.vue | 162 ------ .../src/subPages/system/positions/index.vue | 168 ------- .../app/src/subPages/system/roles/index.vue | 176 ------- .../app/src/subPages/system/users/index.vue | 269 ++++------ frontend/app/src/uni-pages.d.ts | 18 - .../components/cards/fa-card-grid/index.vue | 11 + .../src/views/module_system/ticket/index.vue | 86 ++-- .../views/module_task/cronjob/job/index.vue | 40 +- 56 files changed, 668 insertions(+), 5962 deletions(-) delete mode 100644 frontend/app/src/api/module_system/dict.ts delete mode 100644 frontend/app/src/api/module_system/menu.ts delete mode 100644 frontend/app/src/api/module_system/params.ts delete mode 100644 frontend/app/src/api/module_system/version.ts delete mode 100644 frontend/app/src/components/DemoBlock copy.vue delete mode 100644 frontend/app/src/components/ListEmpty.vue delete mode 100644 frontend/app/src/components/PaginationBar.vue delete mode 100644 frontend/app/src/components/PrivacyPopup copy.vue delete mode 100644 frontend/app/src/subPages/biz/dicts/index.vue delete mode 100644 frontend/app/src/subPages/biz/params/index.vue delete mode 100644 frontend/app/src/subPages/biz/versions/index.vue delete mode 100644 frontend/app/src/subPages/setting/ci/index.vue delete mode 100644 frontend/app/src/subPages/setting/create-uni/index.vue delete mode 100644 frontend/app/src/subPages/setting/router/demo-aftereach.vue delete mode 100644 frontend/app/src/subPages/setting/router/demo-guard.vue delete mode 100644 frontend/app/src/subPages/setting/router/demo-object.vue delete mode 100644 frontend/app/src/subPages/setting/router/demo-params.vue delete mode 100644 frontend/app/src/subPages/setting/router/demo-protected.vue delete mode 100644 frontend/app/src/subPages/setting/router/demo-query.vue delete mode 100644 frontend/app/src/subPages/setting/router/demo-string.vue delete mode 100644 frontend/app/src/subPages/setting/router/index.vue delete mode 100644 frontend/app/src/subPages/setting/skills/index.vue delete mode 100644 frontend/app/src/subPages/system/depts/index.vue delete mode 100644 frontend/app/src/subPages/system/menus/index.vue delete mode 100644 frontend/app/src/subPages/system/positions/index.vue delete mode 100644 frontend/app/src/subPages/system/roles/index.vue diff --git a/backend/app/utils/console.py b/backend/app/utils/console.py index 70a8f940..f0490b33 100644 --- a/backend/app/utils/console.py +++ b/backend/app/utils/console.py @@ -36,7 +36,7 @@ def console_start( """ env_label = settings.ENVIRONMENT.value if hasattr(settings.ENVIRONMENT, 'value') else settings.ENVIRONMENT url = f"http://{host}:{port}" - base_url = f"{url}{settings.ROOT_PATH}" + base_url = url + settings.ROOT_PATH docs_url = base_url + settings.DOCS_URL frontend_url = base_url + settings.WEB_URL diff --git a/frontend/app/src/api/module_system/dict.ts b/frontend/app/src/api/module_system/dict.ts deleted file mode 100644 index 8a3741fc..00000000 --- a/frontend/app/src/api/module_system/dict.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { BatchSetStatus } from './user' -import { http } from '@/http' - -const SYSTEM_BASE = '/system' - -/** - * 字典管理 API - * 与 web 端 module_system/dict.ts 对齐(完整字段定义) - */ -export const DictAPI = { - getTypePage(params?: Record): Promise> { - return http.Get(`${SYSTEM_BASE}/dict/type/list`, params) - }, - getTypeDetail(id: number): Promise { - return http.Get(`${SYSTEM_BASE}/dict/type/detail/${id}`) - }, - createType(data: DictTypeForm): Promise { - return http.Post(`${SYSTEM_BASE}/dict/type/create`, data) - }, - updateType(id: number, data: DictTypeForm): Promise { - return http.Put(`${SYSTEM_BASE}/dict/type/update/${id}`, data) - }, - removeType(ids: number[]): Promise { - return http.Delete(`${SYSTEM_BASE}/dict/type/delete`, { ids: JSON.stringify(ids) }) - }, - batchTypeStatus(data: BatchSetStatus): Promise { - return http.Patch(`${SYSTEM_BASE}/dict/type/status/batch`, data) - }, - getTypeOptions(): Promise { - return http.Get(`${SYSTEM_BASE}/dict/type/optionselect`) - }, - getDataPage(params?: Record): Promise> { - return http.Get(`${SYSTEM_BASE}/dict/data/list`, params) - }, - getDataDetail(id: number): Promise { - return http.Get(`${SYSTEM_BASE}/dict/data/detail/${id}`) - }, - createData(data: DictDataForm): Promise { - return http.Post(`${SYSTEM_BASE}/dict/data/create`, data) - }, - updateData(id: number, data: DictDataForm): Promise { - return http.Put(`${SYSTEM_BASE}/dict/data/update/${id}`, data) - }, - removeData(ids: number[]): Promise { - return http.Delete(`${SYSTEM_BASE}/dict/data/delete`, { ids: JSON.stringify(ids) }) - }, - batchDataStatus(data: BatchSetStatus): Promise { - return http.Patch(`${SYSTEM_BASE}/dict/data/status/batch`, data) - }, - getDataByType(dictType: string): Promise { - return http.Get(`${SYSTEM_BASE}/dict/data/info/${dictType}`) - }, -} - -export interface DictTypeForm extends BaseFormType { - dict_name?: string - dict_type?: string - status?: number - description?: string -} - -export interface DictTypeItem extends BaseType, DictTypeForm { - id: number - dict_type: string -} - -export interface DictDataForm extends BaseFormType { - dict_sort?: number - dict_label?: string - dict_value?: string - dict_type?: string - dict_type_id?: number - css_class?: string - list_class?: string - is_default?: boolean | string - status?: number - description?: string -} - -export interface DictDataItem extends BaseType, DictDataForm {} diff --git a/frontend/app/src/api/module_system/menu.ts b/frontend/app/src/api/module_system/menu.ts deleted file mode 100644 index 3d33dfd9..00000000 --- a/frontend/app/src/api/module_system/menu.ts +++ /dev/null @@ -1,71 +0,0 @@ -import type { BatchSetStatus } from './user' -import { http } from '@/http' - -const SYSTEM_BASE = '/system' - -/** - * 菜单管理 API - * 与 web 端 module_system/menu.ts 对齐(完整字段定义) - */ -export const MenuAPI = { - getTree(params?: MenuQuery): Promise { - return http.Get(`${SYSTEM_BASE}/menu/tree`, params) - }, - getDetail(id: number): Promise { - return http.Get(`${SYSTEM_BASE}/menu/detail/${id}`) - }, - create(data: MenuForm): Promise { - return http.Post(`${SYSTEM_BASE}/menu/create`, data) - }, - update(id: number, data: MenuForm): Promise { - return http.Put(`${SYSTEM_BASE}/menu/update/${id}`, data) - }, - remove(ids: number[]): Promise { - return http.Delete(`${SYSTEM_BASE}/menu/delete`, { ids: JSON.stringify(ids) }) - }, - batchStatus(data: BatchSetStatus): Promise { - return http.Patch(`${SYSTEM_BASE}/menu/status/batch`, data) - }, -} - -export interface MenuQuery { - name?: string - status?: number - type?: number - menu_client?: 'web' | 'app' -} - -export interface MenuForm extends BaseFormType { - name?: string - type: number - icon?: string - order?: number - permission?: string - route_name?: string - route_path?: string - component_path?: string - redirect?: string - parent_id?: number - keep_alive?: boolean - hidden?: boolean - always_show?: boolean - title?: string - params?: { key: string, value: string }[] - affix?: boolean - link?: string - is_iframe?: boolean - is_hide_tab?: boolean - active_path?: string - show_badge?: boolean - show_text_badge?: string - scope?: 'web' | 'app' - client?: 'pc' | 'app' - status?: number - description?: string -} - -export interface MenuItem extends BaseType, MenuForm { - id: number - parent_name?: string - children?: MenuItem[] -} diff --git a/frontend/app/src/api/module_system/params.ts b/frontend/app/src/api/module_system/params.ts deleted file mode 100644 index db8f506a..00000000 --- a/frontend/app/src/api/module_system/params.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { http } from '@/http' - -const SYSTEM_BASE = '/system' - -/** - * 参数配置 API - * 与 web 端 module_system/params.ts 对齐(完整字段定义) - */ -export const ParamsAPI = { - getInfo(): Promise { - return http.Get(`${SYSTEM_BASE}/param/info`) - }, - update(id: number, data: ParamsForm): Promise { - return http.Put(`${SYSTEM_BASE}/param/update/${id}`, data) - }, -} - -export interface ParamsForm extends BaseFormType { - config_name?: string - config_key?: string - config_value?: string - config_type?: boolean - status?: number - description?: string -} - -export interface ParamsItem extends BaseType, ParamsForm {} diff --git a/frontend/app/src/api/module_system/version.ts b/frontend/app/src/api/module_system/version.ts deleted file mode 100644 index 5d103515..00000000 --- a/frontend/app/src/api/module_system/version.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { http } from '@/http' - -const SYSTEM_BASE = '/system' - -/** - * 版本发布管理 API - * 与 web 端 module_system/version.ts 对齐(完整字段定义) - */ -export const VersionAPI = { - getPage(params?: Record): Promise> { - return http.Get(`${SYSTEM_BASE}/versions/list`, params) - }, - /** 获取已发布版本列表(无需认证) */ - getPublished(): Promise { - return http.Get(`${SYSTEM_BASE}/versions/published`) - }, - getDetail(id: number): Promise { - return http.Get(`${SYSTEM_BASE}/versions/detail/${id}`) - }, - create(data: VersionForm): Promise { - return http.Post(`${SYSTEM_BASE}/versions/create`, data) - }, - update(id: number, data: VersionForm): Promise { - return http.Put(`${SYSTEM_BASE}/versions/update/${id}`, data) - }, - remove(ids: number[]): Promise { - return http.Delete(`${SYSTEM_BASE}/versions/delete`, { ids: JSON.stringify(ids) }) - }, - setStatus(id: number, status: number): Promise { - return http.Put(`${SYSTEM_BASE}/versions/${id}/status`, { status }) - }, -} - -export interface VersionForm extends BaseFormType { - version?: string - title?: string - date?: string - content?: string - description?: string - sort?: number - status?: number - require_re_login?: boolean -} - -export interface VersionItem extends BaseType, VersionForm {} diff --git a/frontend/app/src/components.d.ts b/frontend/app/src/components.d.ts index 94f4b46e..996c7e32 100644 --- a/frontend/app/src/components.d.ts +++ b/frontend/app/src/components.d.ts @@ -7,18 +7,13 @@ export {} declare module 'vue' { export interface GlobalComponents { - copy: typeof import('./components/PrivacyPopup copy.vue')['default'] DateQuery: typeof import('./components/DateQuery.vue')['default'] DemoBlock: typeof import('./components/DemoBlock.vue')['default'] - 'DemoBlock copy': typeof import('./components/DemoBlock copy.vue')['default'] GlobalDialog: typeof import('./components/GlobalDialog.vue')['default'] GlobalLoading: typeof import('./components/GlobalLoading.vue')['default'] GlobalMessage: typeof import('./components/GlobalMessage.vue')['default'] GlobalToast: typeof import('./components/GlobalToast.vue')['default'] - ListEmpty: typeof import('./components/ListEmpty.vue')['default'] - PaginationBar: typeof import('./components/PaginationBar.vue')['default'] PrivacyPopup: typeof import('./components/PrivacyPopup.vue')['default'] - 'PrivacyPopup copy': typeof import('./components/PrivacyPopup copy.vue')['default'] SkeletonPage: typeof import('./components/SkeletonPage.vue')['default'] StatusBadge: typeof import('./components/StatusBadge.vue')['default'] UniEcharts: typeof import('uni-echarts')['default'] @@ -43,15 +38,18 @@ declare module 'vue' { WdIcon: typeof import('@wot-ui/ui/components/wd-icon/wd-icon.vue')['default'] WdInput: typeof import('@wot-ui/ui/components/wd-input/wd-input.vue')['default'] WdLoading: typeof import('@wot-ui/ui/components/wd-loading/wd-loading.vue')['default'] + WdLoadmore: typeof import('@wot-ui/ui/components/wd-loadmore/wd-loadmore.vue')['default'] WdNavbar: typeof import('@wot-ui/ui/components/wd-navbar/wd-navbar.vue')['default'] WdNoticeBar: typeof import('@wot-ui/ui/components/wd-notice-bar/wd-notice-bar.vue')['default'] WdNotify: typeof import('@wot-ui/ui/components/wd-notify/wd-notify.vue')['default'] + WdPagination: typeof import('@wot-ui/ui/components/wd-pagination/wd-pagination.vue')['default'] WdPicker: typeof import('@wot-ui/ui/components/wd-picker/wd-picker.vue')['default'] WdPopup: typeof import('@wot-ui/ui/components/wd-popup/wd-popup.vue')['default'] WdRadio: typeof import('@wot-ui/ui/components/wd-radio/wd-radio.vue')['default'] WdRadioGroup: typeof import('@wot-ui/ui/components/wd-radio-group/wd-radio-group.vue')['default'] WdRow: typeof import('@wot-ui/ui/components/wd-row/wd-row.vue')['default'] WdSearch: typeof import('@wot-ui/ui/components/wd-search/wd-search.vue')['default'] + WdSkeleton: typeof import('@wot-ui/ui/components/wd-skeleton/wd-skeleton.vue')['default'] WdSlideVerify: typeof import('@wot-ui/ui/components/wd-slide-verify/wd-slide-verify.vue')['default'] WdSwiper: typeof import('@wot-ui/ui/components/wd-swiper/wd-swiper.vue')['default'] WdSwitch: typeof import('@wot-ui/ui/components/wd-switch/wd-switch.vue')['default'] diff --git a/frontend/app/src/components/DemoBlock copy.vue b/frontend/app/src/components/DemoBlock copy.vue deleted file mode 100644 index 7ee79a90..00000000 --- a/frontend/app/src/components/DemoBlock copy.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/frontend/app/src/components/ListEmpty.vue b/frontend/app/src/components/ListEmpty.vue deleted file mode 100644 index f16b7db9..00000000 --- a/frontend/app/src/components/ListEmpty.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/frontend/app/src/components/PaginationBar.vue b/frontend/app/src/components/PaginationBar.vue deleted file mode 100644 index c9c523d6..00000000 --- a/frontend/app/src/components/PaginationBar.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/frontend/app/src/components/PrivacyPopup copy.vue b/frontend/app/src/components/PrivacyPopup copy.vue deleted file mode 100644 index 360eda69..00000000 --- a/frontend/app/src/components/PrivacyPopup copy.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - diff --git a/frontend/app/src/components/SkeletonPage.vue b/frontend/app/src/components/SkeletonPage.vue index de65262b..ded05526 100644 --- a/frontend/app/src/components/SkeletonPage.vue +++ b/frontend/app/src/components/SkeletonPage.vue @@ -2,8 +2,9 @@ /** * 页面骨架屏组件 * 在数据加载时展示占位内容,提升感知性能 + * 基于 wd-skeleton 封装 */ -withDefaults(defineProps<{ +const props = withDefaults(defineProps<{ /** 显示行数(列表行) */ rows?: number /** 是否显示搜索栏骨架 */ @@ -13,37 +14,31 @@ withDefaults(defineProps<{ }>(), { rows: 5, }) + +/** 搜索栏占位行 */ +const searchRowCol = [{ type: 'rect' as const, height: '64rpx', borderRadius: '12rpx' }] + +/** 列表行占位:圆形头像 + 文本块 + 右侧徽章 */ +const listRowCol = [ + [ + { type: 'circle' as const, size: '64rpx' }, + { type: 'rect' as const, width: '200rpx', height: '28rpx', marginLeft: '24rpx' }, + { type: 'rect' as const, width: '80rpx', height: '40rpx', borderRadius: '999rpx' }, + ], +] - - diff --git a/frontend/app/src/components/StatusBadge.vue b/frontend/app/src/components/StatusBadge.vue index 1df6df01..bd1aed41 100644 --- a/frontend/app/src/components/StatusBadge.vue +++ b/frontend/app/src/components/StatusBadge.vue @@ -53,3 +53,71 @@ function resolve(input: string | boolean | number): { label: string, cls: string {{ label || resolve(status).label }} + + diff --git a/frontend/app/src/pages.json b/frontend/app/src/pages.json index d28b8881..a01f9e69 100644 --- a/frontend/app/src/pages.json +++ b/frontend/app/src/pages.json @@ -77,26 +77,6 @@ { "root": "subPages", "pages": [ - // #ifdef APP - { - "path": "ci/index", - "type": "page", - "name": "ci", - "style": { - "navigationBarTitleText": "CI 持续集成" - } - }, - // #endif - // #ifdef APP - { - "path": "create-uni/index", - "type": "page", - "name": "create-uni", - "style": { - "navigationBarTitleText": "CreateUni 脚手架" - } - }, - // #endif // #ifdef APP { "path": "feedback/index", @@ -138,86 +118,6 @@ }, // #endif // #ifdef APP - { - "path": "router/demo-aftereach", - "type": "page", - "name": "demo-aftereach", - "style": { - "navigationBarTitleText": "afterEach 钩子演示" - } - }, - // #endif - // #ifdef APP - { - "path": "router/demo-guard", - "type": "page", - "name": "demo-guard", - "style": { - "navigationBarTitleText": "导航守卫演示" - } - }, - // #endif - // #ifdef APP - { - "path": "router/demo-object", - "type": "page", - "name": "demo-object", - "style": { - "navigationBarTitleText": "对象路径跳转" - } - }, - // #endif - // #ifdef APP - { - "path": "router/demo-params", - "type": "page", - "name": "demo-params", - "style": { - "navigationBarTitleText": "参数接收演示" - } - }, - // #endif - // #ifdef APP - { - "path": "router/demo-protected", - "type": "page", - "name": "demo-protected", - "style": { - "navigationBarTitleText": "受保护页面" - } - }, - // #endif - // #ifdef APP - { - "path": "router/demo-query", - "type": "page", - "name": "demo-query", - "style": { - "navigationBarTitleText": "查询参数接收演示" - } - }, - // #endif - // #ifdef APP - { - "path": "router/demo-string", - "type": "page", - "name": "demo-string", - "style": { - "navigationBarTitleText": "字符串路径跳转" - } - }, - // #endif - // #ifdef APP - { - "path": "router/index", - "type": "page", - "name": "router", - "style": { - "navigationBarTitleText": "路由管理" - } - }, - // #endif - // #ifdef APP { "path": "styles/index", "type": "page", @@ -237,19 +137,6 @@ } }, // #endif - // #ifdef APP - { - "path": "skills/index", - "type": "page", - "name": "skills", - "layout": "default", - "style": { - "navigationBarTitleText": "Agent Skills", - "navigationBarBackgroundColor": "#f9fafb", - "navigationBarTextStyle": "black" - } - }, - // #endif { "path": "about/index", "type": "page", @@ -275,14 +162,6 @@ "navigationBarTitleText": "数据概览" } }, - { - "path": "biz/dicts/index", - "type": "page", - "name": "work-dicts", - "style": { - "navigationBarTitleText": "字典管理" - } - }, { "path": "biz/notices/index", "type": "page", @@ -291,14 +170,6 @@ "navigationBarTitleText": "通知公告" } }, - { - "path": "biz/params/index", - "type": "page", - "name": "work-params", - "style": { - "navigationBarTitleText": "参数管理" - } - }, { "path": "biz/ticket-detail/index", "type": "page", @@ -323,14 +194,6 @@ "navigationBarTitleText": "用户详情" } }, - { - "path": "biz/versions/index", - "type": "page", - "name": "work-versions", - "style": { - "navigationBarTitleText": "版本管理" - } - }, { "path": "dev/ai-models/index", "type": "page", @@ -371,22 +234,6 @@ "navigationBarTitleText": "操作日志" } }, - { - "path": "setting/ci/index", - "type": "page", - "name": "ci", - "style": { - "navigationBarTitleText": "CI 持续集成" - } - }, - { - "path": "setting/create-uni/index", - "type": "page", - "name": "create-uni", - "style": { - "navigationBarTitleText": "CreateUni 脚手架" - } - }, { "path": "setting/echarts/index", "type": "page", @@ -435,81 +282,6 @@ "navigationBarTitleText": "网络请求" } }, - { - "path": "setting/router/demo-aftereach", - "type": "page", - "name": "demo-aftereach", - "style": { - "navigationBarTitleText": "afterEach 钩子演示" - } - }, - { - "path": "setting/router/demo-guard", - "type": "page", - "name": "demo-guard", - "style": { - "navigationBarTitleText": "导航守卫演示" - } - }, - { - "path": "setting/router/demo-object", - "type": "page", - "name": "demo-object", - "style": { - "navigationBarTitleText": "对象路径跳转" - } - }, - { - "path": "setting/router/demo-params", - "type": "page", - "name": "demo-params", - "style": { - "navigationBarTitleText": "参数接收演示" - } - }, - { - "path": "setting/router/demo-protected", - "type": "page", - "name": "demo-protected", - "style": { - "navigationBarTitleText": "受保护页面" - } - }, - { - "path": "setting/router/demo-query", - "type": "page", - "name": "demo-query", - "style": { - "navigationBarTitleText": "查询参数接收演示" - } - }, - { - "path": "setting/router/demo-string", - "type": "page", - "name": "demo-string", - "style": { - "navigationBarTitleText": "字符串路径跳转" - } - }, - { - "path": "setting/router/index", - "type": "page", - "name": "router", - "style": { - "navigationBarTitleText": "路由管理" - } - }, - { - "path": "setting/skills/index", - "type": "page", - "name": "skills", - "layout": "default", - "style": { - "navigationBarTitleText": "Agent Skills", - "navigationBarBackgroundColor": "#f9fafb", - "navigationBarTextStyle": "black" - } - }, { "path": "setting/styles/index", "type": "page", @@ -526,38 +298,6 @@ "navigationBarTitleText": "uni-ku/root" } }, - { - "path": "system/depts/index", - "type": "page", - "name": "work-depts", - "style": { - "navigationBarTitleText": "部门管理" - } - }, - { - "path": "system/menus/index", - "type": "page", - "name": "work-menus", - "style": { - "navigationBarTitleText": "菜单管理" - } - }, - { - "path": "system/positions/index", - "type": "page", - "name": "work-positions", - "style": { - "navigationBarTitleText": "岗位管理" - } - }, - { - "path": "system/roles/index", - "type": "page", - "name": "work-roles", - "style": { - "navigationBarTitleText": "角色管理" - } - }, { "path": "system/users/index", "type": "page", diff --git a/frontend/app/src/pages/index/index.vue b/frontend/app/src/pages/index/index.vue index 73b104ad..b840b91e 100644 --- a/frontend/app/src/pages/index/index.vue +++ b/frontend/app/src/pages/index/index.vue @@ -52,9 +52,7 @@ onPageScroll((e) => { const NAV_LIST = [ { icon: 'user', title: '用户管理', name: 'work-users', color: '#4F8CFF' }, - { icon: 'lock', title: '角色管理', name: 'work-roles', color: '#F59E0B' }, { icon: 'notification', title: '通知公告', name: 'work-notices', color: '#10B981' }, - { icon: 'settings', title: '系统配置', name: 'work-params', color: '#8B5CF6' }, ] /** 轮播 Banner 条目 */ @@ -234,12 +232,13 @@ function getGreeting() { + + + @@ -587,3 +604,11 @@ function getGreeting() { font-weight: 700; } + + diff --git a/frontend/app/src/pages/mine/index.vue b/frontend/app/src/pages/mine/index.vue index ba1d52c5..add3d937 100644 --- a/frontend/app/src/pages/mine/index.vue +++ b/frontend/app/src/pages/mine/index.vue @@ -69,13 +69,8 @@ const settingsList = [ const quickLinks = [ { title: '用户管理', name: 'work-users', icon: 'user', color: '#4F8CFF' }, - { title: '角色管理', name: 'work-roles', icon: 'lock', color: '#F59E0B' }, - { title: '部门管理', name: 'work-depts', icon: 'apps', color: '#10B981' }, - { title: '菜单管理', name: 'work-menus', icon: 'menu', color: '#8B5CF6' }, - { title: '岗位管理', name: 'work-positions', icon: 'list', color: '#4F8CFF' }, - { title: '字典管理', name: 'work-dicts', icon: 'tags', color: '#F59E0B' }, { title: '通知公告', name: 'work-notices', icon: 'notification', color: '#10B981' }, - { title: '参数管理', name: 'work-params', icon: 'settings', color: '#8B5CF6' }, + { title: '工单管理', name: 'work-tickets', icon: 'message', color: '#F59E0B' }, { title: 'AI 模型', name: 'work-ai-models', icon: 'robot', color: '#8B5CF6' }, ] @@ -149,9 +144,9 @@ const quickLinks = [ - + diff --git a/frontend/app/src/pages/work/index.vue b/frontend/app/src/pages/work/index.vue index 009b85be..54008376 100644 --- a/frontend/app/src/pages/work/index.vue +++ b/frontend/app/src/pages/work/index.vue @@ -29,21 +29,15 @@ const groups = [ bg: 'var(--primary-color-light)', items: [ { icon: 'user', text: '用户管理', name: 'work-users' }, - { icon: 'lock', text: '角色管理', name: 'work-roles' }, - { icon: 'apps', text: '部门管理', name: 'work-depts' }, - { icon: 'menu', text: '菜单管理', name: 'work-menus' }, - { icon: 'list', text: '岗位管理', name: 'work-positions' }, ], }, { - title: '系统配置', + title: '业务中心', color: '#F59E0B', bg: 'var(--warning-color-light)', items: [ - { icon: 'tags', text: '字典管理', name: 'work-dicts' }, { icon: 'notification', text: '通知公告', name: 'work-notices' }, - { icon: 'settings', text: '参数管理', name: 'work-params' }, - { icon: 'refresh', text: '版本管理', name: 'work-versions' }, + { icon: 'message', text: '工单管理', name: 'work-tickets' }, ], }, { @@ -51,7 +45,6 @@ const groups = [ color: '#10B981', bg: 'var(--success-color-light)', items: [ - { icon: 'message', text: '工单管理', name: 'work-tickets' }, { icon: 'file', text: '操作日志', name: 'work-oplogs' }, { icon: 'eye-fill', text: '登录日志', name: 'work-loginlogs' }, { icon: 'user', text: '在线用户', name: 'work-online' }, @@ -121,16 +114,19 @@ const filteredGroups = computed(() => { -