loulijun2021
2024-05-14 9e7bbd1a203c39c74b81624640a5ea8f6e247ba3
1.外协收料不良数量可填多个
已修改3个文件
462 ■■■■ 文件已修改
pages/scgl/scbg.vue 134 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wwgl/wxfl.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wwgl/wxsl.vue 326 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/scgl/scbg.vue
@@ -145,29 +145,6 @@
                            </view>
                        </view>
                        <!--                     <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
                            <view style="color: #fff;margin-right: 6rpx;">*</view> 不良数量:
                            <view class='inputClass'>
                                <u--input placeholder="请输入" border="surround" :adjustPosition='false'
                                    @change='ngqtyChange' type='number' v-model="ngqty"></u--input>
                            </view>
                        </view>
                        <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                            <view style="display: flex;" class="titleFont">
                                <view style="color: #fff;margin-right: 6rpx;">*</view> 不良原因:
                            </view>
                            <view @click='badSheetClick' class="custominputClass">
                                <view v-show='badSheetValue.length===0' style="color: rgb(192, 196, 204);">请选择</view>
                                <view v-show='badSheetValue.length!==0' class="ellipsis" style="width: 390rpx;">
                                    {{badSheetValue}}
                                </view>
                                <u-icon :name="!badSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
                            </view>
                        </view> -->
                    </view>
                </view>
@@ -190,13 +167,13 @@
                        <u-button type="primary" :plain="true" icon='plus-circle' text="添加"
                            style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
                        <!-- ngqtyArr -->
                        <view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
                            <!-- {{item.uid}} -->
                            <view class="badNumber">{{index+1}}</view>
                            <u-icon name="trash" size="20" class="trash" @click="trashDelete(index)"
                                color="rgb(0, 102, 255)"></u-icon>
                            <u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
                                @click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
                            <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
                                <view style="color: #fff;margin-right: 6rpx;">*</view> 不良数量:
@@ -204,7 +181,7 @@
                                    <u--input placeholder="请输入" border="surround" :adjustPosition='false' type='number'
                                        v-model="item.ngqty"></u--input>
                                </view>
                                <!-- @change='ngqtyChange(item)' -->
                            </view>
                            <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                                <view style="display: flex;" class="titleFont">
@@ -225,13 +202,6 @@
                        </view>
                        <!--
                        <u-button type="primary" :plain="true" icon='plus-circle' text="添加"
                            style="width: 90%;margin: 20rpx auto;" @click="add"></u-button> -->
                    </view>
                </view>
@@ -300,22 +270,6 @@
                    </u-checkbox-group>
                </view>
            </u-action-sheet>
            <!-- <u-popup :show="userSheetShow" @close="userSheetShow=false" customStyle='customPopupStyle'
                :safeAreaInsetTop='true' @open="open">
                <u-checkbox-group @change="userCheckboxChange" size='20px' v-model="userCheckBoxValue"
                    iconPlacement="right" placement="column">
                    <view v-for="(item,index) in userSelectArrAll">
                        <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
                            :name='item.name' :label="item.name">
                        </u-checkbox>
                    </view>
                </u-checkbox-group>
            </u-popup> -->
            <!-- 报工人员 -->
            <u-picker v-if="topContent.length!==0" :show="operSheetShow" :columns="operColumns" :itemHeight='55'
@@ -473,7 +427,7 @@
        mounted() {
            this.init()
            this.getMesOrderStepStart('MO-2024-01-0004_1;102')
            // this.getMesOrderStepStart('MO-2024-01-0004_1;102')
            this.getSellectAllApi()
        },
@@ -570,14 +524,7 @@
            },
            userCheckboxChange(val) {
                this.userCheckBoxValue = val.join(',')
                // this.userCheckBoxValue = ['001']
                // this.$forceUpdate()
                // console.log(this.userCheckBoxValue);
            },
            //获取开工信息
            async getMesOrderStepStart(orderstepqrcode) {
@@ -592,12 +539,6 @@
                if (res.code === '200' && res.count === 1) {
                    this.formData = res.data
                    this.topContent.unshift(res.data)
                    // this.getGroupsPermissions(res.data.wkshopcode)
                    // let o = res.data.wo_code + ';' + res.data.stepcode
                    // this.getEqpPermissionsPlus(o)
                    // this.getDefectPermissions(o)
                    // this.getPersonPermissions()
                } else if (res.code === '200' && res.count !== 1) {
                    this.$u.toast('此工序已报工!')
                }
@@ -632,17 +573,6 @@
                });
            },
            // 步进器值改变时
            numberBoxChange(val) {
                this.userArr.find(i => i.usercode === val.name).ratio = parseFloat(val.value).toFixed(2)
            },
            ngqtyChange(val) {
                if (!parseFloat(val)) {
                    this.badSheetValue = ''
                    this.checkBoxValue = ''
                }
            },
            async submit() {
                // 下午写生产报工提交
@@ -660,16 +590,9 @@
                    return uni.$u.toast('报工数量不能为空!')
                }
                // if (parseFloat(this.reportqty) + parseFloat(this.ngqty) > parseFloat(this.topContent[0].noreportqty)) {
                //     return uni.$u.toast('报工数量加不良数量不能大于未报数量!')
                // }
                if (this.reckway === '班组' && this.operSheetValue.length === 0) {
                    return uni.$u.toast('报工人员信息不能为空!')
                }
                let badcode = []
@@ -681,14 +604,6 @@
                    })
                }
                // if (this.ngqty !== '') {
                //     if (badcode.length === 0) {
                //         return uni.$u.toast('不良原因未选择!')
                //     }
                // }
                let reportuser = []
                if (this.operSheetValue.length > 0) {
@@ -699,28 +614,30 @@
                    })
                }
                console.log(this.userSelectValue);
                // reportuser = this.userArr.map(i => i.usercode).join(';') //报工人员
                // 不良原因
                const defectlist = []
                //不良数量
                let ngqtyNumber = 0
                this.ngqtyArr.forEach(i => {
                    if (i.badSheetValue.toString().length > 0) {
                        let codeArr = []
                        ngqtyNumber += parseFloat(i.ngqty)
                        i.badSheetValue.split(',').forEach(j => {
                            codeArr.push(this.badSelectArr.find(i => i.name === j).code)
                        })
                        defectlist.push({
                            badqty: i.ngqty,
                            defect_code: codeArr.join(',')
                        })
                    }
                })
                if (parseFloat(this.reportqty) + parseFloat(ngqtyNumber) > parseFloat(this.topContent[0]
                        .noreportqty)) {
                    return uni.$u.toast('报工数量加不良数量不能大于未报数量!')
                }
@@ -763,7 +680,7 @@
                    remarks: ''
                }
                console.log(JSON.parse(JSON.stringify(data)), 7777)
                // console.log(JSON.parse(JSON.stringify(data)), 7777)
                this.isDisabledSubmitButton = true
                const res = await SavaMesOrderStepReport(data)
                if (res.code === '200') {
@@ -829,8 +746,6 @@
                // console.log(val,9999999)
            },
            badSheetClick(item) {
                // console.log(item, 1)
                if (!item.ngqty) {
                    return uni.$u.toast('请先填写不良数量!')
                }
@@ -843,19 +758,15 @@
            badSelectClose() {
                let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
                this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
                this.ngqtyArr[index].arrowDown = true
                this.checkBoxValue = []
                this.badSheetShow = false
            },
            checkboxChange(val) {
                this.badSheetValue = val.join(',')
                console.log(this.badSheetValue, 5);
            },
            operSheetClick() {
                if (this.reckway === '个人') {
@@ -969,19 +880,6 @@
        max-height: 600rpx !important;
        overflow: auto !important;
    }
    ::v-deep .u-number-box__minus {
        height: 50rpx !important;
    }
    ::v-deep .u-number-box__input {
        height: 50rpx !important;
    }
    ::v-deep .u-number-box__plus {
        height: 50rpx !important;
    }
    ::v-deep .u-checkbox-label--right {
        padding: 30rpx;
pages/wwgl/wxfl.vue
@@ -221,7 +221,7 @@
            this.init()
            this.getMesOrderStepStart('MO-2023-09-0002_1;106')
            // this.getMesOrderStepStart('MO-2023-09-0002_1;106')
            this.handleSelectAllApi()
pages/wwgl/wxsl.vue
@@ -105,44 +105,6 @@
                        </view>
                    </view>
                    <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
                        <view style="color: #fff;margin-right: 6rpx;">*</view> 不良数量
                        <view style="margin-left: 20rpx;">
                            <view class='inputClass'>
                                <u--input placeholder="请输入" border="surround" @change='ngqtyChange' type='number'
                                    v-model="ngqty">
                                </u--input>
                            </view>
                        </view>
                    </view>
                    <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                        <view style="display: flex;" class="titleFont">
                            <view style="color: #fff;margin-right: 6rpx;">*</view> 不良原因
                        </view>
                        <view style="margin-left: 20rpx;">
                            <view @click='badSheetClick' class="custominputClass">
                                <view v-show='badSheetValue.length===0' style="color: rgb(192, 196, 204);">请选择</view>
                                <view v-show='badSheetValue.length!==0' class="ellipsis" style="width: 390rpx;">
                                    {{badSheetValue}}
                                </view>
                                <u-icon :name="!badSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
                            </view>
                        </view>
                    </view>
                    <!--     <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                        <view style="display: flex;" class="titleFont">
                            <view style="color: #fff;margin-right: 6rpx;">*</view> 收料备注
                        </view>
                        <view style="margin-left: 20rpx;">
                            <view class='inputClass'>
                                <u--textarea v-model="notes" placeholder="请输入"></u--textarea>
                            </view>
                        </view>
                    </view> -->
                </view>
@@ -176,27 +138,68 @@
                </view>
                <u-gap height="10" bgColor="#eff0f1"></u-gap>
                <view class="head  marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
                    <view class="head_block">
                        <view class="head_left">
                            <view class="head_bar"></view>
                            <view class="head_title">
                                不良统计
                            </view>
                        </view>
                    </view>
                    <view class="flex_column ">
                        <u-button type="primary" :plain="true" icon='plus-circle' text="添加"
                            style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
                        <view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
                            <view class="badNumber">{{index+1}}</view>
                            <u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
                                @click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
                            <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
                                <view style="color: #fff;margin-right: 6rpx;">*</view> 不良数量:
                                <view class='inputClass'>
                                    <u--input placeholder="请输入" border="surround" :adjustPosition='false' type='number'
                                        v-model="item.ngqty"></u--input>
                                </view>
                            </view>
                            <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
                                <view style="display: flex;" class="titleFont">
                                    <view style="color: #fff;margin-right: 6rpx;">*</view> 不良原因:
                                </view>
                                <view @click='badSheetClick(item)' class="custominputClass">
                                    <view v-show='item.badSheetValue.length===0' style="color: rgb(192, 196, 204);">请选择
                                    </view>
                                    <view v-show='item.badSheetValue.length!==0' class="ellipsis"
                                        style="width: 390rpx;">
                                        {{item.badSheetValue}}
                                    </view>
                                    <u-icon :name="item.arrowDown?'arrow-down-fill':'arrow-up-fill'"></u-icon>
                                </view>
                            </view>
                            <u-divider></u-divider>
                        </view>
                    </view>
                </view>
            </view>
            <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
                :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSheetShow=false" :show="badSheetShow"
                @select='badSheetSelect'>
                <view style="min-height: 100rpx;padding: 20rpx 20rpx 30rpx 20rpx;">
                    <u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
                        placement="column">
                        <view v-for="(item,index) in badSelectArr">
                            <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
                                :name='item.name' :label="item.name">
                            </u-checkbox>
                            <u-divider :key="item.code"></u-divider>
                        </view>
                    </u-checkbox-group>
                </view>
            </u-action-sheet>
            <u-picker v-if="topContent.length!==0" :show="WXSheetShow" :columns="WXColumns" :itemHeight='55'
@@ -209,6 +212,25 @@
                :closeOnClickOverlay='true' @close='userSheetShow=false' @confirm='userPickerConfirm'
                @cancel='userSheetShow=false'>
            </u-picker>
            <!-- 不良原因 -->
            <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
                :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSelectClose" :show="badSheetShow"
                @select='badSheetSelect'>
                <view style="min-height: 100rpx;">
                    <u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
                        placement="column">
                        <view v-for="(item,index) in badSelectArr">
                            <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
                                :name='item.name' :label="item.name">
                            </u-checkbox>
                        </view>
                    </u-checkbox-group>
                </view>
            </u-action-sheet>
        </view>
@@ -303,6 +325,21 @@
                badSheetValue: '',
                ngqtyArr: [{
                        uid: new Date().getTime(),
                        ngqty: '',
                        badSheetValue: '',
                        arrowDown: true //向下箭头
                    },
                    // {
                    //     ngqty: '',
                    //     badSheetValue: '',
                    //     arrowDown: true //向下箭头
                    // },
                ], //不良数量、不良原因数组
                notes: null //备注
@@ -317,7 +354,7 @@
            this.init()
            this.getMesOrderStepStart('MO-2023-09-0002_1;106')
            // this.getMesOrderStepStart('MO-2023-09-0002_1;106')
            this.handleSelectAllApi()
@@ -341,11 +378,9 @@
                this.userColumns = [res.data.map(i => i.username)]
            },
            async getCustomerPermissions(val) {
                const data = {
                    orderstepqrcode: val
                }
                const res = await CustomerPermissions(this.global.formatData(data))
            async getCustomerPermissions() {
                const res = await CustomerPermissions()
                this.WXSheetList = res.data
                this.WXColumns = [res.data.map(i => i.name)]
            },
@@ -412,10 +447,13 @@
                });
            },
            badSheetClick() {
                if (!this.ngqty) {
            badSheetClick(item) {
                if (!item.ngqty) {
                    return uni.$u.toast('请先填写不良数量!')
                }
                item.arrowDown = !item.arrowDown
                this.checkBoxValue = item.badSheetValue.split(',')
                this.badSheetShow = true
            },
@@ -445,11 +483,35 @@
                this.userSheetShow = false
            },
            ngqtyChange(val) {
                if (!parseFloat(val)) {
                    this.badSheetValue = ''
                    this.checkBoxValue = ''
                }
            // 添加
            add() {
                // if (this.ngqtyArr.find(i => i.badSheetValue === '')) {
                //     return uni.$u.toast('请先完善前面不良选项!')
                // }
                this.ngqtyArr.unshift({
                    uid: new Date().getTime(),
                    ngqty: '',
                    badSheetValue: '',
                    arrowDown: true //向下箭头
                })
            },
            //删除
            trashDelete(index) {
                this.ngqtyArr.splice(index, 1)
            },
            badSelectClose() {
                let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
                this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
                this.ngqtyArr[index].arrowDown = true
                this.checkBoxValue = []
                this.badSheetShow = false
            },
@@ -469,39 +531,39 @@
                let t = this.topContent[0].list.find(i => i.tp === this.WXSheetValue)
                if (!this.ngqty && (parseFloat(this.sqty) > parseFloat(t.fqty) - parseFloat(t.sqty) - parseFloat(t
                        .ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
                if (!t) {
                    return uni.$u.toast('请选择可收料的供应商!')
                }
                if (!this.ngqtyArr[0].ngqty && (parseFloat(this.sqty) > parseFloat(t.fqty) - parseFloat(t.sqty) -
                        parseFloat(t
                            .ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
                    return uni.$u.toast('收料数量不能大于该供应商的可收收料!')
                }
                if (this.ngqty && (parseFloat(this.sqty) + parseFloat(this.ngqty) > parseFloat(t.fqty) - parseFloat(t
                // 不良原因
                const defectlist = []
                //不良数量
                let ngqtyNumber = 0
                this.ngqtyArr.forEach(i => {
                    if (i.badSheetValue.toString().length > 0) {
                        let codeArr = []
                        ngqtyNumber += parseFloat(i.ngqty)
                        i.badSheetValue.split(',').forEach(j => {
                            codeArr.push(this.badSelectArr.find(i => i.name === j).code)
                        })
                        defectlist.push({
                            badqty: i.ngqty,
                            defect_code: codeArr.join(',')
                        })
                    }
                })
                if ((parseFloat(this.sqty) + parseFloat(ngqtyNumber) > parseFloat(t.fqty) - parseFloat(t
                        .sqty) - parseFloat(t.ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
                    return uni.$u.toast('收料数量+不良数量不能大于该供应商的可收收料!')
                }
                if (this.ngqty && !this.badSheetValue) {
                    return uni.$u.toast('不良原因不能为空!')
                }
                let badcode = []
                if (this.badSheetValue.length > 0) {
                    this.badSelectArr.forEach(i => {
                        if (this.badSheetValue.split(',').includes(i.name)) {
                            badcode.push(i.code)
                        }
                    })
                }
                // const header = {
                //     'Content-Type': 'application/x-www-form-urlencoded',
                //     'rediskey': uni.getStorageSync('rediskey'),
                //     'admin': uni.getStorageSync('usercode'),
                //     'username': encodeURIComponent(uni.getStorageSync('username')),
                //     'navTabId': uni.getStorageSync('usercode'),
                //     'userid': uni.getStorageSync('userid'),
                //     'guid': uni.getStorageSync('guid'),
                //     'usertype': 'APP'
                // }
                const D = {
@@ -526,10 +588,7 @@
                    sqty: this.sqty, // 收料数量
                    // ngqty: !this.ngqty ? 0 : this.ngqty,
                    remarks: this.notes,
                    defectlist: badcode.length > 0 ? [{
                        defect_code: badcode.join(','),
                        badqty: this.ngqty
                    }] : [],
                    defectlist,
                    inbarcode: R[0].labcode, //入库条码
                }
@@ -553,39 +612,6 @@
                    this.isDisabledSubmitButton = false
                }
                // this.isDisabledSubmitButton = true
                // uni.uploadFile({
                //     url: this.$baseUrl + '/AppProductionManagement/SavaMesOrderStepIn',
                //     files: [{
                //         "uri": "/"
                //     }],
                //     header: header,
                //     formData: data,
                //     success: (res) => {
                //         console.log(res, 77)
                //         uni.$u.toast('收料成功!')
                //         this.WXSheetValue = ''
                //         this.userSheetValue = ''
                //         this.checkBoxValue = ''
                //         this.badSheetValue = ''
                //         this.sqty = null
                //         this.ngqty = null
                //         this.notes = null
                //         this.topContent = []
                //         this.isDisabledSubmitButton = false
                //     },
                //     fail(res) {
                //         uni.$u.toast('收料失败!')
                //         this.isDisabledSubmitButton = false
                //     },
                // })
            }
        }
    }
@@ -598,6 +624,16 @@
        display: block;
    }
    ::v-deep .u-action-sheet {
        max-height: 600rpx !important;
        overflow: auto !important;
    }
    ::v-deep .u-checkbox-label--right {
        padding: 30rpx;
        border-bottom: 1rpx solid #eee;
    }
    .custominputClass {
        width: 412rpx;
        display: flex;
@@ -607,4 +643,24 @@
        padding: 0 16rpx;
        line-height: 68rpx;
    }
    .badSheetClass {
        position: relative;
    }
    .badNumber {
        position: absolute;
        top: 20rpx;
        left: 20rpx;
        font-size: 26rpx;
        color: rgb(0, 102, 255)
    }
    .trash {
        position: absolute;
        top: 20rpx;
        right: 30rpx;
        font-size: 26rpx;
    }
</style>