小小儁爺
2025-05-13 cd0ccf788c9d94708c70c75210135db344f68083
1.采购入库按单走实现
已修改2个文件
285 ■■■■ 文件已修改
pages/wlgl/cgrk2.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wlgl/cgrk4.vue 278 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wlgl/cgrk2.vue
@@ -37,13 +37,6 @@
        </view>
        <view v-if="purchorderArrAll.length===0">
            <div class="sacnBody">
                <div class="boxImg"></div>
                <div class="scanText">暂无采购到货</div>
            </div>
        </view>
    </view>
</template>
pages/wlgl/cgrk4.vue
@@ -45,12 +45,11 @@
                                                <view>物料名称:</view>
                                                <view>物料规格:</view>
                                                <view>采购订单:</view>
                                                <view v-show='item.children.length===0'>入库数量:</view>
                                                <view>入库进度:</view>
                                                <view>任务数量:</view>
                                                <view>到货进度:</view>
                                                <!-- <view>物料标签:</view> -->
                                                <view v-show="!item.arrowType">物料数量:</view>
                                                <view v-show="!item.arrowType">供方信息:</view>
                                                <view v-show="!item.arrowType">采购批次:</view>
                                                <view v-show="!item.arrowType">质量状态:</view>
                                            </view>
                                            <view class="flex_column contentFont">
                                                <view>{{item.partcode}}</view>
@@ -58,48 +57,32 @@
                                                <view class="ellipsis" style="width: 460rpx;">
                                                    {{item.partspec?item.partspec:'/'}}
                                                </view>
                                                <view>{{item.ordercode}}</view>
                                                <view>{{ordercode}}</view>
                                                <view v-show='item.children.length===0'>
                                                    <u--input placeholder="请输入" border="surround" min='1'
                                                        v-model="item.countInquantity2"></u--input>
                                                </view>
                                                <view style="height: 50rpx;display: flex;align-items: center;">
                                                    <u-line-progress :percentage="(item.hqty/item.hplanqty)*100"
                                                    {{parseFloat(item.countInquantity)}}
                                                </view>
                                                <view>{{ parseFloat(item.quantity)}}</view>
                                                <view style="height: 50rpx;display: flex;align-items: center;">
                                                    <u-line-progress
                                                        :percentage="(item.countarrivalquantity/item.quantity)*100"
                                                        height="12" :showText='false'></u-line-progress>
                                                    <view style="margin-left: 6rpx; color:#2979FF">
                                                        {{item.hqty}}
                                                        {{parseFloat(item.countarrivalquantity)}}
                                                    </view>
                                                    <view>
                                                        /
                                                    </view>
                                                    <view>
                                                        {{item.hplanqty}} PCS
                                                    </view>
                                                </view>
                                                <!-- <view>还像还没返回</view> -->
                                                <view v-show="!item.arrowType">{{item.hqty}}</view>
                                                <view v-show="!item.arrowType">{{item.customername}}</view>
                                                <view v-show="!item.arrowType">/</view>
                                                <view v-show="!item.arrowType">
                                                    <view v-if="!item.qualitystatus">/</view>
                                                    <view v-else style="display: flex;align-items: center;">
                                                        <u-icon name="tags-fill" color="green" size="20"
                                                            v-if="item.qualitystatus==='CS'"></u-icon>
                                                        <view style="margin-left: 10rpx;"
                                                            v-if="item.qualitystatus==='CS'">免检</view>
                                                        <u-icon name="checkmark-circle-fill" color="#55ff00" size="20"
                                                            v-if="item.qualitystatus==='OK'"></u-icon>
                                                        <view style="margin-left: 10rpx;"
                                                            v-if="item.qualitystatus==='OK'">合格</view>
                                                        <u-icon name="close-circle-fill" color="#FF0000" size="20"
                                                            v-if="item.qualitystatus==='NG'"></u-icon>
                                                        <view style="margin-left: 10rpx;"
                                                            v-if="item.qualitystatus==='NG'">不合格</view>
                                                        <u-icon name="more-circle-fill" color="#55aaff" size="20"
                                                            v-if="item.qualitystatus==='TS'"></u-icon>
                                                        <view style="margin-left: 10rpx;"
                                                            v-if="item.qualitystatus==='TS'">待检</view>
                                                        {{parseFloat(item.quantity)}} PCS
                                                    </view>
                                                </view>
@@ -110,7 +93,7 @@
                                    </view>
                                    <view class="head_block" v-show="!item.arrowType">
                                    <view class="head_block">
                                        <view class="head_left">
                                            <view class="head_bar"></view>
                                            <view class="head_title" style="font-weight: bold;">
@@ -123,8 +106,7 @@
                                        </view>
                                    </view>
                                    <view class="flex_between marginBottom20 marginLeft20 marginTop20"
                                        v-show="!item.arrowType">
                                    <view class="flex_between marginBottom20 marginLeft20 marginTop20">
                                        <view style="display: flex;">
                                            <view class="flex_column titleFont">
                                                <view>库位信息:</view>
@@ -141,7 +123,99 @@
                                    </view>
                                    <view style="display: flex;justify-content: center;margin : 10rpx; 0">
                                    <view class="flex_column borderSet" v-if='item.children.length>0'
                                        :style="{'borderBottom':ind===item.children.length-1?' 1px blue dotted':'none'}"
                                        v-for="(it,ind) in item.children" :key="item.hbarcode" v-show="!item.arrowType">
                                        <!-- <u-gap height="2" style="width: 90%;margin: auto;" bgColor="#eff0f1"></u-gap> -->
                                        <view class="head_block" style="position: absolute;margin: 38rpx 0 0 0;">
                                            <view class="head_left">
                                                <view class="head_bar"></view>
                                                <view class="head_title" style="font-weight: bold;">
                                                    标签信息
                                                </view>
                                            </view>
                                        </view>
                                        <view class="orderNumber" style="width: 80rpx;margin-left:0" :key="it.hbarcode">
                                            {{(index+1).toString().padStart(2,0)}}-{{ind+1}}
                                        </view>
                                        <!-- v-show="item.children.length>1" -->
                                        <view class="trash" @click="trashChildrenClick(index,ind)">
                                            <u-icon name="trash" size='20'></u-icon>
                                        </view>
                                        <view v-show="item.children.length===1" style="width: 48rpx;height: 48rpx;">
                                        </view>
                                        <view class="flex_between marginBottom20 marginLeft20 marginTop20">
                                            <view style="display: flex;">
                                                <view class="flex_column titleFont">
                                                    <view>物料标签:</view>
                                                    <view>到货单号:</view>
                                                    <view>物料数量:</view>
                                                    <view>供方信息:</view>
                                                    <view>采购批次:</view>
                                                    <view>质量状态:</view>
                                                </view>
                                                <view class="flex_column contentFont">
                                                    <view>{{it.hbarcode?it.hbarcode:'/'}}</view>
                                                    <view>{{it.hbillno?it.hbillno:'/'}}</view>
                                                    <view>{{it.hqty}}</view>
                                                    <view>{{it.hcustomername}}</view>
                                                    <view>/</view>
                                                    <view>
                                                        <view v-if="!it.qstatus">/</view>
                                                        <view v-else style="display: flex;align-items: center;">
                                                            <u-icon name="tags-fill" color="green" size="20"
                                                                v-if="it.qstatus==='CS'"></u-icon>
                                                            <view style="margin-left: 10rpx;" v-if="it.qstatus==='CS'">
                                                                免检</view>
                                                            <u-icon name="checkmark-circle-fill" color="#55ff00"
                                                                size="20" v-if="it.qstatus==='OK'"></u-icon>
                                                            <view style="margin-left: 10rpx;" v-if="it.qstatus==='OK'">
                                                                合格</view>
                                                            <u-icon name="close-circle-fill" color="#FF0000" size="20"
                                                                v-if="it.qstatus==='NG'"></u-icon>
                                                            <view style="margin-left: 10rpx;" v-if="it.qstatus==='NG'">
                                                                不合格</view>
                                                            <u-icon name="more-circle-fill" color="#55aaff" size="20"
                                                                v-if="it.qstatus==='TS'"></u-icon>
                                                            <view style="margin-left: 10rpx;" v-if="it.qstatus==='TS'">
                                                                待检</view>
                                                        </view>
                                                    </view>
                                                </view>
                                            </view>
                                        </view>
                                    </view>
                                    <view v-show='item.children.length>0'
                                        style="display: flex;justify-content: center;margin : 10rpx; 0">
                                        <view class="arrowClass"
                                            @click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
                                            <u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
@@ -150,6 +224,7 @@
                                    </view>
                                    <u-gap height="10" v-if="index!==purchorderArr.length-1" bgColor="#eff0f1"></u-gap>
                                </view>
@@ -196,6 +271,7 @@
        onLoad(option) {
            this.getMesAppPurchInStorSelectCGOrderPart(option.ordercode)
            this.ordercode = option.ordercode
        },
        onPullDownRefresh() {
@@ -216,7 +292,8 @@
                columns: [],
                columnsData: [],
                wareHouseLocationArr: [], //仓库库位数组
                isDisabledSubmitButton: false
                isDisabledSubmitButton: false,
                ordercode: '', //采购订单
            }
        },
        created() {
@@ -314,6 +391,10 @@
                        i.arrowType = ind !== 0
                        i.lcationcode = '' //库位
                        i.stockcode = '' //仓库
                        i.countInquantity2 = parseFloat(i.quantity) - parseFloat(i.countInquantity) +
                            parseFloat(i.countreturnquantity)
                        console.log(i.countInquantity)
                    })
                    this.purchorderArr = res.data
                    this.purchorderObj = this.purchorderArr[0]
@@ -359,6 +440,16 @@
                val.arrowType = true
                this.$forceUpdate()
            },
            trashChildrenClick(index, ind) {
                this.purchorderArr[index].children.splice(ind, 1)
                if (this.purchorderArr[index].children.length > 0) {
                    let sum = 0
                    this.purchorderArr[index].children.forEach(i => {
                        sum += parseFloat(i.hqty)
                    })
                    this.purchorderArr[index].countInquantity2 = sum
                }
            },
            async submit() {
                const data1 = {
                    username: uni.getStorageSync("username")
@@ -369,26 +460,71 @@
                if (ind > -1) { //说明有未填写的库位信息
                    return this.$u.toast('第' + (ind + 1) + '个的库位信息未填写')
                }
                console.log(this.wareHouseLocationArr.flat())
                this.purchorderArr.forEach(i => {
                let count = 0
                this.purchorderArr.forEach((i, index) => {
                    if (parseFloat(i.countInquantity2) <= 0) {
                        return count = index + 1
                    }
                    if (parseFloat(i.countInquantity2) > parseFloat(i.quantity) - parseFloat(i
                            .countInquantity) +
                        parseFloat(i.countreturnquantity)) {
                        return count = index + 1
                    }
                    if (i.children) {
                        i.children.forEach(j => {
                            j.lactioncode = this.purchorderObj.lcationname2
                            j.housecode = this.purchorderObj.stockname2
                            j.harcodelocation = 'IN'
                        })
                    }
                    data2.push({
                        "hbarcode": "",
                        "hbillno": "",
                        "hqty": i.hqty,
                        "hcustomercode": i.customercode,
                        "hdeptcode": i.departmentcode,
                        "hsourceid": i.hsourceid,
                        "hsourcebillno": i.hsourcebillno,
                        "sbid": i.sbid,
                        "partcode": i.partcode,
                        "partname": i.partname,
                        "partspec": i.partspec,
                        "unitcode": i.unitcode,
                        "hsourceid": i.orderid,
                        "hsourcebillno": i.ordercode,
                        "unitname": i.unitname,
                        "quantity": i.quantity,
                        "countarrivalquantity": i.countarrivalquantity,
                        "countInquantity": i.countInquantity2,
                        "countreturnquantity": i.countreturnquantity,
                        "lactioncode": this.purchorderObj.lcationname2,
                        "lactionname": this.purchorderObj.lcationcode,
                        "housecode": this.purchorderObj.stockname2,
                        "housename": this.purchorderObj.stockcode,
                        "deptcode": i.deptcode,
                        "deptname": i.deptname,
                        children: i.children
                        "stockcode": this.purchorderObj.stockname2,
                        "lcationcode": this.purchorderObj.lcationname2
                        // "hbarcode": "",
                        // "hbillno": "",
                        // "hqty": i.hqty,
                        // "hcustomercode": i.customercode,
                        // "hdeptcode": i.departmentcode,
                        // "partcode": i.partcode,
                        // "unitcode": i.unitcode,
                        // "hsourceid": i.orderid,
                        // "hsourcebillno": i.ordercode,
                        // "stockcode": this.purchorderObj.stockname2,
                        // "lcationcode": this.purchorderObj.lcationname2
                    })
                })
                // console.log(JSON.stringify(data2))
                if (count > 0) {
                    return this.$u.toast('第' + count + '个物料的入库数量错误!')
                }
                console.log(JSON.stringify(data2))
                const res = await MesAppPurchInStorSave(this.global.formatData(
                    data1), data2)
@@ -417,23 +553,36 @@
        display: block;
    }
    .borderSet {
        width: 100%;
        border-top: 1px blue dotted;
        border-left: 1px blue dotted;
        border-right: 1px blue dotted;
    }
    .orderNumber {
        width: 60rpx;
        height: 40rpx;
        // margin: -22rpx 0 0 -30rpx;
        background-color: #d3daf9;
        color: #2979FF;
        // background-color: #d3daf9;
        background-color: #2979FF;
        color: #fff;
        font-size: 26rpx;
        padding: 4rpx 0 0 10rpx;
        border-radius: 0 0 90% 0;
        // padding: 4rpx 0 0 10rpx;
        border-radius: 8rpx;
        margin-left: calc(100% - 60rpx);
        display: flex;
        justify-content: center;
    }
    .trash {
        width: 48rpx;
        height: 48rpx;
        margin: -26rpx 0 0 646rpx;
        margin: 20rpx 0rpx -40rpx 646rpx;
        background-color: #d3daf9;
        font-size: 26rpx;
        padding: 6rpx 0 0 10rpx;
@@ -457,4 +606,11 @@
        // border-radius: 10rpx;
        height: 56rpx;
    }
    ::v-deep .u-input--radius {
        padding: 0 !important;
        border-bottom: 2rpx #ccc solid;
    }
</style>