diff --git a/src/api/wms/purchasereturnRequestDetail/index.ts b/src/api/wms/purchasereturnRequestDetail/index.ts index 18e6f6dde..8489337bc 100644 --- a/src/api/wms/purchasereturnRequestDetail/index.ts +++ b/src/api/wms/purchasereturnRequestDetail/index.ts @@ -112,4 +112,21 @@ export const exportPurchasereturnRequestDetail = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/wms/purchasereturn-request-detail/get-import-template' }) +} + +// 选择收货单明细 +// 查询采购退货申请子列表 +export const queryPurchasereceiptSpareRecordBySupplier = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereceipt-record-detail/queryPurchasereceiptSpareRecordBySupplier', data }) + } else { + return await request.get({ url: `/wms/purchasereceipt-record-detail/queryPurchasereceiptSpareRecordBySupplier`, params }) + } +} + +// 维修退货申请子表数据 +export const queryBalancePurchaseReceiptSpareReturn = async (params) => { + return await request.get({ url: `/wms/purchasereturn-request-main/queryBalancePurchaseReceiptSpareReturn`, params }) } \ No newline at end of file diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue index da30f3178..2b596b97a 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue @@ -51,7 +51,7 @@ - + /> --> + + + + + + @@ -131,6 +162,15 @@ import { PurchasereReturnRequestDetailLabel, PurchasereceiptRecordMain1 } from './purchasereturnRequestSpareMain.data' +import { + PurchasereturnRequestMainNew, + PurchasereturnRequestMainRulesNew, + PurchasereturnRequestDetailNew, + PurchasereturnRequestDetailRulesNew, + PurchasereturnPurchasereceiptRecordNew +} from './purchasereturnRequestSpareMainNew.data' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' + import * as PurchasereturnRequestMainApi from '@/api/wms/purchasereturnRequestMain' import * as PurchasereturnRequestDetailApi from '@/api/wms/purchasereturnRequestDetail' import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' @@ -143,8 +183,10 @@ import { async } from '@antv/x6/lib/registry/marker/async' import { getJmreportBaseUrl } from '@/utils/systemParam' import { formatDate } from '@/utils/formatTime' import { usePageLoading } from '@/hooks/web/usePageLoading' +import { PurchaseMain, PurchaseDetail } from '@/views/wms/purchasereceiptManage/supplierdeliver/purchaseMainWms/purchaseMain.data' + const { loadStart, loadDone } = usePageLoading() -// 采购退货申请 +// 维修备件退货申请 defineOptions({ name: 'PurchasereturnRequestSpareMain' }) const message = useMessage() // 消息弹窗 @@ -229,7 +271,118 @@ const searchTableSuccessLabel = (formField, searchField, val, formRef, type, row } }) } +const onChangeForm = async (field, cur, formRef)=>{ + console.log('onChangeForm',field, cur, formRef) + if(field=='supplierCode'){ + //供应商 + PurchasereturnRequestMainNew.allSchemas.formSchema.forEach(item=>{ + // 物料名称赋值 + if(item.field=='supplierCode'){ + let setV = {} + setV['supplierName'] = item.componentProps.options?.find(el=>el.supplierCode==cur+'')['supplierName'] + formRef.value.setValues(setV) + } + }) + getPurchanseList() + } +} +const getPurchanseList = async ()=>{ + let res = await PurchaseDetailApi.getPurchaseDetailPageWMS({ + supplierCode: formRef.value.formRef.formModel.supplierCode, + itemCode: formRef.value.formRef.formModel.itemCode, + pageSize: 20, + pageNo: 1, + sort: '', + by: 'ASC' + }) + if(res&&res.list&&res.list.length==1){ + const setV = {} + setV['hahaha'] = '' + setV['hehehe'] = res.list[0]['number'] + setV['poNumber'] = res.list[0]['number'] + setV['poLine'] = res.list[0]['lineNumber'] + setV['receiptNumber'] = '' + setV['asnNumber'] = '' + formRef.value.formRef.setValues(setV) + } + console.log('采购订单',res) +} +// 直接选择采购订单 +const choosePurchanseList = ()=>{ + + if(!formRef.value.formRef.formModel.supplierCode){ + message.error('请选择供应商') + return + } + searchTableRef.value.open( + "直接选择采购订单", + PurchaseMain.allSchemas, + PurchaseDetailApi.getPurchaseDetailPageWMS, + "hehehe", + "hehehe", + false, + 'tableForm', + null, + { + supplierCode:formRef.value.formRef.formModel.supplierCode, + }, + undefined, + true, + PurchaseDetail.allSchemas + ) +} +// 选择收货单明细 +const chooseReceiptList = ()=>{ + + if(!formRef.value.formRef.formModel.supplierCode){ + message.error('请选择供应商') + return + } + searchTableRef.value.open( + "收货单明细", + PurchasereturnPurchasereceiptRecordNew.allSchemas, + PurchasereturnRequestDetailApi.queryPurchasereceiptSpareRecordBySupplier, + "hahaha", + "hahaha", + false, + 'tableForm', + null, + { + supplierCode:formRef.value.formRef.formModel.supplierCode, + }, + undefined, + false, + null + ) +} +const searchTableRef = ref() +// 选择收货单明细、直接选择采购订单 +const searchTableSuccess1 = (formField, searchField, val, type, row) => { + console.log('searchTableSuccess1',formField, searchField, val, type, row) + + if(formField=='hahaha'){ + // 选择收货单明细 + const setV = {} + setV['hehehe'] = '' + setV['hahaha'] = val[0]['receiptNumber'] + setV['poNumber'] = val[0]['poNumber'] + setV['poLine'] = val[0]['poLine'] + setV['receiptNumber'] = val[0]['receiptNumber'] + setV['asnNumber'] = val[0]['asnNumber'] + formRef.value.formRef.setValues(setV) + }else if(formField=='hehehe'){ + // 直接选择采购订单 + const setV = {} + setV['hahaha'] = '' + setV['hehehe'] = val[0]['number'] + setV['poNumber'] = val[0]['number'] + setV['poLine'] = val[0]['lineNumber'] + setV['receiptNumber'] = '' + setV['asnNumber'] = '' + formRef.value.formRef.setValues(setV) + } +} // 查询页面返回 const searchTableSuccess = async (formField, searchField, val, formRef, type, row) => { console.log('searchTableSuccess', formField, searchField, val, formRef, type, row) @@ -237,115 +390,36 @@ const searchTableSuccess = async (formField, searchField, val, formRef, type, ro nextTick(async () => { if (type == 'tableForm') { // 明细查询页赋值 - if (formField == 'itemCode') { - val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['batch']==item['batch']&&item1['packingNumber']==item['packingNumber']&&item1['fromLocationCode']==item['locationCode']&&item1['inventoryStatus']==item['inventoryStatus'])) - - val.forEach(item=>{ - let newRow = {...item} - newRow[formField] = item[searchField] - newRow['batch'] =item['batch'] - newRow['itemCode'] =item['itemCode'] - newRow['uom'] = item['uom'] - newRow['itemName'] = item['itemName'] - newRow['inventoryBalance'] = item['qty'] - newRow['fromLocationCode'] = item['locationCode'] - newRow['packingNumber'] = item['packingNumber'] - newRow['inventoryStatus'] = item['inventoryStatus'] - tableData.value.push(newRow) - }) - - } else if (formField == 'fromLocationCode') { - row[formField] = val[0][searchField] - // let params = { - // itemCode: row.itemCode, - // batch: row.batch, - // locationCode:val[0]['code'] - // } - // let aa = await BalanceApi.getSumByConditions(params); - // console.log('23423423',aa); - // row['inventoryBalance'] = aa//库存余额 - } else if (formField == 'packingNumber') { - // row[formField] = val[0][searchField] - val.forEach((item,index)=>{ - if(index==0){ - row[formField] = item[searchField] - row['inventoryBalance'] = item['qty'] //库存余额 - }else{ - let newRow = {...row} - newRow[formField] = item[searchField] - row['inventoryBalance'] = item['qty'] //库存余额 - tableData.value.push(newRow) - } - }) - // row['inventoryBalance'] = val[0]['qty'] //库存余额 - }else{ - row[formField] = val[0][searchField] - } + row[formField] = val[0][searchField] } else { const setV = {} - if (formField == 'purchaseReceiptRecordNumber') { - // isShowButton.value = false - setV[formField] = val[0][searchField] - setV['purchaseReceiptRecordNumber'] = val[0]['number'] - setV['supplierCode'] = val[0]['supplierCode'] - setV['asnNumber'] = val[0]['asnNumber'] - setV['ppNumber'] = val[0]['ppNumber'] - // 获取子表数据 getBomDisassemble - // PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailList({ - PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailListToRepeat({ - masterId: val[0]['masterId'] - }) - .then((res) => { - if (res) tableData.value = res - tableData.value.forEach((item) => { - item.batch = item.toBatch - item.packingNumber = item.fromPackingNumber - item.containerNumber = item.toContainerNumber - item.receiptQty = item.qty - item.packUnit = item.packUnit - item.packQty = item.packQty - item.toLocationGroupCode = null - item.toWarehouseCode = null - item.fromLocationCode = null - item.toAreaTypes = null - item.toLocationCode = null - // item.fromLocationCode = item.fromLocationCode - // item.fromLocationGroupCode = item.fromLocationGroupCode - }) - originTableData.value = JSON.parse(JSON.stringify(tableData.value)) - - PurchasereturnRequestMain.allSchemas.formSchema.forEach((item) => { - if (item.field == 'supplierCode') { - item.componentProps.disabled = true - } - }) - PurchasereturnRequestDetail.allSchemas.tableFormColumns.map((item) => { - item.tableForm.disabled = true - if (item.field == 'remark') { - item.tableForm.disabled = false - } - if (item.field == 'qty') { - item.tableForm.disabled = false - } - // if (item.field == 'returnedQty') { - // item.tableForm.disabled = false - // } - if (item.field == 'reason') { - item.tableForm.disabled = false - } - }) - }) - .catch((err) => { - console.log(err) + setV[formField] = val[0][searchField] + if(formField=='supplierCode'){ + setV['supplierName'] = val[0]['shortName'] + tableData.value = [] + }else if(formField == 'locationCode' ){ + // 退货库位 获取明细列表 + let subList = await PurchasereturnRequestDetailApi.queryBalancePurchaseReceiptSpareReturn({ + supplierCode:formRef.formModel.supplierCode,//供应商代码 + poNumber:formRef.formModel.poNumber,// + receiptNumber:formRef.formModel.receiptNumber,//采购收货记录单号 + fromLocationCode:val[0][searchField]//库位代码 }) + + console.log('subList',subList) + if(subList&&subList.length>0){ + tableData.value = subList + tableData.value.forEach((item,index)=>({ + 'id':index + })) + }else{ + tableData.value = [] + } } - if (formField == 'supplierCode') { - // isShowButton.value = true - setV['supplierCode'] = val[0]['code'] - // setV['purchaseReceiptRecordNumber'] = '' - // tableData.value = [] - } + + formRef.setValues(setV) + } }) } @@ -728,108 +802,9 @@ PurchasereturnRequestDetail.allSchemas.tableFormColumns.forEach((item) => { const tableData = ref([]) const originTableData = ref([]) -const searchTableRef = ref() -// 添加明细 -const handleAddTable = () => { - const subTableDFata = originTableData.value.filter( - (item) => !tableData.value.find((item1) => item1.id == item.id) - ) - if (subTableDFata.length == 0) { - message.warning('暂无可选择数据!') - return - } - const tableObject = { - // 当前页 - currentPage: 1, - // 导出加载中 - exportLoading: false, - // 加载中 - loading: false, - // 页数 - pageSize: subTableDFata.length, - params: null, - // 排序 - sort: { - order: '', // 排序规则 - prop: '' // 排序字段 - }, - // 总条数 - total: subTableDFata.length, - // 表格数据 - tableList: subTableDFata, - currentRow: null - } - - const tableColumns = PurchasereturnRequestDetail.allSchemas.tableFormColumns - tableColumns.forEach((item) => { - item.width = item.table?.width || 150 - }) - searchTableRef.value.openData('采购收货记录单号', tableObject, { tableColumns }, true) - // searchTableRef.value.open( - // ('供应商信息', - // // _searchTableAllSchemas, - // // _searchTablePage, // 接口 - // // formField, - // // searchField, - // true,//是否多选 - // // type, - // // row, - // _searchCondition - // ) - // ) - // console.log(subTableDFata) - // const {tableObject, tableMethods } = useTable({ - // getListApi: getPage.value // 分页接口 - // }) - // searchTableRef.value.open( - // ('供应商信息', - // // _searchTableAllSchemas, - // // _searchTablePage, // 接口 - // // formField, - // // searchField, - // true,//是否多选 - // // type, - // // row, - // _searchCondition - // ) - // ) - // tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys))) - // let purchaseReceiptRecordNumber = formRef.value.formRef.formModel.purchaseReceiptRecordNumber - // PurchasereturnRequestDetail.allSchemas.tableFormColumns.map((item) => { - // item.tableForm.disabled = true - // if (item.field == 'remark') { - // item.tableForm.disabled = false - // } - // if (item.field == 'reason') { - // item.tableForm.disabled = false - // } - // if (item.field == 'qty') { - // item.tableForm.disabled = false - // } - // if(purchaseReceiptRecordNumber == ''){ - // if (item.field == 'itemCode') { - // item.tableForm.isInpuFocusShow = true - // } - // if(item.field == 'poLine'){ - // item.tableForm.isInpuFocusShow = false - // } - // }else{ - // if (item.field == 'itemCode') { - // item.tableForm.isInpuFocusShow = false - // } - // if(item.field == 'poLine'){ - // item.tableForm.isInpuFocusShow = true - // } - // } - // }) -} -const searchTableSuccess1 = (formField, searchField, val, formRef, type, row) => { - console.log(val) - tableData.value = [...tableData.value, ...val] -} // 删除明细 const handleDeleteTable = (item, index, formRef) => { let itemIndex = tableData.value.indexOf(item) @@ -869,6 +844,9 @@ const submitForm = async (formType, submitData) => { if (data.masterId) { data.id = data.masterId } + tableData.value.forEach(item=>{ + item['fromLocationCode'] = data['locationCode'] + }) console.log('submitForm', tableData.value) // if(tableData.value.find(item=>Number(item.returnedQty)>Number(item.receiptQty))){ // message.warning("退货数量不能大于收获数量") diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue index 559eade55..e70bcc3b3 100644 --- a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue @@ -137,6 +137,7 @@ import { getJmreportBaseUrl } from '@/utils/systemParam' import { usePageLoading } from '@/hooks/web/usePageLoading' const { loadStart, loadDone } = usePageLoading() // 备件收货申请 +// 维修备件收货申请 defineOptions({ name: 'PurchasereceiptRequestMain' }) const message = useMessage() // 消息弹窗