跳到主要内容

数据过滤后联动

1. 案例背景

在项目管理,客户管理等系统中,我们只需要将未完结或者是进行中的数据联动过来的情境下,普通的数据联动配置并不能满足我们的需求,在这种场景下可以参考本案例进行过滤后数据联动的配置。

2. 实现效果

💡在选择《项目流程表》的项目类型后只将 《项目底表》内的项目类型相同且项目状态为进行中的数据联动过来并作为《项目流程表》项目名称的下拉选项。

3. 实现步骤

3.1 创建项目底表

路径:进入已创建好的应用 >> 页面左上角+号 >> 新建普通表单

创建项目底表

组件配置

项目底表组件配置

3.2 创建项目流程表

路径:进入已创建好的应用 >> 页面左上角+号 >> 新建流程表单(任选一种表单类型即可)

创建 项目流程表

3.2.1 组件配置

项目流程表 组件配置

3.2.2 项目类型组件配置关联其他表单数据

项目类型组件配置

3.2.3 项目负责人组件配置数据联动

项目负责人组件配置

3.3 创建数据源及配置

项目流程表数据源配置

名称:getData

请求地址:/dingtalk/web/应用唯一编码/v1/form/searchFormDatas.json

请求方式:GET

数据源创建配置

3.4 JS 面板配置

3.4.1 项目类型组件新建 OnChange 动作

项目类型组件新建 OnChange 动作

3.4.2 JS 面板将以下代码写入 OnChange 动作

JS 代码配置

代码示例:

const a = {
"项目底表项目类型唯一标识":this.$("项目流程表项目类型唯一标识").getValue(),
"项目底表项目状态唯一标识":"进行中"
}
const params = {
formUuid:"项目底表表单ID",
searchFieldJson:JSON.stringify(a)
}
this.dataSourceMap.数据源名称.load(params).then((res) => {
const arr = [];
res.data.map((response) => {

arr.push({
"value": response.formData.项目底表项目名称组件唯一标识,
"label": response.formData.项目底表项目名称组件唯一标识
});

})
console.log("arr", arr)
this.$("项目流程表项目名称组件唯一标识").set("dataSource",arr)
})

4. 效果演示

执行以下操作,实现的效果,如下:

1、展示项目底表完成与进行中的数据

2、在项目底表进行联动测试选择「类型A」,只有进行中的「项目1」、「项目4」会联动过来

3、选择「类型B」因为「类型B」没有进行中的数据,则项目名称选项无数据

效果演示

Copyright © 2024钉钉(中国)信息技术有限公司和/或其关联公司浙ICP备18037475号-4