pda-kit-mcp-server 2.0.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.
- package/README.md +107 -0
- package/bin/pda-kit-mcp.js +35 -0
- package/dist/file-reader.d.ts +83 -0
- package/dist/file-reader.d.ts.map +1 -0
- package/dist/file-reader.js +170 -0
- package/dist/file-reader.js.map +1 -0
- package/dist/http-entry.d.ts +12 -0
- package/dist/http-entry.d.ts.map +1 -0
- package/dist/http-entry.js +149 -0
- package/dist/http-entry.js.map +1 -0
- package/dist/http-server.d.ts +5 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +114 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/paths.d.ts +37 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +52 -0
- package/dist/paths.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +308 -0
- package/dist/server.js.map +1 -0
- package/dist/stdio-server.d.ts +8 -0
- package/dist/stdio-server.d.ts.map +1 -0
- package/dist/stdio-server.js +83 -0
- package/dist/stdio-server.js.map +1 -0
- package/dist/tools/generate-component.d.ts +54 -0
- package/dist/tools/generate-component.d.ts.map +1 -0
- package/dist/tools/generate-component.js +80 -0
- package/dist/tools/generate-component.js.map +1 -0
- package/dist/tools/get-component-spec.d.ts +70 -0
- package/dist/tools/get-component-spec.d.ts.map +1 -0
- package/dist/tools/get-component-spec.js +95 -0
- package/dist/tools/get-component-spec.js.map +1 -0
- package/dist/tools/get-global-rules.d.ts +42 -0
- package/dist/tools/get-global-rules.d.ts.map +1 -0
- package/dist/tools/get-global-rules.js +83 -0
- package/dist/tools/get-global-rules.js.map +1 -0
- package/dist/tools/list-components.d.ts +52 -0
- package/dist/tools/list-components.d.ts.map +1 -0
- package/dist/tools/list-components.js +104 -0
- package/dist/tools/list-components.js.map +1 -0
- package/dist/tools/search-components.d.ts +54 -0
- package/dist/tools/search-components.d.ts.map +1 -0
- package/dist/tools/search-components.js +124 -0
- package/dist/tools/search-components.js.map +1 -0
- package/dist/tools/validate-html.d.ts +43 -0
- package/dist/tools/validate-html.d.ts.map +1 -0
- package/dist/tools/validate-html.js +116 -0
- package/dist/tools/validate-html.js.map +1 -0
- package/package.json +59 -0
- package/spec-data/badge.md +461 -0
- package/spec-data/button.md +148 -0
- package/spec-data/camera.md +622 -0
- package/spec-data/dialog.md +419 -0
- package/spec-data/divider.md +208 -0
- package/spec-data/drawer.md +301 -0
- package/spec-data/empty-state.md +336 -0
- package/spec-data/home-page.md +352 -0
- package/spec-data/input-row.md +346 -0
- package/spec-data/layout-page.md +317 -0
- package/spec-data/list-item.md +128 -0
- package/spec-data/location-selector.md +630 -0
- package/spec-data/more-actions.md +427 -0
- package/spec-data/navbar.md +482 -0
- package/spec-data/photo-list.md +461 -0
- package/spec-data/picker-single.md +199 -0
- package/spec-data/picker.md +586 -0
- package/spec-data/scan-input.md +304 -0
- package/spec-data/section-heading.md +268 -0
- package/spec-data/selectable-list.md +331 -0
- package/spec-data/stepper.md +247 -0
- package/spec-data/tab-bar.md +254 -0
- package/spec-data/tab.md +349 -0
- package/spec-data/tag.md +363 -0
- package/spec-data/tooltip.md +202 -0
- package/spec-data/waybill-number.md +257 -0
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: more-actions
|
|
3
|
+
name: 更多操作弹窗
|
|
4
|
+
category: "反馈/Feedback"
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
source: PDAKit-基础组件
|
|
7
|
+
source_url: https://mastergo.ky-tech.com.cn/goto/TXpebXRm
|
|
8
|
+
source_doc_id: 103417331857122
|
|
9
|
+
component_count: 2
|
|
10
|
+
binds_to: navbar.md
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# 更多操作弹窗 More Actions
|
|
14
|
+
|
|
15
|
+
底部弹出式功能入口面板,**与导航栏强绑定** —— 点击导航栏右侧"更多"图标触发,由底部向上滑入。
|
|
16
|
+
|
|
17
|
+
> **交互**: 底部弹出(Bottom Sheet),顶部圆角 16px,下滑或点击"关闭"按钮收起。
|
|
18
|
+
> **动效**: 抽屉类从底部弹出的面板统一使用由下往上滑入动画,`300ms` 缓入(`ease-in`)。
|
|
19
|
+
> **颜色规则**: 全部使用 Token(`--color-{色系}-{色阶}`),禁止 Hex。
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 组件总览
|
|
24
|
+
|
|
25
|
+
| 组件 | Key | 用途 |
|
|
26
|
+
|------|-----|------|
|
|
27
|
+
| 更多操作弹窗 | `036-更多操作弹窗` | 底部面板容器(标题 + 滑动网格 + 固定底栏) |
|
|
28
|
+
| 更多操作项 | `037-更多操作项` | 单个功能入口(圆形图标 + 文字) |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 1. 更多操作弹窗(面板容器)
|
|
33
|
+
|
|
34
|
+
### Props
|
|
35
|
+
|
|
36
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
37
|
+
|------|------|------|------|
|
|
38
|
+
| 报单切换 | boolean | `false` | 是否显示报单切换区 |
|
|
39
|
+
| 无快捷跳转 | boolean | `true` | 是否隐藏快捷跳转行 |
|
|
40
|
+
| 更多选项 | boolean | `false` | 是否显示更多选项行 1 |
|
|
41
|
+
| 更多选项2 | boolean | `false` | 是否显示更多选项行 2 |
|
|
42
|
+
|
|
43
|
+
### 规格
|
|
44
|
+
|
|
45
|
+
| 属性 | 值 |
|
|
46
|
+
|------|------|
|
|
47
|
+
| 宽度 | `480px` |
|
|
48
|
+
| 最小高度 | `320px` |
|
|
49
|
+
| 最大高度 | `740px` |
|
|
50
|
+
| 背景 | `--color-grey-2` |
|
|
51
|
+
| 顶部圆角 | `16px`(仅左上/右上) |
|
|
52
|
+
| 内边距 | t/b `16px`, l/r `24px` |
|
|
53
|
+
| 弹出方式 | 底部向上滑入(Bottom Sheet) |
|
|
54
|
+
| 触发 | 导航栏右侧"更多"图标 `➤更多` |
|
|
55
|
+
|
|
56
|
+
### 布局结构
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
┌──────────────────────────────────────┐
|
|
60
|
+
│ 更多操作 (22/30/Semibold) │ ← 标题(居中)
|
|
61
|
+
│ │
|
|
62
|
+
├──────────────────────────────────────┤ ← 标题下方 16px 间距
|
|
63
|
+
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
|
|
64
|
+
│ │ 白框 │ │ 白框 │ │ 白框 │ │ 白框 │ │ ← 行 1(68×68 白色圆框 + 40×40 图标)
|
|
65
|
+
│ │ 文字 │ │ 文字 │ │ 文字 │ │ 文字 │ │
|
|
66
|
+
│ └──────┘ └──────┘ └──────┘ └──────┘ │
|
|
67
|
+
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
|
|
68
|
+
│ │ 图标 │ │ 图标 │ │ 图标 │ │ 图标 │ │ ← 行 2..N
|
|
69
|
+
│ │ 文字 │ │ 文字 │ │ 文字 │ │ 文字 │ │
|
|
70
|
+
│ └──────┘ └──────┘ └──────┘ └──────┘ │
|
|
71
|
+
│ ... (可滚动,max-h: 417px) │
|
|
72
|
+
├──────────────────────────────────────┤
|
|
73
|
+
│ ─── 分割线 ─── │
|
|
74
|
+
│ ┌──────┐ │
|
|
75
|
+
│ │ 白框 │ │ ← 模块评价(始终展示,图标在上文字在下)
|
|
76
|
+
│ │模块评价│ │
|
|
77
|
+
│ └──────┘ │
|
|
78
|
+
├──────────────────────────────────────┤
|
|
79
|
+
│ [ 关闭 ] (线条按钮/次要) │ ← 固定底栏
|
|
80
|
+
└──────────────────────────────────────┘
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 颜色
|
|
84
|
+
|
|
85
|
+
| 元素 | Token | 色值 |
|
|
86
|
+
|------|-------|------|
|
|
87
|
+
| 面板背景 | `--color-grey-2` | `#F3F4F6` |
|
|
88
|
+
| 标题 | `--color-black-6` | `#333333` |
|
|
89
|
+
| 分割线 | `--color-black-2` | `#DDDDDD` |
|
|
90
|
+
| 关闭按钮 | 线条按钮/次要(沿用 button.md) | — |
|
|
91
|
+
|
|
92
|
+
### 字体
|
|
93
|
+
|
|
94
|
+
| 元素 | 字号 | 行高 | 字重 |
|
|
95
|
+
|------|------|------|------|
|
|
96
|
+
| 标题 "更多操作" | 22px | 30px | Semibold | 标题下方 `16px` 间距 |
|
|
97
|
+
| 功能入口文字 | 16px | 22px | Semibold |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 2. 更多操作项(单个入口)
|
|
102
|
+
|
|
103
|
+
每个入口展示一个应用功能图标,结构为:**上方图标 → 下方名称**。图标区域用 68×68 白色圆形外框包裹,内部放置 40×40 的应用图标。
|
|
104
|
+
|
|
105
|
+
### Props
|
|
106
|
+
|
|
107
|
+
| Prop | 类型 | 值 |
|
|
108
|
+
|------|------|-----|
|
|
109
|
+
| 类型 | enum | `功能入口` |
|
|
110
|
+
| 模块名称 | string | 任意(默认 `请输入名称`) |
|
|
111
|
+
| 应用图标 | icon-ref | `icons-应用/` 目录下的 SVG 图标引用 |
|
|
112
|
+
|
|
113
|
+
### 规格
|
|
114
|
+
|
|
115
|
+
| 属性 | 值 |
|
|
116
|
+
|------|------|
|
|
117
|
+
| 外框 | `68×68`,圆形,白色背景(`--color-grey-1` / `#FFFFFF`) |
|
|
118
|
+
| 图标尺寸 | `40×40`,居中放置于白色外框内部 |
|
|
119
|
+
| 文字宽度 | `80px`(限制两行) |
|
|
120
|
+
| 图标-文字间距 | `--spacing-8` |
|
|
121
|
+
| 字体 | `16px / 22px`,PingFang SC Semibold,居中对齐 |
|
|
122
|
+
| 文字颜色 | `--color-black-6` |
|
|
123
|
+
| 水平对齐 | 整体垂直排列,文字和图标均居中 |
|
|
124
|
+
|
|
125
|
+
### 网格规格
|
|
126
|
+
|
|
127
|
+
| 属性 | 值 |
|
|
128
|
+
|------|------|
|
|
129
|
+
| 列数 | 4 列 |
|
|
130
|
+
| 列间距 | `36px` |
|
|
131
|
+
| 行间距 | `18px` |
|
|
132
|
+
| 水平排列 | **居左**(`justify-content: flex-start`),禁止居中 |
|
|
133
|
+
| 内容区宽度 | `432px`(480 - 24×2) |
|
|
134
|
+
| 可滚动区最大高度 | `417px` |
|
|
135
|
+
| 默认预置入口 | 16 个(4 行 × 4 列) |
|
|
136
|
+
|
|
137
|
+
### CSS 示例
|
|
138
|
+
|
|
139
|
+
```css
|
|
140
|
+
/* 更多操作弹窗 — 底部面板 */
|
|
141
|
+
.more-actions-panel {
|
|
142
|
+
width: 480px;
|
|
143
|
+
min-height: 320px;
|
|
144
|
+
max-height: 740px;
|
|
145
|
+
display: flex;
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
align-items: stretch;
|
|
148
|
+
gap: var(--spacing-16);
|
|
149
|
+
padding: 16px 24px;
|
|
150
|
+
background: var(--color-grey-2);
|
|
151
|
+
border-radius: 16px 16px 0 0;
|
|
152
|
+
overflow: hidden;
|
|
153
|
+
/* 动画:从底部滑入,300ms ease-in */
|
|
154
|
+
animation: slideUp 300ms ease-in;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@keyframes slideUp {
|
|
158
|
+
from { transform: translateY(100%); }
|
|
159
|
+
to { transform: translateY(0); }
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* 标题 */
|
|
163
|
+
.more-actions-title {
|
|
164
|
+
align-self: stretch;
|
|
165
|
+
color: var(--color-black-6);
|
|
166
|
+
font-size: 22px;
|
|
167
|
+
line-height: 30px;
|
|
168
|
+
font-weight: 600;
|
|
169
|
+
font-family: PingFang SC;
|
|
170
|
+
text-align: center;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* 可滚动网格区 */
|
|
174
|
+
.more-actions-grid {
|
|
175
|
+
flex: 1;
|
|
176
|
+
max-height: 417px;
|
|
177
|
+
display: flex;
|
|
178
|
+
flex-direction: column;
|
|
179
|
+
gap: 18px;
|
|
180
|
+
overflow: hidden auto;
|
|
181
|
+
}
|
|
182
|
+
.more-actions-row {
|
|
183
|
+
display: flex;
|
|
184
|
+
justify-content: flex-start;
|
|
185
|
+
gap: 36px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* 固定底栏 */
|
|
189
|
+
.more-actions-footer {
|
|
190
|
+
display: flex;
|
|
191
|
+
flex-direction: column;
|
|
192
|
+
align-items: flex-start;
|
|
193
|
+
gap: 16px;
|
|
194
|
+
padding-top: 16px;
|
|
195
|
+
background: var(--color-grey-2);
|
|
196
|
+
}
|
|
197
|
+
.more-actions-footer .divider {
|
|
198
|
+
width: 432px;
|
|
199
|
+
height: 1px;
|
|
200
|
+
background: var(--color-black-2);
|
|
201
|
+
}
|
|
202
|
+
.more-actions-footer .bottom-row {
|
|
203
|
+
display: flex;
|
|
204
|
+
gap: 36px;
|
|
205
|
+
padding: 16px 0;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* 关闭按钮 */
|
|
209
|
+
.more-actions-close {
|
|
210
|
+
width: 100%;
|
|
211
|
+
min-height: 64px;
|
|
212
|
+
max-height: 64px;
|
|
213
|
+
display: flex;
|
|
214
|
+
justify-content: center;
|
|
215
|
+
align-items: center;
|
|
216
|
+
/* 线条按钮/次要 Token 沿用 button.md */
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
/* 更多操作项 */
|
|
222
|
+
.more-action-item {
|
|
223
|
+
display: flex;
|
|
224
|
+
flex-direction: column;
|
|
225
|
+
align-items: center;
|
|
226
|
+
gap: var(--spacing-8);
|
|
227
|
+
flex-shrink: 0;
|
|
228
|
+
}
|
|
229
|
+
.more-action-icon {
|
|
230
|
+
width: 68px;
|
|
231
|
+
height: 68px;
|
|
232
|
+
border-radius: 68px;
|
|
233
|
+
background: var(--color-grey-1);
|
|
234
|
+
display: flex;
|
|
235
|
+
justify-content: center;
|
|
236
|
+
align-items: center;
|
|
237
|
+
}
|
|
238
|
+
.more-action-icon svg {
|
|
239
|
+
width: 40px;
|
|
240
|
+
height: 40px;
|
|
241
|
+
}
|
|
242
|
+
.more-action-text {
|
|
243
|
+
width: 80px;
|
|
244
|
+
color: var(--color-black-6);
|
|
245
|
+
font-size: 16px;
|
|
246
|
+
line-height: 22px;
|
|
247
|
+
font-weight: 600;
|
|
248
|
+
font-family: PingFang SC;
|
|
249
|
+
text-align: center;
|
|
250
|
+
}
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## HTML 示例
|
|
256
|
+
|
|
257
|
+
### 图标引用方式
|
|
258
|
+
|
|
259
|
+
```html
|
|
260
|
+
<!-- 功能入口图标引用示例 -->
|
|
261
|
+
<!-- 假设 HTML 文件位于 demos/ 目录,图标位于 icons-应用/ 目录 -->
|
|
262
|
+
|
|
263
|
+
<!-- 取货类图标 -->
|
|
264
|
+
<img src="../icons-应用/应用/取货/快速揽件.svg" alt="快速揽件">
|
|
265
|
+
<img src="../icons-应用/应用/取货/打印运单.svg" alt="打印运单">
|
|
266
|
+
<img src="../icons-应用/应用/取货/取货核对.svg" alt="取货核对">
|
|
267
|
+
<img src="../icons-应用/应用/取货/开箱拍照.svg" alt="开箱拍照">
|
|
268
|
+
|
|
269
|
+
<!-- 派货类图标 -->
|
|
270
|
+
<img src="../icons-应用/应用/派货/一键签收.svg" alt="一键签收">
|
|
271
|
+
<img src="../icons-应用/应用/派货/派货异常.svg" alt="派货异常">
|
|
272
|
+
<img src="../icons-应用/应用/派货/货物拍照.svg" alt="货物拍照">
|
|
273
|
+
|
|
274
|
+
<!-- 干线类图标 -->
|
|
275
|
+
<img src="../icons-应用/应用/干线/到件扫描.svg" alt="到件扫描">
|
|
276
|
+
<img src="../icons-应用/应用/干线/发件扫描.svg" alt="发件扫描">
|
|
277
|
+
<img src="../icons-应用/应用/干线/交接扫描.svg" alt="交接扫描">
|
|
278
|
+
|
|
279
|
+
<!-- 理货类图标 -->
|
|
280
|
+
<img src="../icons-应用/应用/理货/分拣扫描.svg" alt="分拣扫描">
|
|
281
|
+
<img src="../icons-应用/应用/理货/建包管理.svg" alt="建包管理">
|
|
282
|
+
<img src="../icons-应用/应用/理货/中转解包.svg" alt="中转解包">
|
|
283
|
+
|
|
284
|
+
<!-- 更多/固定入口 -->
|
|
285
|
+
<img src="../icons-应用/更多/刷新.svg" alt="刷新">
|
|
286
|
+
<img src="../icons-应用/更多/报单切换.svg" alt="报单切换">
|
|
287
|
+
<img src="../icons-应用/更多/模块评价.svg" alt="模块评价">
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### 完整结构示例
|
|
291
|
+
|
|
292
|
+
```html
|
|
293
|
+
<!-- 更多操作弹窗完整 HTML 结构 -->
|
|
294
|
+
<div class="more-actions-overlay" id="moreActionsOverlay">
|
|
295
|
+
<div class="more-actions-panel">
|
|
296
|
+
<!-- 标题 -->
|
|
297
|
+
<div class="more-actions-title">更多操作</div>
|
|
298
|
+
|
|
299
|
+
<!-- 可滚动网格区 -->
|
|
300
|
+
<div class="more-actions-grid">
|
|
301
|
+
<div class="more-actions-row">
|
|
302
|
+
<!-- 单个入口 -->
|
|
303
|
+
<div class="more-action-item">
|
|
304
|
+
<div class="more-action-icon">
|
|
305
|
+
<!-- ⚠️ 必须使用 icons-应用/ 目录下的图标 -->
|
|
306
|
+
<img src="../icons-应用/应用/取货/快速揽件.svg" alt="快速揽件">
|
|
307
|
+
</div>
|
|
308
|
+
<span class="more-action-text">快速揽件</span>
|
|
309
|
+
</div>
|
|
310
|
+
<!-- 更多入口... -->
|
|
311
|
+
</div>
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
<!-- 固定底部:分割线 + 模块评价 + 关闭按钮 -->
|
|
315
|
+
<div class="more-actions-footer">
|
|
316
|
+
<div class="divider"></div>
|
|
317
|
+
<div class="bottom-row">
|
|
318
|
+
<div class="more-action-item">
|
|
319
|
+
<div class="more-action-icon">
|
|
320
|
+
<!-- 模块评价图标(始终存在) -->
|
|
321
|
+
<img src="../icons-应用/更多/模块评价.svg" alt="模块评价">
|
|
322
|
+
</div>
|
|
323
|
+
<span class="more-action-text">模块评价</span>
|
|
324
|
+
</div>
|
|
325
|
+
</div>
|
|
326
|
+
<button class="more-actions-close">关闭</button>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## 与导航栏的绑定关系
|
|
335
|
+
|
|
336
|
+
| 导航栏变体 | 更多图标位置 | 触发后 |
|
|
337
|
+
|-----------|-------------|--------|
|
|
338
|
+
| 默认标题 | 最右侧 `➤更多` | 弹出更多操作弹窗 |
|
|
339
|
+
| 标签页-圆角 | 最右侧 `➤更多` | 弹出更多操作弹窗 |
|
|
340
|
+
| 标签页-下划线 | 最右侧 `➤更多` | 弹出更多操作弹窗 |
|
|
341
|
+
| 头部作业人 | 右侧(作业人胶囊后)`➤更多` | 弹出更多操作弹窗 |
|
|
342
|
+
| 头部搜索 | 无更多图标 | — |
|
|
343
|
+
| 右侧按钮+菜单 | 最右侧 `➤更多` | 弹出更多操作弹窗 |
|
|
344
|
+
|
|
345
|
+
> 更多操作弹窗是导航栏的附属组件,不作为独立页面存在。AI 生成时应自动关联 `➤更多` 图标 → 更多操作弹窗。
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## 附录 A:颜色 Token
|
|
350
|
+
|
|
351
|
+
| Token | 色值 | 使用场景 |
|
|
352
|
+
|-------|------|---------|
|
|
353
|
+
| `--color-grey-2` | `#F3F4F6` | 面板背景、底部固定区背景 |
|
|
354
|
+
| `--color-grey-1` | `#FFFFFF` | 图标容器背景、关闭按钮 |
|
|
355
|
+
| `--color-black-6` | `#333333` | 标题、功能入口文字 |
|
|
356
|
+
| `--color-black-2` | `#DDDDDD` | 底部分割线 |
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## 附录 B:字体 Token
|
|
361
|
+
|
|
362
|
+
| Token | 字号 | 行高 | 字重 | 适用 |
|
|
363
|
+
|-------|------|------|------|------|
|
|
364
|
+
| `text/22/30` | 22px | 30px | Semibold | 标题 "更多操作" |
|
|
365
|
+
| 16/22/Semibold | 16px | 22px | Semibold | 功能入口文字 |
|
|
366
|
+
|
|
367
|
+
> 字体统一 PingFang SC。详见 [tokens/typography.md](../tokens/typography.md)
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## 使用规则(AI 必读)
|
|
372
|
+
|
|
373
|
+
1. **与导航栏强绑定**:不为独立组件,必须作为导航栏 `➤更多` 图标的弹出层
|
|
374
|
+
2. **标题居中**:标题 "更多操作" 始终水平居中展示
|
|
375
|
+
3. **4 列网格,居左排列**:每行 4 个入口,列间距 36px,行间距 18px,**默认居左**(`justify-content: flex-start`),禁止居中
|
|
376
|
+
4. **白色圆框包裹图标**:每个入口的图标用 68×68 白色圆形外框(`--color-grey-1`)包裹,内部放置 40×40 应用图标
|
|
377
|
+
5. **图标来源(⚠️ 强制)**:功能入口图标**必须全部**从 `icons-应用/` 目录引用,按业务分类(取货/派货/干线/理货/进港/出港/分拨/取派/工具箱/其他)。**禁止**使用 `icons/assets/` 下的通用图标(如 `common_ic_xxx.svg`)作为 more-actions 的功能入口图标
|
|
378
|
+
6. **模块评价始终固定**:分割线下方始终展示「模块评价」入口,**无论是否有其他入口,模块评价都不可隐藏**。入口样式与其他功能入口一致(上方 68×68 白色圆框 + 40×40 图标,下方 16px/22px 居中文字)。图标使用 `icons-应用/更多/模块评价.svg`
|
|
379
|
+
7. **固定底部**:分割线 + 模块评价 + 关闭按钮不随网格区滚动。**分割线上方间距 16px**(`padding-top: 16px`);footer 容器必须设置 `align-items: flex-start` 防止子元素被拉伸后居中
|
|
380
|
+
8. **关闭按钮**:线条按钮/次要,64px 高,撑满宽度,点击收起面板
|
|
381
|
+
9. **可配置入口**:通过 Props 控制快捷跳转行显隐,但模块评价入口始终存在
|
|
382
|
+
10. **动效**:所有抽屉类从底部弹出的面板,统一使用 `slideUp` 动画:`translateY(100%)` → `translateY(0)`,`300ms ease-in`。CSS: `animation: slideUp 300ms ease-in;`,`@keyframes slideUp { from { transform: translateY(100%); } to { transform: translateY(0); } }`
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## 🔴 常见 AI 错误 & 自检清单
|
|
387
|
+
|
|
388
|
+
> **生成完后必须逐项自查。以下每一项记录了过去实际犯过的错误,不要再次踩坑。**
|
|
389
|
+
|
|
390
|
+
| # | ❌ 错误写法 | ✅ 正确写法 | 为什么 |
|
|
391
|
+
|---|-----------|-----------|--------|
|
|
392
|
+
| 1 | 面板背景 `#FFFFFF` | `#F3F4F6` | `#FFFFFF` 和 `#F3F4F6` 刚好相反——面板是灰底(`#F3F4F6`),图标外框是白底(`#FFFFFF`) |
|
|
393
|
+
| 2 | 图标外框背景 `#F3F4F6` | `#FFFFFF` | 同上,这两个色绝不能互换 |
|
|
394
|
+
| 3 | `icons/assets/common_ic_xxx.svg` | `icons-应用/应用/派货/一键签收.svg` | more-actions 的功能入口图标只能来自 `icons-应用/`,不能是 `icons/assets/` |
|
|
395
|
+
| 4 | 模块评价缺失 | 分割线 + 模块评价 + 关闭按钮,三个缺一不可 | 模块评价**始终存在**,不能省略 |
|
|
396
|
+
| 5 | footer 无 `align-items: flex-start` | `align-items: flex-start` | 默认 `stretch` 会导致模块评价水平居中,必须显式靠左 |
|
|
397
|
+
| 6 | `transition` 做动效 | `animation: slideUp 300ms ease-in` | 抽屉类 Bottom Sheet 统一用 `@keyframes`,不是 `transition` |
|
|
398
|
+
| 7 | 图标 36×36 | 图标 **40×40** | — |
|
|
399
|
+
| 8 | 功能文字 14px / 行高 20px | **16px / 22px** Semibold | — |
|
|
400
|
+
| 9 | 3 列网格 | **4 列**,列间距 36px,行间距 18px | — |
|
|
401
|
+
| 10 | 弹窗用空 `div` placeholder | 完整结构:遮罩 + 面板(标题+网格+分割线+模块评价+关闭按钮) | navbar.md 的更多按钮强绑定到此完整结构 |
|
|
402
|
+
|
|
403
|
+
### 自检步骤
|
|
404
|
+
|
|
405
|
+
生成完 more-actions 弹窗后,在终端执行以下检查:
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
# 1. 检查图标是不是都来自 icons-应用/(不应该出现 common_ic_ 前缀)
|
|
409
|
+
grep -n 'more-action-icon.*src' your-demo.html | grep 'icons/assets'
|
|
410
|
+
# ↑ 如果有输出,说明图标来源错了,改成 icons-应用/
|
|
411
|
+
|
|
412
|
+
# 2. 检查是否包含模块评价
|
|
413
|
+
grep -c '模块评价' your-demo.html
|
|
414
|
+
# ↑ 输出必须 ≥ 1
|
|
415
|
+
|
|
416
|
+
# 3. 检查是否有关闭按钮
|
|
417
|
+
grep -c 'more-actions-close' your-demo.html
|
|
418
|
+
# ↑ 输出必须 ≥ 1
|
|
419
|
+
|
|
420
|
+
# 4. 检查面板背景色
|
|
421
|
+
grep 'more-actions-panel' your-demo.html -A5 | grep 'background'
|
|
422
|
+
# ↑ 必须是 #F3F4F6,不能是 #FFFFFF
|
|
423
|
+
|
|
424
|
+
# 5. 检查图标外框背景
|
|
425
|
+
grep 'more-action-icon' your-demo.html -A3 | grep 'background'
|
|
426
|
+
# ↑ 必须是 #FFFFFF,不能是 #F3F4F6
|
|
427
|
+
```
|