46 lines
2.6 KiB
Markdown
Executable File
46 lines
2.6 KiB
Markdown
Executable File
# 组织管理 · 关联物料分类
|
||
|
||
面向联调/产品:编辑组织弹窗右侧「关联物料分类」的实现说明。与 **应用内更新说明**(`src/data/appChangelog.js`)及根目录 **`PROJECT_OVERVIEW.md` →「8. showtime_weihai」** 同日(2026-05-10)条目对齐。
|
||
|
||
---
|
||
|
||
## 1. 接口约定
|
||
|
||
| 用途 | 方法 | 路径 | Body 要点 |
|
||
|------|------|------|-----------|
|
||
| 当前组织已关联的物料分类 | POST | `/api/company/category_listed` | `{ company_code }` |
|
||
| 新增关联 | POST | `/api/company/link_category` | `{ company_code, category_code }` |
|
||
| 解除关联 | POST | `/api/company/unlink_category` | `{ company_code, category_code }` |
|
||
| 全量物料分类树(勾选用 + 路径索引) | POST | `/api/category/listed` | `{}` |
|
||
|
||
响应解析:关联列表兼容 `data` 为数组或 `list` / `rows` / `categories` 等字段;分类树与物料分类页一致,节点映射为 `id`(`category_code`)、`label`、`children`。
|
||
|
||
---
|
||
|
||
## 2. 交互流程
|
||
|
||
1. **编辑组织**(已有 `company_code`):打开弹窗后请求 `category_listed`,并行请求 `category/listed` 构建 **code →「父 / 子 / …」** 路径表;列表每项上方展示灰色路径行,下方为名称与编码。
|
||
2. **新建组织**:无组织编码,右侧仅说明文案,不调列表与维护接口。
|
||
3. **管理关联**:点击「管理关联」加载树,预勾选当前已关联节点;用户勾选/取消勾选后点「确认」,与进入管理时的勾选快照 diff,分别调用 `link_category`、`unlink_category`。
|
||
4. **加载文案**:列表与树加载态为「加载中」;提交关联过程遮罩为 **「关联中」**。
|
||
5. **说明文案**:标题行右侧橘色小字提示进入管理后勾选 / 取消勾选与确认的含义(无编辑权限时仍可看到说明,可无按钮)。
|
||
|
||
---
|
||
|
||
## 3. 布局与样式(OrgManage.vue)
|
||
|
||
- 弹窗宽度约 **1200px**;`el-dialog__body` **固定高度**(`min(68vh, 720px)`),避免树数据加载后整窗被撑高。
|
||
- 左侧表单区、右侧关联区 **内部纵向滚动**;分类票据双列、关联列表与树区域 **禁止横向滚动条**(树标签省略号截断)。
|
||
- 右侧虚线容器内:列表模式与管理模式(搜索 + 树 + 取消/确认)切换,高度在固定窗体内分配。
|
||
|
||
---
|
||
|
||
## 4. 代码位置
|
||
|
||
| 项 | 路径 |
|
||
|----|------|
|
||
| 页面 | `src/views/base/OrgManage.vue` |
|
||
| 权限 | `usePagePower('company')`,`canUpdate` 控制「管理关联」按钮 |
|
||
|
||
同名能力(**部门 `dept_code`**、页签入口)见 **`docs/部门管理_关联物料分类.md`**。
|