ITPub博客

首页 > 应用开发 > IT综合 > 设定价格上下限判断的功能实现

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

原创 IT综合 作者:Sen666 时间:2021-03-19 16:36:36 0 删除 编辑

场景:

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

前期准备:

在白码低代码开发平台上准备产品表、报价表、报价明细表,并录入几条基础数据;

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

实现步骤:

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

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", "");
            }
        }
    )
}

测试效果


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69981618/viewspace-2763852/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-08-13

  • 博文量
    44
  • 访问量
    23858