@agile-team/wl-skills-kit 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +33 -63
  2. package/README.md +15 -148
  3. package/bin/wl-skills.js +2 -100
  4. package/files/.github/guides/README.md +13 -13
  5. package/files/.github/guides/architecture.md +555 -576
  6. package/files/.github/guides/usage.md +176 -176
  7. package/files/.github/reports/README.md +65 -65
  8. package/files/.github/reports/SYS_DICT_INFO.md +50 -50
  9. package/files/.github/reports/SYS_MENU_INFO.md +247 -247
  10. package/files/.github/reports/SYS_PERMISSION_INFO.md +20 -20
  11. package/files/.github/reports//347/273/204/344/273/266/346/217/220/345/217/226/345/273/272/350/256/256.md +33 -33
  12. package/files/.github/reports//350/247/204/350/214/203/345/256/241/346/237/245/346/212/245/345/221/212.md +44 -44
  13. package/files/.github/skills/_compat/README.md +108 -108
  14. package/files/.github/skills/_compat/headers/agents.txt +8 -8
  15. package/files/.github/skills/_compat/headers/claude-code.txt +7 -7
  16. package/files/.github/skills/_compat/headers/cline.txt +7 -7
  17. package/files/.github/skills/_compat/headers/cursor-mdc.txt +16 -16
  18. package/files/.github/skills/_compat/headers/cursor-rules.txt +7 -7
  19. package/files/.github/skills/_compat/headers/github-copilot.txt +1 -1
  20. package/files/.github/skills/_compat/headers/kiro.txt +10 -10
  21. package/files/.github/skills/_compat/headers/trae.txt +11 -11
  22. package/files/.github/skills/_compat/headers/windsurf.txt +7 -7
  23. package/files/.github/skills/_registry.md +81 -81
  24. package/files/.github/skills/core/api-contract/SKILL.md +344 -344
  25. package/files/.github/skills/core/api-contract/USAGE.md +110 -110
  26. package/files/.github/skills/core/convention-audit/SKILL.md +189 -189
  27. package/files/.github/skills/core/convention-audit/USAGE.md +99 -99
  28. package/files/.github/skills/core/page-codegen/SKILL.md +973 -973
  29. package/files/.github/skills/core/page-codegen/USAGE.md +102 -102
  30. package/files/.github/skills/core/page-codegen/templates/_index.md +46 -46
  31. package/files/.github/skills/core/page-codegen/templates/domains/_CONTRIBUTING.md +107 -107
  32. package/files/.github/skills/core/page-codegen/templates/domains/produce/TPL-OPERATION-STATION.md +442 -442
  33. package/files/.github/skills/core/page-codegen/templates/domains/sale/README.md +26 -26
  34. package/files/.github/skills/core/page-codegen/templates/universal/TPL-CHANGE-HISTORY.md +276 -276
  35. package/files/.github/skills/core/page-codegen/templates/universal/TPL-DETAIL-TABS.md +1145 -1145
  36. package/files/.github/skills/core/page-codegen/templates/universal/TPL-DRIVEN.md +124 -124
  37. package/files/.github/skills/core/page-codegen/templates/universal/TPL-FORM-ROUTE.md +436 -436
  38. package/files/.github/skills/core/page-codegen/templates/universal/TPL-LIST.md +191 -191
  39. package/files/.github/skills/core/page-codegen/templates/universal/TPL-MASTER-DETAIL.md +148 -148
  40. package/files/.github/skills/core/page-codegen/templates/universal/TPL-RECORD-FORM.md +376 -376
  41. package/files/.github/skills/core/page-codegen/templates/universal/TPL-TREE-LIST.md +186 -186
  42. package/files/.github/skills/core/prototype-scan/SKILL.md +498 -498
  43. package/files/.github/skills/core/prototype-scan/USAGE.md +95 -95
  44. package/files/.github/skills/core/template-extract/SKILL.md +139 -139
  45. package/files/.github/skills/core/template-extract/USAGE.md +93 -93
  46. package/files/.github/skills/domain/README.md +51 -51
  47. package/files/.github/skills/sync/menu-sync/SKILL.md +263 -263
  48. package/files/.github/skills/sync/menu-sync/USAGE.md +104 -104
  49. package/files/.github/skills/sync/menu-sync/env/env.local.json +7 -7
  50. package/files/.github/skills/sync/menu-sync/env/guide.md +99 -99
  51. package/files/.github/skills/sync/permission-sync/SKILL.draft.md +91 -91
  52. package/files/.github/standards/01-toolchain.md +57 -57
  53. package/files/.github/standards/02-code-structure.md +111 -111
  54. package/files/.github/standards/03-comments.md +53 -53
  55. package/files/.github/standards/04-coding-basics.md +33 -33
  56. package/files/.github/standards/05-logging.md +38 -38
  57. package/files/.github/standards/06-security.md +44 -44
  58. package/files/.github/standards/07-config.md +52 -52
  59. package/files/.github/standards/08-git.md +60 -60
  60. package/files/.github/standards/09-typescript.md +71 -71
  61. package/files/.github/standards/10-pinia.md +57 -57
  62. package/files/.github/standards/11-form-validation.md +81 -81
  63. package/files/.github/standards/12-base-table.md +153 -153
  64. package/files/.github/standards/13-platform-components.md +123 -123
  65. package/files/.github/standards/index.md +89 -89
  66. package/files/demo/produce/aiflow/mmwr-customer-apply-add/api.md +1 -1
  67. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/data.ts +196 -196
  68. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.scss +150 -150
  69. package/files/demo/produce/aiflow/mmwr-customer-apply-change-history/index.vue +79 -79
  70. package/files/docs/jh-date-range.md +257 -257
  71. package/files/docs/jh-date.md +222 -222
  72. package/files/docs/jh-dept-picker.md +190 -190
  73. package/files/docs/jh-drag-row.md +590 -590
  74. package/files/docs/jh-file-upload.md +216 -216
  75. package/files/docs/jh-picker.md +218 -218
  76. package/files/docs/jh-select.md +148 -148
  77. package/files/docs/jh-text.md +248 -248
  78. package/files/docs/jh-user-picker.md +197 -197
  79. package/files/docs/request.md +24 -9
  80. package/files/src/components/global/C_RightToolbar/data.ts +228 -0
  81. package/files/src/components/global/C_RightToolbar/index.scss +44 -0
  82. package/files/src/components/global/C_RightToolbar/index.vue +34 -336
  83. package/files/src/components/global/C_Splitter/index.scss +61 -0
  84. package/files/src/components/global/C_Splitter/index.vue +2 -64
  85. package/files/src/components/global/C_SvgIcon/index.scss +15 -0
  86. package/files/src/components/global/C_SvgIcon/index.vue +20 -50
  87. package/files/src/components/global/C_TagStatus/index.scss +20 -0
  88. package/files/src/components/global/C_TagStatus/index.vue +1 -22
  89. package/files/src/components/global/C_Tree/data.ts +61 -0
  90. package/files/src/components/global/C_Tree/index.vue +12 -53
  91. package/files/src/components/local/c_listModal/index.scss +4 -0
  92. package/files/src/components/local/c_listModal/index.vue +1 -1
  93. package/package.json +5 -9
@@ -1,247 +1,247 @@
1
- # 系统菜单配置 — 客户档案模块(produce / production-mmwr / aiflow)
2
-
3
- > 对应系统管理 → 菜单管理 → 新增菜单,每栏直接复制粘贴。
4
- > **操作顺序:先建目录(第 0 步),再逐个添加菜单(第 1-5 步)。**
5
- >
6
- > **pages.ts 注册位置**:`vite/plugins/shared/pages.ts` → `steelPerformanceSubModule` → `aiflow`
7
- >
8
- > **命名规范**:
9
- >
10
- > | 字段 | 规则 | 示例 |
11
- > | -------- | ----------------------------------------------------------- | ---------------------------------------------------------------- |
12
- > | 菜单路径 | 页面 kebab-name 转 camelCase | `mmwr-customer-archive` → `mmwrCustomerArchive` |
13
- > | 组件路径 | `produce/production-mmwr/aiflow/{页面kebab-name}/index.vue` | `produce/production-mmwr/aiflow/mmwr-customer-archive/index.vue` |
14
- > | 权限标识 | 与菜单路径一致(camelCase) | `mmwrCustomerArchive` |
15
- > | 应用选择 | 生产 | |
16
-
17
- ---
18
-
19
- ## 第 0 步:新建目录
20
-
21
- > Tab 选 **目录**
22
-
23
- | 字段 | 值 |
24
- | -------- | ---------------------------------- |
25
- | 上级目录 | `生产棒线材`(按实际上级目录选择) |
26
- | 菜单名称 | `客户档案管理` |
27
- | 显示排序 | `6` |
28
-
29
- ---
30
-
31
- ## 第 1 步:客户档案
32
-
33
- > Tab 选 **菜单**
34
-
35
- | 字段 | 值 |
36
- | ------------ | ---------------------------------------------------------------- |
37
- | 上级目录 | `客户档案管理` |
38
- | 应用选择 | `生产` |
39
- | 使用缓存 | ◉ 使用 |
40
- | 显示排序 | `1` |
41
- | 菜单路径 | `mmwrCustomerArchive` |
42
- | 菜单名称 | `客户档案` |
43
- | 名称编码后缀 | `kehudangan` |
44
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-archive/index.vue` |
45
- | 权限标识 | `mmwrCustomerArchive` |
46
- | 是否隐藏 | 否 |
47
-
48
- > pages.ts 对应:`["mmwr-customer-archive", "客户档案"]`
49
-
50
- ---
51
-
52
- ## 第 2 步:临时客户档案
53
-
54
- > Tab 选 **菜单**
55
-
56
- | 字段 | 值 |
57
- | ------------ | --------------------------------------------------------------------- |
58
- | 上级目录 | `客户档案管理` |
59
- | 应用选择 | `生产` |
60
- | 使用缓存 | ◉ 使用 |
61
- | 显示排序 | `2` |
62
- | 菜单路径 | `mmwrTempCustomerArchive` |
63
- | 菜单名称 | `临时客户档案` |
64
- | 名称编码后缀 | `linshikehudangan` |
65
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-temp-customer-archive/index.vue` |
66
- | 权限标识 | `mmwrTempCustomerArchive` |
67
- | 是否隐藏 | 否 |
68
-
69
- > pages.ts 对应:`["mmwr-temp-customer-archive", "临时客户档案"]`
70
-
71
- ---
72
-
73
- ## 第 3 步:客户申请新增
74
-
75
- > Tab 选 **菜单**
76
-
77
- | 字段 | 值 |
78
- | ------------ | ------------------------------------------------------------------ |
79
- | 上级目录 | `客户档案管理` |
80
- | 应用选择 | `生产` |
81
- | 使用缓存 | ◉ 使用 |
82
- | 显示排序 | `3` |
83
- | 菜单路径 | `mmwrCustomerApplyAdd` |
84
- | 菜单名称 | `客户申请新增` |
85
- | 名称编码后缀 | `kehushenqingxinzeng` |
86
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-add/index.vue` |
87
- | 权限标识 | `mmwrCustomerApplyAdd` |
88
- | 是否隐藏 | 否 |
89
-
90
- > pages.ts 对应:`["mmwr-customer-apply-add", "客户申请新增"]`
91
-
92
- ---
93
-
94
- ## 第 4 步:客户申请变更
95
-
96
- > Tab 选 **菜单**
97
-
98
- | 字段 | 值 |
99
- | ------------ | --------------------------------------------------------------------- |
100
- | 上级目录 | `客户档案管理` |
101
- | 应用选择 | `生产` |
102
- | 使用缓存 | ◉ 使用 |
103
- | 显示排序 | `4` |
104
- | 菜单路径 | `mmwrCustomerApplyChange` |
105
- | 菜单名称 | `客户申请变更` |
106
- | 名称编码后缀 | `kehushenqingbiangeng` |
107
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-change/index.vue` |
108
- | 权限标识 | `mmwrCustomerApplyChange` |
109
- | 是否隐藏 | 否 |
110
-
111
- > pages.ts 对应:`["mmwr-customer-apply-change", "客户申请变更"]`
112
-
113
- ---
114
-
115
- ## 第 5 步:客户详情(隐藏菜单)
116
-
117
- > Tab 选 **菜单**
118
-
119
- | 字段 | 值 |
120
- | ------------ | --------------------------------------------------------------- |
121
- | 上级目录 | `客户档案管理` |
122
- | 应用选择 | `生产` |
123
- | 使用缓存 | ◉ 使用 |
124
- | 显示排序 | `5` |
125
- | 菜单路径 | `mmwrCustomerDetail` |
126
- | 菜单名称 | `客户详情` |
127
- | 名称编码后缀 | `kehuxiangqing` |
128
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-detail/index.vue` |
129
- | 权限标识 | `mmwrCustomerDetail` |
130
- | 是否隐藏 | **是** |
131
-
132
- > pages.ts 对应:`["mmwr-customer-detail", "客户详情"]`
133
-
134
- ---
135
-
136
- ## 第 6 步:客户申请新增表单(隐藏菜单)
137
-
138
- > Tab 选 **菜单**
139
-
140
- | 字段 | 值 |
141
- | ------------ | ----------------------------------------------------------------------- |
142
- | 上级目录 | `客户档案管理` |
143
- | 应用选择 | `生产` |
144
- | 使用缓存 | ◉ 使用 |
145
- | 显示排序 | `6` |
146
- | 菜单路径 | `mmwrCustomerApplyAddForm` |
147
- | 菜单名称 | `客户申请新增表单` |
148
- | 名称编码后缀 | `kehushenqingxinzengbiaodan` |
149
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-add-form/index.vue` |
150
- | 权限标识 | `mmwrCustomerApplyAddForm` |
151
- | 是否隐藏 | **是** |
152
-
153
- > pages.ts 对应:`["mmwr-customer-apply-add-form", "客户申请新增表单"]`
154
-
155
- ---
156
-
157
- ## 第 7 步:客户申请变更表单(隐藏菜单)
158
-
159
- > Tab 选 **菜单**
160
-
161
- | 字段 | 值 |
162
- | ------------ | -------------------------------------------------------------------------- |
163
- | 上级目录 | `客户档案管理` |
164
- | 应用选择 | `生产` |
165
- | 使用缓存 | ◉ 使用 |
166
- | 显示排序 | `7` |
167
- | 菜单路径 | `mmwrCustomerApplyChangeForm` |
168
- | 菜单名称 | `客户申请变更表单` |
169
- | 名称编码后缀 | `kehushenqingbiangengbiaodan` |
170
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-form/index.vue` |
171
- | 权限标识 | `mmwrCustomerApplyChangeForm` |
172
- | 是否隐藏 | **是** |
173
-
174
- > pages.ts 对应:`["mmwr-customer-apply-change-form", "客户申请变更表单"]`
175
-
176
- ---
177
-
178
- ## 第 8 步:变更历史查询(隐藏菜单)
179
-
180
- > Tab 选 **菜单**
181
-
182
- | 字段 | 值 |
183
- | ------------ | --------------------------------------------------------------------------------------- |
184
- | 上级目录 | `客户档案管理` |
185
- | 应用选择 | `生产` |
186
- | 使用缓存 | ◉ 使用 |
187
- | 显示排序 | `8` |
188
- | 菜单路径 | `mmwrCustomerApplyChangeHistory` |
189
- | 菜单名称 | `变更历史查询` |
190
- | 名称编码后缀 | `biangenglishipinshi` |
191
- | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-history/index.vue` |
192
- | 权限标识 | `mmwrCustomerApplyChangeHistory` |
193
- | 是否隐藏 | **是** |
194
-
195
- > pages.ts 对应:`["mmwr-customer-apply-change-history", "变更历史查询"]`
196
- > 入口:客户申请新增表单 / 客户申请变更表单 顶部工具栏「变更历史查询」按钮,传入 `query.id = 当前申请ID`
197
-
198
- ---
199
-
200
- ## 汇总对照表
201
-
202
- | # | 菜单名称 | 菜单路径 | 组件路径(views/下) | pages.ts 注册名 | 隐藏 |
203
- | --- | ---------------- | ----------------------------- | -------------------------------------------------------------------------- | --------------------------------- | ------ |
204
- | 1 | 客户档案 | `mmwrCustomerArchive` | `produce/production-mmwr/aiflow/mmwr-customer-archive/index.vue` | `mmwr-customer-archive` | 否 |
205
- | 2 | 临时客户档案 | `mmwrTempCustomerArchive` | `produce/production-mmwr/aiflow/mmwr-temp-customer-archive/index.vue` | `mmwr-temp-customer-archive` | 否 |
206
- | 3 | 客户申请新增 | `mmwrCustomerApplyAdd` | `produce/production-mmwr/aiflow/mmwr-customer-apply-add/index.vue` | `mmwr-customer-apply-add` | 否 |
207
- | 4 | 客户申请变更 | `mmwrCustomerApplyChange` | `produce/production-mmwr/aiflow/mmwr-customer-apply-change/index.vue` | `mmwr-customer-apply-change` | 否 |
208
- | 5 | 客户详情 | `mmwrCustomerDetail` | `produce/production-mmwr/aiflow/mmwr-customer-detail/index.vue` | `mmwr-customer-detail` | **是** |
209
- | 6 | 客户申请新增表单 | `mmwrCustomerApplyAddForm` | `produce/production-mmwr/aiflow/mmwr-customer-apply-add-form/index.vue` | `mmwr-customer-apply-add-form` | **是** |
210
- | 7 | 客户申请变更表单 | `mmwrCustomerApplyChangeForm` | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-form/index.vue` | `mmwr-customer-apply-change-form` | **是** |
211
- | 8 | 变更历史查询 | `mmwrCustomerApplyChangeHistory` | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-history/index.vue` | `mmwr-customer-apply-change-history` | **是** |
212
-
213
- ---
214
-
215
- ## pages.ts 对应关系
216
-
217
- ```typescript
218
- // 生产棒线材 → 客户档案子模块
219
- aiflow: [
220
- ["mmwr-customer-archive", "客户档案"],
221
- ["mmwr-temp-customer-archive", "临时客户档案"],
222
- ["mmwr-customer-apply-add", "客户申请新增"],
223
- ["mmwr-customer-apply-change", "客户申请变更"],
224
- ["mmwr-customer-apply-add-form", "客户申请新增表单"],
225
- ["mmwr-customer-apply-change-form", "客户申请变更表单"],
226
- ["mmwr-customer-detail", "客户详情"],
227
- ["mmwr-customer-apply-change-history", "变更历史查询"]
228
- ];
229
- ```
230
-
231
- ## 详情交互说明
232
-
233
- | 列表页 | 详情入口 | 实现方式 |
234
- | ------------ | ------------------ | ------------------------------------------------------------------------------------- |
235
- | 客户档案 | 操作列「详情」按钮 | 页内 detailDialog 弹窗(8 个 Tab:基本/资质/联系人/地址/银行/发票/适用范围/跟进记录) |
236
- | 临时客户档案 | 客户编号可点击列 | 路由跳转 → `mmwrCustomerDetail`(平铺详情页:基本/联系/送货/银行/发票/跟进记录) |
237
- | 客户申请新增 | 操作列「详情」按钮 | 共享组件 `c_applyDetailDialog`(7 个 Tab) |
238
- | 客户申请变更 | 操作列「详情」按钮 | 共享组件 `c_applyDetailDialog`(7 个 Tab) |
239
-
240
- ## 备注
241
-
242
- - 客户档案详情通过页内 `c_formModal` 弹窗查看;临时客户详情通过路由跳转 `mmwrCustomerDetail` 查看
243
- - 新增/编辑弹窗复用平台 `c_formModal` 组件
244
- - 客户申请新增与客户申请变更共享 `src/components/local/c_applyDetailDialog/index.vue` 详情弹窗
245
- - 变更历史查询通过路由跳转 `mmwrCustomerApplyChangeHistory` 查看,入口在申请表单页工具栏
246
- - **显示排序**:目录排 `6`(接在实绩统计查询后面),菜单从 `1` 开始
247
- - **mmwr- 前缀**:生产棒线材模块下所有页面统一使用 `mmwr-` 前缀(kebab)/ `mmwr` 前缀(camelCase)
1
+ # 系统菜单配置 — 客户档案模块(produce / production-mmwr / aiflow)
2
+
3
+ > 对应系统管理 → 菜单管理 → 新增菜单,每栏直接复制粘贴。
4
+ > **操作顺序:先建目录(第 0 步),再逐个添加菜单(第 1-5 步)。**
5
+ >
6
+ > **pages.ts 注册位置**:`vite/plugins/shared/pages.ts` → `steelPerformanceSubModule` → `aiflow`
7
+ >
8
+ > **命名规范**:
9
+ >
10
+ > | 字段 | 规则 | 示例 |
11
+ > | -------- | ----------------------------------------------------------- | ---------------------------------------------------------------- |
12
+ > | 菜单路径 | 页面 kebab-name 转 camelCase | `mmwr-customer-archive` → `mmwrCustomerArchive` |
13
+ > | 组件路径 | `produce/production-mmwr/aiflow/{页面kebab-name}/index.vue` | `produce/production-mmwr/aiflow/mmwr-customer-archive/index.vue` |
14
+ > | 权限标识 | 与菜单路径一致(camelCase) | `mmwrCustomerArchive` |
15
+ > | 应用选择 | 生产 | |
16
+
17
+ ---
18
+
19
+ ## 第 0 步:新建目录
20
+
21
+ > Tab 选 **目录**
22
+
23
+ | 字段 | 值 |
24
+ | -------- | ---------------------------------- |
25
+ | 上级目录 | `生产棒线材`(按实际上级目录选择) |
26
+ | 菜单名称 | `客户档案管理` |
27
+ | 显示排序 | `6` |
28
+
29
+ ---
30
+
31
+ ## 第 1 步:客户档案
32
+
33
+ > Tab 选 **菜单**
34
+
35
+ | 字段 | 值 |
36
+ | ------------ | ---------------------------------------------------------------- |
37
+ | 上级目录 | `客户档案管理` |
38
+ | 应用选择 | `生产` |
39
+ | 使用缓存 | ◉ 使用 |
40
+ | 显示排序 | `1` |
41
+ | 菜单路径 | `mmwrCustomerArchive` |
42
+ | 菜单名称 | `客户档案` |
43
+ | 名称编码后缀 | `kehudangan` |
44
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-archive/index.vue` |
45
+ | 权限标识 | `mmwrCustomerArchive` |
46
+ | 是否隐藏 | 否 |
47
+
48
+ > pages.ts 对应:`["mmwr-customer-archive", "客户档案"]`
49
+
50
+ ---
51
+
52
+ ## 第 2 步:临时客户档案
53
+
54
+ > Tab 选 **菜单**
55
+
56
+ | 字段 | 值 |
57
+ | ------------ | --------------------------------------------------------------------- |
58
+ | 上级目录 | `客户档案管理` |
59
+ | 应用选择 | `生产` |
60
+ | 使用缓存 | ◉ 使用 |
61
+ | 显示排序 | `2` |
62
+ | 菜单路径 | `mmwrTempCustomerArchive` |
63
+ | 菜单名称 | `临时客户档案` |
64
+ | 名称编码后缀 | `linshikehudangan` |
65
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-temp-customer-archive/index.vue` |
66
+ | 权限标识 | `mmwrTempCustomerArchive` |
67
+ | 是否隐藏 | 否 |
68
+
69
+ > pages.ts 对应:`["mmwr-temp-customer-archive", "临时客户档案"]`
70
+
71
+ ---
72
+
73
+ ## 第 3 步:客户申请新增
74
+
75
+ > Tab 选 **菜单**
76
+
77
+ | 字段 | 值 |
78
+ | ------------ | ------------------------------------------------------------------ |
79
+ | 上级目录 | `客户档案管理` |
80
+ | 应用选择 | `生产` |
81
+ | 使用缓存 | ◉ 使用 |
82
+ | 显示排序 | `3` |
83
+ | 菜单路径 | `mmwrCustomerApplyAdd` |
84
+ | 菜单名称 | `客户申请新增` |
85
+ | 名称编码后缀 | `kehushenqingxinzeng` |
86
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-add/index.vue` |
87
+ | 权限标识 | `mmwrCustomerApplyAdd` |
88
+ | 是否隐藏 | 否 |
89
+
90
+ > pages.ts 对应:`["mmwr-customer-apply-add", "客户申请新增"]`
91
+
92
+ ---
93
+
94
+ ## 第 4 步:客户申请变更
95
+
96
+ > Tab 选 **菜单**
97
+
98
+ | 字段 | 值 |
99
+ | ------------ | --------------------------------------------------------------------- |
100
+ | 上级目录 | `客户档案管理` |
101
+ | 应用选择 | `生产` |
102
+ | 使用缓存 | ◉ 使用 |
103
+ | 显示排序 | `4` |
104
+ | 菜单路径 | `mmwrCustomerApplyChange` |
105
+ | 菜单名称 | `客户申请变更` |
106
+ | 名称编码后缀 | `kehushenqingbiangeng` |
107
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-change/index.vue` |
108
+ | 权限标识 | `mmwrCustomerApplyChange` |
109
+ | 是否隐藏 | 否 |
110
+
111
+ > pages.ts 对应:`["mmwr-customer-apply-change", "客户申请变更"]`
112
+
113
+ ---
114
+
115
+ ## 第 5 步:客户详情(隐藏菜单)
116
+
117
+ > Tab 选 **菜单**
118
+
119
+ | 字段 | 值 |
120
+ | ------------ | --------------------------------------------------------------- |
121
+ | 上级目录 | `客户档案管理` |
122
+ | 应用选择 | `生产` |
123
+ | 使用缓存 | ◉ 使用 |
124
+ | 显示排序 | `5` |
125
+ | 菜单路径 | `mmwrCustomerDetail` |
126
+ | 菜单名称 | `客户详情` |
127
+ | 名称编码后缀 | `kehuxiangqing` |
128
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-detail/index.vue` |
129
+ | 权限标识 | `mmwrCustomerDetail` |
130
+ | 是否隐藏 | **是** |
131
+
132
+ > pages.ts 对应:`["mmwr-customer-detail", "客户详情"]`
133
+
134
+ ---
135
+
136
+ ## 第 6 步:客户申请新增表单(隐藏菜单)
137
+
138
+ > Tab 选 **菜单**
139
+
140
+ | 字段 | 值 |
141
+ | ------------ | ----------------------------------------------------------------------- |
142
+ | 上级目录 | `客户档案管理` |
143
+ | 应用选择 | `生产` |
144
+ | 使用缓存 | ◉ 使用 |
145
+ | 显示排序 | `6` |
146
+ | 菜单路径 | `mmwrCustomerApplyAddForm` |
147
+ | 菜单名称 | `客户申请新增表单` |
148
+ | 名称编码后缀 | `kehushenqingxinzengbiaodan` |
149
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-add-form/index.vue` |
150
+ | 权限标识 | `mmwrCustomerApplyAddForm` |
151
+ | 是否隐藏 | **是** |
152
+
153
+ > pages.ts 对应:`["mmwr-customer-apply-add-form", "客户申请新增表单"]`
154
+
155
+ ---
156
+
157
+ ## 第 7 步:客户申请变更表单(隐藏菜单)
158
+
159
+ > Tab 选 **菜单**
160
+
161
+ | 字段 | 值 |
162
+ | ------------ | -------------------------------------------------------------------------- |
163
+ | 上级目录 | `客户档案管理` |
164
+ | 应用选择 | `生产` |
165
+ | 使用缓存 | ◉ 使用 |
166
+ | 显示排序 | `7` |
167
+ | 菜单路径 | `mmwrCustomerApplyChangeForm` |
168
+ | 菜单名称 | `客户申请变更表单` |
169
+ | 名称编码后缀 | `kehushenqingbiangengbiaodan` |
170
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-form/index.vue` |
171
+ | 权限标识 | `mmwrCustomerApplyChangeForm` |
172
+ | 是否隐藏 | **是** |
173
+
174
+ > pages.ts 对应:`["mmwr-customer-apply-change-form", "客户申请变更表单"]`
175
+
176
+ ---
177
+
178
+ ## 第 8 步:变更历史查询(隐藏菜单)
179
+
180
+ > Tab 选 **菜单**
181
+
182
+ | 字段 | 值 |
183
+ | ------------ | --------------------------------------------------------------------------------------- |
184
+ | 上级目录 | `客户档案管理` |
185
+ | 应用选择 | `生产` |
186
+ | 使用缓存 | ◉ 使用 |
187
+ | 显示排序 | `8` |
188
+ | 菜单路径 | `mmwrCustomerApplyChangeHistory` |
189
+ | 菜单名称 | `变更历史查询` |
190
+ | 名称编码后缀 | `biangenglishipinshi` |
191
+ | 组件路径 | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-history/index.vue` |
192
+ | 权限标识 | `mmwrCustomerApplyChangeHistory` |
193
+ | 是否隐藏 | **是** |
194
+
195
+ > pages.ts 对应:`["mmwr-customer-apply-change-history", "变更历史查询"]`
196
+ > 入口:客户申请新增表单 / 客户申请变更表单 顶部工具栏「变更历史查询」按钮,传入 `query.id = 当前申请ID`
197
+
198
+ ---
199
+
200
+ ## 汇总对照表
201
+
202
+ | # | 菜单名称 | 菜单路径 | 组件路径(views/下) | pages.ts 注册名 | 隐藏 |
203
+ | --- | ---------------- | ----------------------------- | -------------------------------------------------------------------------- | --------------------------------- | ------ |
204
+ | 1 | 客户档案 | `mmwrCustomerArchive` | `produce/production-mmwr/aiflow/mmwr-customer-archive/index.vue` | `mmwr-customer-archive` | 否 |
205
+ | 2 | 临时客户档案 | `mmwrTempCustomerArchive` | `produce/production-mmwr/aiflow/mmwr-temp-customer-archive/index.vue` | `mmwr-temp-customer-archive` | 否 |
206
+ | 3 | 客户申请新增 | `mmwrCustomerApplyAdd` | `produce/production-mmwr/aiflow/mmwr-customer-apply-add/index.vue` | `mmwr-customer-apply-add` | 否 |
207
+ | 4 | 客户申请变更 | `mmwrCustomerApplyChange` | `produce/production-mmwr/aiflow/mmwr-customer-apply-change/index.vue` | `mmwr-customer-apply-change` | 否 |
208
+ | 5 | 客户详情 | `mmwrCustomerDetail` | `produce/production-mmwr/aiflow/mmwr-customer-detail/index.vue` | `mmwr-customer-detail` | **是** |
209
+ | 6 | 客户申请新增表单 | `mmwrCustomerApplyAddForm` | `produce/production-mmwr/aiflow/mmwr-customer-apply-add-form/index.vue` | `mmwr-customer-apply-add-form` | **是** |
210
+ | 7 | 客户申请变更表单 | `mmwrCustomerApplyChangeForm` | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-form/index.vue` | `mmwr-customer-apply-change-form` | **是** |
211
+ | 8 | 变更历史查询 | `mmwrCustomerApplyChangeHistory` | `produce/production-mmwr/aiflow/mmwr-customer-apply-change-history/index.vue` | `mmwr-customer-apply-change-history` | **是** |
212
+
213
+ ---
214
+
215
+ ## pages.ts 对应关系
216
+
217
+ ```typescript
218
+ // 生产棒线材 → 客户档案子模块
219
+ aiflow: [
220
+ ["mmwr-customer-archive", "客户档案"],
221
+ ["mmwr-temp-customer-archive", "临时客户档案"],
222
+ ["mmwr-customer-apply-add", "客户申请新增"],
223
+ ["mmwr-customer-apply-change", "客户申请变更"],
224
+ ["mmwr-customer-apply-add-form", "客户申请新增表单"],
225
+ ["mmwr-customer-apply-change-form", "客户申请变更表单"],
226
+ ["mmwr-customer-detail", "客户详情"],
227
+ ["mmwr-customer-apply-change-history", "变更历史查询"]
228
+ ];
229
+ ```
230
+
231
+ ## 详情交互说明
232
+
233
+ | 列表页 | 详情入口 | 实现方式 |
234
+ | ------------ | ------------------ | ------------------------------------------------------------------------------------- |
235
+ | 客户档案 | 操作列「详情」按钮 | 页内 detailDialog 弹窗(8 个 Tab:基本/资质/联系人/地址/银行/发票/适用范围/跟进记录) |
236
+ | 临时客户档案 | 客户编号可点击列 | 路由跳转 → `mmwrCustomerDetail`(平铺详情页:基本/联系/送货/银行/发票/跟进记录) |
237
+ | 客户申请新增 | 操作列「详情」按钮 | 共享组件 `c_applyDetailDialog`(7 个 Tab) |
238
+ | 客户申请变更 | 操作列「详情」按钮 | 共享组件 `c_applyDetailDialog`(7 个 Tab) |
239
+
240
+ ## 备注
241
+
242
+ - 客户档案详情通过页内 `c_formModal` 弹窗查看;临时客户详情通过路由跳转 `mmwrCustomerDetail` 查看
243
+ - 新增/编辑弹窗复用平台 `c_formModal` 组件
244
+ - 客户申请新增与客户申请变更共享 `src/components/local/c_applyDetailDialog/index.vue` 详情弹窗
245
+ - 变更历史查询通过路由跳转 `mmwrCustomerApplyChangeHistory` 查看,入口在申请表单页工具栏
246
+ - **显示排序**:目录排 `6`(接在实绩统计查询后面),菜单从 `1` 开始
247
+ - **mmwr- 前缀**:生产棒线材模块下所有页面统一使用 `mmwr-` 前缀(kebab)/ `mmwr` 前缀(camelCase)
@@ -1,20 +1,20 @@
1
- # SYS_PERMISSION_INFO — 权限数据汇总 [PLANNED]
2
-
3
- > ⚠️ 本文件为 [PLANNED] 状态。等 `permission-sync` Skill 转正后启用。
4
- >
5
- > 设计草稿:`.github/skills/sync/permission-sync/SKILL.draft.md`
6
-
7
- ---
8
-
9
- ## 预期格式
10
-
11
- ```markdown
12
- | 菜单 | 按钮 | 权限码 | 权限标识 | 备注 |
13
- | -------- | ---- | -------------------- | ---------- | ---- |
14
- | 客户档案 | 新增 | mmwr:customer:add | btn-add | |
15
- | 客户档案 | 编辑 | mmwr:customer:edit | btn-edit | |
16
- | 客户档案 | 删除 | mmwr:customer:delete | btn-delete | |
17
- ```
18
-
19
- 写入方:page-codegen / permission-collect(PLANNED)
20
- 读取方:permission-sync Skill(PLANNED)
1
+ # SYS_PERMISSION_INFO — 权限数据汇总 [PLANNED]
2
+
3
+ > ⚠️ 本文件为 [PLANNED] 状态。等 `permission-sync` Skill 转正后启用。
4
+ >
5
+ > 设计草稿:`.github/skills/sync/permission-sync/SKILL.draft.md`
6
+
7
+ ---
8
+
9
+ ## 预期格式
10
+
11
+ ```markdown
12
+ | 菜单 | 按钮 | 权限码 | 权限标识 | 备注 |
13
+ | -------- | ---- | -------------------- | ---------- | ---- |
14
+ | 客户档案 | 新增 | mmwr:customer:add | btn-add | |
15
+ | 客户档案 | 编辑 | mmwr:customer:edit | btn-edit | |
16
+ | 客户档案 | 删除 | mmwr:customer:delete | btn-delete | |
17
+ ```
18
+
19
+ 写入方:page-codegen / permission-collect(PLANNED)
20
+ 读取方:permission-sync Skill(PLANNED)
@@ -1,33 +1,33 @@
1
- # 组件提取建议
2
-
3
- > 由 `convention-audit` Skill 自动追加写入。识别**跨 3+ 页面相同的未封装模式**,输出提取建议供人工评审。
4
- >
5
- > ⚠️ 本文件中的建议**不自动执行**。人工评审通过后,触发 `template-extract` Skill(页面级)或手动封装为 `c_*` 组件(组件级)。
6
-
7
- ---
8
-
9
- <!--
10
- 追加格式示例:
11
-
12
- ## 🕐 2026-04-26 14:30 | 范围:src/views/
13
-
14
- ### 📦 组件提取建议(共 N 处)
15
-
16
- | 建议组件名 | 出现次数 | 页面路径 | 菜单位置 | 模式描述 |
17
- | -------------- | -------- | ------------------------------------------ | ----------------------- | ------------------ |
18
- | c_statusBadge | 5 处 | src/views/sale/.../{a,b,c,d,e}/index.vue | 销售管理 > 多个子菜单 | 状态枚举彩色标签 |
19
- | c_priceFormat | 4 处 | src/views/.../... | ... | 千分位金额显示 |
20
- | c_addressInput | 3 处 | src/views/.../... | ... | 省市区联动选择器 |
21
-
22
- **评审建议**:
23
-
24
- - c_statusBadge:模式简单且高频,建议立即封装到 `src/components/local/c_statusBadge/`
25
- - c_priceFormat:建议先评估是否可用现有 `jh-text` + 格式化指令实现
26
- - c_addressInput:业务耦合度高,建议保持现状,1 年后再评估
27
-
28
- ---
29
-
30
- (旧报告章节)
31
- -->
32
-
33
- > 本文件初始为空。首次执行 convention-audit 后,将自动填入提取建议。
1
+ # 组件提取建议
2
+
3
+ > 由 `convention-audit` Skill 自动追加写入。识别**跨 3+ 页面相同的未封装模式**,输出提取建议供人工评审。
4
+ >
5
+ > ⚠️ 本文件中的建议**不自动执行**。人工评审通过后,触发 `template-extract` Skill(页面级)或手动封装为 `c_*` 组件(组件级)。
6
+
7
+ ---
8
+
9
+ <!--
10
+ 追加格式示例:
11
+
12
+ ## 🕐 2026-04-26 14:30 | 范围:src/views/
13
+
14
+ ### 📦 组件提取建议(共 N 处)
15
+
16
+ | 建议组件名 | 出现次数 | 页面路径 | 菜单位置 | 模式描述 |
17
+ | -------------- | -------- | ------------------------------------------ | ----------------------- | ------------------ |
18
+ | c_statusBadge | 5 处 | src/views/sale/.../{a,b,c,d,e}/index.vue | 销售管理 > 多个子菜单 | 状态枚举彩色标签 |
19
+ | c_priceFormat | 4 处 | src/views/.../... | ... | 千分位金额显示 |
20
+ | c_addressInput | 3 处 | src/views/.../... | ... | 省市区联动选择器 |
21
+
22
+ **评审建议**:
23
+
24
+ - c_statusBadge:模式简单且高频,建议立即封装到 `src/components/local/c_statusBadge/`
25
+ - c_priceFormat:建议先评估是否可用现有 `jh-text` + 格式化指令实现
26
+ - c_addressInput:业务耦合度高,建议保持现状,1 年后再评估
27
+
28
+ ---
29
+
30
+ (旧报告章节)
31
+ -->
32
+
33
+ > 本文件初始为空。首次执行 convention-audit 后,将自动填入提取建议。