Steps 步骤条
引导用户按照流程完成任务的分步导航条,可根据实际应用场景设定步骤,步骤不得少于 2 步。
引入
js
js
<script type="module">
import "./node_modules/easy-component-ui/components/ea-steps/index.js";
</script>
css
TIP
需要注意的是, 如果需要使用到带有图标的 属性/组件
, 需要提前使用 link
标签引入图标文件
html
<link
rel="stylesheet"
href="./node_modules/easy-component-ui/components/ea-icon/index.css"
/>
自定义样式
移步到 CSS Part。
基础用法
简单的步骤条。 设置 active
属性,接受一个 Number
,表明步骤的 index
,从 0 开始。
TIP
步骤条可能会出现页面抖动的情况,建议设置最小高度
html
<style>
ea-steps::part(container) {
min-height: 90px;
}
</style>
示例代码-html
html
<div class="demo">
<p>
<ea-button id="basicObj_pre-btn">上一步</ea-button>
<ea-button id="basicObj_next-btn">下一步</ea-button>
</p>
<ea-steps id="basicObj" active="0">
<ea-step title="步骤一" description="这是步骤一的描述"></ea-step>
<ea-step title="步骤二" description="这是步骤二的描述"></ea-step>
<ea-step title="步骤三" description="这是步骤三的描述"></ea-step>
<ea-step title="步骤四" description="这是步骤四的描述"></ea-step>
</ea-steps>
</div>
示例代码-js
js
const basicObj = {
wrap: document.querySelector("#basicObj"),
nextBtn: document.querySelector("#basicObj_next-btn"),
prevBtn: document.querySelector("#basicObj_pre-btn"),
stepChildren: document.querySelectorAll("#basicObj ea-step"),
handleActiveChange(flag) {
let cur = this.wrap.active;
if (flag === "prev") {
if (--cur < 0) return (this.wrap.active = 3);
this.wrap.active = cur;
} else {
if (++cur > this.stepChildren.length) return (this.wrap.active = 0);
this.wrap.active = cur;
}
},
init() {
const { length } = this.stepChildren;
this.prevBtn.addEventListener("click", () => {
this.handleActiveChange("prev");
});
this.nextBtn.addEventListener("click", () => {
this.handleActiveChange("next");
});
},
};
basicObj.init();
含状态步骤条
每一步骤显示出该步骤的状态。
也可以使用
title
具名分发,可以用slot
的方式来取代属性的设置,在本文档最后的列表中有所有的slot name
可供参考。
示例代码-html
html
<div class="demo">
<ea-steps active="1">
<ea-step title="已完成"></ea-step>
<ea-step title="进行中"></ea-step>
<ea-step title="步骤 3"></ea-step>
</ea-steps>
</div>
有描述的步骤条
每个步骤有其对应的步骤状态描述。
示例代码-html
html
<div class="demo">
<ea-steps active="1">
<ea-step
title="步骤 1"
description="这是一段很长很长很长的描述性文字"
></ea-step>
<ea-step
title="步骤 2"
description="这是一段很长很长很长的描述性文字"
></ea-step>
<ea-step title="步骤 3" description="这段就没那么长了"></ea-step>
</ea-steps>
</div>
带图标的步骤条
步骤条内可以启用各种自定义的图标。
示例代码-html
html
<div class="demo">
<ea-steps active="1">
<ea-step title="步骤 1" icon="icon-music"></ea-step>
<ea-step title="步骤 2" icon="icon-videocam"></ea-step>
<ea-step title="步骤 3" icon="icon-camera"></ea-step>
</ea-steps>
</div>
自定义每个 step 的间距
每个步骤有其对应的步骤状态描述。
示例代码-html
html
<div class="demo">
<ea-steps active="1" space="300px">
<ea-step title="步骤 1" icon="icon-music"></ea-step>
<ea-step title="步骤 2" icon="icon-videocam"></ea-step>
<ea-step title="步骤 3" icon="icon-camera"></ea-step>
</ea-steps>
</div>
简洁风格的步骤条
设置 simple
可应用简洁风格,该条件下 description
/ space
都将失效。
示例代码-html
html
<div class="demo">
<ea-steps active="1" space="300px">
<ea-step title="步骤 1" icon="icon-music"></ea-step>
<ea-step title="步骤 2" icon="icon-videocam"></ea-step>
<ea-step title="步骤 3" icon="icon-camera"></ea-step>
</ea-steps>
</div>
Steps Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
active | 当前激活步骤的 index,从 0 开始记数 | number | — | 0 |
space | 每个 step 的间距,不设置则自动计算 | string | — | — |
simple | 简洁模式 | boolean | — | false |
Step Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
title | 标题 | string | — | — |
description | 步骤的详细描述 | string | — | — |
icon | 图标 | string | — | — |
status | 步骤的状态 | string | wait / process / finish | process |
Steps CSS Part
用法可参考 MDN ::part()伪类
名称 | 说明 |
---|---|
container | 外层容器 |
Step CSS Part
名称 | 说明 |
---|---|
container | 外层容器 |
head-wrap | 头部容器 |
step-bar | 步骤条 |
head-icon | 图标 |
main-wrap | 主体容器 |
title-wrap | 标题容器 |
description-wrap | 描述容器 |
Step Slot
名称 | 说明 |
---|---|
— | 步骤内容 |
title | 步骤标题 |
description | 步骤描述 |
icon | 步骤图标 |