Commit Graph

19 Commits

Author SHA1 Message Date
zou
4377d39b79 chore: 补提交工作区未提交改动(2026-10-30 交接快照)——补录管理/服务费/AI能力管理/企业等级页面等已上生产功能源码(含新文件) 2026-10-30 18:26:47 +08:00
zou
b35beae5df fix(good): 商品审核/上下架/改分类/删除误报操作失败——httpGet/httpPost 已解包 data,r?.code===0 恒 false;改 isOk 兼容对象/布尔/null(同类修复 CompanyAccountListView 接管/解绑) 2026-09-02 11:34:47 +08:00
zou
f8b7e72e82 fix(F006): UI 审计 P0+P1 修复(--primary 别名/dialog 4 档/3 列表 TableActions)
- P0-1: themes.scss 给 4 套主题加 --primary/--primary-soft 别名指向 --brand/--brand-soft,
       修复 EnterpriseListView 行业龙头标签暗色下白块(P0 必修)
- P0-2: 38 处 el-dialog 宽度收敛到 4 档标准 (500/640/800/960), 补 2 处 width=600 缺 px
- P1-3: 拼团/秒杀/品牌 3 个列表页操作列改 TableActions (统一 详情/停用/删除 单行),
       删除 PageHeader slot 内重复的批量删除浮按钮
- 验证: 浏览器亮/暗双主题截图 P0 修复 + 拼团页操作列规范
2026-08-21 22:58:40 +08:00
zou
7b84336f82 fix(F006): 商品图片预览层级修复 - 7文件18处el-image加preview-teleported(预览浮层挂body脱离表格容器) + 全局viewer z-index 3100最高层级兜底 2026-08-18 17:31:48 +08:00
zou
30cc69f43b feat(F006): 列表页UI统一 - 8页状态胶囊化(el-tag全局胶囊+st-pill圆点) + 修复拼团/秒杀缺失主表 + 批量栏通用样式 2026-08-18 15:49:50 +08:00
zou
d8cd0d3478 fix(F006-P1): categoryGood/servicegood/goodlist/region CRUD mock→真 API (增删改/审核/上下架/批量操作) + StatisticsView 已走真API 2026-08-08 09:43:08 +08:00
Sisyphus
8116e04291 feat(F006-W17.6): PageHeader 加 SKU 总数显示 (实物商品页 sub 改为 共 N 个商品, M 个SKU) 2026-07-09 16:44:17 +08:00
Sisyphus
2f7ec67903 refactor(F006-W17.6.1): TableActions 按数量自动收纳 (≤3 全显示, >3 前2+⋯)
用户反馈: 操作列只显示一个文字按钮+⋯ 不方便, 期望按按钮数量智能显示
- 过滤 when 后 ≤3 个: 全部显示文字按钮, 不显示 ⋯
- 过滤 when 后 ≥4 个: 前 2 个常驻文字按钮 + ⋯ (收纳剩余)
- 默认 visibleCount=2 (可配置)

TableActions API 调整 (W17.6 → W17.6.1):
- 原来: :primary=[A] + :more=[B,C,D] (人为主次划分)
- 现在: :actions=[A,B,C,D] (按数组顺序自动前 2 显 + ⋯)

16 文件改动 (1 组件 + 15 view 调用方式):
- 15 view 合并 :primary/:more → :actions
- 3 按钮页 (10 个): 现在全部显示文字按钮无 ⋯, 体验更直接
- 4/5 按钮页 (5 个): 前 2 显 + ⋯, 比之前详情+⋯更直观
2026-07-09 13:55:34 +08:00
Sisyphus
cb2790d318 refactor(F006-W17.6): 操作列主次分离 (15 个 list 页 + TableActions 组件)
- 新建 TableActions 通用组件 (src/components/TableActions/, ~120 行)
  * primary 常驻主操作 (el-button text)
  * more 次操作收进 ⋯ el-dropdown (MoreFilled 触发)
  * label/type 支持 string 或函数 (覆盖动态: 上架/下架, 禁用/启用)
  * when 条件渲染 (替代散落各处的 v-if)
  * danger 项自动 divided + 红字
  * 复用 global-popper.scss 已铺好的 el-dropdown 主题

- 15 个按钮≥3 的 list 页改造 (按钮≤2 的 27 页不动):
  5 按钮: GoodListView/ServiceGoodListView/CouponListView
  4 按钮: OrderListView/OpenAppListView
  3 按钮: user/UserListView/CompanyAccountListView/LabelListView/
          ScheduleListView/sys/UserListView/EnterpriselevelListView/
          OrderCommentListView/PromoterListView/CategoryGoodListView/
          RegionListView

- 列宽统一 240/280/220/200/320 → 140 (固定窄列)
- 清理 4 个 rr-actions 页不再使用的 .rr-actions/.rr-actions__sep 样式
- 业务逻辑全保留 (onClick 函数/二次确认/条件渲染逻辑)
- OrderListView 退款条件修正: [1,2,3,4].includes → ===4 (原 v-else-if 链语义)
2026-07-09 12:08:48 +08:00
Sisyphus
a978b1572b fix(F006-W17.4.3): 单位列 width 70 → 90 + minWidth 90 (列宽足够)
用户反馈: 单位列"单/位"两字换行
- DataTable 已全局强制表头不换行 (W17.4.2)
- 单位列实际 width 70 太窄, 即使 nowrap 也撑不下"单位"两字
- 加宽到 90 + minWidth 90 兜底
2026-07-07 18:40:11 +08:00
Sisyphus
04728fb7a6 refactor(F006-W17.4.1): 商品/服务页列宽精细化 + 删审核意见列
用户原话:
- 商品ID 宽度太多 → 140 缩到 100
- 商品名称/服务名称 列再加宽一些 → minWidth 240 加到 320 (业务核心, 最长字段)
- 分类列调窄一些 → GoodListView minWidth 240 缩到 180 (3 级合并后 180 足够)
- 单位的标题不应该换行 → width 80 + minWidth 80 (DataTable 已有 whiteSpace: nowrap)
- 审核意见列不用在列表中展示 → 整列删除 (详情弹窗内可看)

改动:
- GoodListView columns 11 列 → 10 列
- ServiceGoodListView columns 12 列 → 11 列
- 整体宽度收敛给商品/服务名称 (核心信息)
2026-07-07 18:34:37 +08:00
Sisyphus
9664b3d954 refactor(F006-W17.4): 实物/服务商品页套 PageHeader+SearchBar+ListTabs+DataTable 标准化
用户原话: 按照同样的列表页面的UI规范, 调整实物商品/服务商品的页面样式

实物商品 GoodListView (547→564 行):
- 顶部 rr-page-header 改用 <PageHeader title="商品管理" :sub="..."> 包导出/新增按钮
- 裸 el-form 搜索改用 <SearchBar :fields=[title, enterpriseName]>
- 裸 .rr-tabs-row/.rr-tabs 改用 <ListTabs> (4 状态 tab, count pill)
- 裸 el-table + el-pagination 改用 <DataTable> (:borderless + :page-sizes)
- 操作列 5 个 el-button 改用 el-link + 分隔符, 不再换行
- 新增 checkStats reactive (pending/approved/rejected) 跟 tab 解耦
- 新增 loadStats() 并发拉 3 个状态的 total, stats 与 tab 解耦
- tabItems 全部 = pending+approved+rejected (跨 tab 一致)
- onSearch/onReset/toggleEnabled 并发刷 list + stats

服务商品 ServiceGoodListView (308→352 行):
- 已经有 PageHeader/SearchBar, 补 ListTabs + DataTable + el-link 操作列
- 同样的 checkStats + loadStats (跨 tab 一致)
- 表格所有列改为 slot 透传
- 价格列 / 铺货 / 状态 都有 slot

保留业务独有:
- 详情弹窗 (含 SKU 子表 for 实物商品)
- 审核弹窗 (单个/批量)
- 修改分类弹窗 (单个/批量)
- 批量操作栏 (业务独有, 业务 page 才用)
- el-table selection 列 (DataTable 内置支持)
2026-07-07 18:27:42 +08:00
zou
b3018fe7d7 fix(F006-W14): 财务 4 视图 + 商品 4 操作按钮 接真 API (1.6K+ 真数据)
W14.1 财务 4 视图接真数据:
- 充值管理 / 提现管理 / 分账记录 / 交易流水
- 后端 /user/accounttransaction/page 是 4 类型合一端点 (405 条)
- 4 configKey 端点统一 → /user/accounttransaction/page
- router 加 queryParams: type=1 (充值) / type=2 (提现) / type=3 (分账) / 交易流水 不传 (全量)
- Playwright 验: 充值 133 条 / 提现 253 条 / 分账 19 条 / 交易流水 405 条
- 发现: 老 vue 端点路径是 /user/accounttransaction/getRechargePage (5.18 教训加强 — 4 URL 试探仍不够, 必须看老 vue 源码)

W14.2 商品详情 SKU: 后端无 supplier_good_sku 表, /supplier/good/skuList 端点返 400 (skuList 功能未实现) — 详情页 skuList 保留 mock, 不强行做

W14.3 实物商品 4 操作按钮接真 API:
- 审核: /supplier/good/checkGood?id=&checkStatus=&checkOpinion= (GET)
- 上下架: /supplier/good/onShelfGood?id= (GET)
- 改分类: /supplier/good/update (POST, body JSON)
- 删除: /supplier/good/delete?id= (GET)
- Playwright 验: 第一行"上架"按钮 → 弹窗 → 确认 → /supplier/good/onShelfGood?id=323 200

W14.4 暂不做 (supplier/promoter 端点 200 但 0 条, 显示空列表已可接受)

W14.1+W14.3 总计真数据: 财务 405 + 实物 16131 = 16536 条, 加 W13 共 16650+ 条

5.18 教训+1: 端点 4 URL 试探 (page/list/search/pageList) 不够, 必须看老 vue 源码
才能找到 getRechargePage 这类特殊命名端点
2026-07-07 09:07:01 +08:00
zou
99166d8abe fix(F006-W13.1+13.2): 实物商品 16131 条 + 服务商品独立接 pageList (type 区分)
W13.1 实物商品:
- /supplier/good/search (16080 条, 缺字段) → /supplier/good/pageList?type=1 (16131 条, 完整字段)
- 完整字段: supplierGoodId/enterpriseName/unitName/brandName/checkStatus/checkOpinion/createDate
- 状态 tab (待审核/已通过/已驳回) 现在能真筛 (之前 search 不返 checkStatus)
- Playwright 验: 标题"商品管理" rows=10 sub="共 16131 个商品"

W13.2 服务商品拆出来:
- 之前 /supplier/servicegood redirect 到 /supplier/good (W3.xC 后端无端点)
- 现在用 /supplier/good/pageList?type=2 是真服务商品端点 (2 条: 家政服务等)
- menu-labels 服务商品 path 改回 /supplier/servicegood (独立路由)
- ServiceGoodListView 接 pageList+type=2, 表格显示服务区域/服务ID/分类等
- Playwright 验: 标题"服务商品管理" rows=2 sub="共 2 个服务商品"

W13.1+W13.2 改的源文件:
- src/modules/supplier/good/GoodListView.vue
- src/modules/supplier/servicegood/ServiceGoodListView.vue
- src/config/menu-labels.ts (servicegood path 改 /supplier/servicegood)
2026-07-06 15:15:30 +08:00
zou
392a4c0acc fix(F006-W12.7): 实物商品 3 条 fallback → /supplier/good/search 真数据 16080 条
问题: 用户验收发现商品管理 (实物商品) 只显示 3 条, 标签 服务商品(→实物商品) 太丑

根因:
- W3.xC 时 /supplier/good/page 端点当时 404, 故 GoodListView 写死 FALLBACK 3 条
- 现在 /supplier/good/page 实际是 200 + code=400 (按 id 查, 不是分页), /supplier/good/search 才是真分页端点
- /supplier/good/search 返 16080 条, 字段精简 (缺 enterpriseName/unitName/createDate/checkStatus/checkOpinion)
- menu-labels 写 "服务商品(→实物商品)" 是 W3.xC redirect 模式下的过渡标签

修法:
- GoodListView.load() 改调 /supplier/good/search, 字段补齐 (缺字段用 -- 占位, checkStatus 默认 2 已通过, supplierGoodId 用 G+id 拼)
- menu-labels "服务商品" 标签去掉 "(→实物商品)" 角标, 只留 "服务商品"
- (后端没 /supplier/servicegood/* 端点, servicegood 路由被 menu-labels 改 path 跳到 /supplier/good, redirect 是设计意图)

验证 (Playwright + token):
- title="商品管理" rows=10 sub="共 16080 个商品"
- /supplier/good/search 200 OK, 10 行真数据 (铝合金门窗/VV62/WDZ-RYJS/WDZN-YJY23/RVV 等)
- 封面图正常加载, 分类 2 级 (门窗/电缆) 正常

已知遗留 (不阻塞使用):
- enterpriseName/unitName/createDate search 端点不返, 表格显示 -- 占位
- 状态 tab (待审核/已通过/已驳回) 暂不能筛选, 因 search 不返 checkStatus
2026-07-06 12:29:06 +08:00
zou
a8be2d0b35 refactor(F006-W11): 7 view 标准化 (PageHeader/SearchBar) - inquiry ×2 + good/servicegood + openapi ×3 2026-07-05 23:07:30 +08:00
Sisyphus
59a235d56c feat(F006-W5xx5): 关键 view 完整化 (沿用老 vue 字段/操作/弹窗) + W3.x C 补 commit
用户原话: 不是让你沿用老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)
2026-07-05 12:12:41 +08:00
Sisyphus
d842182b17 feat(F006-W3xC): P2 升级 - 4 个无后端页 改 redirect 到真数据\n\n用户反馈 P2 占位页只列字段不能交付. 重探测后端发现 /supplier/good/search 返 16080 行真数据, 重新设计.\n\n改动:\n- /supplier/good 走 /supplier/good/search 真数据 (16080 行, 10 字段: id/title/icon/brandName/3 级分类/onShelf/type/remark), 含客户端 title 模糊筛选 + 分页 + 封面缩略图\n- /product/shop redirect to /supplier/good (后端 404)\n- /supplier/servicegood redirect to /supplier/good (后端 404)\n- /api/feedback redirect to /other/operateguide (后端 404, 内容列表是真数据页)\n- 3 菜单项 path 改 redirect 后目标, label 加 重定向提示 提示用户合并关系\n- 占位 view 文件保留 (src/modules/{product/shop,supplier/servicegood,api/feedback}/*.vue), 未来后端实现时升级\n\n铁律: 任何占位必须真能用. P0/P1 简单 el-result OK 但要看真数据, P2 用 redirect 模式更友好. 后续 P3+P4 推进前先全量重探测 API, 能 redirect 就 redirect, 不能就升级真数据或保留极简 el-result. 2026-07-05 10:31:13 +08:00
Sisyphus
932a0520f1 feat(F006-W3xC): 6 个新 view (P2 商品管理全部, 含老 vue 字段参考)
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 路径), 占位符合实际
2026-07-05 10:15:25 +08:00