快速实现实时多表判断
Sen
• 发表于:2022-07-27 18:12:32 • 更新于:2023-12-26 12:34:21
1154

目标:

新增销售单时,如果销售数量大于库存数量或销售单价低于底价时不可提交;

前期准备:

商品、商品规格、销售订单、销售订单明细数据表,并且有一些商品基础数据;

快速实现实时多表判断

快速实现实时多表判断

快速实现实时多表判断

快速实现实时多表判断

实现步骤:

新建功能:新增销售单;

①第一步新增数据,填写销售单基础数据;

②第二步新增集合,新增销售订单明细;

快速实现实时多表判断

③第三步使用交互-预处理,用于判断订单明细中的销售数量示例是否大于库存数量以及销售单价是否低于底价,符合任一情况则禁止提交功能;

快速实现实时多表判断

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

    vue.$watch(() => { return programStore.getters["getFormValue"]("6021163ff027b63cc9a2fe30") },//监控销售订单明细步骤

        function (value) {

            let data = value.data || [];

            if(data.length ==0){

                return;

            }

            console.log(data);

            for (let i = 0; i < data.length; i++) {//遍历集合

                let goodsid = data[i]["6021148ad611b43cc82ead48"];//商品id

                let skuid = data[i]["60211490d611b43cc82ead49"];//规格id

                let sales_num = data[i]["6021149ad611b43cc82ead4b"];//销售数量

                let sales_price = data[i]["60211496d611b43cc82ead4a"];//销售单价

                let goods_name = "";//商品名称

                vue.$store.dispatch("data/show", {//查询商品数据

                    dataset: "60211427f027b63cc9a2fe21",

                    query: {

                        query: {

                            "_id": goodsid

                        },

                        empty: false,

                        page: {

                            index: 1,

                            size: 100

                        }

                    }

                }).then(res => {

                    let good = res.data.data[0];//商品对象

                    goods_name = good["6021142dd611b43cc82ead3a"];

                    let stock = good["60211432d611b43cc82ead3b"];//商品库存

                    if(new Number(stock) < new Number(sales_num)){//如果销售数量大于库存

                        $programStore.dispatch("error/setText",goods_name+"库存不足");//禁止提交

                        return;

                    }

                });

 

                vue.$store.dispatch("data/show", {//查询规格数据

                    dataset: "6021143ed611b43cc82ead3d",

                    query: {

                        query: {

                            "_id": skuid

                        },

                        empty: false,

                        page: {

                            index: 1,

                            size: 100

                        }

                    }

                }).then(res => {

                    let sku = res.data.data[0];//规格对象

                    let price = sku["6021144dd611b43cc82ead40"];//规格底价

                    if(new Number(price) > new Number(sales_price)){//如果销售单价低于底价

                        $programStore.dispatch("error/setText",goods_name+"销售单价低于底价");//禁止提交

                        return;

                    }

                });

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

            }

        }

    )

}


测试效果:

快速实现实时多表判断


本文是否对您有帮助?
有帮助
没帮助
您是否遇到了以下问题?
内容过期或不准确
缺少场景、事例
链接有误
太简单,步骤待完善
其他
提交反馈
如需获取即时帮助,请联系
小助理
微信扫码添加小助理
让你的想法快速变成软件吧~