<template> 
 | 
    <!-- 取消报工 --> 
 | 
    <view class="page"> 
 | 
        <view class="packing-registration-bg" /> 
 | 
        <u-navbar title="取消报工" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" 
 | 
            back-icon-color="#000" /> 
 | 
        <u-form :model="form" ref="uForm" :label-width="280" :rules="rules" :error-type="['toast']" class="uForm"> 
 | 
            <u-form-item label="订单号" :border-bottom="false" prop="ifsOrderNo"> 
 | 
                <u-input v-model="form.ifsOrderNo" type="select" placeholder="点击选择" @click="openList" /> 
 | 
            </u-form-item> 
 | 
            <u-form-item label="工单" :border-bottom="false" prop="optaskNo"> 
 | 
                <u-input v-model="form.optaskNo" type="select" placeholder="点击选择" @click="seachWork" /> 
 | 
            </u-form-item> 
 | 
            <u-form-item label="取消报工记录:" :border-bottom="false" prop="value12"></u-form-item> 
 | 
        </u-form> 
 | 
        <view class="wrap"> 
 | 
            <scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true"> 
 | 
                <u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false"> 
 | 
                    <view class="content" v-for="(item, index) in list" :key="item.ifsOrderNo" :index="index" 
 | 
                        @click="cancelReport(item, index)"> 
 | 
                        <view class="content-header"> 
 | 
                            <view class="content-header-title">{{ index + 1 }}</view> 
 | 
                        </view> 
 | 
                        <view class="content-body"> 
 | 
                            <view class="row-list"> 
 | 
                                <view class="_label"> 
 | 
                                    <view class="_label-name">批号:</view> 
 | 
                                </view> 
 | 
                                <view class="_content"> 
 | 
                                    {{ item.outBatchNo }} 
 | 
                                </view> 
 | 
                            </view> 
 | 
                            <view class="row-list"> 
 | 
                                <view class="_label"> 
 | 
                                    <view class="_label-name">零件号:</view> 
 | 
                                </view> 
 | 
                                <view class="_content"> 
 | 
                                    {{ item.partNo }} 
 | 
                                </view> 
 | 
                            </view> 
 | 
                            <view class="row-list"> 
 | 
                                <view class="_label"> 
 | 
                                    <view class="_label-name">零件描述:</view> 
 | 
                                </view> 
 | 
                                <view class="_content"> 
 | 
                                    {{ item.partName }} 
 | 
                                </view> 
 | 
                            </view> 
 | 
                            <view class="row-list"> 
 | 
                                <view class="_label"> 
 | 
                                    <view class="_label-name">取消接收数量:</view> 
 | 
                                </view> 
 | 
                                <view class="_content"> 
 | 
                                    {{ item.qtyRequired }} 
 | 
                                </view> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                </u-cell-group> 
 | 
            </scroll-view> 
 | 
        </view> 
 | 
        <u-modal width="720rpx" v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true" 
 | 
            @confirm="confirmModle" @cancel="cancel"> 
 | 
            <view class="popup-content"> 
 | 
                <view class="packing-registration-param"> 
 | 
                    <view class="packing-registration-param-view"> 
 | 
                        <view class="packing-registration-param-item param-extra"> 
 | 
                            <view class="packing-registration-param-item-left"> 
 | 
                                <text class="item-one">批号</text> 
 | 
                            </view> 
 | 
                            <view class="packing-registration-param-item-right"> 
 | 
                                <text class="item-one">{{ detailedList.outBatchNo }}</text> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                        <view class="packing-registration-param-item param-extra"> 
 | 
                            <view class="packing-registration-param-item-left"> 
 | 
                                <text class="item-one">零件号</text> 
 | 
                            </view> 
 | 
                            <view class="packing-registration-param-item-right"> 
 | 
                                <text class="item-one">{{ detailedList.partNo }}</text> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                        <view class="packing-registration-param-item param-extra"> 
 | 
                            <view class="packing-registration-param-item-left"> 
 | 
                                <text class="item-one">零件描述</text> 
 | 
                            </view> 
 | 
                            <view class="packing-registration-param-item-right"> 
 | 
                                <span class="item-one">{{ detailedList.partName }}</span> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                        <view class="packing-registration-param-item param-extra"> 
 | 
                            <view class="packing-registration-param-item-left"> 
 | 
                                <text class="item-one">取消接收数量</text> 
 | 
                            </view> 
 | 
                            <view class="packing-registration-param-item-right"> 
 | 
                                <span class="item-one">{{ detailedList.netWeight }}</span> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                </view> 
 | 
            </view> 
 | 
        </u-modal> 
 | 
        <scan></scan> 
 | 
    </view> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
    import content_bg from "@/static/custom/packing/backBg.png"; 
 | 
    import scan from "@/components/scan/scan.vue"; 
 | 
  
 | 
    export default { 
 | 
        components: { 
 | 
            scan, 
 | 
        }, 
 | 
        data() { 
 | 
            return { 
 | 
                background: { 
 | 
                    backgroundImage: `url(${content_bg})`, 
 | 
                    backgroundAttachment: "fixed", 
 | 
                    backgroundSize: "100% auto", 
 | 
                    backgroundRepeat: "no-repeat", 
 | 
                }, 
 | 
                form: { 
 | 
                    ifsOrderNo: "", 
 | 
                    optaskNo: "", 
 | 
                    id: "", 
 | 
                }, 
 | 
                detailedList: {}, 
 | 
                list: [], 
 | 
                rules: {}, 
 | 
                showModal: false, 
 | 
                id: "", 
 | 
            }; 
 | 
        }, 
 | 
        onReady() {}, 
 | 
        onShow() { 
 | 
            let that = this; 
 | 
            uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器 
 | 
            uni.$on("scan", function(data) { 
 | 
                console.log("onscan"); 
 | 
                //扫码成功后的回调,你可以写自己的逻辑代码在这里 
 | 
                console.log("页面扫码结果:", data.code); 
 | 
                if (data.code) { 
 | 
                    let codeInfo = JSON.parse(data.code); 
 | 
                    if (codeInfo.BN) { 
 | 
                        // 扫描报工单二维码 
 | 
                        that.saveForm(codeInfo); 
 | 
                        // that.$forceUpdate(); 
 | 
                    } 
 | 
                } 
 | 
            }); 
 | 
        }, 
 | 
        methods: { 
 | 
            //工单 
 | 
            seachWork() { 
 | 
                if (this.form.ifsOrderNo == "") { 
 | 
                    this.$u.toast("请选择订单号"); 
 | 
                    return; 
 | 
                } 
 | 
                // 使用uni.navigateTo方法跳转,并通过queryParams传递参数 
 | 
                uni.navigateTo({ 
 | 
                    url: "/pages/product/WorkshopOrderIssued/WorkOrderList?id=" + 
 | 
                        encodeURIComponent(JSON.stringify(this.form.id)), 
 | 
                }); 
 | 
            }, 
 | 
            cancel() { 
 | 
                this.showModal = false; // 关闭弹窗 
 | 
            }, 
 | 
            openList() { 
 | 
                uni.navigateTo({ 
 | 
                    url: "/pages/product/report/orderList", 
 | 
                }); 
 | 
            }, 
 | 
            setNo(val) { 
 | 
                this.form.ifsOrderNo = val.ifsOrderNo; 
 | 
                this.form.id = val.id; 
 | 
            }, 
 | 
            // 回显扫码的信息-报工单 
 | 
            saveForm(val) { 
 | 
                // if (this.form.ifsOrderNo == "") { 
 | 
                //     uni.showToast({ 
 | 
                //         icon: "none", 
 | 
                //         title: "请先选择订单号!", 
 | 
                //         duration: 2 * 1000, 
 | 
                //     }); 
 | 
                //     return; 
 | 
                // } 
 | 
                // if (this.form.ifsOrderNo != val.ifsOrderNo) { 
 | 
                //     uni.showToast({ 
 | 
                //         icon: "none", 
 | 
                //         title: "扫描的二维码与该订单不一致", 
 | 
                //         duration: 2 * 1000, 
 | 
                //     }); 
 | 
                //     return; 
 | 
                // } 
 | 
                this.detailedList = val; 
 | 
                this.detailedList.outBatchNo = val.BN; 
 | 
                this.detailedList.partNo = val.PN; 
 | 
                this.detailedList.partName = val.ST; 
 | 
                this.detailedList.netWeight = val.NW; 
 | 
                console.log("this.detailedList扫码取消报工", this.detailedList); 
 | 
                this.showModal = true; 
 | 
            }, 
 | 
            // 工单回显 
 | 
            workNo(val) { 
 | 
                this.id = val.id; 
 | 
                this.getBGList(); 
 | 
                this.form.optaskNo = val.optaskNo; 
 | 
            }, 
 | 
            getBGList() { 
 | 
                this.$u.api.workReporting 
 | 
                    .getProductMainV1({ 
 | 
                        current: 1, 
 | 
                        size: -1, 
 | 
                        id: this.id, 
 | 
                    }) 
 | 
                    .then((res) => { 
 | 
                        console.log("res", res); 
 | 
                        this.list = res.data.productOutputList; 
 | 
                    }); 
 | 
            }, 
 | 
            // 取消报工 
 | 
            cancelReport(item, index) { 
 | 
                let that = this; 
 | 
                uni.showModal({ 
 | 
                    title: "提示", 
 | 
                    content: "是否确认取消批次" + item.outBatchNo + "的报工", 
 | 
                    success: function(res) { 
 | 
                        if (res.confirm) { 
 | 
                            that.detailedList = item; 
 | 
                            that.showModal = true; 
 | 
                        } else if (res.cancel) { 
 | 
                            return; 
 | 
                        } 
 | 
                    }, 
 | 
                }); 
 | 
            }, 
 | 
            confirmModle() { 
 | 
                console.log("点击确认后获取取消报工记录"); 
 | 
                // 处理确认逻辑 
 | 
                this.$u.api.cancelReporting 
 | 
                    .cancelDTAOfWorkApplication({ 
 | 
                        outBatchNo: this.detailedList.outBatchNo, 
 | 
                        outputId: this.detailedList.id, 
 | 
                    }) 
 | 
                    .then((res) => { 
 | 
                        console.log("res", res); 
 | 
                        if (this.detailedList.BN) { 
 | 
                        this.showModal = false; 
 | 
                        this.$u.toast("取消报工成功"); 
 | 
                        } else { 
 | 
                        this.getBGList(); 
 | 
                        this.showModal = false; 
 | 
                        this.$u.toast("取消报工成功"); 
 | 
                        } 
 | 
                    }); 
 | 
            }, 
 | 
        }, 
 | 
    }; 
 | 
</script> 
 | 
  
 | 
<style lang="scss" scoped> 
 | 
    .packing-registration-param { 
 | 
        padding: 40rpx 30rpx 10rpx 30rpx; 
 | 
        height: 350px; 
 | 
        overflow: hidden; 
 | 
  
 | 
        .packing-registration-param-title { 
 | 
            display: flex; 
 | 
            flex-direction: row; 
 | 
            align-items: center; 
 | 
            margin-bottom: 30rpx; 
 | 
  
 | 
            .title-label { 
 | 
                margin-left: 14rpx; 
 | 
                font-size: 34rpx; 
 | 
                font-weight: bold; 
 | 
                color: #283e65; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        .packing-registration-param-view { 
 | 
            height: 177rpx; 
 | 
            background-color: #fff; 
 | 
            border-radius: 10rpx; 
 | 
            padding: 0rpx 23rpx; 
 | 
            margin-bottom: 30rpx; 
 | 
  
 | 
            .packing-registration-param-item { 
 | 
                height: 90rpx; 
 | 
                border: 1px solid #adc8e4; 
 | 
                line-height: 90rpx; 
 | 
                display: flex; 
 | 
                justify-content: space-between; 
 | 
                border: none; 
 | 
  
 | 
                .packing-registration-param-item-left { 
 | 
                    .item-one { 
 | 
                        word-break: break-all; 
 | 
                        font-size: 30rpx; 
 | 
                        color: #666666; 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                .packing-registration-param-item-right { 
 | 
                    display: flex; 
 | 
                    justify-content: space-between; 
 | 
  
 | 
                    .item-one { 
 | 
                        font-size: 30rpx; 
 | 
                        color: #060505; 
 | 
                        margin-right: 6rpx; 
 | 
                        word-break: break-all; 
 | 
                    } 
 | 
  
 | 
                    .item-two { 
 | 
                        font-size: 15rpx; 
 | 
                        color: #a6b4cc; 
 | 
                        margin-right: 6rpx; 
 | 
                    } 
 | 
  
 | 
                    .item-three { 
 | 
                        font-size: 30rpx; 
 | 
                        color: #214ded; 
 | 
                        margin-right: 6rpx; 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .param-extra { 
 | 
                border-bottom: 1px solid #ededed; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    .popup-content { 
 | 
        width: 720rpx; 
 | 
        height: 400rpx; 
 | 
        background-color: #fff; 
 | 
        border-radius: 8px; 
 | 
        z-index: 10; 
 | 
        /* 确保内容在蒙版之上 */ 
 | 
    } 
 | 
  
 | 
    .page { 
 | 
        box-sizing: border-box; 
 | 
    } 
 | 
  
 | 
    .packing-registration-bg { 
 | 
        background-color: #f6f9ff; 
 | 
        background-image: url("~@/static/custom/packing/backBg.png"); 
 | 
        padding: 0 20rpx; 
 | 
        background-attachment: fixed; 
 | 
        background-size: 100% auto; 
 | 
        background-repeat: no-repeat; 
 | 
        position: fixed; 
 | 
        top: 0; 
 | 
        bottom: 0; 
 | 
        width: 100%; 
 | 
        z-index: -1; 
 | 
    } 
 | 
  
 | 
    .uForm { 
 | 
        background: #fff; 
 | 
        margin: 40rpx 30rpx; 
 | 
        padding: 20rpx 30rpx; 
 | 
        border-radius: 16rpx; 
 | 
    } 
 | 
  
 | 
    ::v-deep .u-input__input { 
 | 
        text-align: right !important; 
 | 
    } 
 | 
  
 | 
    .u-form-item { 
 | 
        padding: 0; 
 | 
    } 
 | 
  
 | 
    .wrap .finishProductIn-locno-scroll-list { 
 | 
        height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx); 
 | 
        width: 100%; 
 | 
    } 
 | 
  
 | 
    .finishProductIn-locno-scroll-list-group { 
 | 
        ::v-deep .u-cell-item-box { 
 | 
            background-color: rgba(250, 252, 255, 0.36) !important; 
 | 
            padding: 0rpx 30rpx; 
 | 
        } 
 | 
  
 | 
        .content { 
 | 
            font-size: 12px; 
 | 
            background-color: #ffffff; 
 | 
            box-sizing: border-box; 
 | 
            border-radius: 10rpx; 
 | 
            margin: 0rpx 0rpx 16rpx; 
 | 
            padding: 20rpx 8rpx; 
 | 
            box-shadow: none; 
 | 
            display: flex; 
 | 
            align-items: center; 
 | 
  
 | 
            white-space: normal; 
 | 
  
 | 
            .content-header { 
 | 
                width: 40rpx; 
 | 
                height: 90rpx; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                overflow-wrap: break-word; 
 | 
  
 | 
                .content-header-icon { 
 | 
                    background-image: url("~@/static/custom/moveWareHouse/header_icon.png"); 
 | 
                    background-size: 100% auto; 
 | 
                    background-repeat: no-repeat; 
 | 
                    height: 28rpx; 
 | 
                    width: 28rpx; 
 | 
                } 
 | 
  
 | 
                .content-header-title { 
 | 
                    width: 40rpx; 
 | 
                    // margin-left: 11rpx; 
 | 
                    font-size: 26rpx; 
 | 
                    color: #333333; 
 | 
                } 
 | 
            } 
 | 
  
 | 
            .content-body { 
 | 
                flex: 1; 
 | 
                background: #f5f9ff; 
 | 
                border-radius: 10rpx; 
 | 
                padding: 0rpx 23rpx; 
 | 
  
 | 
                .row-list { 
 | 
                    height: 60rpx; 
 | 
                    display: flex; 
 | 
                    flex-direction: row; 
 | 
                    padding: 0px; 
 | 
                    align-items: center; 
 | 
                } 
 | 
  
 | 
                .row-list ._label { 
 | 
                    display: flex; 
 | 
                    flex: 0.8; 
 | 
                    color: #909399; 
 | 
                    align-items: center; 
 | 
  
 | 
                    ._label-icon-1 { 
 | 
                        background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png"); 
 | 
                        background-size: 100% auto; 
 | 
                        background-repeat: no-repeat; 
 | 
                        height: 26rpx; 
 | 
                        width: 26rpx; 
 | 
                    } 
 | 
  
 | 
                    ._label-icon-2 { 
 | 
                        background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png"); 
 | 
                        background-size: 100% auto; 
 | 
                        background-repeat: no-repeat; 
 | 
                        height: 26rpx; 
 | 
                        width: 26rpx; 
 | 
                    } 
 | 
  
 | 
                    ._label-icon-3 { 
 | 
                        background-image: url("~@/static/custom/moveWareHouse/label-icon-3.png"); 
 | 
                        background-size: 100% auto; 
 | 
                        background-repeat: no-repeat; 
 | 
                        height: 26rpx; 
 | 
                        width: 26rpx; 
 | 
                    } 
 | 
  
 | 
                    ._label-name { 
 | 
                        margin-left: 11rpx; 
 | 
                        font-size: 26rpx; 
 | 
                        font-weight: 500; 
 | 
                        color: #666666; 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                .row-list ._content { 
 | 
                    flex: 1.5; 
 | 
                    text-align: right; 
 | 
                    color: #909399; 
 | 
                    font-size: 24rpx; 
 | 
                } 
 | 
  
 | 
                .row-list .s1 { 
 | 
                    color: #d35651; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</style> 
 |