自定义页面时间轴使用
1. 使用场景
本例介绍一下在宜搭自定义页面中如何使用时间轴组件展示项目各阶段内容。
2. 实现功能
2.1. 创建数据表
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715928732474-c0578844-d22b-4003-8198-255609a5f83e.png)
2.2. 创建自定义页面
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715929118328-5d81759d-b26e-46b4-a79a-1c9bd5aa2b30.png)
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715929183173-9434814d-6739-46b6-929b-d91523ccab83.png)
2.3. 配置页面功能
(1)配置数据源和用到的变量
参考文档:根据条件搜索表单实例详情列表
接口配置如图
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930083163-2a7ca22b-5efb-475d-80b9-7214fb57cbfc.png)
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930146310-7c6c5e83-a2f6-4962-adbc-6e24a77a022c.png)
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930115155-a891116d-2a9b-4ffb-a624-3f844f565288.png)
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930166461-21c7aea2-4d4b-4b92-b68c-f4df5c047380.png)
(2)获取数据显示在表格中
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930272631-42cee7d1-8a7c-49c9-bed7-b13381e55ca6.png)
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930777350-dee5e4b7-9722-467c-949f-7c9487b36ab6.png)
注意修改 formUuid 的值。
export function getProjectData() {
this.dataSourceMap.getData.load({
formUuid: 'FORM-XXXXXXXXXXXXXXXXXX', // 您的表单formUuid
currentPage: 1,
pageSize: 100,
searchFieldJson: {},
}).then((res) => {
const { data = [], totalCount } = res;
if (totalCount) {
const newArray = data.map((item) => {
return {
textField_lw8zdu2k: item.formData.textField_lw8zdu2k,
serialNumberField_lw8zdu2q: item.formData.serialNumberField_lw8zdu2q,
tableField_lw92zs1e: item.formData.tableField_lw92zs1e,
};
});
this.setState({
projectData: newArray,
});
}
}).catch((error) => {
this.utils.toast({
title: error.message,
type: 'error', // 'success', 'warning', 'error', 'notice', 'help', 'loading'
duration: 3000, // 毫秒
});
});
}
(3)配置时间轴
(3.1)处理时间轴数据
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930900223-bbd11e15-89ab-4aef-ab7f-564f5e54af13.png)
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715930962018-279df6af-1d7b-4d2c-8f0e-bdf1d351f302.png)
export function onActionClick(rowData) {
this.$('drawer_lw92pzv5').show(() => {
this.setState({
selectData: rowData,
});
this.setLineData('time', this.state.selectData);
});
}
// 处理时间轴数据
export function setLineData(position, rowData) {
// 映射时间轴状态
const stateOption = {
已完成: 'success',
进行中: 'process',
无效: 'error',
未开始: '',
};
//时间轴数据格式如下:
const newData = rowData.tableField_lw92zs1e.map((item) => {
return {
title: item.textField_lw92zs1f,
[position]: item.dateField_lwa9918r ? this.utils.formatter('date', item.dateField_lwa9918r, 'YYYY-MM-DD HH:mm') : this.utils.formatter('date', item.dateField_lw92zs1j, 'YYYY-MM-DD HH:mm'),
state: stateOption[item.radioField_lw92zs1l],
content: item.textareaField_lw92zs1h,
icon: stateOption[item.radioField_lw92zs1l] === 'success' ? 'success' : stateOption[item.radioField_lw92zs1l] == 'error' ? 'error' : '',
};
});
this.setState({
dateLineData: newData,
});
}
(3.2)时间轴折叠控制
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715931497532-95f71c35-7644-4ca6-a5ca-9e6c8d81fd97.png)
export function onOpenClick() {
// 动态设置折叠项
this.$('timeline_lw8vs9ac').set('fold', [
{
foldShow: false, // false:开启折叠;true:关闭折叠
foldArea: [
1, 2,
],
}, { foldArea: [4], foldShow: false },
]);
}
3. 实现效果
- 日期在时间轴右侧
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715931718164-c4be6226-57ef-45fc-924b-178fbdb050b8.png)
- 日期在时间轴左侧
![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1715931846195-bff6f95a-ff84-475e-9e40-6aa76f3b8479.png)
4. 在线试玩
本文档对您是否有帮助?