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,482 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: navbar
|
|
3
|
+
name: 导航栏
|
|
4
|
+
category: "导航/Navigation"
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
source: PDAKit-基础组件
|
|
7
|
+
source_url: https://mastergo.ky-tech.com.cn/goto/TXmPayyL
|
|
8
|
+
source_doc_id: 103417331857122
|
|
9
|
+
component_count: 8
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
> **🧠 AI 指令 — 强制 CSS(MANDATORY,逐字复制,禁止修改)**
|
|
13
|
+
>
|
|
14
|
+
> ```css
|
|
15
|
+
> .navbar {
|
|
16
|
+
> display: flex; align-items: center; position: relative;
|
|
17
|
+
> width: 480px; height: 56px; /* ⛔ 不是 48px */
|
|
18
|
+
> padding: 0 16px;
|
|
19
|
+
> background: var(--color-grey-2); /* ⛔ 不是 --color-grey-1 */
|
|
20
|
+
> flex-shrink: 0;
|
|
21
|
+
> }
|
|
22
|
+
> .navbar-back {
|
|
23
|
+
> width: 40px; height: 40px; /* ⛔ 不是 48px */
|
|
24
|
+
> display: flex; align-items: center; justify-content: center;
|
|
25
|
+
> color: var(--color-black-6);
|
|
26
|
+
> }
|
|
27
|
+
> .navbar-title {
|
|
28
|
+
> position: absolute; left: 64px; /* ⛔ 不是 left: 16px */
|
|
29
|
+
> font: 600 24px/36px "PingFang SC", -apple-system, sans-serif;
|
|
30
|
+
> color: var(--color-black-6);
|
|
31
|
+
> }
|
|
32
|
+
> .navbar-more {
|
|
33
|
+
> width: 40px; height: 40px; /* ⛔ 必须有更多图标 */
|
|
34
|
+
> margin-left: auto;
|
|
35
|
+
> display: flex; align-items: center; justify-content: center;
|
|
36
|
+
> color: var(--color-black-6);
|
|
37
|
+
> }
|
|
38
|
+
> ```
|
|
39
|
+
> ⛔ navbar 必须同时包含:返回图标 + 标题 + 更多图标。
|
|
40
|
+
> ⛔ 标题用 `position: absolute; left: 64px`,不可用 `justify-content: center`。
|
|
41
|
+
|
|
42
|
+
# 导航栏 Navigation
|
|
43
|
+
|
|
44
|
+
PDAKit 导航栏体系:**顶部导航 6 变体 + 搜索栏 2 状态 + 底部标签栏 5 项 × 2 状态 + 组合**。
|
|
45
|
+
|
|
46
|
+
> **状态命名统一**:底部标签 `on`(选中)/ `off`(未选中);搜索 `default`(默认)/ `typed`(已输入)。
|
|
47
|
+
> **颜色规则**:全部使用 Token(`--color-{色系}-{色阶}`),禁止 Hex。Token 定义见文末 [附录 A](#附录-a颜色-token)。
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 组件总览
|
|
52
|
+
|
|
53
|
+
| 组件 | Key | 变体数 |
|
|
54
|
+
|------|-----|--------|
|
|
55
|
+
| 导航栏类型 | `013-导航栏类型` | 6 变体 |
|
|
56
|
+
| 导航栏/搜索 | `017-导航栏-搜索` | 2 状态 |
|
|
57
|
+
| 导航栏组合 | `016-导航栏组合` | 1(系统bar + 导航栏) |
|
|
58
|
+
| 底部标签栏导航/组合 | `028-底部标签栏导航-组合` | 1(4 项组合) |
|
|
59
|
+
| 底部标签栏导航/首页 | `026-底部标签栏导航-首页` | 2 状态 (on/off) |
|
|
60
|
+
| 底部标签栏导航/任务 | `027-底部标签栏导航-任务` | 2 状态 (on/off) |
|
|
61
|
+
| 底部标签栏导航/营地 | `023-底部标签栏导航-营地` | 2 状态 (on/off) |
|
|
62
|
+
| 底部标签栏导航/我的 | `025-底部标签栏导航-我的` | 2 状态 (on/off) |
|
|
63
|
+
|
|
64
|
+
> 导航栏组合 = 系统bar(56px, 仅浅色底) + 导航栏类型(56px)。底部标签栏整体高度 71px。
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 1. 导航栏类型(顶部导航)
|
|
69
|
+
|
|
70
|
+
**描述**: 全局通用顶部导航,6 种标题类型可切换。高度固定 56px,背景 `--color-grey-2`。
|
|
71
|
+
|
|
72
|
+
### Props
|
|
73
|
+
|
|
74
|
+
| Prop | 类型 | 值 |
|
|
75
|
+
|------|------|-----|
|
|
76
|
+
| 导航栏类型 | enum | `默认标题` / `标签页-圆角` / `标签页-下划线` / `头部作业人` / `头部搜索` / `右侧按钮+菜单` |
|
|
77
|
+
| 显示菜单 | boolean | 是否显示右侧「更多」图标(`40×40`,`icons/assets/common_ic_more_o.svg`)。`true` 时图标可见,点击必然唤起 [更多操作弹窗](more-actions.md)。除 `头部搜索` 外,其余变体默认 `true` |
|
|
78
|
+
| 模块名称 | string | 任意 |
|
|
79
|
+
|
|
80
|
+
### 尺寸规格
|
|
81
|
+
|
|
82
|
+
| 属性 | 值 |
|
|
83
|
+
|------|------|
|
|
84
|
+
| 高度 | `56px` |
|
|
85
|
+
| 背景 | `--color-grey-2`(`#F3F4F6`) |
|
|
86
|
+
| 内边距 | 默认:无(子元素定位);标签页类:t/b `7px`, l/r `12px`;作业人:t/b `6px`, l/r `12px`;搜索:t/b `8px`, l/r `12px` |
|
|
87
|
+
| 返回图标 | `40×40`,`icons/assets/common_ic_arrow_two_left_o.svg`,颜色 `--color-black-6`(`#333333`) |
|
|
88
|
+
| 更多图标 | `40×40`,`icons/assets/common_ic_more_o.svg`,颜色 `--color-black-6`(`#333333`) |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 更多按钮与更多操作弹窗(强绑定)
|
|
93
|
+
|
|
94
|
+
> **核心规则:导航栏右上角「更多」图标与 [更多操作弹窗](more-actions.md) 是强绑定关系。只要导航栏存在「更多」按钮,点击必然唤起更多操作弹窗,不可替换为其他行为。**
|
|
95
|
+
|
|
96
|
+
### 绑定关系
|
|
97
|
+
|
|
98
|
+
| 规则 | 说明 |
|
|
99
|
+
|------|------|
|
|
100
|
+
| **一对一绑定** | 导航栏的「更多」图标(`common_ic_more_o.svg`)→ 点击 → 唯一响应:底部弹出 [更多操作弹窗](more-actions.md) |
|
|
101
|
+
| **不可解耦** | 「更多」按钮的行为固定为唤起更多操作弹窗。AI 生成代码时,不得将「更多」按钮绑定到其他页面、跳转或操作 |
|
|
102
|
+
| **条件显隐** | 通过 `显示菜单` Props 控制「更多」图标是否渲染。`显示菜单=false` → 不渲染图标;`显示菜单=true` → 渲染图标且点击行为固定 |
|
|
103
|
+
| **弹窗触发方式** | 底部 Sheet 由下向上滑入,`300ms ease-in`,详见 [more-actions.md](more-actions.md) |
|
|
104
|
+
|
|
105
|
+
### 各变体「更多」按钮对照表
|
|
106
|
+
|
|
107
|
+
| 导航栏类型 | 是否有「更多」 | 图标位置 | `显示菜单` 默认值 |
|
|
108
|
+
|-----------|:---:|------|:---:|
|
|
109
|
+
| `默认标题` | ✅ 有 | 最右侧 | `true` |
|
|
110
|
+
| `标签页-圆角` | ✅ 有 | 最右侧 | `true` |
|
|
111
|
+
| `标签页-下划线` | ✅ 有 | 最右侧 | `true` |
|
|
112
|
+
| `头部作业人` | ✅ 有 | 右侧(作业人胶囊后) | `true` |
|
|
113
|
+
| `头部搜索` | ❌ 无 | — | `false`(强制) |
|
|
114
|
+
| `右侧按钮+菜单` | ✅ 有 | 最右侧(文字按钮后) | `true` |
|
|
115
|
+
|
|
116
|
+
> **头部搜索**变体不含「更多」图标,因此不会触发更多操作弹窗。其余 5 个变体均含。
|
|
117
|
+
|
|
118
|
+
### HTML 交互示例
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<!-- 导航栏 默认标题 + 更多按钮 → 唤起 more-actions -->
|
|
122
|
+
<div class="navbar">
|
|
123
|
+
<img src="icons/assets/common_ic_arrow_two_left_o.svg" class="navbar-back" alt="返回" />
|
|
124
|
+
<span class="navbar-title">模块名称</span>
|
|
125
|
+
<!-- 更多按钮:点击唤起更多操作弹窗(强绑定,不可改为其他行为) -->
|
|
126
|
+
<img src="icons/assets/common_ic_more_o.svg" class="navbar-more"
|
|
127
|
+
onclick="openMoreActionsPanel()" alt="更多" />
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<!-- 更多操作弹窗(受 navbar 强绑定调用) -->
|
|
131
|
+
<div class="more-actions-panel" id="moreActionsPanel" style="display:none">
|
|
132
|
+
<!-- 见 more-actions.md 完整结构 -->
|
|
133
|
+
</div>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### JS 交互示例
|
|
137
|
+
|
|
138
|
+
```javascript
|
|
139
|
+
// 打开更多操作弹窗(navbar 更多按钮强绑定)
|
|
140
|
+
function openMoreActionsPanel() {
|
|
141
|
+
const panel = document.getElementById('moreActionsPanel');
|
|
142
|
+
panel.style.display = 'flex';
|
|
143
|
+
// 动画 class 由 more-actions.md 规范控制:slideUp 300ms ease-in
|
|
144
|
+
panel.classList.add('animate-slide-up');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// 关闭更多操作弹窗
|
|
148
|
+
function closeMoreActionsPanel() {
|
|
149
|
+
const panel = document.getElementById('moreActionsPanel');
|
|
150
|
+
panel.classList.remove('animate-slide-up');
|
|
151
|
+
panel.style.display = 'none';
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### 按变体
|
|
158
|
+
|
|
159
|
+
#### 默认标题
|
|
160
|
+
| 属性 | 值 |
|
|
161
|
+
|------|------|
|
|
162
|
+
| 标题字体 | `24px / 36px`,PingFang SC Semibold |
|
|
163
|
+
| 标题颜色 | `--color-black-6` |
|
|
164
|
+
| 标题位置 | 左侧偏移 64px,垂直居中 |
|
|
165
|
+
|
|
166
|
+
> **更多按钮**:✅ 有(右侧)。点击 → [更多操作弹窗](more-actions.md)。
|
|
167
|
+
|
|
168
|
+
#### 标签页-圆角
|
|
169
|
+
| 属性 | 值 |
|
|
170
|
+
|------|------|
|
|
171
|
+
| 标签容器 | 按钮组合(两列),`--radius-12` |
|
|
172
|
+
| 标签数量 | 2 个 |
|
|
173
|
+
|
|
174
|
+
> **更多按钮**:✅ 有(右侧)。点击 → [更多操作弹窗](more-actions.md)。
|
|
175
|
+
|
|
176
|
+
#### 标签页-下划线
|
|
177
|
+
| 属性 | 值 |
|
|
178
|
+
|------|------|
|
|
179
|
+
| 标签容器 | 3 个 TAB 标签,间距 `24px`,居中 |
|
|
180
|
+
|
|
181
|
+
> **更多按钮**:✅ 有(右侧)。点击 → [更多操作弹窗](more-actions.md)。
|
|
182
|
+
|
|
183
|
+
#### 头部作业人
|
|
184
|
+
| 属性 | 值 |
|
|
185
|
+
|------|------|
|
|
186
|
+
| 左侧 | 返回图标 + 标题(24/36/Semibold) |
|
|
187
|
+
| 右侧 | 作业人胶囊 + 更多图标,间距 `--spacing-16` |
|
|
188
|
+
|
|
189
|
+
> **更多按钮**:✅ 有(右侧,作业人胶囊后)。点击 → [更多操作弹窗](more-actions.md)。
|
|
190
|
+
|
|
191
|
+
**作业人胶囊**(组件 Key: `015-作业人右侧置顶`):
|
|
192
|
+
|
|
193
|
+
| 属性 | 值 |
|
|
194
|
+
|------|------|
|
|
195
|
+
| 背景 | `--color-grey-1` |
|
|
196
|
+
| 边框 | `1px --color-grey-3` |
|
|
197
|
+
| 圆角 | `99px`(胶囊) |
|
|
198
|
+
| 内边距 | t/b `2px`, l `2px`, r `16px` |
|
|
199
|
+
| 头像尺寸 | `40×40`,圆形,带 2px 白边(描边) |
|
|
200
|
+
| 头像堆叠 | `-16px` 正向堆叠(后一层覆盖前一层 16px),最多展示 10 个 |
|
|
201
|
+
| 人数 | `24/36/Semibold`,`--color-black-6`,与头像间距 `--spacing-8` |
|
|
202
|
+
|
|
203
|
+
#### 头部搜索
|
|
204
|
+
| 属性 | 值 |
|
|
205
|
+
|------|------|
|
|
206
|
+
| 左侧 | 返回图标 |
|
|
207
|
+
| 中间 | 搜索栏(flex-1) |
|
|
208
|
+
| 右侧 | 文字按钮/主要 |
|
|
209
|
+
| 元素间距 | `12px` |
|
|
210
|
+
|
|
211
|
+
> **更多按钮**:❌ 无。此变体不含「更多」图标,不会触发更多操作弹窗。
|
|
212
|
+
|
|
213
|
+
#### 右侧按钮+菜单
|
|
214
|
+
| 属性 | 值 |
|
|
215
|
+
|------|------|
|
|
216
|
+
| 左侧 | 返回 + 标题(24/36/Semibold) |
|
|
217
|
+
| 右侧 | 文字按钮 + 更多图标,间距 `--spacing-16`,右偏移 `16px` |
|
|
218
|
+
|
|
219
|
+
> **更多按钮**:✅ 有(右侧,文字按钮后)。点击 → [更多操作弹窗](more-actions.md)。
|
|
220
|
+
|
|
221
|
+
### CSS 示例
|
|
222
|
+
|
|
223
|
+
```css
|
|
224
|
+
/* 导航栏 默认标题 */
|
|
225
|
+
.navbar {
|
|
226
|
+
width: 100%;
|
|
227
|
+
height: 56px;
|
|
228
|
+
display: flex;
|
|
229
|
+
align-items: center;
|
|
230
|
+
background: var(--color-grey-2);
|
|
231
|
+
position: relative;
|
|
232
|
+
}
|
|
233
|
+
.navbar-back {
|
|
234
|
+
width: 40px;
|
|
235
|
+
height: 40px;
|
|
236
|
+
flex-shrink: 0;
|
|
237
|
+
}
|
|
238
|
+
.navbar-title {
|
|
239
|
+
position: absolute;
|
|
240
|
+
left: 64px;
|
|
241
|
+
color: var(--color-black-6);
|
|
242
|
+
font-size: 24px;
|
|
243
|
+
line-height: 36px;
|
|
244
|
+
font-weight: 600;
|
|
245
|
+
font-family: PingFang SC;
|
|
246
|
+
}
|
|
247
|
+
.navbar-more {
|
|
248
|
+
width: 40px;
|
|
249
|
+
height: 40px;
|
|
250
|
+
flex-shrink: 0;
|
|
251
|
+
margin-left: auto;
|
|
252
|
+
cursor: pointer;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/* 导航栏 头部作业人 */
|
|
256
|
+
.navbar-operator .operator-pill {
|
|
257
|
+
display: flex;
|
|
258
|
+
justify-content: flex-end;
|
|
259
|
+
align-items: center;
|
|
260
|
+
gap: var(--spacing-8);
|
|
261
|
+
padding: 2px 16px 2px 2px;
|
|
262
|
+
background: var(--color-grey-1);
|
|
263
|
+
border: 1px solid var(--color-grey-3);
|
|
264
|
+
border-radius: 99px;
|
|
265
|
+
}
|
|
266
|
+
.navbar-operator .avatar-stack {
|
|
267
|
+
position: relative;
|
|
268
|
+
/* 宽度 = 头像数 × 24px 露出 + 16px 余量 */
|
|
269
|
+
width: 136px;
|
|
270
|
+
height: 40px;
|
|
271
|
+
}
|
|
272
|
+
.navbar-operator .avatar {
|
|
273
|
+
width: 40px;
|
|
274
|
+
height: 40px;
|
|
275
|
+
border-radius: 50%;
|
|
276
|
+
border: 2px solid var(--color-grey-1);
|
|
277
|
+
flex-shrink: 0;
|
|
278
|
+
}
|
|
279
|
+
/* 头像堆叠:absolute 定位,每个错开 24px(40px - 16px 重叠) */
|
|
280
|
+
.navbar-operator .avatar,
|
|
281
|
+
.navbar-operator .avatar-more {
|
|
282
|
+
position: absolute;
|
|
283
|
+
top: 0;
|
|
284
|
+
}
|
|
285
|
+
.navbar-operator .avatar:nth-child(1) { left: 0px; }
|
|
286
|
+
.navbar-operator .avatar:nth-child(2) { left: 24px; }
|
|
287
|
+
.navbar-operator .avatar:nth-child(3) { left: 48px; }
|
|
288
|
+
.navbar-operator .avatar:nth-child(4) { left: 72px; }
|
|
289
|
+
.navbar-operator .avatar:nth-child(5) { left: 96px; }
|
|
290
|
+
.navbar-operator .avatar-more {
|
|
291
|
+
/* 溢出头像显示 +N */
|
|
292
|
+
width: 40px;
|
|
293
|
+
height: 40px;
|
|
294
|
+
border-radius: 50%;
|
|
295
|
+
background: var(--color-grey-4);
|
|
296
|
+
border: 2px solid var(--color-grey-1);
|
|
297
|
+
color: var(--color-grey-1);
|
|
298
|
+
font-size: 12px;
|
|
299
|
+
line-height: 16px;
|
|
300
|
+
display: flex;
|
|
301
|
+
justify-content: center;
|
|
302
|
+
align-items: center;
|
|
303
|
+
left: 72px;
|
|
304
|
+
}
|
|
305
|
+
.navbar-operator .operator-count {
|
|
306
|
+
color: var(--color-black-6);
|
|
307
|
+
font-size: 24px;
|
|
308
|
+
line-height: 36px;
|
|
309
|
+
font-weight: 600;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/* 导航栏 头部搜索 */
|
|
313
|
+
.navbar-search {
|
|
314
|
+
display: flex;
|
|
315
|
+
align-items: center;
|
|
316
|
+
gap: 12px;
|
|
317
|
+
padding: 8px 12px;
|
|
318
|
+
background: var(--color-grey-2);
|
|
319
|
+
}
|
|
320
|
+
.navbar-search .search-box {
|
|
321
|
+
flex: 1;
|
|
322
|
+
}
|
|
323
|
+
.navbar-search .btn-right {
|
|
324
|
+
flex-shrink: 0;
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## 2. 导航栏/搜索
|
|
331
|
+
|
|
332
|
+
**描述**: 搜索输入栏,顶部导航中嵌入使用。含默认/已输入两态。
|
|
333
|
+
|
|
334
|
+
### Props
|
|
335
|
+
|
|
336
|
+
| Prop | 类型 | 值 |
|
|
337
|
+
|------|------|-----|
|
|
338
|
+
| 搜索内容 | string | 任意(默认 `请输入`) |
|
|
339
|
+
| 类型 | enum | `默认` / `已输入` |
|
|
340
|
+
| 输入中 | boolean | — |
|
|
341
|
+
|
|
342
|
+
### 规格
|
|
343
|
+
|
|
344
|
+
| 属性 | 值 |
|
|
345
|
+
|------|------|
|
|
346
|
+
| 背景 | `--color-grey-1` |
|
|
347
|
+
| 圆角 | `8px` |
|
|
348
|
+
| 内边距 | t/b `6px`, l/r `8px` |
|
|
349
|
+
| 默认文字色 | `--color-black-3` |
|
|
350
|
+
| 已输入文字色 | `--color-black-6` |
|
|
351
|
+
| 文字字体 | `20px / 28px`,PingFang SC Regular |
|
|
352
|
+
| 清空图标 | `20×20` |
|
|
353
|
+
|
|
354
|
+
### 颜色
|
|
355
|
+
|
|
356
|
+
| state | text | icon |
|
|
357
|
+
|-------|------|------|
|
|
358
|
+
| default | `--color-black-3` | — |
|
|
359
|
+
| typed | `--color-black-6` | 清空按钮(20×20) |
|
|
360
|
+
|
|
361
|
+
### CSS 示例
|
|
362
|
+
|
|
363
|
+
```css
|
|
364
|
+
/* 搜索栏 默认 */
|
|
365
|
+
.search-bar {
|
|
366
|
+
display: flex;
|
|
367
|
+
align-items: center;
|
|
368
|
+
padding: 6px 8px;
|
|
369
|
+
background: var(--color-grey-1);
|
|
370
|
+
border-radius: 8px;
|
|
371
|
+
overflow: hidden;
|
|
372
|
+
}
|
|
373
|
+
.search-placeholder {
|
|
374
|
+
color: var(--color-black-3);
|
|
375
|
+
font-size: 20px;
|
|
376
|
+
line-height: 28px;
|
|
377
|
+
font-family: PingFang SC;
|
|
378
|
+
}
|
|
379
|
+
.search-text {
|
|
380
|
+
color: var(--color-black-6);
|
|
381
|
+
font-size: 20px;
|
|
382
|
+
line-height: 28px;
|
|
383
|
+
font-family: PingFang SC;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/* 已输入态 */
|
|
387
|
+
.search-bar-typed {
|
|
388
|
+
display: flex;
|
|
389
|
+
justify-content: space-between;
|
|
390
|
+
align-items: center;
|
|
391
|
+
}
|
|
392
|
+
.search-clear {
|
|
393
|
+
width: 20px;
|
|
394
|
+
height: 20px;
|
|
395
|
+
flex-shrink: 0;
|
|
396
|
+
}
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## 3. 底部标签栏导航(TabBar)
|
|
402
|
+
|
|
403
|
+
> 底部标签栏为独立业务组件,详见 [tab-bar.md](tab-bar.md)。本节仅保留与导航栏体系的关联说明。
|
|
404
|
+
|
|
405
|
+
| 属性 | 值 |
|
|
406
|
+
|------|------|
|
|
407
|
+
| 栏目 | 首页 / 任务 / 营地 / 我的(4 项固定) |
|
|
408
|
+
| 高度 | `71px` |
|
|
409
|
+
| 背景 | `--color-grey-1` |
|
|
410
|
+
| 图标 | `32×32`,`icons-标签栏/` |
|
|
411
|
+
| 选中 | `--color-main-6` |
|
|
412
|
+
| 未选 | `--color-black-5` |
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## 4. 导航栏组合
|
|
417
|
+
|
|
418
|
+
**描述**: StatusBar(系统状态栏) + 导航栏类型的纵向组合,整体高度 112px。
|
|
419
|
+
|
|
420
|
+
| 属性 | 值 |
|
|
421
|
+
|------|------|
|
|
422
|
+
| 背景 | `--color-grey-2` |
|
|
423
|
+
| StatusBar | `56px`,系统自带(时间/信号/WiFi/电量),非 PDAKit 组件 |
|
|
424
|
+
| 导航栏 | 内嵌导航栏类型组件,`56px` |
|
|
425
|
+
|
|
426
|
+
> StatusBar 是 OS 级元素,不属于 PDAKit 设计组件。此处仅标注其占位高度用于布局计算,不展开样式描述。
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## 附录 A:颜色 Token
|
|
431
|
+
|
|
432
|
+
| Token | 色值 | 使用场景 |
|
|
433
|
+
|-------|------|---------|
|
|
434
|
+
| `--color-grey-1` | `#ffffff` | 搜索栏背景;底部标签栏背景 |
|
|
435
|
+
| `--color-grey-2` | `#f3f4f6` | 导航栏背景;导航栏组合背景 |
|
|
436
|
+
| `--color-main-6` | `#6445d1` | 底部标签选中态文字/图标 |
|
|
437
|
+
| `--color-black-3` | `#bbbbbb` | 搜索栏默认占位文字 |
|
|
438
|
+
| `--color-black-5` | `#666666` | 底部标签未选中态文字 |
|
|
439
|
+
| `--color-black-6` | `#333333` | 导航栏标题;搜索已输入文字 |
|
|
440
|
+
|
|
441
|
+
> 详见 [tokens/colors.md](../tokens/colors.md)
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## 附录 B:字体 Token
|
|
446
|
+
|
|
447
|
+
| 字体规格 | 字号 | 行高 | 字重 | 适用组件 |
|
|
448
|
+
|---------|------|------|------|---------|
|
|
449
|
+
| 标题文本/【24】Title_Bold_L | 24px | 36px | Semibold | 导航栏标题 |
|
|
450
|
+
| 20px/28px | 20px | 28px | Regular | 搜索栏文字 |
|
|
451
|
+
| 辅助文本/【14】Auxiliary_Bold_S | 14px | 20px | Semibold | 底部标签文字 |
|
|
452
|
+
|
|
453
|
+
> 字体统一 PingFang SC。详见 [tokens/typography.md](../tokens/typography.md)
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
## 使用规则(AI 必读)
|
|
458
|
+
|
|
459
|
+
1. **颜色用 Token**:禁止裸 Hex,全部用 `--color-*` 引用
|
|
460
|
+
2. **更多按钮强绑定**(⚠️ 最高优先级):
|
|
461
|
+
- 导航栏「更多」图标(`common_ic_more_o.svg`)与 [更多操作弹窗](more-actions.md) 是**一对一强绑定**
|
|
462
|
+
- **只要导航栏渲染了「更多」图标,点击行为唯一且固定:唤起[更多操作弹窗](more-actions.md)**
|
|
463
|
+
- AI 生成代码时,**绝对禁止**将「更多」按钮绑定到其他页面、路由跳转、或其他非 more-actions 行为
|
|
464
|
+
- `显示菜单=false` 时隐藏「更多」图标,此时不触发弹窗;`显示菜单=true` 时渲染图标且行为固定
|
|
465
|
+
- 6 个变体中仅 `头部搜索` 不含「更多」图标,其余 5 个默认均含
|
|
466
|
+
3. **导航栏选型**:
|
|
467
|
+
| 场景 | 变体 |
|
|
468
|
+
|------|------|
|
|
469
|
+
| 单页面标题 | 默认标题 |
|
|
470
|
+
| 分类内容切换 | 标签页-圆角 / 标签页-下划线 |
|
|
471
|
+
| 展示作业人信息 | 头部作业人 |
|
|
472
|
+
| 全局搜索 | 头部搜索 |
|
|
473
|
+
| 操作入口 | 右侧按钮+菜单 |
|
|
474
|
+
4. **底部标签**:必须覆盖 `on`/`off` 两态,选中态用 `--color-main-6`,未选中用 `--color-black-5`
|
|
475
|
+
5. **搜索栏**:默认态占位文字用 `--color-black-3`,已输入态用 `--color-black-6`
|
|
476
|
+
6. **图标**:返回/更多图标 40×40;底部标签图标 32×32;清空图标 20×20,从 [icons/icons.md](../icons/icons.md) 清单选择
|
|
477
|
+
7. **引用命名**:使用 `❖PDAKit™:导航栏类型` 格式
|
|
478
|
+
8. **更多按钮默认必显**(⚠️ 高优先级):
|
|
479
|
+
- **没有特殊要求时,导航栏右侧必须显示「更多」图标按钮**
|
|
480
|
+
- 仅当用户明确说「不需要更多按钮」「隐藏更多」等特殊指令时,才设置 `显示菜单=false` 隐藏
|
|
481
|
+
- AI 生成页面时,若未收到特殊要求,`显示菜单` 默认值必须为 `true`,即右侧必须渲染更多图标
|
|
482
|
+
9. **导航图标颜色**:导航栏内所有图标(返回/更多)颜色统一为 `--color-black-6`(`#333333`),不要使用其他颜色
|