• Progress 进度条

    展示操作的当前进度。

    何时使用

    在操作需要较长时间才能完成时,为用户显示该操作的当前进度和状态。

    代码演示

    标准的进度条。
    expand code expand code
    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>,
      mountNode);
    
    适合放在较狭窄的区域内。
    expand code expand code
    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>,
      mountNode);
    
    会动的进度条才是好进度条。
    expand code expand code
    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 onClick={this.decline} icon="minus" />
              <Button onClick={this.increase} icon="plus" />
            </ButtonGroup>
          </div>
        );
      }
    }
    
    ReactDOM.render(<App />, mountNode);
    
    format 属性指定格式。
    expand code expand code
    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>,
      mountNode);
    
    标准的进度条。
    expand code expand code
    import { Tooltip, Progress } from 'choerodon-ui';
    
    ReactDOM.render(
      <Tooltip title="3 done / 3 in progress / 4 to do">
        <Progress percent={60} successPercent={30} />
      </Tooltip>,
      mountNode);
    
    标准的进度条。
    expand code expand code
    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} />
        <Progress type="loading" />
      </div>,
      mountNode);
    
    小一号的圈形进度。
    expand code expand code
    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>,
      mountNode);
    
    会动的进度条才是好进度条。
    expand code expand code
    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 percent={this.state.percent} />
            <ButtonGroup>
              <Button onClick={this.decline} icon="minus" />
              <Button onClick={this.increase} icon="plus" />
            </ButtonGroup>
          </div>
        );
      }
    }
    
    ReactDOM.render(<App />, mountNode);
    
    通过设置 type=dashboard,可以很方便地实现仪表盘样式的进度条。
    expand code expand code
    import { Progress } from 'choerodon-ui';
    
    ReactDOM.render(<Progress type="dashboard" percent={75} />, mountNode);
    

    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
    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