docs(changelog): 出团管理删除导出按钮,团期管理员隐藏新增子订单(前端优化)
changelog-filename-gate / validate (push) Failing after 1s
changelog-filename-gate / validate (push) Failing after 1s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
这个提交包含在:
@@ -0,0 +1,122 @@
|
||||
---
|
||||
schema: "hl-changelog/v2"
|
||||
ticket: "frontend"
|
||||
title: "出团管理:产品栏删除「导出」按钮(所有角色),行级「新增子订单」对团期管理员隐藏"
|
||||
consumer: "admin"
|
||||
author: "wx(GIT)"
|
||||
change_type: "前端优化"
|
||||
backend_status: "not_required"
|
||||
gateway_status: "not_required"
|
||||
frontend_status: "pending"
|
||||
frontend_owner: "mmg"
|
||||
frontend_ref: ""
|
||||
target_release: ""
|
||||
verified_at: ""
|
||||
status_note: ""
|
||||
updated_at: "2026-09-28"
|
||||
base: "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` 按钮):
|
||||
```vue
|
||||
<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
|
||||
在新工单中引用
屏蔽一个用户