bug
jiangping
2023-12-06 1f4e7d0f73a73e7350cf5a1df279d5f30904c5d5
h5_standard/src/views/needToBeDealtWith/addWarehousing.vue
@@ -29,7 +29,7 @@
            </div>
            <van-swipe-cell v-for="(item, index) in list" :key="index">
                <div class="rework_qd_list">
                    <div class="rework_qd_item" @click="openL(index)">
                    <div class="rework_qd_item" @click="openL(index)" v-if="location">
                        <span><b>*</b>入库货位</span>
                        <div class="rework_qd_item_right">
                            <span :class="item.locationName ? 'black' : ''">{{item.locationName ? item.locationName : '请选择'}}</span>
@@ -43,13 +43,15 @@
                            <van-icon name="arrow" size="20" color="#999999" />
                        </div>
                    </div>
                    <!-- <div class="rework_qd_item" v-if="form.type != 25">
                        <span>生产工序</span>
                        <div class="rework_qd_item_right">
                            <span :class="item.procedureName ? 'black' : ''">{{item.procedureName ? item.procedureName : '请选择'}}</span>
                            <van-icon name="arrow" size="20" color="#999999" />
                    <template v-if="form.type !== 25">
                        <div class="rework_qd_item" v-if="item.hasBom !== 0" @click="openGX(index)">
                            <span>生产工序</span>
                            <div class="rework_qd_item_right">
                                <span :class="item.procedureName ? 'black' : ''">{{item.procedureName ? item.procedureName : '请选择'}}</span>
                                <van-icon name="arrow" size="20" color="#999999" />
                            </div>
                        </div>
                    </div> -->
                    </template>
                    <div class="rework_qd_item" @click="openQ(index)">
                        <span><b>*</b>质量属性</span>
                        <div class="rework_qd_item_right">
@@ -87,8 +89,10 @@
        <Quality :show="qualityShow" @close="close2" @value="getValue2" />
        <!-- 选择货位 -->
        <Location :show="locationShow" :list="locationList" @close="close3" @value="getValue3" />
        <!-- 工序 -->
        <ProductionProcess :show="productionShow" :list="productionList" @close="close4" @value="getValue4" />
        <!-- 单据类型 -->
        <van-popup v-model:show="typeShow" position="bottom" :style="{ height: '50%' }">
        <van-popup v-model:show="typeShow" round position="bottom" :style="{ height: '50%' }">
            <van-picker
                :columns="columns"
                @confirm="onConfirm1"
@@ -103,11 +107,13 @@
    import { onMounted, ref, reactive } from 'vue'
    import { useRouter } from 'vue-router'
    import { Toast } from 'vant'
    import { createForStandard, getListByWarehouseId, wOutBoundForStockUp } from '@/apis/WorkOrderAPI'
    import { getListByWarehouseId, wOutBoundForStockUp } from '@/apis/WorkOrderAPI'
    import { getListByMaterialId } from '@/apis/ExWarehouse'
    import Warehouse from '@/components/common/Warehouse.vue'
    import Material from '@/components/newCom/Material.vue'
    import Quality from '@/components/newCom/quality.vue'
    import Location from '@/components/newCom/location.vue'
    import ProductionProcess from '@/components/newCom/productionProcess.vue'
    const router = useRouter()
    // 表单数据
@@ -119,6 +125,8 @@
    })
    let locationList: any = ref([])
    let location: any = ref(true)
    let productionList: any = ref([])
    let i = ref(0)
@@ -133,10 +141,12 @@
        {
            batch: '',
            locationId: '',
            locationIdLabel: '',
            locationName: '',
            materialId: '',
            materialName: '',
            num: '',
            hasBom: '',
            procedureId: '',
            procedureName: '',
            qualityType: '',
@@ -150,6 +160,7 @@
    let qualityShow = ref<boolean>(false)
    let locationShow = ref<boolean>(false)
    let typeShow = ref<boolean>(false)
    let productionShow = ref<boolean>(false)
    // 打开选择物料
    const openMaterial = (index: number) => {
@@ -158,8 +169,17 @@
    }
    // 打开选择物料
    const openQ = (index: number) => {
        if (list.value[index].locationIdLabel == 'APPLIANCE_ONTEST' || list.value[index].locationIdLabel == 'APPLIANCE_OFFTEST' || list.value[index].locationIdLabel == 'APPLIANCE_USELESS') {
            return
        }
        i.value = index
        qualityShow.value = true
    }
    // 打开工序
    const openGX = (index: number) => {
        if (!list.value[index].materialId) return Toast('请先选择入库物料')
        i.value = index
        productionShow.value = true
    }
    // 打开选择货位
    const openL = (index: number) => {
@@ -168,18 +188,20 @@
        locationShow.value = true
    }
    const addItem = () => {
        // if (!form.warehouseId) return Toast('请选择入库仓库')
        if (!form.warehouseId) return Toast('请选择入库仓库')
        list.value.push({
            batch: '',
            locationId: '',
            locationName: '',
            locationId: list.value[list.value.length - 1].locationId,
            locationName: list.value[list.value.length - 1].locationName,
            locationIdLabel: list.value[list.value.length - 1].locationIdLabel,
            materialId: '',
            materialName: '',
            num: '',
            hasBom: '',
            procedureId: '',
            procedureName: '',
            qualityType: '',
            qualityTypeName: '',
            qualityType: list.value[list.value.length - 1].qualityType,
            qualityTypeName: list.value[list.value.length - 1].qualityTypeName,
            unitId: '',
            unitName: ''
        })
@@ -188,6 +210,12 @@
    const onConfirm1 = (value: any) => {
        form.typeName = value.name
        form.type = value.id
        if (value.id == 25) {
            list.value.forEach(item => {
                item.procedureId = ''
                item.procedureName = ''
            })
        }
        typeShow.value = false
    };
    const onCancel = () => {
@@ -212,7 +240,7 @@
            if (!list.value[i].locationId) return Toast(`第${i+1}项入库货位不能为空`)
            if (!list.value[i].materialId) return Toast(`第${i+1}项入库物料不能为空`)
            if (!list.value[i].qualityType) return Toast(`第${i+1}项质量属性不能为空`)
            if (!list.value[i].num || list.value[i].num == '' || list.value[i].num == 0) {
            if (list.value[i].num <= 0) {
                return Toast(`第${i + 1}项入库数量必须大于0`)
            }
        }
@@ -244,7 +272,8 @@
    // 删除
    const dele = (index: any) => {
        if (list.value.length === 1) {
            Toast('至少保留一条工装信息')
        //    Toast('至少保留一条工装信息')
            Toast('至少保留一条物流清单信息')
            return
        }
        list.value.splice(index, 1)
@@ -265,6 +294,10 @@
    const close3 = (): void => {
        locationShow.value = false
    }
    // 关闭货位选择弹框
    const close4 = (): void => {
        productionShow.value = false
    }
    // 选择仓库回调
    const getValue = (item: any): void => {
        form.warehouseName = item.name
@@ -273,21 +306,55 @@
            .then(res => {
                if (res.code === 200) {
                    locationList.value = res.data
                    list.value.forEach(item => {
                        item.locationId = ''
                        item.locationName = ''
                    })
                    if (res.data.length === 1) {
                        location.value = false
                        list.value.forEach(item => {
                            item.locationId = res.data[0].id
                            item.locationName = res.data[0].unionName
                        })
                        list.value[i.value].locationIdLabel = res.data[0].label
                        if (res.data[0].label === 'APPLIANCE_ONTEST') {
                            list.value[i.value].qualityType = '0'
                            list.value[i.value].qualityTypeName = '合格'
                        } else if (res.data[0].label === 'APPLIANCE_OFFTEST') {
                            list.value[i.value].qualityType = '1'
                            list.value[i.value].qualityTypeName = '不良'
                        } else if (res.data[0].label === 'APPLIANCE_USELESS') {
                            list.value[i.value].qualityType = '2'
                            list.value[i.value].qualityTypeName = '报废'
                        }
                    } else {
                        location.value = true
                        list.value.forEach(item => {
                            item.locationId = res.data[0].id
                            item.locationName = res.data[0].unionName
                        })
                        // list.value.forEach(item => {
                        //     item.locationId = ''
                        //     item.locationName = ''
                        // })
                    }
                }
            })
        warehouseShow.value = false
    }
    // 选择物料
    const getValue1 = (item: any): void => {
        console.log(item)
        list.value[i.value].materialName = item.mmodelUnionName
        list.value[i.value].materialId = item.id
        list.value[i.value].unitId = item.unitId
        list.value[i.value].hasBom = item.hasBom
        list.value[i.value].unitName = item.umodelName
        // 获取物料下工序
        getListByMaterialId({
            materialId: item.id
        }).then(res => {
            if (res.code === 200) {
                productionList.value = res.data
                list.value[i.value].procedureId = ''
                list.value[i.value].procedureName = ''
            }
        })
        materialsShow.value = false
    }
    // 选择质量属性
@@ -300,8 +367,27 @@
    const getValue3 = (item: any): void => {
        list.value[i.value].locationId = item.id
        list.value[i.value].locationName = item.unionName
        list.value[i.value].qualityType = ''
        list.value[i.value].qualityTypeName = ''
        list.value[i.value].locationIdLabel = item.label
        if (item.label === 'APPLIANCE_ONTEST') {
            list.value[i.value].qualityType = '0'
            list.value[i.value].qualityTypeName = '合格'
        } else if (item.label === 'APPLIANCE_OFFTEST') {
            list.value[i.value].qualityType = '1'
            list.value[i.value].qualityTypeName = '不良'
        } else if (item.label === 'APPLIANCE_USELESS') {
            list.value[i.value].qualityType = '2'
            list.value[i.value].qualityTypeName = '报废'
        }
        locationShow.value = false
    }
    // 选择工序
    const getValue4 = (item: any): void => {
        list.value[i.value].procedureId = item.id
        list.value[i.value].procedureName = item.name
        productionShow.value = false
    }
    onMounted(() => {
        // 获取工装信息
        // getLKInfo(route.query.id as string)