集合中根据条件动态变更计算公式
Roy
• 发表于:2021-04-08 16:02:43 • 更新于:2021-11-29 12:23:58
429

场景实例:

在计算清单小计的时候,往往会根据清单的规格类型有不同的计算公式,通常使用编程步骤来实现,但是使用编程步骤只有提交功能后才执行,无法在表单填写界面得知计算结果,下面介绍使用预处理(即在表单提交前,对表单数据进行处理。)的方式来实现这个效果。

准备工作:

1、创建项目表,保存计算类型和计算参数,并准备几条数据

集合中根据条件动态变更计算公式

2、创建项目实例表

集合中根据条件动态变更计算公式

实现步骤:

1、创建功能,新增一个“集合-新增-项目实例”步骤

集合中根据条件动态变更计算公式

2、点击“设置”打开步骤属性选项卡,对各属性进行如下设置:

项目:固定、必填

集合中根据条件动态变更计算公式

类型:设为>本步骤>项目>类型

集合中根据条件动态变更计算公式

计算参数:设为>本步骤>项目>计算参数

集合中根据条件动态变更计算公式

单价:必填

h集合中根据条件动态变更计算公式

小计:必填

集合中根据条件动态变更计算公式

3、获取该步骤的相关id:

步骤id:

集合中根据条件动态变更计算公式

项目id:

集合中根据条件动态变更计算公式

类型id:

集合中根据条件动态变更计算公式

计算参数id:

集合中根据条件动态变更计算公式

单价id:

集合中根据条件动态变更计算公式

小计id:

集合中根据条件动态变更计算公式

4、添加预处理步骤

集合中根据条件动态变更计算公式

5、打开预处理的代码编辑框,编写以下代码:

function prepare($programStore, $form, vue) {

    let procedure = "6063e94ce609b06e8140fd40";//“集合-新增-项目实例”步骤id

    let project = "6063f6db35dbab6e7ba76a16";//项目id

    let type = "6063e921e609b06e8140fd25";//类型id

    let config = "6063e926cbbb586e7aa4eab3";//计算参数id

    let price = "6063e936e609b06e8140fd29";//单价id

    let total = "6063e93e35dbab6e7ba76915";//小计id

 

    //监听

    vue.$watch(() => { return programStore.getters["getFormValue"](procedure) },//获取集合步骤数据

        function (value, oldValue) {

            if (!_.isEqual(value, oldValue) && value.data.length > 0) {//判断集合数据有变化才执行

                //处理数据

                let list = value.data;

                for (let i = 0, size = list.length; i < size; i++) {//遍历每行数据

                    if (list[i][project]) {//如果有选项目

                        //计算小计 

                        list[i][total] = list[i][type] == "固定" ? list[i][config]//类型为固定时,费用等于费率

                            : new Number(list[i][config]) * new Number(list[i][price]);//类型为动态时,费用等于费率*投保额

                    }

                }

                //将结果设入集合步骤

                value.data = list;

                $programStore.dispatch("set", { procedure, value });

            }

        }

    );

}

 

6、将步骤连线,发布。

 

运行效果:

集合中根据条件动态变更计算公式


本文是否对您有帮助?
有帮助
没帮助
您是否遇到了以下问题?
内容过期或不准确
缺少场景、事例
链接有误
太简单,步骤待完善
其他
提交反馈
如需获取即时帮助,请联系
小助理
微信扫码添加小助理
让你的想法快速变成软件吧~
联系我们
售前咨询电话
020-88520693
意见箱 · 建议反馈
您的宝贵建议,使白码更完美!
微信扫码添加白码小助理