Progress 进度条
展示操作的当前进度。
何时使用
在操作需要较长时间才能完成时,为用户显示该操作的当前进度和状态。
- 当一个操作会打断当前界面,或者需要在后台运行,且耗时可能超过2秒时;
- 当需要显示一个操作完成的百分比时。
代码演示
进度条
标准的进度条。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress } from 'choerodon-ui';
ReactDOM.render(
<div>
<Progress percent={30} />
<Progress percent={50} status="active" />
<Progress percent={70} status="exception" />
<Progress percent={100} />
<Progress percent={50} showInfo={false} />
</div>,
document.getElementById('container'));
进度圈
圈形的进度。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress } from 'choerodon-ui';
ReactDOM.render(
<div>
<Progress type="circle" percent={75} />
<Progress type="circle" percent={70} status="exception" />
<Progress type="circle" percent={100} />
</div>,
document.getElementById('container'));
小型进度条
适合放在较狭窄的区域内。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress } from 'choerodon-ui';
ReactDOM.render(
<div style={{ width: 170 }}>
<Progress percent={30} size="small" />
<Progress percent={50} size="small" status="active" />
<Progress percent={70} size="small" status="exception" />
<Progress percent={100} size="small" />
</div>,
document.getElementById('container'));
小型进度圈
小一号的圈形进度。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress } from 'choerodon-ui';
ReactDOM.render(
<div>
<Progress type="circle" percent={30} width={80} />
<Progress type="circle" percent={70} width={80} status="exception" />
<Progress type="circle" percent={100} width={80} />
</div>,
document.getElementById('container'));
动态展示
会动的进度条才是好进度条。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress, Button } from 'choerodon-ui';
const ButtonGroup = Button.Group;
class App extends React.Component {
state = {
percent: 0,
};
increase = () => {
let percent = this.state.percent + 10;
if (percent > 100) {
percent = 100;
}
this.setState({ percent });
};
decline = () => {
let percent = this.state.percent - 10;
if (percent < 0) {
percent = 0;
}
this.setState({ percent });
};
render() {
return (
<div>
进度圈动态展示
会动的进度条才是好进度条。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress, Button } from 'choerodon-ui';
const ButtonGroup = Button.Group;
class App extends React.Component {
state = {
percent: 0,
};
increase = () => {
let percent = this.state.percent + 10;
if (percent > 100) {
percent = 100;
}
this.setState({ percent });
};
decline = () => {
let percent = this.state.percent - 10;
if (percent < 0) {
percent = 0;
}
this.setState({ percent });
};
render() {
return (
<div>
<Progress type="circle" percent={this.state.percent} />
<ButtonGroup>
<Button funcType="raised" shape="circle" onClick={this.decline} icon="remove" />
<Button funcType="raised" shape="circle" onClick={this.increase} icon="add" />
自定义文字格式
format
属性指定格式。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress } from 'choerodon-ui';
ReactDOM.render(
<div>
<Progress type="circle" percent={75} format={percent => `${percent} Days`} />
<Progress type="circle" percent={100} format={() => 'Done'} />
</div>,
document.getElementById('container'));
仪表盘
通过设置 type=dashboard
,可以很方便地实现仪表盘样式的进度条。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress } from 'choerodon-ui';
ReactDOM.render(<>
<Progress type="dashboard" percent={75} />
<Progress type="dashboard" showPointer percent={75} />
</>, document.getElementById('container'));
加载
加载。
import React from 'react';
import ReactDOM from 'react-dom';
import { Progress } from 'choerodon-ui';
ReactDOM.render(
<div>
<Progress type="loading" size="small" />
<Progress type="loading" status="success" />
<Progress type="loading" size="large" status="exception" />
</div>,
document.getElementById('container'),
);
分段进度条
标准的进度条。
import React from 'react';
import ReactDOM from 'react-dom';
import { Tooltip, Progress } from 'choerodon-ui';
ReactDOM.render(
<Tooltip title="3 done / 3 in progress / 4 to do">
<Progress percent={60} successPercent={30} />
</Tooltip>,
document.getElementById('container'));
API
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
format | 内容的模板函数 | function(percent) | percent => percent + ‘%’ |
gapDegree (type=circle) | 圆形进度条缺口角度,可取值 0 ~ 360 | number | 0 |
gapPosition (type=circle) | 圆形进度条缺口位置 | Enum{ ‘top’, ‘bottom’, ‘left’, ‘right’ } | top |
percent | 百分比 | number | 0 |
showInfo | 是否显示进度数值或状态图标 | boolean | true |
showPointer (type=dashboard) | 是否显示指针 | boolean | false |
status | 状态,可选:success exception active | string | - |
strokeWidth (type=line) | 进度条线的宽度,单位 px | number | 10 |
strokeWidth (type=circle) | 圆形进度条线的宽度,单位是进度条画布宽度的百分比 | number | 6 |
type | 类型,可选 line circle dashboard loading | string | line |
width (type=circle) | 圆形进度条画布宽度,单位 px | number | 132 |
successPercent | 已完成的分段百分比,type=”line” 时有效 | number | 0 |
strokeColor | 进度条的色彩 | string | - |
当前内容版权归 Choerodon UI 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Choerodon UI .