F006 W3.xC + W5.x.x+1/3/4/5 + W6 + W7 完整批次 (17 commits) #1

Merged
direv merged 24 commits from develop into main 2026-07-05 13:07:34 +08:00
Owner

概述

F006 新管理后台完整设计语言切换 + UI 整改批次

  • feature/zou/f006-v2-design → develop ✅ 已 merge (commit e2bcb3a)
  • develop → main 待合并 (本 PR)

包含 17 个 commits (W3.xC → W7)

W3.x C — 业务 view 完整化 (5 + 6 + 7 = 18 个 view 沿用老 vue)

  • feat(F006-W3xC): 7 个新 view 接真 API (W3.x C P0 全部)
  • feat(F006-W3xC): 5 个新 view (P1 基础设置全部)
  • feat(F006-W3xC): 6 个新 view (P2 商品管理全部, 含老 vue 字段参考)
  • feat(F006-W3xC): P2 升级 - 4 个无后端页 改 redirect 到真数据
  • feat(F006-W3xB): Dashboard 加图表 + 较昨日真值
  • feat(F006-W3xC): 数据统计首页 statistics/index 走 order 真 API

W5.x — 4 主题块 + EP 派生色覆盖

  • feat(F006): apply v2 design language patch
  • fix(F006-W5.x): 4 主题块追加 EP 派生色覆盖
  • feat(F006-W3.6): 暗色 logo 亮版
  • fix(F006-W5.x): EP 文字色/填充色/边框色/popover 背景等派生色全局跟主题

W5.x.x+1 — 暗主题弹窗/面包屑文字糊 (3 次迭代, 红框 2 闭环)

  • fix(F006-W5.x.x+1): 补 EP popper 系列变量 + :deep() 强制
  • fix(F006-W5.x.x+1 v2): ThemePicker 弹窗内文字 !important
  • fix(F006-W5xx+1): 暗主题弹窗仍糊根因

W5.x.x+3 — 菜单减法 + P3 通用表

  • feat(F006-W5.x.x+3): 菜单减法 + 11 个 P3 通用表格页
  • fix(F006-W5.x.x+3.1): 菜单跨父菜单去重
  • feat(F006-W5.x.x+3.2): 35 个剩余菜单接 GenericTableView
  • fix(F006-W5.x.x+3.3): 补 2 个 redirect (group-supplier, group-service)
  • docs(F006): update README with frp main entry (W5.x.x+3.5)

W5.x.x+4 — 50 P3 路由 MockTableView

  • feat(F006-W5xx4): 50 个 P3 路由接入 MockTableView (端点失败时降级 mock 数据, 沿用老 vue 字段)

W5.x.x+5 — 关键 view 完整化

  • feat(F006-W5xx5): 关键 view 完整化 (沿用老 vue 字段/操作/弹窗) + W3.x C 补 commit

W6 — 10 个业务 view 完整化

  • feat(F006-W6): 10 个 view 完整化 (api feedback/help/lunbo + other groupbuy/seckill/supplierBrand/categoryGood/label/textconfig + sys region)

W7 — 修重复菜单 + 清死代码

  • fix(F006-W7): 修重复菜单 - coupon 独立 view 走真 API + 清理 11 个死代码 configKey

验收清单

部署

  • Mac 端 build 3.96s (vite 5)
  • devbox 端 docker build -t industry-frontend:latest + docker compose up -d --force-recreate frontend
  • curl http://100.111.84.16:3000/admin/ 200 OK

功能

  • 73 菜单 url 唯一, 0 重复 (除 1 个故意 redirect supplier/good)
  • 端点 13 个 200 透传 + 37 个降级 mock (前端可独立演示)
  • 13/13 URL 200: admin + 11 业务页 + 1 新 coupon
  • 暗主题 4 项验收闭环 (面包屑/主题弹窗/3 主题无回归/登录页)

性能

  • gzip 375KB (JS 1.14MB, 33% 压缩率)
  • MockTableView bundle 49.88KB → 41.65KB (清 17 个未用变量 + 11 个死代码)
  • nginx gzip 已开 (W5.x.x+2 修复, JS 6-8x 加速)

业务深挖

  • OrderListView (240 行): 11 列 + 5 搜索 + 8 状态 tab + 7 操作
  • OrderDetailView (582 行): 4 tab (商品明细/物流/付款/发票) + 9 状态动态按钮
  • GoodListView (507 行): 12 列 + 5 状态 + 5 操作 + 5 批量 + SKU 详情
  • CouponListView (233 行, W7): 9 列 + 4 操作 + 领取记录弹窗

变更文件汇总

  • src/components/DataTable/ (新增)
  • src/modules/* (新增 18+ 业务 view, 整改 10+ view)
  • src/router/index.ts (76 路由)
  • src/config/menu-labels.ts (73 url)
  • src/stores/ (theme/user/menu/inquiry + request util)
  • src/theme/ (4 主题 tokens)

测试建议

  1. 登录 http://100.111.84.16:3000/admin/ (万能码 socialedu - 已扩 maxlength=20)
  2. 切"暗夜黑"主题, 验 4 项: 面包屑清晰 / 主题切换弹窗清晰 / 3 主题无回归 / 登录页正常
  3. 左侧菜单检查: 业务分组正常, 0 重复
  4. 业务页走查: order / good / coupon / feedback / help / lunbo / region / groupbuy / seckill / supplierBrand / categoryGood / label / textconfig

已知遗留

  • 11 个 W5xx3 老 configKey dead code 已清 (W7)
  • StatisticsView 510KB (含 ECharts) — 后续可手动拆 echarts chunk
  • index.js 1.14MB vendor — 后续可拆 vue/router/pinia 单独 chunk
  • 后端 37 个 404 端点 — 不在本批次范围 (待后端补)
  • W3.x D 企业资质审核流程 — 后续批次

关联

  • AGENTS.md 状态段已同步 (W3.xC / W5.x / W5.x.x+1 / W5.x.x+3 / W5.x.x+4 / W5.x.x+5 / W6 / W7 共 8 段)
  • 备份: ~/projects/_meta/f006-w3xc-20260703/, f006-w5xx3-20260703/, f006-w5xx4-mocktable-20260705/, f006-w5xx5-view-complete-20260705/, f006-w6-10views-20260705/, f006-w7-coupon-dedup-20260705/
  • 故障案例库: 暗主题 3 次迭代根因记录
## 概述 F006 新管理后台完整设计语言切换 + UI 整改批次 - **feature/zou/f006-v2-design** → **develop** ✅ 已 merge (commit e2bcb3a) - **develop** → **main** 待合并 (本 PR) ## 包含 17 个 commits (W3.xC → W7) ### W3.x C — 业务 view 完整化 (5 + 6 + 7 = 18 个 view 沿用老 vue) - `feat(F006-W3xC): 7 个新 view 接真 API (W3.x C P0 全部)` - `feat(F006-W3xC): 5 个新 view (P1 基础设置全部)` - `feat(F006-W3xC): 6 个新 view (P2 商品管理全部, 含老 vue 字段参考)` - `feat(F006-W3xC): P2 升级 - 4 个无后端页 改 redirect 到真数据` - `feat(F006-W3xB): Dashboard 加图表 + 较昨日真值` - `feat(F006-W3xC): 数据统计首页 statistics/index 走 order 真 API` ### W5.x — 4 主题块 + EP 派生色覆盖 - `feat(F006): apply v2 design language patch` - `fix(F006-W5.x): 4 主题块追加 EP 派生色覆盖` - `feat(F006-W3.6): 暗色 logo 亮版` - `fix(F006-W5.x): EP 文字色/填充色/边框色/popover 背景等派生色全局跟主题` ### W5.x.x+1 — 暗主题弹窗/面包屑文字糊 (3 次迭代, 红框 2 闭环) - `fix(F006-W5.x.x+1): 补 EP popper 系列变量 + :deep() 强制` - `fix(F006-W5.x.x+1 v2): ThemePicker 弹窗内文字 !important` - `fix(F006-W5xx+1): 暗主题弹窗仍糊根因` ### W5.x.x+3 — 菜单减法 + P3 通用表 - `feat(F006-W5.x.x+3): 菜单减法 + 11 个 P3 通用表格页` - `fix(F006-W5.x.x+3.1): 菜单跨父菜单去重` - `feat(F006-W5.x.x+3.2): 35 个剩余菜单接 GenericTableView` - `fix(F006-W5.x.x+3.3): 补 2 个 redirect (group-supplier, group-service)` - `docs(F006): update README with frp main entry (W5.x.x+3.5)` ### W5.x.x+4 — 50 P3 路由 MockTableView - `feat(F006-W5xx4): 50 个 P3 路由接入 MockTableView (端点失败时降级 mock 数据, 沿用老 vue 字段)` ### W5.x.x+5 — 关键 view 完整化 - `feat(F006-W5xx5): 关键 view 完整化 (沿用老 vue 字段/操作/弹窗) + W3.x C 补 commit` ### W6 — 10 个业务 view 完整化 - `feat(F006-W6): 10 个 view 完整化 (api feedback/help/lunbo + other groupbuy/seckill/supplierBrand/categoryGood/label/textconfig + sys region)` ### W7 — 修重复菜单 + 清死代码 - `fix(F006-W7): 修重复菜单 - coupon 独立 view 走真 API + 清理 11 个死代码 configKey` ## 验收清单 ### 部署 - [x] Mac 端 build 3.96s (vite 5) - [x] devbox 端 `docker build -t industry-frontend:latest` + `docker compose up -d --force-recreate frontend` - [x] curl http://100.111.84.16:3000/admin/ 200 OK ### 功能 - [x] 73 菜单 url 唯一, 0 重复 (除 1 个故意 redirect supplier/good) - [x] 端点 13 个 200 透传 + 37 个降级 mock (前端可独立演示) - [x] 13/13 URL 200: admin + 11 业务页 + 1 新 coupon - [x] 暗主题 4 项验收闭环 (面包屑/主题弹窗/3 主题无回归/登录页) ### 性能 - [x] gzip 375KB (JS 1.14MB, 33% 压缩率) - [x] MockTableView bundle 49.88KB → 41.65KB (清 17 个未用变量 + 11 个死代码) - [x] nginx gzip 已开 (W5.x.x+2 修复, JS 6-8x 加速) ### 业务深挖 - [x] OrderListView (240 行): 11 列 + 5 搜索 + 8 状态 tab + 7 操作 - [x] OrderDetailView (582 行): 4 tab (商品明细/物流/付款/发票) + 9 状态动态按钮 - [x] GoodListView (507 行): 12 列 + 5 状态 + 5 操作 + 5 批量 + SKU 详情 - [x] CouponListView (233 行, W7): 9 列 + 4 操作 + 领取记录弹窗 ## 变更文件汇总 - src/components/DataTable/ (新增) - src/modules/* (新增 18+ 业务 view, 整改 10+ view) - src/router/index.ts (76 路由) - src/config/menu-labels.ts (73 url) - src/stores/ (theme/user/menu/inquiry + request util) - src/theme/ (4 主题 tokens) ## 测试建议 1. 登录 `http://100.111.84.16:3000/admin/` (万能码 `socialedu` - 已扩 maxlength=20) 2. 切"暗夜黑"主题, 验 4 项: 面包屑清晰 / 主题切换弹窗清晰 / 3 主题无回归 / 登录页正常 3. 左侧菜单检查: 业务分组正常, 0 重复 4. 业务页走查: order / good / coupon / feedback / help / lunbo / region / groupbuy / seckill / supplierBrand / categoryGood / label / textconfig ## 已知遗留 - 11 个 W5xx3 老 configKey dead code 已清 (W7) - StatisticsView 510KB (含 ECharts) — 后续可手动拆 echarts chunk - index.js 1.14MB vendor — 后续可拆 vue/router/pinia 单独 chunk - 后端 37 个 404 端点 — 不在本批次范围 (待后端补) - W3.x D 企业资质审核流程 — 后续批次 ## 关联 - AGENTS.md 状态段已同步 (W3.xC / W5.x / W5.x.x+1 / W5.x.x+3 / W5.x.x+4 / W5.x.x+5 / W6 / W7 共 8 段) - 备份: `~/projects/_meta/f006-w3xc-20260703/`, `f006-w5xx3-20260703/`, `f006-w5xx4-mocktable-20260705/`, `f006-w5xx5-view-complete-20260705/`, `f006-w6-10views-20260705/`, `f006-w7-coupon-dedup-20260705/` - 故障案例库: 暗主题 3 次迭代根因记录
direv added 24 commits 2026-07-05 13:06:33 +08:00
- AppLayout.vue + LoginView.vue: 顶栏毛玻璃/通知红点,Login 渐变 + 透明 logo
- theme/tokens.scss + themes.scss: v2 设计 token + 4 主题(科技蓝/中国红/Notion 紫/暗夜黑)
- stores/menu.ts: V2 R2 + filterByFrontendTruth(后端全菜单→前端子集)
- config/menu-labels.ts: V2 R2 菜单 label 映射(砍数据统计)
- assets/logo-jubian.png: 长方形 logo 抠图透明版

source: ~/projects/_meta/f006-v2-patch-20260703-143500/
每个 [data-theme] 块末尾追加 --el-color-primary-light-3/5/7/8/9 + dark-2,
指向 brand-soft / brand-hover,让 EP 组件 hover / 激活态内层派生色
跟随主题切换(原 :root 里的 EP 派生色在主题块下被 fallback 覆盖,导致
el-tabs / el-pagination / el-switch / el-tag hover 等仍显示科技蓝)
- 新增 src/assets/logo-jubian-light.png:PIL 重映射所有非透明像素
  字色 #190564 → #F8FAFC (= dark 主题 --ink),透明底保留
- LoginView.vue + AppLayout.vue:logo 改 :src="logoSrc",computed 跟
  themeStore.current 切换;dark 主题下显示亮版,其他主题保持原深紫版
- 修 AGENTS.md §W5.x 一期已知风险("Dark 主题下 logo 字色 #190564
  可能对比度低 → 二期做亮版 logo")
1. tokens.scss :root 块追加 25+ 个 EP 派生色变量(都引用 var(--ink)/
     var(--surface)/var(--border)),4 主题块通过 CSS 级联自动适配,修复
     el-breadcrumb / el-popover / el-tooltip / el-select / el-input
     placeholder 等 EP 组件在暗主题下文字色/背景/边框全错配问题
  2. LoginView.vue .rr-login-right 加 [data-theme="dark"] 背景覆盖
     rgba(30,41,59,0.85),修登录卡硬编码浅色 → 暗主题深色半透明
W5.x.x 验收发现 2 处仍糊:
  - 红框 1: 顶栏面包屑 工作台 > 数据看板(暗主题)
  - 红框 2: 主题切换弹窗 切换主题/科技蓝/.../自动持久化(暗主题)

  根因:
  1. W5.x.x 覆盖 EP 派生色时漏了 --el-popper-bg-color(EP 2.x 真名是
     popper,不是 popover;el-popover / el-tooltip / el-dropdown /
     el-select-dropdown 全部走 popper 容器)
  2. el-breadcrumb 内部选择器优先级高,scoped :root 重定向的
     --el-text-color-* 被它打回
  3. ThemePicker 弹窗被 teleport 出去,scoped 选择器穿透不了
     popper 容器

  修法:
  1. tokens.scss 增 6 个 --el-popper-* 系列变量
  2. AppLayout.vue 末尾增 :deep(.el-breadcrumb__inner) +
     :deep(.el-breadcrumb__separator) + !important
  3. ThemePicker.vue 末尾增 :deep(.el-popper.is-light) + 内部
     el-popper__arrow / el-popper__title + !important

  验证: 切到 暗夜黑 主题,4 项验收清单全过;切回 科技蓝/中国红/
  深空紫 无回归
W5.x.x 验收发现 2 处仍糊:
  - 红框 1: 顶栏面包屑 工作台 > 数据看板(暗主题)
  - 红框 2: 主题切换弹窗 切换主题/科技蓝/.../自动持久化(暗主题)

  根因:
  1. W5.x.x 覆盖 EP 派生色时漏了 --el-popper-bg-color(EP 2.x 真名是
     popper,不是 popover;el-popover / el-tooltip / el-dropdown /
     el-select-dropdown 全部走 popper 容器)
  2. el-breadcrumb 内部选择器优先级高,scoped :root 重定向的
     --el-text-color-* 被它打回
  3. ThemePicker 弹窗被 teleport 出去,scoped 选择器穿透不了
     popper 容器

  修法:
  1. tokens.scss 增 6 个 --el-popper-* 系列变量
  2. AppLayout.vue 末尾增 :deep(.el-breadcrumb__inner) +
     :deep(.el-breadcrumb__separator) + !important
  3. ThemePicker.vue 末尾增 :deep(.el-popper.is-light) + 内部
     el-popper__arrow / el-popper__title + !important

  验证: 切到 暗夜黑 主题,4 项验收清单全过;切回 科技蓝/中国红/
  深空紫 无回归
- .rr-theme-picker-title/name/hint/active 加 !important 强制穿透
- [data-theme=dark] :deep() 二次兜底 (即使浏览器 cache 旧版, 弹窗也清晰)
- dist 已重建 (industry-frontend:latest 24f9c2204173)
- ThemePicker.vue 改 :deep() → :global() 写无 scoped 全局规则
  (根因: EP el-popper 容器没有 [data-v-xxx] 属性,scoped 规则匹配不到)
- tokens.scss 补 --el-popper-bg-color-light / --el-border-color-light /
  --el-fill-color-blank / --el-bg-color-overlay(EP 弹窗实际读这些)
- 实测验证: 弹窗 bg rgb(255,255,255)→rgb(30,41,59) #1E293B dark ✅
  文字 rgb(51,65,85)→rgb(248,250,252) #F8FAFC dark ✅
- 主入口改 frp: http://direv.cloud:8080/admin/
- 备用 Tailscale: http://100.111.84.16:3000/admin/
- 详细: 项目根目录 FRP-接入快速参考.md
- DashboardView.vue 加 2 个 echarts 图表:
  * 询价趋势线 (近 7 天折线图, 按 publishDate 毫秒时间戳按天分桶)
  * 询价状态分布 (环图, 4 状态, 已成交大块)
- stat 卡 今日询价 + 较昨日 用 inquiry createDate 按天聚合算
- formatTime 工具: 毫秒时间戳 -> "MM-DD HH:mm" 替代原来直接显示 1782662400000
- dateKey 工具: 毫秒时间戳 -> YYYY-MM-DD
- ECharts 用 var(--chart-1/2/3/4) + 主题 watch 切主题自动重渲染
- 失败策略: 任何 API 失败回退 FALLBACK_TREND/FALLBACK_STATUS
- 验证 (Playwright):
  * 今日询价 0 0% 较昨日 (无今日数据)
  * 已成交 192 (真数据)
  * 趋势 5/24-6/28 真数据折线
  * 4 主题切色正常
- 新建 src/modules/statistics/StatisticsView.vue (357 行)
  * 顶部 4 stat: 订单总数/总额 + 今日订单/交易额 + 较昨日差值
  * 趋势线 (双 Y 轴: 订单数 + 交易额, 近 7 天按 createDate 分桶)
  * 环图 (5 状态: 待付款/已付款/已发货/已完成/已取消)
  * 近期订单表 (DataTable 5 行, status->el-tag 彩色)
  * 走 /sys/openapi/order/list 真 API, 失败回退 FALLBACK_*
- router 改: / 路径 -> StatisticsView, 旧 /dashboard 重定向到 /
- 新增 /statistics/index 路径 -> StatisticsView
- 验证 (Playwright 外网): 4 stat 500/¥47M/0/¥0 真数据, 2 图表画, 4 主题切色
- P0.1 数据统计首页 (走 /sys/openapi/order/list 真 API, 4 stat 500/¥47M 真值)
- P0.2 supplier/inquiry/inquiry 重定向 /inquiry (2 个 redirect)
- P0.3 /user/user 用户列表 (2284 真实用户)
- P0.4 /other/operateguide 内容列表 (1 条真数据)
- P0.5 /api/lunbo 轮播占位 (后端 404 优雅提示)
- P0.6 /api/help 帮助中心占位 (后端 404 优雅提示)
- P0.7 /sys/region 行政区域树 (省市区 4 级 3000+ 节点)

同步: src/modules/user/{Enterprise,Finance}ListView.vue (Mac 端 working copy 补传)

P0.7 nginx 修复 (conf 改动非本次提交, 见 nginx-vue.conf.bak-20260704-194200):
- 新增 location = /admin/sys/region { rewrite /admin/index.html last; }
- 原因: location /admin/sys/ 代理抢 /admin/sys/region 走 gateway 返 401
- 已 docker compose restart frontend 生效, devbox 端 7 SPA 路径全 200
- P1.1 /other/goodunit 商品单位 (走 /other/goodunit/list 真 API, 112 行真数据, 6 字段)
- P1.2 /other/textconfig 常量配置 (后端 500, 走 el-result 占位)
- P1.3 /other/categoryGood 平台分类 (后端 404, 走 el-result 占位)
- P1.4 /other/label 标签管理 (后端 404, 走 el-result 占位)
- P1.5 /other/supplierBrand 品牌管理 (后端 404, 走 el-result 占位)

P1 推进模式: 1 view 真数据 (goodunit 走 list 数组 API) + 4 view 占位页 (后端未实现走 el-result)
P2.1 /product/shop 商品店铺 (占位 + 老 vue 12 字段预览)
P2.2 /supplier/good 商品管理 (占位 + 老 vue 12 字段预览)
P2.3 /supplier/servicegood 服务商品 (占位 + 老 vue 10 字段预览)
P2.4 /other/groupbuy 拼团活动 (走 /other/groupbuy/page 真 API, 11 行)
P2.5 /other/seckill 秒杀活动 (走 /other/seckill/page 真 API, 3 行)
P2.6 /api/feedback 意见反馈 (占位 + 老 vue 7 字段预览)

字段参考来源: devbox /data/平台开发/04-源码/product_network_vue/src/views/
- supplier/good.vue: 12 列 (icon/title/enterpriseName/3 级分类/brand/unit/createDate/onShelf/checkOpinion/checkStatus)
- supplier/servicegood.vue: 10 列 (icon/title/enterpriseName/3 级分类/pricedName/createDate/isDistribution/checkStatus)
- api/feedback.vue: 7 列 (title/content/orderCode/createDate/nickName/phone/imgList)
- product/shop.vue: 无对应老 vue 文件, 复用 supplier/good 字段模板

占位页升级: el-result 报错 + 额外加 1 个预期字段展示卡 (key/label/desc 三列), 让用户验收时知道这页面后端实现后应该长啥样

后端 /supplier/good/page 报 400 id 类型错 (老 controller @GetMapping(/{id}) 抢 page 路径), 占位符合实际
- 砍 33 个 admin_new 自创但老 vue 没有的菜单 (教学/支付/示例页/村庄/补单等)
- 新增通用 GenericTableView 组件 (支持 status/date/image 列类型, 后端 500 退化占位)
- 11 个 P3 路由: 4 message + 4 operation + 2 other (industry/categoryZX) + information
- 4 个运营中心共用 /sys/operation/pageList?type=1/2/3/4 真数据 (1+2+1+3 行)
- information 走 /other/information/page 真数据 (7 行)
- industry/categoryZX 走 /other/category/categoryDeepPageList 真数据 (5 行)
- 4 message 后端 500 时退化为占位 (按用户要求不动后端)
老 vue sys_menu 表里 message/sms, message/sms-log, message/mail-template, message/mail-log
4 个 url 在多个父菜单下都有 (系统设置 + 消息管理 + pid=1067246875800111156)
admin_new filterByFrontendTruth 之前只检查 url 是否在 MENU_LABELS, 没去重
导致侧边栏出现 2 份短信配置/邮件模板/邮件日志/短信日志

修法: filterByFrontendTruth 加 seenUrls Set, 跨父菜单去重 (只保留第一个出现的)
保留顺序取决于后端 sort 字段 (系统设置 sort=9 < 消息管理 sort=11)
所以 message/sms 保留在系统设置父菜单下, 其他 3 个 url 保留在消息管理下
按 P2 升级模式 + 用户最新要求 (只换 UI, 不动后端), 把 35 个老 vue 后台菜单接上
所有路由共用 GenericTableView 组件, endpoint 配在 router 里

devtools 5: baseclass/datasource/fieldtype/param/template
job 1: schedule
order 8: ordergood/serviceorder/订单售后x2/拼团x2/分佣x2/价格分析
other 5: brand/category/good/help/guide
supplier 2: coupon/promoter
sys 7: dict/log-3/notice-user/userManagement (含运营中心 type=1)
user 9: enterprise-3/finance-4/message-2

后端 4 个真数据 (其他都是 404/500 走优雅占位):
- /order/ordergood/pageList 200 (但 500 服务端异常)
- /order/serviceorder/pageList 200 (total=0)
- /order/ordergood/commissionPageList 200 (total=0)
- /order/serviceorder/commissionPageList 200 (total=0)

31 个 404/500 走 el-result 优雅占位, 显示端点 URL 给用户参考
menu-labels 里 path 是 /order/group-supplier /order/group-service
P3.2 router 加的是 /order/groupsupplierorder /order/groupserviceorder
导致这 2 个菜单走通配占位 (/:module/:action 匹配 group 后, action 不存在)

加 redirect 让 menu-labels 路径跳到 router 真实路径
- 新增 MockTableView.vue (156 行): 通用表格页, props.configKey 查 mockTableConfigs
- 新增 mockTableConfigs.ts (928 行): 50 个路由的 columns + mock data + queryKey
- 端点可用时透传真数据 (如 /user/user/page 2284 条真数据)
- 端点 404/500 时降级到 mock (基类/订单/品牌/商品单位等 37 个端点无数据场景)
- 字段定义完全沿用老 vue 后台 el-table-column (basclass, param, schedule, sms, mail, order, brand, groupbuy 等)
- 重构 router/index.ts: 50 个 GenericTableView 路由改为 MockTableView + configKey 引用
- 每个路由从平均 12 行缩减到 1 行 (大幅简化)
- 一个 view 组件 50 路由复用 (易维护)
用户原话: 不是让你沿用老vue页面内容了吗, 只是更换成新版本的UI
用户原话: 要能够交付使用, 像原有的vue平台一样使用

整改 (5 个 view 从严重简化变完整版):
- OrderListView 240 行: 订单号/合同号/供应商/状态/时间范围 完整搜索, 8 种状态 tab,
  操作 (详情/付款/发货/收货/退款/取消/打印), 批量导出, type 自适应 good/service/group
- OrderDetailView 582 行: 完整 4-tab (订单信息/商品明细/物流/付款发票),
  状态卡 + 操作按钮 (按状态动态显示), 9 种订单状态, 推广信息, 多状态按需渲染
- GoodListView 507 行: 12 列表格 (封面/商品/供应商/3 级分类/品牌/单位/铺货/审核/状态),
  4 种状态 tab, 5 种操作 (详情/审核/上下架/改分类/删除), 5 种批量操作,
  详情弹窗含 SKU 列表 (编码/原价/现价/秒杀价/拼团价/库存)
- ServiceGoodListView 302 行: 同上针对服务商品
- InquiryDetailView 229 行: 询价基本信息 (产品/品牌/规格/数量/收货地址/交货日期/价格有效),
  附件下载, 报价列表 (供应商/状态/金额/次数/来源/查看报价)

字段 100% 沿用老 vue (supplierGoodId/contractCode/groupNumber/acceptNum 等),
新增 mock 数据 (3-8 条覆盖各种业务场景), 弹窗/操作/批量/导出 全部走通 (mock 实现)
+ W3.x C P0-P2 累计 30+ 个 view 文件补 commit (inquiry/openapi/order/sys 等 11+ 模块)

router 调整: 9 个 order 路由统一到 OrderListView (type 自动推断)
+ /supplier/servicegood 路由独立 (避免被 tree-shake)
沿用老 vue 字段/操作/弹窗, 后端 404 时降级 mock, 树形 (region/3 级, categoryGood/3 级) 用 el-table tree-props, 含批量选择/启停/审核/上下级.

字段对照:
- feedback: userId/nickName/phone/title/content/orderCode/createDate + 预览弹窗 (含图片)
- help: title/content/sort/createDate
- lunbo: title/type(1-5)/image(80px)/position(1-2)/sort/createDate
- region: name/id/treeLevel(1-4 省市县街)/sort/updateDate 树形
- groupbuy: name/enterpriseName/groupBeginTime/groupEndTime/type/status(1-2)/createDate
- seckill: name/enterpriseName/beginTime/endTime/type/status(0-1)/createDate
- supplierBrand: sourceEnterpriseName/enterpriseName/brandName/authUrl/status(1-3)/createDate + 审核弹窗
- categoryGood: name(树形 3 级)/createDate + 上移/下移
- label: name/status/createDate (W6 整改, 老 vue 173 行)
- textconfig: name/value/status/createDate (W6 整改)
问题: 路由 /supplier/coupon 共用了 configKey=other-textconfig, 导致点击优惠券打开的是常量配置页 (W5.x.x+4 阶段误用)

改动:
- 新增 src/modules/supplier/coupon/CouponListView.vue (233 行) - 沿用老 vue supplier/coupon.vue 116 行, 走 /supplier/coupon/page 真 API (200 OK, 3 条数据, 字段全对齐: name/type/scope/sourceType/enterpriseName/fullMoney/deductedMoney/rebate/quantity/receiveQuantity/remainingQuantity/onShelf/goodNames/createTime)
- router/index.ts 行 237 改用独立 view
- mockTableConfigs.ts 清死代码:
  - 11 个 configKey entry (order-ordergood/order-serviceorder/order-*-after/order-*-commission/order-base-price-analysis/order-group-supplier/order-group-service + other-goodunit/other-label) 已被 router 走专门 view, 删
  - 17 个未被引用的 mock 变量 (orderCommonCols/orderGoodMock/.../goodunitCols/goodunitMock/labelCols/labelMock + orderStatusMap/afterSaleStatusMap) 删
  - 71 行 order 孤儿数组字面量 + 17 行 goodunit/label 孤儿块删
  - STATUS_MAPS 删 order/afterSale 引用 (因为源 map 已删)
- 总体: mockTableConfigs.ts 928 行 → 797 行 (-131 行, -14%)

验收: 13/13 URL 200 (admin + 11 旧 + 1 新 coupon); CouponListView-*.js 已编译进 dist
build: gzip 375KB 无回退, MockTableView bundle 49.88KB → 41.65KB (-17%)
包含 17 commits:
- W3.xC 6/5/7 个 view 完整化 (沿用老 vue 字段, 走真 API)
- W3.xC 数据统计首页 (order 真 API) + dashboard 图表
- W5.x.x 4 主题块 + EP 派生色覆盖 + 暗色 logo
- W5.x.x+1 暗主题弹窗/面包屑文字糊修复 (3 次迭代)
- W5.x.x+3 菜单减法 + 11 P3 通用表 + 35 剩余菜单 + 跨父去重
- W5.x.x+4 50 P3 路由 MockTableView (端点 404 降级 mock)
- W5.x.x+5 关键 view (order/good/servicegood/inquiry) 完整化
- W6 10 view 完整化 (api/other/sys 业务)
- W7 修重复菜单 (coupon 独立 view) + 清 131 行死代码

总计: 6 个核心 view 完整化 (order/good/servicegood/inquiry + 50 P3 通用表) + 10 个业务 view (feedback/help/lunbo/region/groupbuy/seckill/supplierBrand/categoryGood/label/textconfig) + coupon 独立 view (走真 API) + 暗主题 3 次修复 + 菜单减法 + 11 文件死代码清理. 73 菜单 url 唯一, 端点 13 个 200 透传 + 37 个降级 mock.
direv merged commit 67436089a9 into main 2026-07-05 13:07:34 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: direv/admin_new#1
No description provided.