5.7 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | frontend | 出团管理:产品栏删除「导出」按钮(所有角色),行级「新增子订单」对团期管理员隐藏 | admin | wx(GIT) | 前端优化 | not_required | not_required | implemented | mmg | df75f2510f9599d95ed999d31e5cff64fc1626bd | v2.1 | 2026-09-28 | 前端已交付(出团管理删导出+团期管理员隐藏新增子订单),详见 hl-admin v2.1 提交 df75f251。 | 2026-09-28 | dev-v3 |
前端优化:出团管理删除导出按钮、隐藏团期管理员的新增子订单按钮
⚠️ 关键变化
改动一:删除产品栏头部「导出」按钮(所有角色)
出团管理页(页面文件 src/views/order-v2/batch/index.vue)产品栏头部的「导出」按钮已无业务用途,删除。
改动二:行级「新增子订单」按钮对团期管理员隐藏
同页出团列表的行级操作「新增子订单」按钮仅对团期管理员隐藏,管理员、超级管理员等其他角色照常显示。
团期管理员建单会被后端 #8154 已上线的守卫(错误码 581008)拒绝,隐藏按钮避免用户触发必然失败的流程。
后端零改动:本条两个改动均属前端表现层,后端端点、参数、响应、错误码无变化。
一、背景
wx 2026-09-28 在出团管理页提出两条:
- 「导出没用 删除」;
- 「团期管理员不能新增订单(按钮去掉)」。
后端建单接口 #8154(提交 c1264d610,2026-09-22)已上线团期管理员写守卫,
该角色调用 POST /v3/admin/order 时被 OrderViewGuard.assertNotGroupBatchManagerWrite() 拒绝,
返回错误码 581008。前端隐藏该角色的新增子订单按钮,与后端守卫对齐。
二、改动要点
改动一:删除导出按钮
文件:src/views/order-v2/batch/index.vue
- 删除按钮(
:22-33):产品栏头部注释「导出 GB-ADM-008」起的<n-button @click="onExport">导出</n-button>。 - 删除处理函数(
:534-567):exporting状态变量与onExport()函数整体删除。 - 删除 import(
:284):import { exportGroupBatch } from '@/api/orderV2GroupBatch'。 - 删除 API 函数(全仓):
src/api/orderV2GroupBatch.js:302的exportGroupBatch函数整体删除 (删除按钮后全仓无其他调用方)。
⚠️ 不涉及:团期详情「核单」页签的导出(src/api/order-v3/groupBatchAudit.js:240 的 exportGroupBatchAudit
与 src/views/order-v2/batch/detail/components/audit/AuditTab.vue),那是另一个独立接口 GET /v3/admin/order/group-batch/{groupBatchId}/audit/export,保留。
改动二:团期管理员隐藏「新增子订单」按钮
文件:src/views/order-v2/batch/components/PeriodRow.vue
-
添加条件渲染(
:163-169按钮):<n-button size="tiny" v-if="!isGroupBatchManager" @click="onAddSubOrder">新增子订单</n-button> -
添加计算属性:取值
computed(() => userStore.isGroupBatchManager)(写法参考同模块src/views/order-v2/batch/detail/index.vue:21的「退单户」按钮)。 -
判定来源:
userStore读取自src/stores/user.js:207的isGroupBatchManager, 判定函数src/utils/orderAccess.js:8的isGroupBatchManagerRole。 -
补单测:
src/views/order-v2/batch/components/__tests__/PeriodRow.spec.js:79(「只保留新增子订单」用例) 与:101(深链取productBatchId)添加团期管理员角色下该按钮不渲染的用例; 非团期管理员的原有用例保持。
后端依据:建单接口 POST /v3/admin/order 自 #8154 起在 OrderController.createOrder 入口调
OrderViewGuard.assertNotGroupBatchManagerWrite(),团期管理员(角色 GROUP_BATCH_MANAGER)返错误码 581008。
即团期管理员现在点此按钮会在向导最后一步提交时被拒绝;隐藏按钮避免这一必然失败的流程。
范围:仅对团期管理员隐藏,管理员、超级管理员、定制师等其他角色照常显示,后端对他们仍放行建单。
#7143 中的深链与 useOrderDeepLink.js 继续有用,不动。
三、验证检查清单
- 所有角色进入出团管理页,产品栏头部无「导出」按钮
- 团期管理员登录出团管理页,行级操作无「新增子订单」按钮(「进入团期」等其他操作照常)
- 超级管理员、管理员登录,行级仍显示「新增子订单」按钮,点击进向导正常
- 超级管理员点「新增子订单」进向导后,产品 / 班期 / 出团日期仍按该行预填(#7143 深链不受影响)
- 团期详情「核单」页签的导出按钮不受影响,照常可用
四、不影响范围
- 后端零改动:建单接口参数、响应、错误码一律不变,团期管理员的 581008 拒绝逻辑原样有效。
- 出团列表行的其他操作(进入团期、展开子订单)不变。
- 小程序端不涉及。
- 出团管理页的其他功能(产品切换、状态页签、筛选、统计条)不受影响。
五、相关工单与文档
- 诉求:wx 2026-09-28 对出团管理页截图提出
- 背景工单:#8154(团期管理员只读 + 写端点守卫)、#7143(新增子订单深链预填)
- 后端源码:
hl-order-service-v3/src/main/java/com/hulalv/order/core/controller/admin/OrderController.java的createOrder方法,守卫hl-order-service-v3/src/main/java/com/hulalv/order/core/guard/OrderViewGuard.java的assertNotGroupBatchManagerWrite()
联系人
前端:mmg | 后端:wx