需求说明
在企业管理的表单录入场景中,经常会遇到通过页面中其它组件值、变量参数等来筛选下拉选择组件中的可选项。
实践方案
1. 示例场景:库存管理中的商品出库申请,需要先选择仓库,再选择仓库中的已有库存物料。
2. 创建应用后,在编辑器的数据源模块创建3个数据模型:
2.1 仓库模型,字段:仓库名称(主列字段)。


2.2 库存模型,字段:所属仓库(关联仓库模型)、库存物料名称(主列字段)。


2.3 出库申请模型,字段:仓库(关联关系字段,关联仓库模型)、出库物料(关联关系字段,关联库存模型)。


2.4 为方便测试,在仓库模型和库存模型中录入体验数据。
2.4.1 录入仓库的体验数据。


2.4.2 录入库存的体验数据。


3. 利用表单容器组件生成出库申请模型的表单,会自动生成仓库、出库物料两个字段,并对应成下拉选择组件。


4. 出库物料组件:选项筛选属性,单击打开配置弹窗,设置:所属仓库字段等于表达式:
$w.仓库字段的组件id.value
。

5. 由于通过表单关联关系生成的下拉单选组件,由于筛选条件不支持选择关联字段,需要重新拖入新的下拉单选组件替换上图中的“出库物料”。


6. 新建库存 query 查询,筛选条件使用表达式的模式,进行出库物料筛选。


({"select": {"$master": true,"ssck": {"ckmc": true}},"filter": {"where": {},"relateWhere": {"ssck": {"where": {"$and": [{"ckmc": {"$eq": $w.select1.selectedLabel}}]}}}}})
7. 将出库物料下拉单选组件选项绑定表达式
$w.query1.data.records
,并配置选项名称和选项值。

8. 总结:按以上步骤配置,即可实现选择仓库后,出库物料仅可选择当前所选仓库中的物料,例如:选择仓库1后,物料仅能选择该仓库中的显示器和电池。

