自定义页面使用步骤条
在使用宜搭的时候,你可能见到过步骤条组件,用来展示任务或项目的进度情况。


在任务管理、项目管理、生产流程管理、以及教学或教程引导中,随处可见上述信息展示所用的步骤条,为用户提供清晰的流程指引,使用户能直观地了解当前所处的阶段以及接下来需要进行的步骤,本例我们来学习一下如何在自定义页面使用步骤条。
前提条件
本教程使用到宜搭部分基础功能,你可以先了解以下功能。
本教程引用到宜搭其他示例,你可以先学习下该示例。
实现效果

实现步骤
创建页面
参考示例:自定义页面实现看板视图
创建任务详情

配置数据源变量
任务详情数据变量如图:

{
  detail: {},
  stepDataSource: []
}
配置任务详情变量

「任务标题」绑定变量,注意修改组件唯一标识。
state.detailSource.detail.radioField_lxy408q8
「任务优先级」自定义样式类及绑定变量,注意修改组件唯一标识。

state.detailSource.detail.radioField_lxy408q8
「任务负责人」绑定变量,注意修改组件唯一标识。

state.detailSource.detail.textField_lxy408qe
「任务创建时间」绑定变量,注意修改组件唯一标识。

utils.formatter('date', state.detailSource.detail.dateField_lxy408qf, 'YYYY-MM-DD hh:mm')
「任务描述」绑定变量,注意修改组件唯一标识。

state.detailSource.detail.textareaField_lxy408q6
「步骤数据」绑定变量。

配置页面功能
配置任务列表点击事件,查看任务详情,注意修改组件唯一标识。


// 查看详情
export function onClickDetail() {
  this.$('drawer_lzawnz7v').show(() => {
    const detailData = {
      detail: {},
      stepDataSource: []
    }
    detailData.detail = this._item;
    detailData.stepDataSource = [
      this.createTaskPhase('待处理'),
      this.createTaskPhase('进行中'),
      this._item.radioField_lxy408qg_id === '已取消' ? this.createTaskPhase('已取消') : this.createTaskPhase('已完成'),
    ];
    const targetIndex = detailData.stepDataSource.findIndex(phase =>
      phase.title === this._item.radioField_lxy408qg_id
    );
    if (targetIndex !== -1) {
      detailData.stepDataSource.forEach((phase, index) => {
        phase.status = index < targetIndex ? 'finish' : (index === targetIndex ? 'process' : 'wait');
      });
    }
    this.setState({
      detailSource: detailData,
    });
  });
}
//处理步骤条数据
export function createTaskPhase(title = '--') {
  return {
    title, // 标题
    status: 'wait', // 状态
    content: this._item.textField_lxy408q5, // 显示内容
  };
}
配置「查看详情」点击事件。

export function onStepClick(index) {
  const { detail } = this.state.detailSource;
  this.utils.router.push(
    `/${pageConfig.appType}/formDetail/FORM-xxxxxx`, // 注意修改表单标识formUuid
    {
      formInstId: detail.formInstId,
      corpid: pageConfig.corpId,
    },
    true,
    true,
  );
}
在线试玩
本文档对您是否有帮助?