From 53820a465440de442e5a4130c626ae910cd90ba8 Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Wed, 11 Feb 2026 19:51:32 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E8=A1=A5=E5=85=85=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layouts/admin/router/adminComponentMap.uts | 50 +- layouts/admin/router/adminRoutes.uts | 28 +- pages.json | 49 ++ pages/mall/admin/maintain/api/account.uvue | 278 ++++++++ pages/mall/admin/maintain/data/city.uvue | 200 ++++++ pages/mall/admin/maintain/data/clear.uvue | 177 +++++ pages/mall/admin/maintain/data/logistics.uvue | 227 +++++++ .../admin/maintain/dev-config/category.uvue | 274 +++++++- .../maintain/dev-config/combination-data.uvue | 228 ++++++- .../admin/maintain/dev-config/cron-job.uvue | 202 +++++- .../maintain/dev-config/custom-event.uvue | 163 ++++- .../maintain/dev-config/module-config.uvue | 130 +++- .../admin/maintain/dev-config/permission.uvue | 271 +++++++- pages/mall/admin/maintain/dev-tools/api.uvue | 345 +++++++++- .../admin/maintain/dev-tools/codegen.uvue | 16 +- .../admin/maintain/dev-tools/data-dict.uvue | 210 +++++- .../admin/maintain/dev-tools/database.uvue | 154 ++++- pages/mall/admin/maintain/dev-tools/file.uvue | 152 ++++- pages/mall/admin/maintain/lang/config.uvue | 146 ++++ pages/mall/admin/maintain/lang/detail.uvue | 274 ++++++++ pages/mall/admin/maintain/lang/list.uvue | 226 ++++++ pages/mall/admin/maintain/lang/region.uvue | 191 ++++++ .../maintain/security/online-upgrade.uvue | 244 ++++++- .../maintain/security/refresh-cache.uvue | 124 +++- .../admin/maintain/security/system-log.uvue | 250 ++++++- pages/mall/admin/maintain/sys/info.uvue | 178 +++++ pages/mall/admin/setting/agreement.uvue | 234 ++++++- pages/mall/admin/setting/message.uvue | 247 ++++++- pages/mall/admin/setting/ticket.uvue | 265 +++++++- pages/mall/admin/错误信息.txt | 641 ++++++++++++++++++ 30 files changed, 5915 insertions(+), 259 deletions(-) create mode 100644 pages/mall/admin/maintain/api/account.uvue create mode 100644 pages/mall/admin/maintain/data/city.uvue create mode 100644 pages/mall/admin/maintain/data/clear.uvue create mode 100644 pages/mall/admin/maintain/data/logistics.uvue create mode 100644 pages/mall/admin/maintain/lang/config.uvue create mode 100644 pages/mall/admin/maintain/lang/detail.uvue create mode 100644 pages/mall/admin/maintain/lang/list.uvue create mode 100644 pages/mall/admin/maintain/lang/region.uvue create mode 100644 pages/mall/admin/maintain/sys/info.uvue create mode 100644 pages/mall/admin/错误信息.txt diff --git a/layouts/admin/router/adminComponentMap.uts b/layouts/admin/router/adminComponentMap.uts index c22867c2..a5797d06 100644 --- a/layouts/admin/router/adminComponentMap.uts +++ b/layouts/admin/router/adminComponentMap.uts @@ -125,9 +125,9 @@ export const componentMap: Map = new Map([ // 设置模块 ['SettingSystemConfig', defineAsyncComponent(() => import('@/pages/mall/admin/setting/system/config.uvue'))], - ['SettingMessage', defineAsyncComponent(() => import('@/pages/mall/admin/setting/message.uvue'))], - ['SettingAgreement', defineAsyncComponent(() => import('@/pages/mall/admin/setting/agreement.uvue'))], - ['SettingTicket', defineAsyncComponent(() => import('@/pages/mall/admin/setting/ticket.uvue'))], + ['SettingMessageIndex', defineAsyncComponent(() => import('@/pages/mall/admin/setting/message.uvue'))], + ['SettingProtocolIndex', defineAsyncComponent(() => import('@/pages/mall/admin/setting/agreement.uvue'))], + ['SettingTicketIndex', defineAsyncComponent(() => import('@/pages/mall/admin/setting/ticket.uvue'))], ['SettingAuthRole', defineAsyncComponent(() => import('@/pages/mall/admin/setting/auth/role.uvue'))], ['SettingAuthAdmin', defineAsyncComponent(() => import('@/pages/mall/admin/setting/auth/admin.uvue'))], ['SettingAuthPermission', defineAsyncComponent(() => import('@/pages/mall/admin/setting/auth/permission.uvue'))], @@ -173,28 +173,28 @@ export const componentMap: Map = new Map([ ['AppList', PlaceholderPage], // 维护模块 - ['MaintainDevConfig', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev/config.uvue'))], - ['MaintainDevData', PlaceholderPage], - ['MaintainDevTask', PlaceholderPage], - ['MaintainDevAuth', PlaceholderPage], - ['MaintainDevModule', PlaceholderPage], - ['MaintainDevEvent', PlaceholderPage], - ['MaintainSecurityCache', PlaceholderPage], - ['MaintainSecurityLog', PlaceholderPage], - ['MaintainSecurityUpgrade', PlaceholderPage], - ['MaintainDataLogistics', PlaceholderPage], - ['MaintainDataCity', PlaceholderPage], - ['MaintainDataClear', PlaceholderPage], - ['MaintainApiAccount', PlaceholderPage], - ['MaintainLangList', PlaceholderPage], - ['MaintainLangDetail', PlaceholderPage], - ['MaintainLangRegion', PlaceholderPage], - ['MaintainLangConfig', PlaceholderPage], - ['MaintainToolDb', PlaceholderPage], - ['MaintainToolFile', PlaceholderPage], - ['MaintainToolApi', PlaceholderPage], - ['MaintainToolDic', PlaceholderPage], - ['MaintainSysInfo', PlaceholderPage] + ['MaintainDevConfig', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-config/category.uvue'))], + ['MaintainDevData', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-config/combination-data.uvue'))], + ['MaintainDevTask', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-config/cron-job.uvue'))], + ['MaintainDevAuth', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-config/permission.uvue'))], + ['MaintainDevModule', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-config/module-config.uvue'))], + ['MaintainDevEvent', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-config/custom-event.uvue'))], + ['MaintainSecurityCache', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/security/refresh-cache.uvue'))], + ['MaintainSecurityLog', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/security/system-log.uvue'))], + ['MaintainSecurityUpgrade', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/security/online-upgrade.uvue'))], + ['MaintainDataLogistics', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/data/logistics.uvue'))], + ['MaintainDataCity', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/data/city.uvue'))], + ['MaintainDataClear', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/data/clear.uvue'))], + ['MaintainApiAccount', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/api/account.uvue'))], + ['MaintainLangList', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/lang/list.uvue'))], + ['MaintainLangDetail', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/lang/detail.uvue'))], + ['MaintainLangRegion', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/lang/region.uvue'))], + ['MaintainLangConfig', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/lang/config.uvue'))], + ['MaintainToolDb', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-tools/database.uvue'))], + ['MaintainToolFile', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-tools/file.uvue'))], + ['MaintainToolApi', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-tools/api.uvue'))], + ['MaintainToolDic', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-tools/data-dict.uvue'))], + ['MaintainSysInfo', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/sys/info.uvue'))] ]) /** diff --git a/layouts/admin/router/adminRoutes.uts b/layouts/admin/router/adminRoutes.uts index ab48e721..a4cdd426 100644 --- a/layouts/admin/router/adminRoutes.uts +++ b/layouts/admin/router/adminRoutes.uts @@ -197,7 +197,7 @@ export const topMenus: TopMenu[] = [ id: 'maintain', title: '维护', icon: 'tool', - path: '/pages/mall/admin/maintain/dev/config', + path: '/pages/mall/admin/maintain/dev-config/category', order: 13, groups: [ { id: 'maintain-dev', title: '开发配置', order: 1 }, @@ -1294,17 +1294,17 @@ export const routes: RouteRecord[] = [ // ========== 维护模块 ========== // 开发配置 - { id: 'maintain_dev_config', title: '配置分类', path: '/pages/mall/admin/maintain/dev/config', componentKey: 'MaintainDevConfig', parentId: 'maintain', groupId: 'maintain-dev', order: 1 }, - { id: 'maintain_dev_data', title: '组合数据', path: '/pages/mall/admin/maintain/dev/data', componentKey: 'MaintainDevData', parentId: 'maintain', groupId: 'maintain-dev', order: 2 }, - { id: 'maintain_dev_task', title: '定时任务', path: '/pages/mall/admin/maintain/dev/task', componentKey: 'MaintainDevTask', parentId: 'maintain', groupId: 'maintain-dev', order: 3 }, - { id: 'maintain_dev_auth', title: '权限维护', path: '/pages/mall/admin/maintain/dev/auth', componentKey: 'MaintainDevAuth', parentId: 'maintain', groupId: 'maintain-dev', order: 4 }, - { id: 'maintain_dev_module', title: '模块配置', path: '/pages/mall/admin/maintain/dev/module', componentKey: 'MaintainDevModule', parentId: 'maintain', groupId: 'maintain-dev', order: 5 }, - { id: 'maintain_dev_event', title: '自定事件', path: '/pages/mall/admin/maintain/dev/event', componentKey: 'MaintainDevEvent', parentId: 'maintain', groupId: 'maintain-dev', order: 6 }, + { id: 'maintain_dev_config', title: '配置分类', path: '/pages/mall/admin/maintain/dev-config/category', componentKey: 'MaintainDevConfig', parentId: 'maintain', groupId: 'maintain-dev', order: 1 }, + { id: 'maintain_dev_data', title: '组合数据', path: '/pages/mall/admin/maintain/dev-config/combination-data', componentKey: 'MaintainDevData', parentId: 'maintain', groupId: 'maintain-dev', order: 2 }, + { id: 'maintain_dev_task', title: '定时任务', path: '/pages/mall/admin/maintain/dev-config/cron-job', componentKey: 'MaintainDevTask', parentId: 'maintain', groupId: 'maintain-dev', order: 3 }, + { id: 'maintain_dev_auth', title: '权限维护', path: '/pages/mall/admin/maintain/dev-config/permission', componentKey: 'MaintainDevAuth', parentId: 'maintain', groupId: 'maintain-dev', order: 4 }, + { id: 'maintain_dev_module', title: '模块配置', path: '/pages/mall/admin/maintain/dev-config/module-config', componentKey: 'MaintainDevModule', parentId: 'maintain', groupId: 'maintain-dev', order: 5 }, + { id: 'maintain_dev_event', title: '自定事件', path: '/pages/mall/admin/maintain/dev-config/custom-event', componentKey: 'MaintainDevEvent', parentId: 'maintain', groupId: 'maintain-dev', order: 6 }, // 安全维护 - { id: 'maintain_security_cache', title: '刷新缓存', path: '/pages/mall/admin/maintain/security/cache', componentKey: 'MaintainSecurityCache', parentId: 'maintain', groupId: 'maintain-security', order: 1 }, - { id: 'maintain_security_log', title: '系统日志', path: '/pages/mall/admin/maintain/security/log', componentKey: 'MaintainSecurityLog', parentId: 'maintain', groupId: 'maintain-security', order: 2 }, - { id: 'maintain_security_upgrade', title: '在线升级', path: '/pages/mall/admin/maintain/security/upgrade', componentKey: 'MaintainSecurityUpgrade', parentId: 'maintain', groupId: 'maintain-security', order: 3 }, + { id: 'maintain_security_cache', title: '刷新缓存', path: '/pages/mall/admin/maintain/security/refresh-cache', componentKey: 'MaintainSecurityCache', parentId: 'maintain', groupId: 'maintain-security', order: 1 }, + { id: 'maintain_security_log', title: '系统日志', path: '/pages/mall/admin/maintain/security/system-log', componentKey: 'MaintainSecurityLog', parentId: 'maintain', groupId: 'maintain-security', order: 2 }, + { id: 'maintain_security_upgrade', title: '在线升级', path: '/pages/mall/admin/maintain/security/online-upgrade', componentKey: 'MaintainSecurityUpgrade', parentId: 'maintain', groupId: 'maintain-security', order: 3 }, // 数据维护 { id: 'maintain_data_logistics', title: '物流公司', path: '/pages/mall/admin/maintain/data/logistics', componentKey: 'MaintainDataLogistics', parentId: 'maintain', groupId: 'maintain-data', order: 1 }, @@ -1321,10 +1321,10 @@ export const routes: RouteRecord[] = [ { id: 'maintain_lang_config', title: '翻译配置', path: '/pages/mall/admin/maintain/lang/config', componentKey: 'MaintainLangConfig', parentId: 'maintain', groupId: 'maintain-lang', order: 4 }, // 开发工具 - { id: 'maintain_tool_db', title: '数据库管理', path: '/pages/mall/admin/maintain/tool/db', componentKey: 'MaintainToolDb', parentId: 'maintain', groupId: 'maintain-tool', order: 1 }, - { id: 'maintain_tool_file', title: '文件管理', path: '/pages/mall/admin/maintain/tool/file', componentKey: 'MaintainToolFile', parentId: 'maintain', groupId: 'maintain-tool', order: 2 }, - { id: 'maintain_tool_api', title: '接口管理', path: '/pages/mall/admin/maintain/tool/api', componentKey: 'MaintainToolApi', parentId: 'maintain', groupId: 'maintain-tool', order: 3 }, - { id: 'maintain_tool_dic', title: '数据字典', path: '/pages/mall/admin/maintain/tool/dic', componentKey: 'MaintainToolDic', parentId: 'maintain', groupId: 'maintain-tool', order: 4 }, + { id: 'maintain_tool_db', title: '数据库管理', path: '/pages/mall/admin/maintain/dev-tools/database', componentKey: 'MaintainToolDb', parentId: 'maintain', groupId: 'maintain-tool', order: 1 }, + { id: 'maintain_tool_file', title: '文件管理', path: '/pages/mall/admin/maintain/dev-tools/file', componentKey: 'MaintainToolFile', parentId: 'maintain', groupId: 'maintain-tool', order: 2 }, + { id: 'maintain_tool_api', title: '接口管理', path: '/pages/mall/admin/maintain/dev-tools/api', componentKey: 'MaintainToolApi', parentId: 'maintain', groupId: 'maintain-tool', order: 3 }, + { id: 'maintain_tool_dic', title: '数据字典', path: '/pages/mall/admin/maintain/dev-tools/data-dict', componentKey: 'MaintainToolDic', parentId: 'maintain', groupId: 'maintain-tool', order: 4 }, // 系统信息 { id: 'maintain_sys_info', title: '系统信息', path: '/pages/mall/admin/maintain/sys/info', componentKey: 'MaintainSysInfo', parentId: 'maintain', groupId: 'maintain-sys', order: 1 } diff --git a/pages.json b/pages.json index 929542cd..be86e519 100644 --- a/pages.json +++ b/pages.json @@ -605,6 +605,55 @@ "style": { "navigationBarTitleText": "签到记录" } + }, + { + "path": "maintain/dev-tools/database", + "style": { + "navigationBarTitleText": "数据库管理", + "navigationStyle": "custom" + } + }, + { + "path": "maintain/dev-tools/file", + "style": { + "navigationBarTitleText": "文件管理", + "navigationStyle": "custom" + } + }, + { + "path": "maintain/dev-tools/api", + "style": { + "navigationBarTitleText": "接口管理", + "navigationStyle": "custom" + } + }, + { + "path": "maintain/dev-tools/data-dict", + "style": { + "navigationBarTitleText": "数据字典", + "navigationStyle": "custom" + } + }, + { + "path": "setting/message", + "style": { + "navigationBarTitleText": "消息管理", + "navigationStyle": "custom" + } + }, + { + "path": "setting/agreement", + "style": { + "navigationBarTitleText": "协议设置", + "navigationStyle": "custom" + } + }, + { + "path": "setting/ticket", + "style": { + "navigationBarTitleText": "小票配置", + "navigationStyle": "custom" + } } ] }, diff --git a/pages/mall/admin/maintain/api/account.uvue b/pages/mall/admin/maintain/api/account.uvue new file mode 100644 index 00000000..d66d22db --- /dev/null +++ b/pages/mall/admin/maintain/api/account.uvue @@ -0,0 +1,278 @@ + + + + + diff --git a/pages/mall/admin/maintain/data/city.uvue b/pages/mall/admin/maintain/data/city.uvue new file mode 100644 index 00000000..df67369d --- /dev/null +++ b/pages/mall/admin/maintain/data/city.uvue @@ -0,0 +1,200 @@ + + + + + diff --git a/pages/mall/admin/maintain/data/clear.uvue b/pages/mall/admin/maintain/data/clear.uvue new file mode 100644 index 00000000..d018f683 --- /dev/null +++ b/pages/mall/admin/maintain/data/clear.uvue @@ -0,0 +1,177 @@ + + + + + diff --git a/pages/mall/admin/maintain/data/logistics.uvue b/pages/mall/admin/maintain/data/logistics.uvue new file mode 100644 index 00000000..ef523bdb --- /dev/null +++ b/pages/mall/admin/maintain/data/logistics.uvue @@ -0,0 +1,227 @@ + + + + + diff --git a/pages/mall/admin/maintain/dev-config/category.uvue b/pages/mall/admin/maintain/dev-config/category.uvue index 62f852bc..20e1e0ec 100644 --- a/pages/mall/admin/maintain/dev-config/category.uvue +++ b/pages/mall/admin/maintain/dev-config/category.uvue @@ -1,22 +1,268 @@  - - + diff --git a/pages/mall/admin/maintain/dev-config/combination-data.uvue b/pages/mall/admin/maintain/dev-config/combination-data.uvue index c4665763..1c365fac 100644 --- a/pages/mall/admin/maintain/dev-config/combination-data.uvue +++ b/pages/mall/admin/maintain/dev-config/combination-data.uvue @@ -1,23 +1,223 @@  - - + + diff --git a/pages/mall/admin/maintain/dev-config/cron-job.uvue b/pages/mall/admin/maintain/dev-config/cron-job.uvue index 1590ba9a..2b909ebc 100644 --- a/pages/mall/admin/maintain/dev-config/cron-job.uvue +++ b/pages/mall/admin/maintain/dev-config/cron-job.uvue @@ -1,22 +1,192 @@  - - + + + + diff --git a/pages/mall/admin/maintain/dev-config/custom-event.uvue b/pages/mall/admin/maintain/dev-config/custom-event.uvue index 4c96c92e..a54f5121 100644 --- a/pages/mall/admin/maintain/dev-config/custom-event.uvue +++ b/pages/mall/admin/maintain/dev-config/custom-event.uvue @@ -1,22 +1,155 @@  - - + diff --git a/pages/mall/admin/maintain/dev-config/module-config.uvue b/pages/mall/admin/maintain/dev-config/module-config.uvue index f81dbc80..f9d08250 100644 --- a/pages/mall/admin/maintain/dev-config/module-config.uvue +++ b/pages/mall/admin/maintain/dev-config/module-config.uvue @@ -1,22 +1,122 @@  + +function onSubmit() { + uni.showToast({ title: '已提交', icon: 'none' }) +} + + + - diff --git a/pages/mall/admin/maintain/dev-config/permission.uvue b/pages/mall/admin/maintain/dev-config/permission.uvue index 17e3d0cc..def04c1b 100644 --- a/pages/mall/admin/maintain/dev-config/permission.uvue +++ b/pages/mall/admin/maintain/dev-config/permission.uvue @@ -1,22 +1,263 @@  - - + diff --git a/pages/mall/admin/maintain/dev-tools/api.uvue b/pages/mall/admin/maintain/dev-tools/api.uvue index 8b863f2d..f29f8744 100644 --- a/pages/mall/admin/maintain/dev-tools/api.uvue +++ b/pages/mall/admin/maintain/dev-tools/api.uvue @@ -1,21 +1,330 @@  - - + diff --git a/pages/mall/admin/maintain/dev-tools/codegen.uvue b/pages/mall/admin/maintain/dev-tools/codegen.uvue index 34fee12c..1d9d5f33 100644 --- a/pages/mall/admin/maintain/dev-tools/codegen.uvue +++ b/pages/mall/admin/maintain/dev-tools/codegen.uvue @@ -1,7 +1,6 @@  + + + + + + diff --git a/pages/mall/admin/maintain/dev-tools/data-dict.uvue b/pages/mall/admin/maintain/dev-tools/data-dict.uvue index 39243ae3..489f4fa6 100644 --- a/pages/mall/admin/maintain/dev-tools/data-dict.uvue +++ b/pages/mall/admin/maintain/dev-tools/data-dict.uvue @@ -1,12 +1,200 @@  + + + + + + + 字典名称: + + + + + + + + + + ID + 字典名称 + 数据标识 + 类型 + 添加时间 + 操作 + + + + {{ item.id }} + {{ item.name }} + {{ item.tag }} + {{ item.type }} + {{ item.add_time }} + + 编辑 + 数据管理 + 删除 + + + + + + + + + + + diff --git a/pages/mall/admin/maintain/dev-tools/database.uvue b/pages/mall/admin/maintain/dev-tools/database.uvue index 5829d840..385330e6 100644 --- a/pages/mall/admin/maintain/dev-tools/database.uvue +++ b/pages/mall/admin/maintain/dev-tools/database.uvue @@ -1,12 +1,146 @@  + + + + diff --git a/pages/mall/admin/maintain/dev-tools/file.uvue b/pages/mall/admin/maintain/dev-tools/file.uvue index 51e49f39..6aff48d0 100644 --- a/pages/mall/admin/maintain/dev-tools/file.uvue +++ b/pages/mall/admin/maintain/dev-tools/file.uvue @@ -1,12 +1,144 @@  + + + + diff --git a/pages/mall/admin/maintain/lang/config.uvue b/pages/mall/admin/maintain/lang/config.uvue new file mode 100644 index 00000000..d3286dda --- /dev/null +++ b/pages/mall/admin/maintain/lang/config.uvue @@ -0,0 +1,146 @@ + + + + + diff --git a/pages/mall/admin/maintain/lang/detail.uvue b/pages/mall/admin/maintain/lang/detail.uvue new file mode 100644 index 00000000..1d781b5a --- /dev/null +++ b/pages/mall/admin/maintain/lang/detail.uvue @@ -0,0 +1,274 @@ + + + + + diff --git a/pages/mall/admin/maintain/lang/list.uvue b/pages/mall/admin/maintain/lang/list.uvue new file mode 100644 index 00000000..4610ecab --- /dev/null +++ b/pages/mall/admin/maintain/lang/list.uvue @@ -0,0 +1,226 @@ + + + + + diff --git a/pages/mall/admin/maintain/lang/region.uvue b/pages/mall/admin/maintain/lang/region.uvue new file mode 100644 index 00000000..c9aaf194 --- /dev/null +++ b/pages/mall/admin/maintain/lang/region.uvue @@ -0,0 +1,191 @@ + + + + + diff --git a/pages/mall/admin/maintain/security/online-upgrade.uvue b/pages/mall/admin/maintain/security/online-upgrade.uvue index 227bd507..9183a3aa 100644 --- a/pages/mall/admin/maintain/security/online-upgrade.uvue +++ b/pages/mall/admin/maintain/security/online-upgrade.uvue @@ -1,12 +1,236 @@  + + + + + diff --git a/pages/mall/admin/maintain/security/refresh-cache.uvue b/pages/mall/admin/maintain/security/refresh-cache.uvue index 593611b5..87512487 100644 --- a/pages/mall/admin/maintain/security/refresh-cache.uvue +++ b/pages/mall/admin/maintain/security/refresh-cache.uvue @@ -1,12 +1,116 @@  + + + + + diff --git a/pages/mall/admin/maintain/security/system-log.uvue b/pages/mall/admin/maintain/security/system-log.uvue index 6b3289f3..e586e58a 100644 --- a/pages/mall/admin/maintain/security/system-log.uvue +++ b/pages/mall/admin/maintain/security/system-log.uvue @@ -1,12 +1,242 @@  + + + + + diff --git a/pages/mall/admin/maintain/sys/info.uvue b/pages/mall/admin/maintain/sys/info.uvue new file mode 100644 index 00000000..cc30e78d --- /dev/null +++ b/pages/mall/admin/maintain/sys/info.uvue @@ -0,0 +1,178 @@ + + + + + diff --git a/pages/mall/admin/setting/agreement.uvue b/pages/mall/admin/setting/agreement.uvue index 10d80c88..7a98dcf7 100644 --- a/pages/mall/admin/setting/agreement.uvue +++ b/pages/mall/admin/setting/agreement.uvue @@ -1,23 +1,225 @@ + + + + + + + + {{ tab }} + + + + + + + + + + H + B + I + U + S + 🔗 + 🖼️ + + + + + + + + + + + + {{ agreementTabs[currentTab] }} + + + + + + 协议预览 + + + + + + diff --git a/pages/mall/admin/setting/message.uvue b/pages/mall/admin/setting/message.uvue index 13442107..2f957cc5 100644 --- a/pages/mall/admin/setting/message.uvue +++ b/pages/mall/admin/setting/message.uvue @@ -1,23 +1,238 @@ + + + + + + + + 会员通知 + + + + 平台通知 + + + + 自定义通知 + + + + + + + + + + + + + 小程序订阅消息 + 登录微信小程序后台,基本设置,服务类目增加《生活服务 > 百货/超市/便利店》(否则同步小程序订阅消息会报错) + 同步小程序订阅消息,是在小程序后台未添加订阅消息模板的前提下使用的,会新增一个模板消息并把信息同步过来,并非本项目数据库。 + + + + + + ID + 通知类型 + 通知场景说明 + 站内信 + 公众号模板 + 发送短信 + 小程序订阅 + 操作 + + + + {{ item.id }} + {{ item.type }} + {{ item.desc }} + + + + + + + + + + + + + + 设置 + + + + + + + + diff --git a/pages/mall/admin/setting/ticket.uvue b/pages/mall/admin/setting/ticket.uvue index 5f729ad6..003cd873 100644 --- a/pages/mall/admin/setting/ticket.uvue +++ b/pages/mall/admin/setting/ticket.uvue @@ -1,23 +1,256 @@ + + + + + + + + 打印机名称: + + + + 平台选择: + + {{ platforms[selectedPlatform] }} + + + + + + + + + + ID + 打印机名称 + 平台 + 应用账号 + 打印联数 + 创建时间 + 打印开关 + 操作 + + + + {{ item.id }} + {{ item.name }} + {{ item.platform }} + {{ item.account }} + {{ item.copies }} + {{ item.add_time }} + + + + + 设计 + 编辑 + 删除 + + + + + + + + 共 1 条 + + 15条/页 + + + + + + diff --git a/pages/mall/admin/错误信息.txt b/pages/mall/admin/错误信息.txt new file mode 100644 index 00000000..11f49967 --- /dev/null +++ b/pages/mall/admin/错误信息.txt @@ -0,0 +1,641 @@ +adminComponentMap.uts:194 GET http://localhost:5173/pages/mall/admin/maintain/dev-tools/file.uvue?t=1770810007330&import net::ERR_ABORTED 500 (Internal Server Error) +(anonymous) @ adminComponentMap.uts:194 +load @ vue.runtime.esm.js:3681 +setup @ vue.runtime.esm.js:3760 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +AdminLayout.uvue:263 [Vue warn]: Unhandled error during execution of async component loader + at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +logError @ vue.runtime.esm.js:1438 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +onError @ vue.runtime.esm.js:3724 +(anonymous) @ vue.runtime.esm.js:3767 +Promise.catch +setup @ vue.runtime.esm.js:3766 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +AdminLayout.uvue:263 TypeError: Failed to fetch dynamically imported module: http://localhost:5173/pages/mall/admin/maintain/dev-tools/file.uvue?t=1770810007330&import +logError @ vue.runtime.esm.js:1443 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +onError @ vue.runtime.esm.js:3724 +(anonymous) @ vue.runtime.esm.js:3767 +Promise.catch +setup @ vue.runtime.esm.js:3766 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +adminComponentMap.uts:195 GET http://localhost:5173/pages/mall/admin/maintain/dev-tools/api.uvue?t=1770809996535&import net::ERR_ABORTED 500 (Internal Server Error) +(anonymous) @ adminComponentMap.uts:195 +load @ vue.runtime.esm.js:3681 +setup @ vue.runtime.esm.js:3760 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +AdminLayout.uvue:263 [Vue warn]: Unhandled error during execution of async component loader + at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +logError @ vue.runtime.esm.js:1438 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +onError @ vue.runtime.esm.js:3724 +(anonymous) @ vue.runtime.esm.js:3767 +Promise.catch +setup @ vue.runtime.esm.js:3766 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +AdminLayout.uvue:263 TypeError: Failed to fetch dynamically imported module: http://localhost:5173/pages/mall/admin/maintain/dev-tools/api.uvue?t=1770809996535&import +logError @ vue.runtime.esm.js:1443 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +onError @ vue.runtime.esm.js:3724 +(anonymous) @ vue.runtime.esm.js:3767 +Promise.catch +setup @ vue.runtime.esm.js:3766 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +adminComponentMap.uts:196 GET http://localhost:5173/pages/mall/admin/maintain/dev-tools/data-dict.uvue?t=1770810020653&import net::ERR_ABORTED 500 (Internal Server Error) +(anonymous) @ adminComponentMap.uts:196 +load @ vue.runtime.esm.js:3681 +setup @ vue.runtime.esm.js:3760 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +AdminLayout.uvue:263 [Vue warn]: Unhandled error during execution of async component loader + at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +logError @ vue.runtime.esm.js:1438 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +onError @ vue.runtime.esm.js:3724 +(anonymous) @ vue.runtime.esm.js:3767 +Promise.catch +setup @ vue.runtime.esm.js:3766 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +AdminLayout.uvue:263 TypeError: Failed to fetch dynamically imported module: http://localhost:5173/pages/mall/admin/maintain/dev-tools/data-dict.uvue?t=1770810020653&import +logError @ vue.runtime.esm.js:1443 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +onError @ vue.runtime.esm.js:3724 +(anonymous) @ vue.runtime.esm.js:3767 +Promise.catch +setup @ vue.runtime.esm.js:3766 +callWithErrorHandling @ vue.runtime.esm.js:1381 +setupStatefulComponent @ vue.runtime.esm.js:8985 +setupComponent @ vue.runtime.esm.js:8946 +mountComponent @ vue.runtime.esm.js:7262 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7783 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +(anonymous) @ AdminLayout.uvue:263 +setTimeout +watch.immediate @ AdminLayout.uvue:262 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +job @ vue.runtime.esm.js:3157 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +scheduler @ vue.runtime.esm.js:3179 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +openRoute @ adminNavStore.uts:87 +onSubClick @ AdminLayout.uvue:318 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +emit @ vue.runtime.esm.js:1907 +(anonymous) @ vue.runtime.esm.js:9176 +handleNodeClick @ AdminSubSider.uvue:116 +onClick @ AdminSubSider.uvue?import:112 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +pages-json-js?t=1770810049956:278 GET http://localhost:5173/pages/mall/admin/setting/message.uvue?t=1770810030507&import net::ERR_ABORTED 500 (Internal Server Error) +PagesMallAdminSettingMessageLoader @ pages-json-js?t=1770810049956:278 +(anonymous) @ uni-h5.es.js:24748 +(anonymous) @ uni-h5.es.js:4125 +invokeApi @ uni-h5.es.js:3971 +(anonymous) @ uni-h5.es.js:3989 +(anonymous) @ uni-h5.es.js:24765 +(anonymous) @ uni-h5.es.js:24764 +Promise.then +(anonymous) @ uni-h5.es.js:24763 +(anonymous) @ uni-h5.es.js:24762 +pages-json-js?t=1770810049956:280 GET http://localhost:5173/pages/mall/admin/setting/agreement.uvue?t=1770810040122&import net::ERR_ABORTED 500 (Internal Server Error) +PagesMallAdminSettingAgreementLoader @ pages-json-js?t=1770810049956:280 +(anonymous) @ uni-h5.es.js:24748 +(anonymous) @ uni-h5.es.js:4125 +invokeApi @ uni-h5.es.js:3971 +(anonymous) @ uni-h5.es.js:3989 +(anonymous) @ uni-h5.es.js:24765 +(anonymous) @ uni-h5.es.js:24764 +Promise.then +(anonymous) @ uni-h5.es.js:24763 +(anonymous) @ uni-h5.es.js:24762 +pages-json-js?t=1770810049956:282 GET http://localhost:5173/pages/mall/admin/setting/ticket.uvue?t=1770810049956&import net::ERR_ABORTED 500 (Internal Server Error). \ No newline at end of file From db9c4da279cb84c8e8b9c0b2ed692c557449aae3 Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Wed, 11 Feb 2026 20:16:51 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E8=A1=A5=E5=85=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layouts/admin/components/AdminSubsider.uvue | 16 +- layouts/admin/router/adminComponentMap.uts | 1 + layouts/admin/router/adminRoutes.uts | 211 ++-------------- layouts/admin/router/settingSubSiderMenu.uts | 2 +- pages.json | 49 ++++ pages/mall/admin/setting/auth/admin.uvue | 172 ++++++++++++- pages/mall/admin/setting/auth/permission.uvue | 183 +++++++++++++- pages/mall/admin/setting/auth/role.uvue | 169 ++++++++++++- pages/mall/admin/setting/delivery/staff.uvue | 157 +++++++++++- .../mall/admin/setting/delivery/station.uvue | 225 +++++++++++++++++- .../mall/admin/setting/delivery/template.uvue | 182 +++++++++++++- .../mall/admin/setting/delivery/verifier.uvue | 207 ++++++++++++++++ 12 files changed, 1326 insertions(+), 248 deletions(-) create mode 100644 pages/mall/admin/setting/delivery/verifier.uvue diff --git a/layouts/admin/components/AdminSubsider.uvue b/layouts/admin/components/AdminSubsider.uvue index 968671b4..e447e3a3 100644 --- a/layouts/admin/components/AdminSubsider.uvue +++ b/layouts/admin/components/AdminSubsider.uvue @@ -92,8 +92,20 @@ function isActive(node: MenuNode): boolean { // 只有非分组项才能被视为“激活”变色 (1:1 复刻 screenshot 效果) if (node.type === 'group') return false - if (props.activeId != '' && node.id === props.activeId) return true - if (props.currentPath != '' && node.path === props.currentPath) return true + // 核心逻辑:优先匹配 ID,ID 是唯一的 + // 如果当前选中的 ID 就是这个节点的 ID,那它肯定是激活的 + if (props.activeId != '' && node.id === props.activeId) { + return true + } + + // 如果 ID 没匹配上,但路径匹配上了,且当前没有 activeId (例如首次进入或刷新) + // 或者当前 ID 对应的路径跟这个路径一样 + // 但为了防止 Path 相同导致多选,我们加一个额外判断: + // 如果 activeId 已经指向了一个有效的路由,我们通常不再通过 Path 来高亮其他项 + if (props.activeId === '' && props.currentPath != '' && node.path === props.currentPath) { + return true + } + return false } diff --git a/layouts/admin/router/adminComponentMap.uts b/layouts/admin/router/adminComponentMap.uts index a5797d06..f5eca71c 100644 --- a/layouts/admin/router/adminComponentMap.uts +++ b/layouts/admin/router/adminComponentMap.uts @@ -133,6 +133,7 @@ export const componentMap: Map = new Map([ ['SettingAuthPermission', defineAsyncComponent(() => import('@/pages/mall/admin/setting/auth/permission.uvue'))], ['SettingDeliveryStaff', defineAsyncComponent(() => import('@/pages/mall/admin/setting/delivery/staff.uvue'))], ['SettingDeliveryStation', defineAsyncComponent(() => import('@/pages/mall/admin/setting/delivery/station.uvue'))], + ['SettingDeliveryVerifier', defineAsyncComponent(() => import('@/pages/mall/admin/setting/delivery/verifier.uvue'))], ['SettingDeliveryTemplate', defineAsyncComponent(() => import('@/pages/mall/admin/setting/delivery/template.uvue'))], ['SettingInterfaceOnepassConfig', defineAsyncComponent(() => import('@/pages/mall/admin/setting/interface/onepass/config.uvue'))], ['SettingInterfaceOnepassIndex', defineAsyncComponent(() => import('@/pages/mall/admin/setting/interface/onepass/index.uvue'))], diff --git a/layouts/admin/router/adminRoutes.uts b/layouts/admin/router/adminRoutes.uts index a4cdd426..a2c9ece4 100644 --- a/layouts/admin/router/adminRoutes.uts +++ b/layouts/admin/router/adminRoutes.uts @@ -894,180 +894,6 @@ export const routes: RouteRecord[] = [ order: 1 }, - // ========== 设置模块 ========== - // 1. 系统设置 - { - id: 'setting_systemConfig', - title: '系统设置', - path: '/pages/mall/admin/setting/system/config', - componentKey: 'SettingSystemConfig', - parentId: 'setting', - groupId: 'setting-system', - auth: ['admin-setting-system-config'], - order: 1 - }, - - // 2. 通知管理 - { - id: 'setting_message', - title: '消息管理', - path: '/pages/mall/admin/setting/message', - componentKey: 'SettingMessage', - parentId: 'setting', - groupId: 'setting-message', - order: 1 - }, - { - id: 'setting_agreement', - title: '协议管理', - path: '/pages/mall/admin/setting/agreement', - componentKey: 'SettingAgreement', - parentId: 'setting', - groupId: 'setting-message', - order: 2 - }, - { - id: 'setting_ticket', - title: '客服设置', - path: '/pages/mall/admin/setting/ticket', - componentKey: 'SettingTicket', - parentId: 'setting', - groupId: 'setting-message', - order: 3 - }, - - // 3. 权限管理 - { - id: 'setting_auth_role', - title: '角色管理', - path: '/pages/mall/admin/setting/auth/role', - componentKey: 'SettingAuthRole', - parentId: 'setting', - groupId: 'setting-auth', - order: 1 - }, - { - id: 'setting_auth_admin', - title: '管理员管理', - path: '/pages/mall/admin/setting/auth/admin', - componentKey: 'SettingAuthAdmin', - parentId: 'setting', - groupId: 'setting-auth', - order: 2 - }, - { - id: 'setting_auth_permission', - title: '权限管理', - path: '/pages/mall/admin/setting/auth/permission', - componentKey: 'SettingAuthPermission', - parentId: 'setting', - groupId: 'setting-auth', - order: 3 - }, - - // 4. 物流设置 - { - id: 'setting_delivery_staff', - title: '配送员管理', - path: '/pages/mall/admin/setting/delivery/staff', - componentKey: 'SettingDeliveryStaff', - parentId: 'setting', - groupId: 'setting-delivery', - order: 1 - }, - { - id: 'setting_delivery_station', - title: '提货点管理', - path: '/pages/mall/admin/setting/delivery/station', - componentKey: 'SettingDeliveryStation', - parentId: 'setting', - groupId: 'setting-delivery', - order: 2 - }, - { - id: 'setting_delivery_template', - title: '运费模板', - path: '/pages/mall/admin/setting/delivery/template', - componentKey: 'SettingDeliveryTemplate', - parentId: 'setting', - groupId: 'setting-delivery', - order: 3 - }, - - // 5. 接口设置 - { - id: 'setting_interface_onepass_config', - title: '总平台配置', - path: '/pages/mall/admin/setting/interface/onepass/config', - componentKey: 'SettingInterfaceOnepassConfig', - parentId: 'setting', - groupId: 'setting-interface', - order: 1 - }, - { - id: 'setting_interface_onepass_index', - title: '账号列表', - path: '/pages/mall/admin/setting/interface/onepass/index', - componentKey: 'SettingInterfaceOnepassIndex', - parentId: 'setting', - groupId: 'setting-interface', - order: 2 - }, - { - id: 'setting_interface_storage', - title: '存储配置', - path: '/pages/mall/admin/setting/interface/storage', - componentKey: 'SettingInterfaceStorage', - parentId: 'setting', - groupId: 'setting-interface', - order: 3 - }, - { - id: 'setting_interface_collect', - title: '商品采集', - path: '/pages/mall/admin/setting/interface/collect', - componentKey: 'SettingInterfaceCollect', - parentId: 'setting', - groupId: 'setting-interface', - order: 4 - }, - { - id: 'setting_interface_logistics', - title: '物流查询', - path: '/pages/mall/admin/setting/interface/logistics', - componentKey: 'SettingInterfaceLogistics', - parentId: 'setting', - groupId: 'setting-interface', - order: 5 - }, - { - id: 'setting_interface_esheet', - title: '电子面单', - path: '/pages/mall/admin/setting/interface/e-sheet', - componentKey: 'SettingInterfaceESheet', - parentId: 'setting', - groupId: 'setting-interface', - order: 6 - }, - { - id: 'setting_interface_sms', - title: '短信接口', - path: '/pages/mall/admin/setting/interface/sms', - componentKey: 'SettingInterfaceSms', - parentId: 'setting', - groupId: 'setting-interface', - order: 7 - }, - { - id: 'setting_interface_payment', - title: '商城支付', - path: '/pages/mall/admin/setting/interface/payment', - componentKey: 'SettingInterfacePayment', - parentId: 'setting', - groupId: 'setting-interface', - order: 8 - }, - // ========== 分销模块 ========== { id: 'distribution_statistic', @@ -1246,31 +1072,34 @@ export const routes: RouteRecord[] = [ }, // ========== 设置模块 (1:1 复刻 CRMEB 路由结构) ========== - // 通知管理 + // 1. 系统设置 + { id: 'setting_system_config', title: '系统配置', path: '/pages/mall/admin/setting/system/config', componentKey: 'SettingSystemConfig', parentId: 'setting', groupId: 'setting-system', order: 1 }, + + // 2. 通知管理 { id: 'setting_message_index', title: '消息管理', path: '/pages/mall/admin/setting/message', componentKey: 'SettingMessageIndex', parentId: 'setting', groupId: 'setting-message', order: 1 }, { id: 'setting_protocol_index', title: '协议设置', path: '/pages/mall/admin/setting/agreement', componentKey: 'SettingProtocolIndex', parentId: 'setting', groupId: 'setting-message', order: 2 }, { id: 'setting_ticket_index', title: '小票配置', path: '/pages/mall/admin/setting/ticket', componentKey: 'SettingTicketIndex', parentId: 'setting', groupId: 'setting-message', order: 3 }, - // 权限管理 + // 3. 权限管理 { id: 'setting_auth_admin', title: '管理员管理', path: '/pages/mall/admin/setting/auth/admin', componentKey: 'SettingAuthAdmin', parentId: 'setting', groupId: 'setting-auth', order: 1 }, { id: 'setting_auth_role', title: '角色管理', path: '/pages/mall/admin/setting/auth/role', componentKey: 'SettingAuthRole', parentId: 'setting', groupId: 'setting-auth', order: 2 }, - { id: 'setting_auth_menu', title: '菜单管理', path: '/pages/mall/admin/setting/auth/permission', componentKey: 'SettingAuthMenu', parentId: 'setting', groupId: 'setting-auth', order: 3 }, + { id: 'setting_auth_menu', title: '菜单管理', path: '/pages/mall/admin/setting/auth/permission', componentKey: 'SettingAuthPermission', parentId: 'setting', groupId: 'setting-auth', order: 3 }, - // 物流设置 - { id: 'setting_delivery_courier', title: '配送员管理', path: '/pages/mall/admin/setting/delivery/staff', componentKey: 'SettingDeliveryCourier', parentId: 'setting', groupId: 'setting-delivery', order: 1 }, - { id: 'setting_delivery_pickup_list', title: '提货点', path: '/pages/mall/admin/setting/delivery/station', componentKey: 'SettingDeliveryPickupList', parentId: 'setting', groupId: 'setting-delivery', order: 2 }, - { id: 'setting_delivery_verifier', title: '核销员', path: '/pages/mall/admin/setting/delivery/station', componentKey: 'SettingDeliveryVerifier', parentId: 'setting', groupId: 'setting-delivery', order: 3 }, - { id: 'setting_delivery_freight', title: '运费模板', path: '/pages/mall/admin/setting/delivery/template', componentKey: 'SettingDeliveryFreight', parentId: 'setting', groupId: 'setting-delivery', order: 4 }, + // 4. 物流设置 + { id: 'setting_delivery_courier', title: '配送员管理', path: '/pages/mall/admin/setting/delivery/staff', componentKey: 'SettingDeliveryStaff', parentId: 'setting', groupId: 'setting-delivery', order: 1 }, + { id: 'setting_delivery_pickup_list', title: '提货点', path: '/pages/mall/admin/setting/delivery/station', componentKey: 'SettingDeliveryStation', parentId: 'setting', groupId: 'setting-delivery', order: 2 }, + { id: 'setting_delivery_verifier', title: '核销员', path: '/pages/mall/admin/setting/delivery/verifier', componentKey: 'SettingDeliveryVerifier', parentId: 'setting', groupId: 'setting-delivery', order: 3 }, + { id: 'setting_delivery_freight', title: '运费模板', path: '/pages/mall/admin/setting/delivery/template', componentKey: 'SettingDeliveryTemplate', parentId: 'setting', groupId: 'setting-delivery', order: 4 }, - // 接口设置 - { id: 'setting_api_yht_page', title: '一号通页面', path: '/pages/mall/admin/setting/interface/onepass/index', componentKey: 'SettingApiYhtPage', parentId: 'setting', groupId: 'setting-interface', order: 1 }, - { id: 'setting_api_yht_config', title: '一号通配置', path: '/pages/mall/admin/setting/interface/onepass/config', componentKey: 'SettingApiYhtConfig', parentId: 'setting', groupId: 'setting-interface', order: 2 }, - { id: 'setting_api_storage', title: '系统存储配置', path: '/pages/mall/admin/setting/interface/storage', componentKey: 'SettingApiStorage', parentId: 'setting', groupId: 'setting-interface', order: 3 }, - { id: 'setting_api_collect', title: '商品采集配置', path: '/pages/mall/admin/setting/interface/collect', componentKey: 'SettingApiCollect', parentId: 'setting', groupId: 'setting-interface', order: 4 }, - { id: 'setting_api_logistics', title: '物流查询配置', path: '/pages/mall/admin/setting/interface/logistics', componentKey: 'SettingApiLogistics', parentId: 'setting', groupId: 'setting-interface', order: 5 }, - { id: 'setting_api_waybill', title: '电子面单配置', path: '/pages/mall/admin/setting/interface/e-sheet', componentKey: 'SettingApiWaybill', parentId: 'setting', groupId: 'setting-interface', order: 6 }, - { id: 'setting_api_sms', title: '短信接口配置', path: '/pages/mall/admin/setting/interface/sms', componentKey: 'SettingApiSms', parentId: 'setting', groupId: 'setting-interface', order: 7 }, - { id: 'setting_api_pay', title: '商城支付配置', path: '/pages/mall/admin/setting/interface/payment', componentKey: 'SettingApiPay', parentId: 'setting', groupId: 'setting-interface', order: 8 }, + // 5. 接口设置 + { id: 'setting_api_yht_page', title: '一号通页面', path: '/pages/mall/admin/setting/interface/onepass/index', componentKey: 'SettingInterfaceOnepassIndex', parentId: 'setting', groupId: 'setting-interface', order: 1 }, + { id: 'setting_api_yht_config', title: '一号通配置', path: '/pages/mall/admin/setting/interface/onepass/config', componentKey: 'SettingInterfaceOnepassConfig', parentId: 'setting', groupId: 'setting-interface', order: 2 }, + { id: 'setting_api_storage', title: '系统存储配置', path: '/pages/mall/admin/setting/interface/storage', componentKey: 'SettingInterfaceStorage', parentId: 'setting', groupId: 'setting-interface', order: 3 }, + { id: 'setting_api_collect', title: '商品采集配置', path: '/pages/mall/admin/setting/interface/collect', componentKey: 'SettingInterfaceCollect', parentId: 'setting', groupId: 'setting-interface', order: 4 }, + { id: 'setting_api_logistics', title: '物流查询配置', path: '/pages/mall/admin/setting/interface/logistics', componentKey: 'SettingInterfaceLogistics', parentId: 'setting', groupId: 'setting-interface', order: 5 }, + { id: 'setting_api_waybill', title: '电子面单配置', path: '/pages/mall/admin/setting/interface/e-sheet', componentKey: 'SettingInterfaceESheet', parentId: 'setting', groupId: 'setting-interface', order: 6 }, + { id: 'setting_api_sms', title: '短信接口配置', path: '/pages/mall/admin/setting/interface/sms', componentKey: 'SettingInterfaceSms', parentId: 'setting', groupId: 'setting-interface', order: 7 }, + { id: 'setting_api_pay', title: '商城支付配置', path: '/pages/mall/admin/setting/interface/payment', componentKey: 'SettingInterfacePayment', parentId: 'setting', groupId: 'setting-interface', order: 8 }, // ========== 应用模块 ========== { diff --git a/layouts/admin/router/settingSubSiderMenu.uts b/layouts/admin/router/settingSubSiderMenu.uts index b26a8313..0f298de4 100644 --- a/layouts/admin/router/settingSubSiderMenu.uts +++ b/layouts/admin/router/settingSubSiderMenu.uts @@ -20,7 +20,7 @@ export const settingSubSiderMenu: MenuNode[] = [ { id: 'setting_delivery_courier', title: '配送员管理', type: 'page', path: '/pages/mall/admin/setting/delivery/staff' }, { id: 'pickup_order_group', title: '提货点设置', type: 'group', children: [ { id: 'setting_delivery_pickup_list', title: '提货点', type: 'page', path: '/pages/mall/admin/setting/delivery/station' }, - { id: 'setting_delivery_verifier', title: '核销员', type: 'page', path: '/pages/mall/admin/setting/delivery/station' }, + { id: 'setting_delivery_verifier', title: '核销员', type: 'page', path: '/pages/mall/admin/setting/delivery/verifier' }, { id: 'setting_delivery_freight', title: '运费模板', type: 'page', path: '/pages/mall/admin/setting/delivery/template' } ]} ] diff --git a/pages.json b/pages.json index be86e519..b91da982 100644 --- a/pages.json +++ b/pages.json @@ -654,6 +654,55 @@ "navigationBarTitleText": "小票配置", "navigationStyle": "custom" } + }, + { + "path": "setting/auth/admin", + "style": { + "navigationBarTitleText": "管理员管理", + "navigationStyle": "custom" + } + }, + { + "path": "setting/auth/role", + "style": { + "navigationBarTitleText": "角色管理", + "navigationStyle": "custom" + } + }, + { + "path": "setting/auth/permission", + "style": { + "navigationBarTitleText": "权限规则", + "navigationStyle": "custom" + } + }, + { + "path": "setting/delivery/staff", + "style": { + "navigationBarTitleText": "配送员管理", + "navigationStyle": "custom" + } + }, + { + "path": "setting/delivery/station", + "style": { + "navigationBarTitleText": "提货点", + "navigationStyle": "custom" + } + }, + { + "path": "setting/delivery/verifier", + "style": { + "navigationBarTitleText": "核销员", + "navigationStyle": "custom" + } + }, + { + "path": "setting/delivery/template", + "style": { + "navigationBarTitleText": "运费模板", + "navigationStyle": "custom" + } } ] }, diff --git a/pages/mall/admin/setting/auth/admin.uvue b/pages/mall/admin/setting/auth/admin.uvue index a3fe4068..893a3025 100644 --- a/pages/mall/admin/setting/auth/admin.uvue +++ b/pages/mall/admin/setting/auth/admin.uvue @@ -1,23 +1,177 @@ diff --git a/pages/mall/admin/setting/auth/permission.uvue b/pages/mall/admin/setting/auth/permission.uvue index cb9c5c56..3403bab8 100644 --- a/pages/mall/admin/setting/auth/permission.uvue +++ b/pages/mall/admin/setting/auth/permission.uvue @@ -1,23 +1,188 @@ diff --git a/pages/mall/admin/setting/auth/role.uvue b/pages/mall/admin/setting/auth/role.uvue index 9ebc8c82..ef9abf5c 100644 --- a/pages/mall/admin/setting/auth/role.uvue +++ b/pages/mall/admin/setting/auth/role.uvue @@ -1,23 +1,174 @@ diff --git a/pages/mall/admin/setting/delivery/staff.uvue b/pages/mall/admin/setting/delivery/staff.uvue index a0dc1ded..906f93c5 100644 --- a/pages/mall/admin/setting/delivery/staff.uvue +++ b/pages/mall/admin/setting/delivery/staff.uvue @@ -1,23 +1,162 @@ diff --git a/pages/mall/admin/setting/delivery/station.uvue b/pages/mall/admin/setting/delivery/station.uvue index cb848d40..eb412d80 100644 --- a/pages/mall/admin/setting/delivery/station.uvue +++ b/pages/mall/admin/setting/delivery/station.uvue @@ -1,23 +1,230 @@ diff --git a/pages/mall/admin/setting/delivery/template.uvue b/pages/mall/admin/setting/delivery/template.uvue index 55733264..f3d8952b 100644 --- a/pages/mall/admin/setting/delivery/template.uvue +++ b/pages/mall/admin/setting/delivery/template.uvue @@ -1,23 +1,187 @@ diff --git a/pages/mall/admin/setting/delivery/verifier.uvue b/pages/mall/admin/setting/delivery/verifier.uvue new file mode 100644 index 00000000..a9d5d4c1 --- /dev/null +++ b/pages/mall/admin/setting/delivery/verifier.uvue @@ -0,0 +1,207 @@ + + + + + From db323abaf09dbcc2494559d05339e074cc8b508f Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Thu, 12 Feb 2026 23:53:44 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages.json | 56 +++++ .../mall/admin/setting/interface/collect.uvue | 37 ++-- .../mall/admin/setting/interface/e-sheet.uvue | 191 ++++++++++++++++- .../admin/setting/interface/logistics.uvue | 179 +++++++++++++++- .../setting/interface/onepass/config.uvue | 93 ++++++-- .../setting/interface/onepass/index.uvue | 152 +++++++++++-- .../mall/admin/setting/interface/payment.uvue | 200 +++++++++++++++++- pages/mall/admin/setting/interface/sms.uvue | 183 +++++++++++++++- .../mall/admin/setting/interface/storage.uvue | 65 ++++-- 9 files changed, 1061 insertions(+), 95 deletions(-) diff --git a/pages.json b/pages.json index b91da982..380ae959 100644 --- a/pages.json +++ b/pages.json @@ -703,6 +703,62 @@ "navigationBarTitleText": "运费模板", "navigationStyle": "custom" } + }, + { + "path": "setting/interface/onepass/index", + "style": { + "navigationBarTitleText": "一号通账户", + "navigationStyle": "custom" + } + }, + { + "path": "setting/interface/onepass/config", + "style": { + "navigationBarTitleText": "一号通配置", + "navigationStyle": "custom" + } + }, + { + "path": "setting/interface/storage", + "style": { + "navigationBarTitleText": "系统存储配置", + "navigationStyle": "custom" + } + }, + { + "path": "setting/interface/collect", + "style": { + "navigationBarTitleText": "商品采集配置", + "navigationStyle": "custom" + } + }, + { + "path": "setting/interface/logistics", + "style": { + "navigationBarTitleText": "物流查询配置", + "navigationStyle": "custom" + } + }, + { + "path": "setting/interface/e-sheet", + "style": { + "navigationBarTitleText": "电子面单配置", + "navigationStyle": "custom" + } + }, + { + "path": "setting/interface/sms", + "style": { + "navigationBarTitleText": "短信功能配置", + "navigationStyle": "custom" + } + }, + { + "path": "setting/interface/payment", + "style": { + "navigationBarTitleText": "商城支付配置", + "navigationStyle": "custom" + } } ] }, diff --git a/pages/mall/admin/setting/interface/collect.uvue b/pages/mall/admin/setting/interface/collect.uvue index aa80b437..19667c8e 100644 --- a/pages/mall/admin/setting/interface/collect.uvue +++ b/pages/mall/admin/setting/interface/collect.uvue @@ -1,23 +1,28 @@ - - - From 01d1c345d0d1d84f9ffff03a2c5b9cd4c2c35899 Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Fri, 13 Feb 2026 00:27:35 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A23?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/admin/setting/interface/payment.uvue | 124 ++++++-- pages/mall/admin/setting/interface/sms.uvue | 286 +++++++++++++++--- 2 files changed, 334 insertions(+), 76 deletions(-) diff --git a/pages/mall/admin/setting/interface/payment.uvue b/pages/mall/admin/setting/interface/payment.uvue index f7d20da6..ce3f2279 100644 --- a/pages/mall/admin/setting/interface/payment.uvue +++ b/pages/mall/admin/setting/interface/payment.uvue @@ -6,55 +6,116 @@ / 接口配置 / - 商城支付 + 商城支付配置 - 支付配置 + + 基础配置 + + + 微信支付配置 + - + + + - 微信支付: + 余额支付: - - 开启后前端可使用微信支付 + + + + + 余额支付请选择开启或关闭 - AppID: + 好友代付: - + + + + + 好友代付开关,关闭后付款类型不显示好友代付 + + + + + + + + + + + + + 支付接口类型: + + + + + + 支付接口类型v2对应微信支付旧版v2支付。v3对应微信支付v3支付接口。支付证书可以通用一个,支付秘钥和v2旧版支付有区别 - MchID: + 证书序列号: - + + 「商户API证书」的「证书序列号」,可以在证书管理里面查看 - - 支付宝支付: + + 微信自动提现场景值: - + - - + + v3支付Key: + + + + + + Mchid: + + + + + + + + diff --git a/pages/mall/admin/setting/interface/sms.uvue b/pages/mall/admin/setting/interface/sms.uvue index 66d3b321..388037ab 100644 --- a/pages/mall/admin/setting/interface/sms.uvue +++ b/pages/mall/admin/setting/interface/sms.uvue @@ -6,80 +6,272 @@ / 接口配置 / - 短信接口 + 短信接口配置 - 短信配置 + + 基础配置 + + + 阿里云配置 + + + 腾讯云配置 + - + + + - *短信签名: + 短信类型: - - 必须包含中括号,且已在服务商备案 - - - - 服务商选择: - - - - + + + + + 短信类型,选择发送的短信类型 + + + + + + + + + + + + + AccessKeyId: + + + 阿里云AccessKeyId - *AccessKey ID: + AccessKeySecret: - + + 阿里云AccessKeySecret - *AccessKey Secret: + 短信签名: - + + 短信签名 - - + + + + + + + + + + + SKD AppID: + + + 腾讯云短信应用SKD APPID + + + + AccessKeyId: + + + 腾讯云AccessKeyId + + + + AccessKeySecret: + + + 腾讯云AccessKeySecret + + + + 腾讯云短信签名: + + + 腾讯云短信签名 + + + + 短信区域: + + + 短信区域ap-beijing、ap-guangzhou、ap-nanjing任选其一填写 + + + + + + From 194dd19174af550b935e7a85bfa8db0f7e5f85f4 Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Fri, 13 Feb 2026 00:38:13 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A24?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/admin/setting/interface/e-sheet.uvue | 243 +++++++++++++++--- .../admin/setting/interface/logistics.uvue | 221 ++++++++++++---- 2 files changed, 377 insertions(+), 87 deletions(-) diff --git a/pages/mall/admin/setting/interface/e-sheet.uvue b/pages/mall/admin/setting/interface/e-sheet.uvue index 8b8f3a11..a0930ade 100644 --- a/pages/mall/admin/setting/interface/e-sheet.uvue +++ b/pages/mall/admin/setting/interface/e-sheet.uvue @@ -6,74 +6,235 @@ / 接口配置 / - 电子面单 + 电子面单配置 - 面单配置 + + 基础配置 + + + 一号通配置 + - + + + - *打印方式: + 开启电子面单: - - - + + + + 电子面单是否开启 - *电子面单账号: + 电子面单类型: - - 快递100或一号通申请的电子面单账号 + + + + 电子面单类型 + + + + + + + + + + + + + 发货人姓名: + + + 快递面单发货人姓名 - *电子面单密钥: + 发货人电话: - + + 快递面单发货人电话 - - + + 发货人详细地址: + + + 快递面单发货人详细地址 + + + + 打印机编号: + + + 请购买快速100二代云打印机(KX100L3) + + + + + + diff --git a/pages/mall/admin/setting/interface/logistics.uvue b/pages/mall/admin/setting/interface/logistics.uvue index a3694172..95a1004e 100644 --- a/pages/mall/admin/setting/interface/logistics.uvue +++ b/pages/mall/admin/setting/interface/logistics.uvue @@ -6,75 +6,204 @@ / 接口配置 / - 物流查询 + 物流查询配置 - 物流配置 + + 基础配置 + + + 阿里云配置 + - + + + - *物流查询服务: + 接口选择: - - - + + + + 建议使用一号通更方便不用配置密钥,阿里云云市场购买链接:https://0x9.me/w9vnq + + + + + + + + + - *Customer: + 快递查询密钥: - - 快递100分配给贵司的Customer + + 阿里云云市场快递查询接口密钥购买地址:https://market.aliyun.com/products/57126001/cmapi021863.html?spm=5176.2020520132.101.4.42a672183nvgfH#sku=yuncode1586300000 - - *Key: - - - 快递100分配给贵司的Key - - - - + + + + From 1b558e31174ff86212a0c023859521386742722e Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Fri, 13 Feb 2026 00:54:33 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A25?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/admin/setting/interface/collect.uvue | 209 +++++++- .../mall/admin/setting/interface/storage.uvue | 503 ++++++++++++++++-- 2 files changed, 659 insertions(+), 53 deletions(-) diff --git a/pages/mall/admin/setting/interface/collect.uvue b/pages/mall/admin/setting/interface/collect.uvue index 19667c8e..0dada81f 100644 --- a/pages/mall/admin/setting/interface/collect.uvue +++ b/pages/mall/admin/setting/interface/collect.uvue @@ -1,28 +1,215 @@  + - + + diff --git a/pages/mall/admin/setting/interface/storage.uvue b/pages/mall/admin/setting/interface/storage.uvue index 07a7066b..65909647 100644 --- a/pages/mall/admin/setting/interface/storage.uvue +++ b/pages/mall/admin/setting/interface/storage.uvue @@ -1,62 +1,481 @@  + + + From da1075b9e99ff1fd7ac6159cf172c266a0cfe15e Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Fri, 13 Feb 2026 01:13:21 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A26?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layouts/admin/router/adminComponentMap.uts | 14 +- layouts/admin/router/adminRoutes.uts | 44 ++-- pages.json | 84 +++++++ pages/mall/admin/app/mobile/config.uvue | 70 ++++++ pages/mall/admin/app/mobile/version.uvue | 38 +++ pages/mall/admin/app/pc/config.uvue | 66 ++++++ pages/mall/admin/app/pc/design.uvue | 223 ++++++++++++++++++ pages/mall/admin/app/routine/config.uvue | 66 ++++++ pages/mall/admin/app/routine/download.uvue | 137 +++++++++++ pages/mall/admin/app/wechat/config.uvue | 136 +++++++++++ pages/mall/admin/app/wechat/menu.uvue | 129 ++++++++++ pages/mall/admin/app/wechat/news.uvue | 82 +++++++ pages/mall/admin/app/wechat/reply/follow.uvue | 144 +++++++++++ .../mall/admin/app/wechat/reply/invalid.uvue | 63 +++++ .../mall/admin/app/wechat/reply/keyword.uvue | 57 +++++ 15 files changed, 1331 insertions(+), 22 deletions(-) create mode 100644 pages/mall/admin/app/mobile/config.uvue create mode 100644 pages/mall/admin/app/mobile/version.uvue create mode 100644 pages/mall/admin/app/pc/config.uvue create mode 100644 pages/mall/admin/app/pc/design.uvue create mode 100644 pages/mall/admin/app/routine/config.uvue create mode 100644 pages/mall/admin/app/routine/download.uvue create mode 100644 pages/mall/admin/app/wechat/config.uvue create mode 100644 pages/mall/admin/app/wechat/menu.uvue create mode 100644 pages/mall/admin/app/wechat/news.uvue create mode 100644 pages/mall/admin/app/wechat/reply/follow.uvue create mode 100644 pages/mall/admin/app/wechat/reply/invalid.uvue create mode 100644 pages/mall/admin/app/wechat/reply/keyword.uvue diff --git a/layouts/admin/router/adminComponentMap.uts b/layouts/admin/router/adminComponentMap.uts index f5eca71c..9e3a80db 100644 --- a/layouts/admin/router/adminComponentMap.uts +++ b/layouts/admin/router/adminComponentMap.uts @@ -170,8 +170,18 @@ export const componentMap: Map = new Map([ ['DecorationLink', defineAsyncComponent(() => import('@/pages/mall/admin/design/link-management.uvue'))], // 应用模块 - ['AppStatistic', PlaceholderPage], - ['AppList', PlaceholderPage], + ['AppWechatMenu', defineAsyncComponent(() => import('@/pages/mall/admin/app/wechat/menu.uvue'))], + ['AppWechatNews', defineAsyncComponent(() => import('@/pages/mall/admin/app/wechat/news.uvue'))], + ['AppWechatReplyFollow', defineAsyncComponent(() => import('@/pages/mall/admin/app/wechat/reply/follow.uvue'))], + ['AppWechatReplyKeyword', defineAsyncComponent(() => import('@/pages/mall/admin/app/wechat/reply/keyword.uvue'))], + ['AppWechatReplyInvalid', defineAsyncComponent(() => import('@/pages/mall/admin/app/wechat/reply/invalid.uvue'))], + ['AppWechatConfig', defineAsyncComponent(() => import('@/pages/mall/admin/app/wechat/config.uvue'))], + ['AppRoutineDownload', defineAsyncComponent(() => import('@/pages/mall/admin/app/routine/download.uvue'))], + ['AppRoutineConfig', defineAsyncComponent(() => import('@/pages/mall/admin/app/routine/config.uvue'))], + ['AppMobileConfig', defineAsyncComponent(() => import('@/pages/mall/admin/app/mobile/config.uvue'))], + ['AppMobileVersion', defineAsyncComponent(() => import('@/pages/mall/admin/app/mobile/version.uvue'))], + ['AppPcDesign', defineAsyncComponent(() => import('@/pages/mall/admin/app/pc/design.uvue'))], + ['AppPcConfig', defineAsyncComponent(() => import('@/pages/mall/admin/app/pc/config.uvue'))], // 维护模块 ['MaintainDevConfig', defineAsyncComponent(() => import('@/pages/mall/admin/maintain/dev-config/category.uvue'))], diff --git a/layouts/admin/router/adminRoutes.uts b/layouts/admin/router/adminRoutes.uts index a2c9ece4..c88c8d70 100644 --- a/layouts/admin/router/adminRoutes.uts +++ b/layouts/admin/router/adminRoutes.uts @@ -173,10 +173,13 @@ export const topMenus: TopMenu[] = [ id: 'app', title: '应用', icon: 'app', - path: '/pages/mall/admin/app/statistic', + path: '/pages/mall/admin/app/wechat/menu', order: 11, groups: [ - { id: 'app-manage', title: '', order: 1 } + { id: 'app-wechat', title: '公众号', order: 1 }, + { id: 'app-routine', title: '小程序', order: 2 }, + { id: 'app-mobile', title: 'APP', order: 3 }, + { id: 'app-pc', title: 'PC端', order: 4 } ] }, { @@ -1102,24 +1105,25 @@ export const routes: RouteRecord[] = [ { id: 'setting_api_pay', title: '商城支付配置', path: '/pages/mall/admin/setting/interface/payment', componentKey: 'SettingInterfacePayment', parentId: 'setting', groupId: 'setting-interface', order: 8 }, // ========== 应用模块 ========== - { - id: 'app_statistic', - title: '应用统计', - path: '/pages/mall/admin/app/statistic', - componentKey: 'AppStatistic', - parentId: 'app', - groupId: 'app-manage', - order: 1 - }, - { - id: 'app_list', - title: '应用列表', - path: '/pages/mall/admin/app/list', - componentKey: 'AppList', - parentId: 'app', - groupId: 'app-manage', - order: 2 - }, + // 1. 公众号 + { id: 'app_wechat_menu', title: '微信菜单', path: '/pages/mall/admin/app/wechat/menu', componentKey: 'AppWechatMenu', parentId: 'app', groupId: 'app-wechat', order: 1 }, + { id: 'app_wechat_news', title: '图文管理', path: '/pages/mall/admin/app/wechat/news', componentKey: 'AppWechatNews', parentId: 'app', groupId: 'app-wechat', order: 2 }, + { id: 'app_wechat_reply_follow', title: '关注回复', path: '/pages/mall/admin/app/wechat/reply/follow', componentKey: 'AppWechatReplyFollow', parentId: 'app', groupId: 'app-wechat', order: 3 }, + { id: 'app_wechat_reply_keyword', title: '关键字回复', path: '/pages/mall/admin/app/wechat/reply/keyword', componentKey: 'AppWechatReplyKeyword', parentId: 'app', groupId: 'app-wechat', order: 4 }, + { id: 'app_wechat_reply_invalid', title: '无效词回复', path: '/pages/mall/admin/app/wechat/reply/invalid', componentKey: 'AppWechatReplyInvalid', parentId: 'app', groupId: 'app-wechat', order: 5 }, + { id: 'app_wechat_config', title: '公众号配置', path: '/pages/mall/admin/app/wechat/config', componentKey: 'AppWechatConfig', parentId: 'app', groupId: 'app-wechat', order: 6 }, + + // 2. 小程序 + { id: 'app_routine_download', title: '小程序下载', path: '/pages/mall/admin/app/routine/download', componentKey: 'AppRoutineDownload', parentId: 'app', groupId: 'app-routine', order: 1 }, + { id: 'app_routine_config', title: '小程序配置', path: '/pages/mall/admin/app/routine/config', componentKey: 'AppRoutineConfig', parentId: 'app', groupId: 'app-routine', order: 2 }, + + // 3. APP + { id: 'app_mobile_config', title: 'APP配置', path: '/pages/mall/admin/app/mobile/config', componentKey: 'AppMobileConfig', parentId: 'app', groupId: 'app-mobile', order: 1 }, + { id: 'app_mobile_version', title: '版本管理', path: '/pages/mall/admin/app/mobile/version', componentKey: 'AppMobileVersion', parentId: 'app', groupId: 'app-mobile', order: 2 }, + + // 4. PC端 + { id: 'app_pc_design', title: 'PC端装修', path: '/pages/mall/admin/app/pc/design', componentKey: 'AppPcDesign', parentId: 'app', groupId: 'app-pc', order: 1 }, + { id: 'app_pc_config', title: 'PC端配置', path: '/pages/mall/admin/app/pc/config', componentKey: 'AppPcConfig', parentId: 'app', groupId: 'app-pc', order: 2 }, // ========== 维护模块 ========== // 开发配置 diff --git a/pages.json b/pages.json index 380ae959..c74049ac 100644 --- a/pages.json +++ b/pages.json @@ -759,6 +759,90 @@ "navigationBarTitleText": "商城支付配置", "navigationStyle": "custom" } + }, + { + "path": "app/wechat/menu", + "style": { + "navigationBarTitleText": "微信菜单", + "navigationStyle": "custom" + } + }, + { + "path": "app/wechat/news", + "style": { + "navigationBarTitleText": "图文管理", + "navigationStyle": "custom" + } + }, + { + "path": "app/wechat/reply/follow", + "style": { + "navigationBarTitleText": "微信关注回复", + "navigationStyle": "custom" + } + }, + { + "path": "app/wechat/reply/keyword", + "style": { + "navigationBarTitleText": "关键字回复", + "navigationStyle": "custom" + } + }, + { + "path": "app/wechat/reply/invalid", + "style": { + "navigationBarTitleText": "无效关键词回复", + "navigationStyle": "custom" + } + }, + { + "path": "app/wechat/config", + "style": { + "navigationBarTitleText": "公众号配置", + "navigationStyle": "custom" + } + }, + { + "path": "app/routine/download", + "style": { + "navigationBarTitleText": "小程序下载", + "navigationStyle": "custom" + } + }, + { + "path": "app/routine/config", + "style": { + "navigationBarTitleText": "小程序配置", + "navigationStyle": "custom" + } + }, + { + "path": "app/mobile/config", + "style": { + "navigationBarTitleText": "APP配置", + "navigationStyle": "custom" + } + }, + { + "path": "app/mobile/version", + "style": { + "navigationBarTitleText": "版本管理", + "navigationStyle": "custom" + } + }, + { + "path": "app/pc/design", + "style": { + "navigationBarTitleText": "PC端装修", + "navigationStyle": "custom" + } + }, + { + "path": "app/pc/config", + "style": { + "navigationBarTitleText": "PC端配置", + "navigationStyle": "custom" + } } ] }, diff --git a/pages/mall/admin/app/mobile/config.uvue b/pages/mall/admin/app/mobile/config.uvue new file mode 100644 index 00000000..328700d8 --- /dev/null +++ b/pages/mall/admin/app/mobile/config.uvue @@ -0,0 +1,70 @@ + + + + + diff --git a/pages/mall/admin/app/mobile/version.uvue b/pages/mall/admin/app/mobile/version.uvue new file mode 100644 index 00000000..1b4b8b38 --- /dev/null +++ b/pages/mall/admin/app/mobile/version.uvue @@ -0,0 +1,38 @@ + + + + + diff --git a/pages/mall/admin/app/pc/config.uvue b/pages/mall/admin/app/pc/config.uvue new file mode 100644 index 00000000..9b8117f7 --- /dev/null +++ b/pages/mall/admin/app/pc/config.uvue @@ -0,0 +1,66 @@ + + + + + diff --git a/pages/mall/admin/app/pc/design.uvue b/pages/mall/admin/app/pc/design.uvue new file mode 100644 index 00000000..64e09940 --- /dev/null +++ b/pages/mall/admin/app/pc/design.uvue @@ -0,0 +1,223 @@ + + + + + diff --git a/pages/mall/admin/app/routine/config.uvue b/pages/mall/admin/app/routine/config.uvue new file mode 100644 index 00000000..daef3074 --- /dev/null +++ b/pages/mall/admin/app/routine/config.uvue @@ -0,0 +1,66 @@ + + + + + diff --git a/pages/mall/admin/app/routine/download.uvue b/pages/mall/admin/app/routine/download.uvue new file mode 100644 index 00000000..dbdd0af6 --- /dev/null +++ b/pages/mall/admin/app/routine/download.uvue @@ -0,0 +1,137 @@ + + + + + diff --git a/pages/mall/admin/app/wechat/config.uvue b/pages/mall/admin/app/wechat/config.uvue new file mode 100644 index 00000000..cefac889 --- /dev/null +++ b/pages/mall/admin/app/wechat/config.uvue @@ -0,0 +1,136 @@ + + + + + diff --git a/pages/mall/admin/app/wechat/menu.uvue b/pages/mall/admin/app/wechat/menu.uvue new file mode 100644 index 00000000..be37bb04 --- /dev/null +++ b/pages/mall/admin/app/wechat/menu.uvue @@ -0,0 +1,129 @@ + + + + + diff --git a/pages/mall/admin/app/wechat/news.uvue b/pages/mall/admin/app/wechat/news.uvue new file mode 100644 index 00000000..52031cc1 --- /dev/null +++ b/pages/mall/admin/app/wechat/news.uvue @@ -0,0 +1,82 @@ + + + + + diff --git a/pages/mall/admin/app/wechat/reply/follow.uvue b/pages/mall/admin/app/wechat/reply/follow.uvue new file mode 100644 index 00000000..c98422c5 --- /dev/null +++ b/pages/mall/admin/app/wechat/reply/follow.uvue @@ -0,0 +1,144 @@ + + + + + diff --git a/pages/mall/admin/app/wechat/reply/invalid.uvue b/pages/mall/admin/app/wechat/reply/invalid.uvue new file mode 100644 index 00000000..d8225836 --- /dev/null +++ b/pages/mall/admin/app/wechat/reply/invalid.uvue @@ -0,0 +1,63 @@ + + + + + diff --git a/pages/mall/admin/app/wechat/reply/keyword.uvue b/pages/mall/admin/app/wechat/reply/keyword.uvue new file mode 100644 index 00000000..e4d5f17e --- /dev/null +++ b/pages/mall/admin/app/wechat/reply/keyword.uvue @@ -0,0 +1,57 @@ + + + + + From f814db2f12ad84b8a81a85f6a8799f876c76f3e4 Mon Sep 17 00:00:00 2001 From: huangzhenbao <17818024429@163.com> Date: Fri, 13 Feb 2026 01:52:47 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A1=B5=E9=9D=A27?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layouts/admin/AdminLayout.uvue | 13 +- pages/mall/admin/app/mobile/version.uvue | 175 +++++++++- pages/mall/admin/app/pc/config.uvue | 313 ++++++++++++++++-- pages/mall/admin/app/routine/config.uvue | 387 ++++++++++++++++++++--- 4 files changed, 799 insertions(+), 89 deletions(-) diff --git a/layouts/admin/AdminLayout.uvue b/layouts/admin/AdminLayout.uvue index 40c95cb7..15712b18 100644 --- a/layouts/admin/AdminLayout.uvue +++ b/layouts/admin/AdminLayout.uvue @@ -63,7 +63,8 @@ - + + @@ -116,6 +117,13 @@ import type { TabItem } from '@/layouts/admin/store/adminNavStore.uts' import { getComponent } from '@/layouts/admin/router/adminComponentMap.uts' +const props = defineProps({ + currentPage: { + type: String, + default: '' + } +}) + // 侧边栏宽度配置 (CRMEB 1:1) const ASIDE_W = 70 const SUB_W = 200 @@ -374,6 +382,9 @@ let resizeTid: any = null onMounted(() => { initNavState() + if (props.currentPage != '') { + openRoute(props.currentPage as string) + } // 初始化窗口宽度 windowWidth.value = uni.getWindowInfo().windowWidth diff --git a/pages/mall/admin/app/mobile/version.uvue b/pages/mall/admin/app/mobile/version.uvue index 1b4b8b38..9b5b8f75 100644 --- a/pages/mall/admin/app/mobile/version.uvue +++ b/pages/mall/admin/app/mobile/version.uvue @@ -1,24 +1,41 @@ + - + diff --git a/pages/mall/admin/app/pc/config.uvue b/pages/mall/admin/app/pc/config.uvue index 9b8117f7..fd002329 100644 --- a/pages/mall/admin/app/pc/config.uvue +++ b/pages/mall/admin/app/pc/config.uvue @@ -1,24 +1,94 @@ +