1.生产补料/超领,新增防抖控制,防止条码重复扫描。
2.现场收料功能完成
已修改4个文件
333 ■■■■ 文件已修改
H5/Js/Scbl.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Js/Xcsl.js 241 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Scbl.aspx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Xcsl.aspx 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
H5/Js/Scbl.js
@@ -109,7 +109,11 @@
                });
        },
        getBarcode() {
            // 添加防抖判断
            if (this.isLoading) {
                return;
            }
            //this.barcode = value;
            var that = this;
H5/Js/Xcsl.js
@@ -16,7 +16,9 @@
            XbarInfo: [],
            DAA001: [],
            DAANum: "",
            ItemDetail: [],
            xcslItemList: [], //材料列表
            xcslWjsBarList: [],//未接收列表
            xcslYjsBarList: [],//已接收列表
        }
    },
    mounted() {
@@ -27,83 +29,32 @@
        };
    },
    methods: {
        getKbBarInfo() {
        GetItemsXcsl() {
            var that = this;
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/getKbBarInfo', {
                Xt: that.GX,
                Kbbarcode: that.KbBar
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.KbBarInfo = json.data.tbBillList.kbBarInfo[0];
                        that.DAA001 = that.KbBarInfo.daA001;
                        that.KbBarMxInfo = json.data.tbBillList.kbBarMxInfo;
                        that.$refs.XBar.focus();
                        that.XbarInfo = [];
                        that.XBar = "";
                    }
                    else {
                        that.$toast.fail(json.message);
                        that.$refs.KbBar.focus();
                        that.KbBar = "";
                    }
                    that.isLoading = false;
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("网络错误,请重试!");
                    that.$refs.KbBar.focus();
                    that.KbBar = "";
                });
        },
        getXBarInfo() {
            var that = this;
            if (that.KbBar.length <= 0) {
                that.$toast.fail("卡板条码不能为空!");
                that.$refs.KbBar.focus();
                that.XBar = "";
                return;
            }
            if (that.DAA001.length <= 0) {
                that.$toast.fail("指令工单不能为空!");
                that.$refs.KbBar.focus();
                that.XBar = "";
                return;
            }
            // 检查是否超过装箱数
            if (that.XbarInfo.length >= that.Xvalue) {
                that.$toast.fail(`已达到装箱数限制(${that.Xvalue})`);
                that.XBar = "";
                return;
            }
            // 检查条码是否已存在
            const isExist = that.XbarInfo.some(item => item.iteM_BARCODE === that.XBar);
            if (isExist) {
                that.$toast.fail("该箱条码已存在,请勿重复扫描");
                that.XBar = "";
                that.$toast.fail("工单单号不能为空!");
                that.$refs.DAA001.focus();
                return;
            }
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/getXBarInfo', {
                Kbbarcode: that.KbBar,
                DAA001: that.DAA001,
                Xbarcode: that.XBar
            that.AxiosHttp("post", 'Womdaa/GetItemsXcsl', {
                daa001: that.DAA001
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.XbarInfo.push(json.data.tbBillList.xBarInfo[0]);
                        that.$refs.XBar.focus();
                        that.XBar = "";
                        that.DAANum = json.data.tbBillList.gD_Num;
                        that.xcslItemList = json.data.tbBillList.xcslItemList;
                        that.xcslWjsBarList = json.data.tbBillList.xcslWjsBarList;
                        that.xcslYjsBarList = json.data.tbBillList.xcslYjsBarList;
                        that.$refs.Bar.focus();
                    }
                    else {
                        that.$toast.fail(json.message);
                        that.$refs.DAA001.focus();
                        that.DAA001 = "";
                    }
                    that.isLoading = false;
                })
@@ -112,167 +63,49 @@
                    that.$toast.fail("网络错误,请重试!");
                });
        },
        productBinding() {
            var that = this;
            if (that.ZsBar.length <= 0) {
                that.$toast.fail("追溯码不能为空!");
        ScanXcsl() {
            // 添加防抖判断
            if (this.isLoading) {
                return;
            }
            if (that.LsBar.length <= 0) {
                that.$toast.fail("后盖码不能为空!");
            var that = this;
            if (that.Bar.length <= 0) {
                that.$toast.fail("物料条码不能为空!");
                that.$refs.Bar.focus();
                return;
            }
            if (that.DAA001.length <= 0) {
                that.$toast.fail("工单单号不能为空!");
                that.$refs.DAA001.focus();
                return;
            }
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/ProductBinding', {
                ZsBar: that.ZsBar,
                LsBar: that.LsBar,
                userName: that.userInfo.loginAccount,
            that.AxiosHttp("post", 'Womdaa/ScanXcsl', {
                DAA001: that.DAA001,
                Bar: that.Bar,
                userAccount: that.userInfo.loginAccount,
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        // that.scanInfo = json.data.tbBillList;
                        that.$notify({ type: 'success', message: json.message });
                        that.$refs.ZsBar.focus();
                        that.ZsBar = null;
                        that.ZsBar = null;
                        that.GetItemsXcsl();
                    }
                    else {
                        that.$toast.fail(json.message);
                        that.$refs.ZsBar.focus();
                        that.ZsBar = null;
                        that.ZsBar = null;
                    }
                    that.isLoading = false;
                    that.$refs.Bar.focus();
                    that.Bar = "";
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("网络错误,请重试!");
                    that.$refs.ZsBar.focus();
                    that.ZsBar = null;
                    that.ZsBar = null;
                });
        },
        //打印机注释
        //selectPrinter(printer) {
        //    this.selectedPrinter = printer.printerId; // 更新选中的打印机编号
        //},
        //confirmSelection() {
        //    if (this.selectedPrinter) {
        //        alert(`您选择了打印机:${this.selectedPrinter}`);
        //        // 在这里处理选择结果,例如调用接口或更新状态
        //        this.isPrinterPopupVisible = false; // 关闭弹窗
        //    } else {
        //        alert('请选择一个打印机!');
        //    }
        //},
        //onPrinterSelected(value) {
        //    console.log('当前选中的打印机编号:', value);
        //},
        checkProductBarcode() {
            var that = this;
            if (!that.LsBar) {
                that.$toast.fail("请输入产品条码");
                return;
            }
            // 在XbarInfo中查找匹配的条码
            const matchedItem = that.XbarInfo.find(item =>
                item.iteM_BARCODE === that.LsBar
            );
            if (matchedItem) {
                if (matchedItem.is_hedui === "1") {
                    that.$toast("已核对");
                } else {
                    that.$set(matchedItem, 'is_hedui', "1");
                    that.$notify({ type: 'success', message: "核对成功" });
                    that.LsBar = "";
                    // 检查是否所有行都已核对
                    const allChecked = that.XbarInfo.every(item => item.is_hedui === "1");
                    if (allChecked && that.XbarInfo.length > 0) {
                        that.submitAllChecked();
                    }
                }
            } else {
                that.$toast.fail("未找到匹配的箱条码");
            }
            that.LsBar = ""; // 清空输入框
        },
        // 新增方法:提交所有已核对的数据
        submitAllChecked() {
            var that = this;
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/submitAllChecked', {
                XbarInfo: that.XbarInfo,
                KbBar: that.KbBar,
                userName: that.userInfo.loginAccount
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.$notify({ type: 'success', message: json.message });
                        that.getKbBarInfo();
                    } else {
                        that.$toast.fail(json.message);
                        that.XbarInfo = [];
                        that.XBar = "";
                        that.LsBar = "";
                        that.$refs.XBar.focus();
                    }
                    that.isLoading = false;
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("绑定失败,请重试!");
                });
        },
        handleSubmit() {
            var that = this;
            if (!that.KbBar) {
                that.$toast.fail("请先扫描卡板条码");
                return;
            }
            // 计算可装数和已装数
            const oldqty = +(that.KbBarInfo.oldqty || 0);
            const ySum = +(that.KbBarInfo.ySum || 0);
            if (oldqty !== ySum) {
                that.$toast.fail(`装板未完成,待装数:${oldqty - ySum}`);
                return;
            }
            that.isLoading = true;
            that.AxiosHttp("post", 'Womdaa/submitInspection', {
                KbBar: that.KbBar,
                userAccount: that.userInfo.loginAccount
            }, false)
                .then(function (res) {
                    var json = res;
                    if (json.status == 0) {
                        that.$notify({ type: 'success', message: json.tbBillList.message });
                        // 清空数据
                        that.KbBar = "";
                        that.XbarInfo = [];
                        that.KbBarInfo = [];
                        that.$refs.KbBar.focus();
                    } else {
                        that.$toast.fail(json.message);
                    }
                    that.isLoading = false;
                })
                .catch(function (error) {
                    that.isLoading = false;
                    that.$toast.fail("提交失败,请重试!");
                    that.$refs.KbBar.focus();
                });
        },
    }
H5/Scbl.aspx
@@ -120,5 +120,5 @@
  <%--<comback ></comback>--%>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder4" Runat="Server">
 <script src="Js/Scbl.js?<%=1231811 %>"></script>
 <script src="Js/Scbl.js?<%=12318111 %>"></script>
</asp:Content>
H5/Xcsl.aspx
@@ -70,8 +70,8 @@
                    v-model="DAA001"
                    label="指令工单"
                    placeholder="指令工单"
                    @keyup.enter.native="GetItemsXcsl"
                    autofocus="true"
                    readonly
                    >
                </van-field>
@@ -86,9 +86,9 @@
                <van-field
                    ref="Bar"
                    v-model="Bar"
                    label="箱条码"
                    placeholder="请扫外箱码"
                    @keyup.enter.native="getXBarInfo"
                    label="物料条码"
                    placeholder="请扫物料条码"
                    @keyup.enter.native="ScanXcsl"
                    autofocus="true">
                </van-field>
@@ -99,63 +99,75 @@
            <van-tab title="材料列表" class="mySolid font">
                <van-row>
                    <van-col span="8" class="text-left padding-left">物料</van-col>
                    <van-col span="8" class="text-left padding-left">规格</van-col>
                    <van-col span="4">备料数</van-col>
                    <van-col span="4">接收数</van-col>
                    <van-col span="8" class="text-left padding-left">所属单据</van-col>
                </van-row>
                <van-row v-for="(itm,index) in ItemDetail.items" :key="index">
                <van-row v-for="(itm,index) in xcslItemList" :key="index">
                    <van-col span="8" class="text-left padding-left">
                        <div class="blue-text">{{itm.itemNo}}</div>
                        <div>{{itm.itemName}}</div>
                        <div class="blue-text">{{itm.item_no}}</div>
                        <div>{{itm.item_name}}</div>
                    </van-col>
                    <van-col span="4" class="blue-text">{{itm.bL_Num}}</van-col>
                    <van-col span="4" class="blue-text">{{itm.jS_Num}}</van-col>
                    <van-col span="8" class="text-left padding-left">
                        <div>{{itm.itemModel}}</div>
                        <div>{{itm.item_out_no}}</div>
                    </van-col>
                    <van-col span="4" class="blue-text">{{itm.dsQty}}</van-col>
                    <van-col span="4" class="blue-text">{{itm.dsQty}}</van-col>
                </van-row>
            </van-tab>
            <van-tab title="未接收列表" class="mySolid font">
                <van-row>
                    <van-col span="7" class="text-left padding-left">条码</van-col>
                    <van-col span="7" class="text-left padding-left">物料</van-col>
                    <van-col span="7" class="text-left padding-left">规格</van-col>
                    <van-col span="3" >数量</van-col>
                    <van-col span="5" class="text-left padding-left">条码</van-col>
                    <van-col span="8" class="text-left padding-left">物料</van-col>
                    <van-col span="3" class="text-left padding-left">数量</van-col>
                    <van-col span="3" >人员</van-col>
                    <van-col span="5" >时间</van-col>
                </van-row>
                <van-row 
                    v-for="(itm,index) in XbarInfo"
                    :key="index"
                    :style="{ background: itm.is_hedui === '1' ? '#e8f5e9 !important' : 'transparent' }">
                    <van-col span="7" class="text-left padding-left">{{itm.iteM_BARCODE}}</van-col>
                    <van-col span="7" class="text-left padding-left">
                    v-for="(itm,index) in xcslWjsBarList"
                    :key="index">
                    <van-col span="5" class="text-left padding-left">{{itm.iteM_BARCODE}}</van-col>
                    <van-col span="8" class="text-left padding-left">
                        <div class="blue-text">{{itm.item_no}}</div>
                        <div>{{itm.item_name}}</div>
                    </van-col>
                    <van-col span="7" class="text-left padding-left">
                        <div>{{itm.item_model}}</div>
                    <van-col span="3" class="text-left padding-left">
                        <div>{{itm.quantity}}</div>
                    </van-col>
                    <van-col span="3" class="blue-text">{{itm.quantity}}</van-col>
                    <van-col span="3">
                        <div>{{itm.useR_NAME}}</div>
                    </van-col>
                    <van-col span="5">
                        <div>{{itm.create_date}}</div>
                    </van-col>
                </van-row>
            </van-tab>
            <van-tab title="已接收列表" class="mySolid font">
            <van-tab title="未接收列表" class="mySolid font">
                <van-row>
                    <van-col span="7" class="text-left padding-left">条码</van-col>
                    <van-col span="7" class="text-left padding-left">物料</van-col>
                    <van-col span="7" class="text-left padding-left">规格</van-col>
                    <van-col span="3" >数量</van-col>
                    <van-col span="5" class="text-left padding-left">条码</van-col>
                    <van-col span="8" class="text-left padding-left">物料</van-col>
                    <van-col span="3" class="text-left padding-left">数量</van-col>
                    <van-col span="3" >接收人</van-col>
                    <van-col span="5" >接收时间</van-col>
                </van-row>
                <van-row v-for="(itm,index) in KbBarMxInfo" :key="index">
                    <van-col span="7" class="text-left padding-left" >{{itm.iteM_BARCODE}}</van-col>
                    <van-col span="7" class="text-left padding-left">
                <van-row
                    v-for="(itm,index) in xcslYjsBarList"
                    :key="index">
                    <van-col span="5" class="text-left padding-left">{{itm.iteM_BARCODE}}</van-col>
                    <van-col span="8" class="text-left padding-left">
                        <div class="blue-text">{{itm.item_no}}</div>
                        <div>{{itm.item_name}}</div>
                    </van-col>
                    <van-col span="7" class="text-left padding-left">
                        <div>{{itm.item_model}}</div>
                    <van-col span="3" class="text-left padding-left">
                        <div>{{itm.quantity}}</div>
                    </van-col>
                    <van-col span="3" class="blue-text">{{itm.quantity}}</van-col>
                    <van-col span="3">
                        <div>{{itm.useR_NAME}}</div>
                    </van-col>
                    <van-col span="5">
                        <div>{{itm.xcsL_CREATE_DATE}}</div>
                    </van-col>
                </van-row>
            </van-tab>
        </van-tabs>
@@ -167,5 +179,5 @@
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder4" Runat="Server">
    <script src="Js/Xcsl.js?<%=1 %>"></script>
    <script src="Js/Xcsl.js?<%=111 %>"></script>
</asp:Content>