文件
hl-api-changelog/changelogs-v2/2026-09/28_frontend_出团管理去掉导出并对团期管理员隐藏新增子订单-前端优化-管理后台.md
T
2026-09-28 20:00:35 +08:00

5.7 KiB
原始文件 Blame 文件历史

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 在出团管理页提出两条:

  1. 「导出没用 删除」;
  2. 「团期管理员不能新增订单(按钮去掉)」。

后端建单接口 #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