设定价格上下限判断的功能实现

Sen
• 发表于:2021年10月08日 14:23 • 更新于:2021年10月08日 14:23
806

场景实例

产品数据中提前设定好价格的上下限,业务员录入报价单时,报价单价不可超过该范围,当存在产品报价单价超出范围时,不可录入,且给出提示;

前期准备:

产品表、报价表、报价明细表,并录入几条基础数据;

设定价格上下限判断的功能实现

设定价格上下限判断的功能实现

*为方便演示,报价表的客户先用字符类型代替;

 设定价格上下限判断的功能实现

实现步骤:

新建一个功能,命名为“新增报价”,点击功能名称进入流程搭建;

1. 第一步使用新增数据的步骤,新增报价;

设定价格上下限判断的功能实现

设定价格上下限判断的功能实现

2. 第二步使用新增集合的步骤,新增报价明细;

设定价格上下限判断的功能实现

设定价格上下限判断的功能实现

3. 第三步使用交互提示的步骤,在产品单价超出设定的范围时,显示提示(先设定一个默认的空提示即可);

设定价格上下限判断的功能实现

设定价格上下限判断的功能实现

4. 第四步使用预处理步骤,用于判断报价明细中产品单价是否超出范围,并限制用户提交功能;

 设定价格上下限判断的功能实现

设定价格上下限判断的功能实现


示例代码:

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

    //判断价格上下限是否合法的函数

    function price_is_legal(price, up_limit, lower_limit) {

        //price单价

        //up_limit上限

        //lower_limit下限

        let up = up_limit == "" || up_limit == "0" ? Infinity : new Number(up_limit);//没设置上限时,上限视为无穷大

        let lower = lower_limit == "" || lower_limit == "0" ? -Infinity : new Number(lower_limit);//没设置下限时,下限视为无穷小

        if (price) {//有填写单价

            let p = new Number(price);

            return p >= lower && p <= up;

        } else {//还没填写单价,暂不判断

            return true;

        }

    }

    //监控产品明细集合步骤

    vue.$watch(() => { return programStore.getters["getFormValue"]("6053122057d90c7074ef6531") },

        function (value) {

            //console.log(value);

            if (!value || !value.data || value.data.length == 0) {

                //产品明细为空时不可提交

                $programStore.dispatch("error/setText", "请添加产品明细");

            } else {

                let data = value.data || [];

                let error_list = data.filter((item) => {

                    let price = item["60530f70018e197061ac278b"];//集合中填写的单价

                    let up_limit = item["60530f6857d90c7074ef64e3"];//价格上限

                    let lower_limit = item["60530f7657d90c7074ef64e6"];//价格下限

                    return !price_is_legal(price, up_limit, lower_limit);

                });

                if (error_list.length > 0) {//  存在产品价格不在范围内

                    let name_list = error_list.map(v=>v["_60530f554ae8b87062fda2ac"]);

                    let name_str = name_list.join(',');

                    console.log(name_str);

                    $programStore.dispatch("runtime/set",{procedure:"605313664ae8b87062fda313",value:{title:"提示",content:name_str+"价格超出范围"}});

                    $programStore.dispatch("error/setText","不可提交");

                    return;

                }else{

                    //可以提交

                    $programStore.dispatch("runtime/set",{procedure:"605313664ae8b87062fda313",value:{title:" ",content:" "}});

                    $programStore.dispatch("error/setText","");

                }

                //可以提交功能

                $programStore.dispatch("error/setText", "");

            }

        }

    )

}


测试效果:

设定价格上下限判断的功能实现


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