skyouc
2025-08-07 33b5b3d2fb2b41cdce6e4cb783f27ee70ad3afb8
zy-asrs-admin/src/components/orderOut/orderOutWavePreview/index.vue
@@ -61,6 +61,16 @@
            return customColSpanProps(index)
        },
    },
    {
        title: '库位类型',
        dataIndex: 'type',
        width: 110,
        ellipsis: true,
        ...getColumnSearchProps('type'),
        customCell: (_, index) => {
            return customColSpanProps(index)
        },
    }
];
const state = reactive({
@@ -102,11 +112,10 @@
        tmp.push({
            title: formatMessage('db.man_order_detl.anfme', '数量'),
            dataIndex: 'anfme',
            width: 140,
            width: 60,
            ellipsis: true,
            fixed: 'right',
        })
        tmp.push({
            title: formatMessage('db.man_order_detl.locNo', '出库库位'),
            dataIndex: 'locNo',
@@ -165,17 +174,37 @@
        list: tableData.value
    };
    post('/api/out/orderOut/merge/wave', requestParam).then((resp) => {
        let result = resp.data;
        if (result.code == 200) {
            message.success(formatMessage('page.add.success', '出库成功'));
            open.value = false;
            emit('closeParent', true)
            emit('reload', true)
        } else {
            message.error(result.msg);
        }
    })
    let locs = tableData.value.filter(item => item.locId == null && item.locs.length < 1);
    if (locs != null && locs.length > 0) {
        message.error("物料库存不足,无法生成出库任务 !!");
        return
    }
    Modal.confirm({
        title: formatMessage('page.cancel', '取消'),
        content: formatMessage('page.cancel.confirm', '确定生成出库任务吗?'),
        maskClosable: true,
        onOk: async () => {
            const hide = message.loading(formatMessage('common.loading', '请求中'));
            try {
                post('/api/out/orderOut/merge/wave', requestParam).then((resp) => {
                    let result = resp.data;
                    if (result.code == 200) {
                        message.success(formatMessage('page.add.success', '出库成功'));
                        open.value = false;
                        emit('closeParent', true)
                        emit('reload', true)
                    } else {
                        message.error(result.msg);
                    }
                })
            } catch (error) {
                message.error(formatMessage('common.fail', '请求失败'));
            }
        },
    });
}
const handleOrderMergePreview = async () => {
@@ -212,8 +241,8 @@
                    dataTmp.locNo = null;
                    dataTmp.locDetlId = null;
                    dataTmp.anfme = item.anfme;
                    dataTmp.typeId = val.typeId;
                    dataTmp.workQty = val.workQty;
                    dataTmp.typeId = item.typeId;
                    dataTmp.workQty = item.workQty;
                    dataTmp.key = idx;
                    dataTmp.operationPort = defaultOperationPort;
@@ -243,20 +272,20 @@
                        tableDataTmp.push(dataTmp);
                    }
                    if (isused > 0) {
                        let dataTmp = JSON.parse(JSON.stringify(item));
                        dataTmp.locId = null;
                        dataTmp.locNo = null;
                        dataTmp.locDetlId = null;
                        dataTmp.typeId = val.typeId;
                        dataTmp.workQty = val.workQty;
                        dataTmp.anfme = isused;
                        dataTmp.key = idx;
                        dataTmp.operationPort = defaultOperationPort;
                    // if (isused > 0) {
                    //     let dataTmp = JSON.parse(JSON.stringify(item));
                    //     dataTmp.locId = null;
                    //     dataTmp.locNo = null;
                    //     dataTmp.locDetlId = null;
                    //     dataTmp.typeId = item.typeId;
                    //     dataTmp.workQty = item.workQty;
                    //     dataTmp.anfme = isused;
                    //     dataTmp.key = idx;
                    //     dataTmp.operationPort = defaultOperationPort;
                        tableDataTmp.push(dataTmp);
                        count++;
                    }
                    //     tableDataTmp.push(dataTmp);
                    //     count++;
                    // }
                }
                colSpan[idx] = count;
@@ -344,10 +373,12 @@
                <template #bodyCell="{ column, text, record, index }">
                    <template v-if="column.dataIndex === 'locNo'">
                        <div v-if="record.locId != null && record.anfme > 0">
                            <!-- <a-tag color="green">{{ record.locNo }}</a-tag> -->
                            <a-select v-model:value="record.locId" :options="record.otherLocs"
                            <!--                             <a-tag color="green">{{ record.locNo }}</a-tag>-->
                            <a-select v-model:value="record.locNo" :options="record.otherLocs"
                                :fieldNames="{ label: 'locNo', value: 'locId' }"
                                @change="handleOtherLocChange(index, record)"></a-select>
                                @change="handleOtherLocChange(index, record)">
                            </a-select>
                        </div>
                        <div v-else>
                            <a-tag color="red">库存不足</a-tag>