ts-basic-components-navigation.md 20.4 KB
Newer Older
Z
zengyawen 已提交
1 2
# Navigation

L
luoying_ace_admin 已提交
3
Navigation组件一般作为Page页面的根容器,通过属性设置来展示页面的标题栏、工具栏、导航栏等。
Z
zengyawen 已提交
4

G
gmy 已提交
5 6 7
> **说明:**
>
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
8 9 10 11


## 子组件

L
luoying_ace_admin 已提交
12
可以包含子组件。从API Version 9开始,推荐与[NavRouter](ts-basic-components-navrouter.md)组件搭配使用。
Z
zengyawen 已提交
13 14 15 16


## 接口

W
wangyihui 已提交
17
**方法1:** Navigation()
Z
zengyawen 已提交
18

W
wangyihui 已提交
19 20 21 22 23 24 25 26 27
**方法2:** Navigation(pathInfos: NavPathStack)<sup>10+</sup>

  绑定路由栈到Navigation组件。

**参数:**

| 参数名     | 参数类型                                | 必填   | 参数描述          |
| ------- | ----------------------------------- | ---- | ------------- |
| pathInfos   | [NavPathStack](#navpathstack10) | 否    | 路由栈信息。 |
Z
zengyawen 已提交
28 29 30

## 属性

G
gmy 已提交
31 32
除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:

H
HelloCrease 已提交
33 34 35
| 名称                            | 参数类型                                     | 描述                                       |
| ----------------------------- | ---------------------------------------- | ---------------------------------------- |
| title                         | [ResourceStr](ts-types.md#resourcestr)<sup>10+</sup>&nbsp;\|&nbsp;[CustomBuilder](ts-types.md#custombuilder8)<sup>8+</sup>&nbsp;\|&nbsp;[NavigationCommonTitle](#navigationcommontitle类型说明)<sup>9+</sup>&nbsp;\|&nbsp;[NavigationCustomTitle](#navigationcustomtitle类型说明)<sup>9+</sup> | 页面标题。<br/>**说明:** <br/>使用NavigationCustomTitle类型设置height高度时,titleMode属性不会生效。<br/>字符串超长时,如果不设置副标题,先缩小再换行(2行)最后...截断。如果设置副标题,先缩小最后...截断。 |
H
HelloCrease 已提交
36
| subTitle<sup>(deprecated)</sup> | string                                   | 页面副标题。不设置时不显示副标题。从API Version 9开始废弃,建议使用title代替。 |
H
HelloCrease 已提交
37 38
| menus                         | Array<[NavigationMenuItem](#navigationmenuitem类型说明)&gt;&nbsp;\|&nbsp;[CustomBuilder](ts-types.md#custombuilder8)<sup>8+</sup> | 页面右上角菜单。不设置时不显示菜单项。使用Array<[NavigationMenuItem](#navigationmenuitem类型说明)&gt;&nbsp;写法时,竖屏最多支持显示3个图标,横屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标。 |
| titleMode                     | [NavigationTitleMode](#navigationtitlemode枚举说明) | 页面标题栏显示模式。<br/>默认值:NavigationTitleMode.Free |
39 40
| toolBar<sup>(deprecated)</sup> | [object](#object类型说明)&nbsp;\|&nbsp;[CustomBuilder](ts-types.md#custombuilder8)<sup>8+</sup> | 设置工具栏内容。不设置时不显示工具栏。<br/>items:&nbsp;工具栏所有项。<br/>**说明:** <br/>items均分底部工具栏,在每个均分内容区布局文本和图标,文本超长时,逐级缩小,缩小之后换行,最后...截断。<br/>从API version 10开始,该接口不再维护,推荐使用toolbarConfiguration代替。 |
| toolbarConfiguration<sup>10+</sup> | Array<[ToolbarItem](#toolbaritem10类型说明)<sup>10+</sup>&gt;&nbsp;\|&nbsp;[CustomBuilder](ts-types.md#custombuilder8)<sup>8+</sup> | 设置工具栏内容。不设置时不显示工具栏。<br/>**说明:** <br/>使用Array<[ToolbarItem](#ToolbarItem类型说明)>写法设置的工具栏有如下特性:<br/>工具栏所有选项均分底部工具栏,在每个均分内容区布局文本和图标。<br/>文本超长时,若工具栏选项个数小于5个,优先拓展选项的宽度,最大宽度与屏幕等宽,其次逐级缩小,缩小之后换行,最后...截断。<br/>竖屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标。横屏下必须配合menus属性的Array<[NavigationMenuItem](#navigationmenuitem类型说明)>使用,底部工具栏会自动隐藏,同时底部工具栏所有选项移动至页面右上角菜单。<br/>使用[CustomBuilder](ts-types.md#custombuilder8)写法为用户自定义工具栏选项,除均分底部工具栏外不具备以上功能。 |
H
HelloCrease 已提交
41 42
| hideToolBar                   | boolean                                  | 隐藏工具栏。<br/>默认值:false<br/>true:&nbsp;隐藏工具栏。<br/>false:&nbsp;显示工具栏。 |
| hideTitleBar                  | boolean                                  | 隐藏标题栏。<br/>默认值:false<br/>true:&nbsp;隐藏标题栏。<br/>false:&nbsp;显示标题栏。 |
43
| hideBackButton                | boolean                                  | 隐藏返回键。<br/>默认值:false<br/>true:&nbsp;隐藏返回键。<br/>false:&nbsp;显示返回键。 <br>不支持隐藏NavDestination组件标题栏中的返回图标。<br/>**说明:** <br/>返回键仅针对titleMode为NavigationTitleMode.Mini时才生效。 |
H
HelloCrease 已提交
44 45 46 47 48
| navBarWidth<sup>9+</sup>      | [Length](ts-types.md#length)             | 导航栏宽度。<br/>默认值:200<br/>单位:vp<br/>**说明:** <br/>仅在Navigation组件分栏时生效。 |
| navBarPosition<sup>9+</sup>   | [NavBarPosition](#navbarposition枚举说明)    | 导航栏位置。<br/>默认值:NavBarPosition.Start<br/>**说明:** <br/>仅在Navigation组件分栏时生效。 |
| mode<sup>9+</sup>             | [NavigationMode](#navigationmode枚举说明)    | 导航栏的显示模式。<br/>默认值:NavigationMode.Auto<br/>自适应:基于组件宽度自适应单栏和双栏。 |
| backButtonIcon<sup>9+</sup>   | string&nbsp;\|&nbsp;[PixelMap](../apis/js-apis-image.md#pixelmap7)&nbsp;\|&nbsp;[Resource](ts-types.md#resource) | 设置导航栏返回图标。不支持隐藏NavDestination组件标题栏中的返回图标。 |
| hideNavBar<sup>9+</sup>       | boolean                                  | 是否显示导航栏(仅在mode为NavigationMode.Split时生效)。 |
W
wangyihui 已提交
49
| navDestination<sup>10+</sup>  | builder: (name: string, param: unknown) => void | 创建NavDestination组件。<br/>**说明:** <br/>使用builder函数,基于name和param构造NavDestination组件。builder中允许在NavDestination组件外包含一层自定义组件, 但自定义组件不允许设置属性和事件,否则仅显示空白。 |
H
huangdong57 已提交
50 51
| navBarWidthRange<sup>10+</sup> | [[Dimension](ts-types.md#dimension10), [Dimension](ts-types.md#dimension10)] | 导航栏最小和最大宽度。<br/>默认值:[240, 280]<br/>单位:vp   |
| minContentWidth<sup>10+</sup>  | [Dimension](ts-types.md#dimension10)                         | 导航栏内容区最小宽度。<br/>默认值:360<br/>单位:vp          |
W
wangyihui 已提交
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147

## NavPathStack<sup>10+</sup>

Navigation路由栈。

### push<sup>10+</sup>

push(info: NavPathInfo): void

将info指定的NavDestination页面信息入栈。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| info  | [NavPathInfo](#navpathinfo10)                  | 是    | NavDestination页面的信息。   |

### pushName<sup>10+</sup>

pushName(name: string, param: unknown): void

将name指定的NavDestination页面信息入栈,传递的数据为param。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| name  | string                  | 是    | NavDestination页面名称。   |
| param  | unknown                  | 是    | NavDestination页面详细参数。   |

### pop<sup>10+</sup>

pop(): NavPathInfo | undefined

弹出路由栈栈顶元素。

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| NavPathInfo | 返回栈顶NavDestination页面的信息。 |
| undefined | 当路由栈为空时返回undefined。 |

### popTo<sup>10+</sup>

popTo(name: string): number

回退路由栈到第一个名为name的NavDestination页面。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| name  | string                  | 是    | NavDestination页面名称。   |

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| number | 如果栈中存在名为name的NavDestination页面,则返回第一个名为name的NavDestination页面的索引,否则返回-1。 |

### popToIndex<sup>10+</sup>

popToIndex(index: number): void

回退路由栈到index指定的NavDestination页面。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| index  | number                  | 是    | NavDestination页面的位置索引。   |

### moveToTop<sup>10+</sup>

moveToTop(name: string): number

将第一个名为name的NavDestination页面移到栈顶。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| name  | string                  | 是    | NavDestination页面名称。   |

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| number | 如果栈中存在名为name的NavDestination页面,则返回第一个名为name的NavDestination页面的当前索引,否则返回-1。 |

### moveIndexToTop<sup>10+</sup>

moveIndexToTop(index: number): void

将index指定的NavDestination页面移到栈顶。
L
luoying_ace_admin 已提交
148

W
wangyihui 已提交
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| index  | number                  | 是    | NavDestination页面的位置索引。   |

### clear<sup>10+</sup>

clear(): void

清除栈中所有页面。

### getAllPathName<sup>10+</sup>

getAllPathName(): Array<string\>

获取栈中所有NavDestination页面的名称。

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| Array<string\> | 返回栈中所有NavDestination页面的名称。 |

### getParamByIndex<sup>10+</sup>

getParamByIndex(index: number): unknown | undefined

获取index指定的NavDestination页面的参数信息。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| index  | number                  | 是    | NavDestination页面的位置索引。   |

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| unknown  | 返回对应NavDestination页面的参数信息。 |
| undefined | 传入index无效时返回undefined。 |

### getParamByName<sup>10+</sup>

getParamByName(name: string): Array<unknown\>

获取全部名为name的NavDestination页面的参数信息。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| name  | string                  | 是    | NavDestination页面名称。   |

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| Array<unknown\>  | 返回全部名为name的NavDestination页面的参数信息。 |

### getIndexByName<sup>10+</sup>

getIndexByName(name: string): Array<number\>

获取全部名为name的NavDestination页面的位置索引。

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| name  | string                  | 是    | NavDestination页面名称。   |

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| Array<number\>  | 返回全部名为name的NavDestination页面的位置索引。 |

### size<sup>10+</sup>

size(): number

获取栈大小。

**返回值:**

| 类型     | 说明       |
| ------ | -------- |
| number  | 返回栈大小。 |

## NavPathInfo<sup>10+</sup>

路由页面信息。

### constructor

constructor(name: string, param: unknown)

**参数:**

| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| name  | string                  | 是    | NavDestination页面名称。   |
| param  | unknown                  | 否    | NavDestination页面详细参数。   |
G
gmy 已提交
254 255 256

## NavigationMenuItem类型说明

H
HelloCrease 已提交
257 258 259 260 261
| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| value  | string                  | 是    | 菜单栏单个选项的显示文本。   |
| icon   | string                  | 否    | 菜单栏单个选项的图标资源路径。 |
| action | ()&nbsp;=&gt;&nbsp;void | 否    | 当前选项被选中的事件回调。   |
G
gmy 已提交
262 263 264

## object类型说明

H
HelloCrease 已提交
265 266 267 268 269
| 名称     | 类型                      | 必填   | 描述              |
| ------ | ----------------------- | ---- | --------------- |
| value  | string                  | 是    | 工具栏单个选项的显示文本。   |
| icon   | string                  | 否    | 工具栏单个选项的图标资源路径。 |
| action | ()&nbsp;=&gt;&nbsp;void | 否    | 当前选项被选中的事件回调。   |
G
gmy 已提交
270

271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
## ToolbarItem<sup>10+</sup>类型说明

| 名称       | 类型                                              | 必填 | 描述                                                        |
| ---------- | ------------------------------------------------- | ---- | ----------------------------------------------------------- |
| value      | ResourceStr                                       | 是   | 工具栏单个选项的显示文本。                                  |
| icon       | ResourceStr                                       | 否   | 工具栏单个选项的图标资源路径。                              |
| action     | ()&nbsp;=&gt;&nbsp;void                           | 否   | 当前选项被选中的事件回调。                                  |
| status     | [ToolbarItemStatus](#toolbaritemstatus10枚举说明) | 否   | 工具栏单个选项的状态。<br/>默认值:ToolbarItemStatus.NORMAL |
| activeIcon | ResourceStr                                       | 否   | 工具栏单个选项处于ACTIVE态时的图标资源路径。                |

## ToolbarItemStatus<sup>10+</sup>枚举说明

| 名称     | 描述                                                         |
| -------- | ------------------------------------------------------------ |
| NORMAL   | 设置工具栏单个选项为NORMAL态,该选项显示默认样式,可以触发Hover,Press,Focus事件并显示对应的多态样式。 |
| DISABLED | 设置工具栏单个选项为DISABLED态, 该选项显示DISABLED态样式,并且不可交互。 |
| ACTIVE   | 设置工具栏单个选项为ACTIVE态, 该选项通过点击事件可以将icon图标更新为activeIcon对应的图片资源。 |

G
gmy 已提交
289 290
## NavigationTitleMode枚举说明

S
sunjiakun 已提交
291 292 293 294 295
| 名称 | 描述                                                         |
| ---- | ------------------------------------------------------------ |
| Free | 当内容为可滚动组件时,标题随着内容向上滚动而缩小(子标题的大小不变、淡出)。向下滚动内容到顶时则恢复原样。<br/>**说明:** <br/>标题随着内容滚动大小联动的动效在title设置为ResourceStr和NavigationCommonTitle时生效,设置成其余自定义节点类型时字体样式无法变化,下拉时只影响标题栏偏移。 |
| Mini | 固定为小标题模式。                                           |
| Full | 固定为大标题模式。                                           |
L
luoying_ace_admin 已提交
296 297 298

## NavigationCommonTitle类型说明

H
HelloCrease 已提交
299 300 301 302
| 名称   | 类型     | 必填   | 描述     |
| ---- | ------ | ---- | ------ |
| main | string | 是    | 设置主标题。 |
| sub  | string | 是    | 设置副标题。 |
L
luoying_ace_admin 已提交
303 304 305

## NavigationCustomTitle类型说明

H
HelloCrease 已提交
306 307 308 309
| 名称      | 类型                                       | 必填   | 描述       |
| ------- | ---------------------------------------- | ---- | -------- |
| builder | [CustomBuilder](ts-types.md#custombuilder8) | 是    | 设置标题栏内容。 |
| height  | [TitleHeight](#titleheight枚举说明)&nbsp;\|&nbsp;[Length](ts-types.md#length) | 是    | 设置标题栏高度。 |
L
luoying_ace_admin 已提交
310 311 312

## NavBarPosition枚举说明

H
HelloCrease 已提交
313 314
| 名称    | 描述               |
| ----- | ---------------- |
L
luoying_ace_admin 已提交
315
| Start | 双栏显示时,主列在主轴方向首部。 |
H
HelloCrease 已提交
316
| End   | 双栏显示时,主列在主轴方向尾部。 |
L
luoying_ace_admin 已提交
317 318 319

## NavigationMode枚举说明

H
HelloCrease 已提交
320 321 322 323 324
| 名称    | 描述                                       |
| ----- | ---------------------------------------- |
| Stack | 导航栏与内容区独立显示,相当于两个页面。                     |
| Split | 导航栏与内容区分两栏显示。                            |
| Auto  | 窗口宽度>=520vp时,采用Split模式显示;窗口宽度<520vp时,采用Stack模式显示。 |
L
luoying_ace_admin 已提交
325 326 327

## TitleHeight枚举说明

H
HelloCrease 已提交
328 329 330
| 名称          | 描述                         |
| ----------- | -------------------------- |
| MainOnly    | 只有主标题时标题栏的推荐高度(56vp)。      |
L
luoying_ace_admin 已提交
331 332
| MainWithSub | 同时有主标题和副标题时标题栏的推荐高度(82vp)。 |

G
gmy 已提交
333 334

>  **说明:**
H
HelloCrease 已提交
335
>  目前可滚动组件只支持List。
Z
zengyawen 已提交
336 337 338 339


## 事件

H
geshi  
HelloCrease 已提交
340 341
| 名称                                       | 功能描述                                     |
| ---------------------------------------- | ---------------------------------------- |
K
kukixi 已提交
342
| onTitleModeChange(callback:&nbsp;(titleMode:&nbsp;NavigationTitleMode)&nbsp;=&gt;&nbsp;void) | 当titleMode为NavigationTitleMode.Free时,随着可滚动组件的滑动标题栏模式发生变化时触发此回调。 |
L
luoying_ace_admin 已提交
343
| onNavBarStateChange(callback:&nbsp;(isVisible:&nbsp;boolean)&nbsp;=&gt;&nbsp;void) | 导航栏显示状态切换时触发该回调。返回值isVisible为true时表示显示,为false时表示隐藏。 |
Z
zengyawen 已提交
344 345 346 347


## 示例

H
geshi  
HelloCrease 已提交
348 349
```ts
// xxx.ets
Z
zengyawen 已提交
350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369
@Entry
@Component
struct NavigationExample {
  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  @State currentIndex: number = 0
  @State Build: Array<Object> = [
    {
      text: 'add',
      num: 0
    },
    {
      text: 'app',
      num: 1
    },
    {
      text: 'collect',
      num: 2
    }
  ]

L
luoying_ace_admin 已提交
370 371 372 373 374 375 376 377 378 379 380 381
  @Builder NavigationTitle() {
    Column() {
      Text('Title')
        .fontColor('#182431')
        .fontSize(30)
        .lineHeight(41)
        .fontWeight(700)
      Text('subtitle')
        .fontColor('#182431')
        .fontSize(14)
        .lineHeight(19)
        .opacity(0.4)
H
HelloCrease 已提交
382
        .margin({ top: 2, bottom: 20 })
L
luoying_ace_admin 已提交
383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401
    }.alignItems(HorizontalAlign.Start)
  }

  @Builder NavigationMenus() {
    Row() {
      Image('common/navigation_icon1.svg')
        .width(24)
        .height(24)
      Image('common/navigation_icon1.svg')
        .width(24)
        .height(24)
        .margin({ left: 24 })
      Image('common/navigation_icon2.svg')
        .width(24)
        .height(24)
        .margin({ left: 24 })
    }
  }

Z
zengyawen 已提交
402 403 404 405
  @Builder NavigationToolbar() {
    Row() {
      ForEach(this.Build, item => {
        Column() {
L
luoying_ace_admin 已提交
406 407 408
          Image(this.currentIndex == item.num ? 'common/public_icon_selected.svg' : 'common/public_icon.svg')
            .width(24)
            .height(24)
Z
zengyawen 已提交
409
          Text(item.text)
L
luoying_ace_admin 已提交
410 411 412 413 414 415
            .fontColor(this.currentIndex == item.num ? '#007DFF' : '#182431')
            .fontSize(10)
            .lineHeight(14)
            .fontWeight(500)
            .margin({ top: 3 })
        }.width(104).height(56)
Z
zengyawen 已提交
416 417 418 419
        .onClick(() => {
          this.currentIndex = item.num
        })
      })
L
luoying_ace_admin 已提交
420
    }.margin({ left: 24 })
Z
zengyawen 已提交
421 422 423 424 425
  }

  build() {
    Column() {
      Navigation() {
L
luoying_ace_admin 已提交
426
        TextInput({ placeholder: 'search...' })
H
HelloCrease 已提交
427
          .width('90%')
L
luoying_ace_admin 已提交
428 429
          .height(40)
          .backgroundColor('#FFFFFF')
430
          .margin({ top: 8 })
L
luoying_ace_admin 已提交
431 432 433 434 435

        List({ space: 12, initialIndex: 0 }) {
          ForEach(this.arr, (item) => {
            ListItem() {
              Text('' + item)
H
HelloCrease 已提交
436
                .width('90%')
L
luoying_ace_admin 已提交
437 438 439 440 441 442 443 444
                .height(72)
                .backgroundColor('#FFFFFF')
                .borderRadius(24)
                .fontSize(16)
                .fontWeight(500)
                .textAlign(TextAlign.Center)
            }.editable(true)
          }, item => item)
Z
zengyawen 已提交
445
        }
L
luoying_ace_admin 已提交
446
        .height(324)
H
HelloCrease 已提交
447 448
        .width('100%')
        .margin({ top: 12, left: '10%' })
Z
zengyawen 已提交
449
      }
L
luoying_ace_admin 已提交
450 451
      .title(this.NavigationTitle)
      .menus(this.NavigationMenus)
L
luoying_ace_admin 已提交
452
      .titleMode(NavigationTitleMode.Full)
Z
zengyawen 已提交
453
      .toolBar(this.NavigationToolbar)
L
luoying_ace_admin 已提交
454 455 456 457 458 459
      .hideTitleBar(false)
      .hideToolBar(false)
      .onTitleModeChange((titleModel: NavigationTitleMode) => {
        console.info('titleMode' + titleModel)
      })
    }.width('100%').height('100%').backgroundColor('#F1F3F5')
Z
zengyawen 已提交
460 461 462
  }
}
```
L
luoying_ace_admin 已提交
463

L
limeng 已提交
464
![zh-cn_image_0000001192655288](figures/zh-cn_image_0000001192655288.gif)