diff --git a/index.html b/index.html index e164a59b3..e1dc00eea 100644 --- a/index.html +++ b/index.html @@ -132,7 +132,7 @@
- +
%VITE_APP_TITLE%
diff --git a/src/api/qms/samplingScheme/index.ts b/src/api/qms/samplingScheme/index.ts index c65058f2e..fdf76e455 100644 --- a/src/api/qms/samplingScheme/index.ts +++ b/src/api/qms/samplingScheme/index.ts @@ -11,7 +11,7 @@ export interface SamplingSchemeVO { export const getSamplingSchemePage = async (params) => { if (params.isSearch) { delete params.isSearch - const data = {...params} + const data = { ...params } return await request.post({ url: '/qms/sampling-scheme/senior', data }) } else { return await request.get({ url: `/qms/sampling-scheme/page`, params }) diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 4161dd29e..926b8068f 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -103,4 +103,9 @@ export const updatePassword = (data : UserVO) => { export const getUserListByDeptIds = (data : Array) => { return request.post({ url: '/system/user/getUserListByDeptIds', data }) } +// 获取全部用户 +export const getUserListAll = () => { + return request.get({ url: '/system/user/listAll' }) +} + diff --git a/src/api/wms/purchasereturnRecordDetail/index.ts b/src/api/wms/purchasereturnRecordDetail/index.ts index 99f783649..420405cba 100644 --- a/src/api/wms/purchasereturnRecordDetail/index.ts +++ b/src/api/wms/purchasereturnRecordDetail/index.ts @@ -48,6 +48,18 @@ export const getPurchasereturnRecordDetailPage = async (params) => { return await request.get({ url: `/wms/purchasereturn-record-detail/page`, params }) } } + +// 查询采购退货记录子列表 +export const getPurchasereturnRecordDetailPageSpare = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-record-detail/seniorSpare', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-record-detail/pageSpare`, params }) + } +} + export const getPurchasereturnRecordDetailPageSCP = async (params) => { if (params.isSearch) { delete params.isSearch diff --git a/src/api/wms/purchasereturnRequestDetail/index.ts b/src/api/wms/purchasereturnRequestDetail/index.ts index a50d8fcce..9a7a46f64 100644 --- a/src/api/wms/purchasereturnRequestDetail/index.ts +++ b/src/api/wms/purchasereturnRequestDetail/index.ts @@ -38,6 +38,18 @@ export const getPurchasereturnRequestDetailPage = async (params) => { } } + +// 查询采购退货申请子列表 +export const getPurchasereturnRequestDetailPageSpare = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/purchasereturn-request-detail/seniorSpare', data }) + } else { + return await request.get({ url: `/wms/purchasereturn-request-detail/pageSpare`, params }) + } +} + // 查询采购退货申请子详情 export const getPurchasereturnRequestDetail = async (id: number) => { return await request.get({ url: `/wms/purchasereturn-request-detail/get?id=` + id }) diff --git a/src/api/wms/remark/index.ts b/src/api/wms/remark/index.ts index 3ee317540..b650d78aa 100644 --- a/src/api/wms/remark/index.ts +++ b/src/api/wms/remark/index.ts @@ -1,6 +1,9 @@ import request from '@/config/axios' // 查询备注列表 export const getRemarkPage = async (params) => { + if (params.tableName){ + params.tableName = toSnakeCase(params.tableName) + } return await request.get({ url: `/infra/remark/list`, params }) } diff --git a/src/assets/imgs/logo_white.png b/src/assets/imgs/logo_white.png index a3a435c43..fe3f26474 100644 Binary files a/src/assets/imgs/logo_white.png and b/src/assets/imgs/logo_white.png differ diff --git a/src/assets/imgs/logo_white1.png b/src/assets/imgs/logo_white1.png new file mode 100644 index 000000000..a3a435c43 Binary files /dev/null and b/src/assets/imgs/logo_white1.png differ diff --git a/src/assets/imgs/logo_white_blue.png b/src/assets/imgs/logo_white_blue.png new file mode 100644 index 000000000..5f8214f15 Binary files /dev/null and b/src/assets/imgs/logo_white_blue.png differ diff --git a/src/assets/imgs/logo_white_btn.png b/src/assets/imgs/logo_white_btn.png new file mode 100644 index 000000000..e980cce17 Binary files /dev/null and b/src/assets/imgs/logo_white_btn.png differ diff --git a/src/components/DetailTable/src/DetailTable.vue b/src/components/DetailTable/src/DetailTable.vue index cfeff2750..35ff02954 100644 --- a/src/components/DetailTable/src/DetailTable.vue +++ b/src/components/DetailTable/src/DetailTable.vue @@ -77,7 +77,7 @@ const forrmatter1 = (item) => { return allList.value.itemTypeList.find((cur) => cur.value == item.value).label }else if(item?.type == 'ITEMS_GROUP'){ return allList.value.itemGroupList.find((cur) => cur.value == item.value).label - }else if(item?.type == 'ITEMS_CODE'){ + }else if(item?.type == 'ITEM_CODE'){ // return allList.value.itembasicAllList.find((cur) => cur.value == item.value).label }else if(item?.type == 'WAREHOUSE_CODE'){ // return allList.value.warehouseAllList.find((cur) => cur.value == item.value).label diff --git a/src/components/ImportForm/src/ImportDetailForm.vue b/src/components/ImportForm/src/ImportDetailForm.vue index 2fac1ad26..d8a45338b 100644 --- a/src/components/ImportForm/src/ImportDetailForm.vue +++ b/src/components/ImportForm/src/ImportDetailForm.vue @@ -90,10 +90,10 @@ @@ -364,7 +364,7 @@ const buttonTableClick = async (val, row) => { tableObject.loading = false console.log(err) }) - } else if (val == 'edit') { // 编辑 + } else if (val == 'edit') { // 编辑 openForm('update', row) } else if (val == 'delete') { // 删除 handleDelete(row.masterId) @@ -403,7 +403,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"requestIssueMain") } /** 删除按钮操作 */ diff --git a/src/views/wms/issueManage/onlinesettlement/onlinesettlementRecordMain/index.vue b/src/views/wms/issueManage/onlinesettlement/onlinesettlementRecordMain/index.vue index d5d90e77b..b4f8a8d89 100644 --- a/src/views/wms/issueManage/onlinesettlement/onlinesettlementRecordMain/index.vue +++ b/src/views/wms/issueManage/onlinesettlement/onlinesettlementRecordMain/index.vue @@ -139,7 +139,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"recordOnlinesettlementMain") } /** 导出按钮操作 */ diff --git a/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/index.vue b/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/index.vue index bdb8faf57..8a2b05fab 100644 --- a/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/index.vue +++ b/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/index.vue @@ -116,7 +116,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => if(tableData.value.find(item1=>item1['itemCode'] == val[0]['componentItemCode'])){ message.warning(`物料${val[0]['componentItemCode']}已经存在`) return - } + } row['itemCode'] = val[0]['componentItemCode'] row['uom'] = val[0]['componentUom'] } else if(formField == 'workStation'){ @@ -419,7 +419,7 @@ const openForm =async (type: string, row?: number) => { /** 详情操作 */ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"planPreparetoissueMain") } /** 删除按钮操作 */ @@ -489,20 +489,21 @@ const submitForm = async (formType, submitData) => { data.subList = tableData.value // 拼接子表数据参数 try { if (formType === 'create') { - await PreparetoissueMainApi.createPreparetoissueMain(data).then((res) => { + await PreparetoissueMainApi.createPreparetoissueMain(data).then(async (res) => { if (res.status == '6') { // 生成发料申请 - PreparetoissueMainApi.generateIssueRequest(res.number) + await PreparetoissueMainApi.generateIssueRequest(res.number) } + getList() }) message.success(t('common.createSuccess')) } else { await PreparetoissueMainApi.updatePreparetoissueMain(data) message.success(t('common.updateSuccess')) + getList() } formRef.value.dialogVisible = false // 刷新当前列表 - getList() } finally { formRef.value.formLoading = false } diff --git a/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts b/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts index 45148f84e..a709b6926 100644 --- a/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts +++ b/src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts @@ -524,8 +524,7 @@ export const PreparetoissueDetail = useCrudSchemas(reactive([ form: { // labelMessage: '信息提示说明!!!', componentProps: { - enterSearch:true, - isSearchList: true, // 开启查询弹窗 + isSearchList: false, // 开启查询弹窗 searchListPlaceholder: '请选择工位', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 searchTitle: '工位信息', // 查询弹窗标题 @@ -557,16 +556,17 @@ export const PreparetoissueDetail = useCrudSchemas(reactive([ } }, tableForm: { - enterSearch: true, isShowTableFormSearch:true, multiple: true, - isInpuFocusShow: true, + disabled: true, + isInpuFocusShow: false, searchListPlaceholder: '请选择工位', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 searchTitle: '工位信息', // 查询弹窗标题 searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类 searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法 verificationPage: WorkStationApi.getWorkstationByCodes,// 失去焦点校验输入框的数据内容存在 + isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据 searchCondition: [{ key: 'productionLineCode', value: 'prodLine', diff --git a/src/views/wms/issueManage/productionreceipt/productionreceiptJobMain/index.vue b/src/views/wms/issueManage/productionreceipt/productionreceiptJobMain/index.vue index feaba54ef..611dd428c 100644 --- a/src/views/wms/issueManage/productionreceipt/productionreceiptJobMain/index.vue +++ b/src/views/wms/issueManage/productionreceipt/productionreceiptJobMain/index.vue @@ -288,7 +288,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"jobProductionreceiptMain") } /** 导出按钮操作 */ diff --git a/src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/index.vue b/src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/index.vue index 7adfda3b6..23ce2913b 100644 --- a/src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/index.vue +++ b/src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/index.vue @@ -144,7 +144,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"recordProductionreceiptMain") } /** 导出按钮操作 */ diff --git a/src/views/wms/issueManage/productionreturn/productionreturnJobMain/index.vue b/src/views/wms/issueManage/productionreturn/productionreturnJobMain/index.vue index fc7c9400a..2d64cb732 100644 --- a/src/views/wms/issueManage/productionreturn/productionreturnJobMain/index.vue +++ b/src/views/wms/issueManage/productionreturn/productionreturnJobMain/index.vue @@ -260,7 +260,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"jobProductionreturnMain") } /** 导出按钮操作 */ diff --git a/src/views/wms/issueManage/productionreturn/productionreturnRecordMain/index.vue b/src/views/wms/issueManage/productionreturn/productionreturnRecordMain/index.vue index cd2f00442..ae8aebbeb 100644 --- a/src/views/wms/issueManage/productionreturn/productionreturnRecordMain/index.vue +++ b/src/views/wms/issueManage/productionreturn/productionreturnRecordMain/index.vue @@ -144,7 +144,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"recordProductionreturnMain") } /** 导出按钮操作 */ diff --git a/src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue b/src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue index a77b1ffdb..82d8d0dfa 100644 --- a/src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue +++ b/src/views/wms/issueManage/productionreturn/productionreturnRequestMain/index.vue @@ -191,7 +191,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => if(tableData.value.find(item1=>item1['itemCode'] == val[0]['itemCode'])){ message.warning(`物料${val[0]['itemCode']}已经存在`) return - } + } const isType = await isItemType(val[0]['itemCode'], labelType.value) if(!isType){ @@ -574,7 +574,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"requestProductionreturnMain") } /** 详情操作——子表表单 */ const detailOpenForm = (type, row) => { diff --git a/src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue b/src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue index 660783b9f..529e57f8a 100644 --- a/src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue +++ b/src/views/wms/issueManage/productionreturn/productionreturnRequestMainNo/index.vue @@ -177,24 +177,30 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => if (type == 'tableForm') { // 明细查询页赋值 if(formField == 'itemCode') { + if(tableData.value.find(item1=>item1['itemCode'] == val[0]['itemCode'])){ + message.warning(`物料${val[0]['itemCode']}已经存在`) + return + } + const isType = await isItemType(val[0]['itemCode'], labelType.value) if(!isType){ message.warning('当前物料可制造与其他数据不一致,请重新选择!') } else { + row['batch'] = val[0]['batch']==''?formatTime(new Date(), 'yyyyMMdd'):val[0]['batch'] row['itemCode'] = val[0]['itemCode'] row['uom'] = val[0]['uom'] row['inventoryStatus'] = val[0]['inventoryStatus'] - row['qty'] = val[0]['qty'] + row['qty'] = Number(val[0]['qty']) // 修改 tableform 属性 数量最大值设置为库存余额中数量 - ProductionreturnRequestDetail.allSchemas.tableFormColumns.map(item => { - if(item.field == 'qty') { - item.tableForm.max = val[0]['qty'] - } - if(item.field == 'batch') { - item.tableForm.disabled = false - } - }) + ProductionreturnRequestDetail.allSchemas.tableFormColumns.forEach(item => { + if(item.field == 'qty' && Number(val[0]['qty'])>item.tableForm.min) { + item.tableForm.max = Number(val[0]['qty']) + } + if(item.field == 'batch') { + item.tableForm.disabled = false + } + }) } } else if(formField == 'workStationCode') { val.forEach(item=>{ @@ -518,7 +524,7 @@ const openForm =async (type: string, row?: number) => { /** 详情操作 */ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"requestProductionreturnMainNo") } /** 删除按钮操作 */ @@ -710,7 +716,7 @@ const labelPrint = async (row) => { // 批量打印--生产退料 const searchTableSuccess1 = async (formField, searchField, val, formRef, type, row) => { - + console.log('批量打印',val) // let rows:any = [] // val.forEach(item=>{ diff --git a/src/views/wms/issueManage/repleinsh/repleinshJobMain/index.vue b/src/views/wms/issueManage/repleinsh/repleinshJobMain/index.vue index e9c5c7b07..d780368bc 100644 --- a/src/views/wms/issueManage/repleinsh/repleinshJobMain/index.vue +++ b/src/views/wms/issueManage/repleinsh/repleinshJobMain/index.vue @@ -316,7 +316,7 @@ const buttonTableClick = async (val, row) => { /** 详情操作 */ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"jobRepleinshMain") } /** 导出按钮操作 */ diff --git a/src/views/wms/issueManage/repleinsh/repleinshRecordMain/index.vue b/src/views/wms/issueManage/repleinsh/repleinshRecordMain/index.vue index f88f486ac..5f1e898c8 100644 --- a/src/views/wms/issueManage/repleinsh/repleinshRecordMain/index.vue +++ b/src/views/wms/issueManage/repleinsh/repleinshRecordMain/index.vue @@ -141,7 +141,7 @@ const buttonTableClick = async (val, row) => { /** 详情操作 */ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"record_repleinsh_main") } /** 导出按钮操作 */ diff --git a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue index 47f275fad..b01025176 100644 --- a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue +++ b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue @@ -76,7 +76,7 @@ /> - @@ -116,7 +116,7 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => if(tableData.value.find(item1=>item1['itemCode'] == item['code'])){ message.warning(`物料${item['code']}已经存在`) return - } + } const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) newRow['itemCode'] = item['code'] newRow['uom'] = item['uom'] @@ -317,7 +317,7 @@ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { const departmentCode = wsCache.get(CACHE_KEY.DEPT).find((account) => account.id == row.departmentCode)?.name if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode)) - detailRef.value.openDetail(row, titleName, titleValue) + detailRef.value.openDetail(row, titleName, titleValue,"requestRepleinshMain") } /** 删除按钮操作 */ @@ -363,7 +363,7 @@ const tableData = ref([]) // 添加明细 const handleAddTable = () => { tableData.value.push(JSON.parse(JSON.stringify(tableFormKeys))) - + } // 删除明细 const handleDeleteTable = (item, index) => { diff --git a/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/index.vue b/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/index.vue index 0aa1d217f..7c0b349df 100644 --- a/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/index.vue +++ b/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/index.vue @@ -133,6 +133,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => //到货主代码 row['toOwnerCode'] = val[0]['code'] }else if(formField == 'fromPackingNumber'){ + val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['fromBatch']==item['batch']&&item1['fromPackingNumber']==item['packingNumber']&&item1['locationCode']==item['locationCode']&&item1['fromInventoryStatus']==item['inventoryStatus'])) + if(val.length==0) return val.forEach(item=>{ const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) newRow[formField] = item[searchField] diff --git a/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts b/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts index b6e8cc592..5f543209e 100644 --- a/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts +++ b/src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts @@ -682,23 +682,41 @@ export const InventorychangeRequestDetail = useCrudSchemas(reactive nextTick(() => { if (type == 'tableForm') { if(formField == 'fromPackingNumber'){ - + val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['fromBatch']==item['batch']&&item1['fromPackingNumber']==item['packingNumber']&&item1['fromLocationCode']==item['locationCode']&&item1['fromInventoryStatus']==item['inventoryStatus'])) + if(val.length==0) return val.forEach(item=>{ const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) newRow['fromPackingNumber'] = item['packingNumber'] diff --git a/src/views/wms/productionManage/productionplan/productionMain/index.vue b/src/views/wms/productionManage/productionplan/productionMain/index.vue index c53a2a76f..e44583cff 100644 --- a/src/views/wms/productionManage/productionplan/productionMain/index.vue +++ b/src/views/wms/productionManage/productionplan/productionMain/index.vue @@ -120,6 +120,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => // }) if(formField=='itemCode'){ // row[formField] = val[0][searchField] + let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['itemCode'])) + if(itemCodes.length>0){ + itemCodes = itemCodes.map(item=>(item.itemCode)) + message.warning(`物料${itemCodes.join(',')}已经存在`) + } + val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode'])) + if(val.length==0) return val.forEach(async item=>{ if(tableData.value.find(item1=>item1['id'] == item['id'])) return const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) diff --git a/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue b/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue index 7e2c041af..c27dcfade 100644 --- a/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue +++ b/src/views/wms/productionManage/productionplan/productionMainAssemble/index.vue @@ -118,6 +118,13 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => // console.log(err); // }) if(formField == 'itemCode'){ + let itemCodes = val.filter(item=>tableData.value.find(item1=>item1['itemCode']==item['itemCode'])) + if(itemCodes.length>0){ + itemCodes = itemCodes.map(item=>(item.itemCode)) + message.warning(`物料${itemCodes.join(',')}已经存在`) + } + val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode'])) + if(val.length==0) return val.forEach(async item=>{ const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) newRow[formField] = item[searchField] diff --git a/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts b/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts index 6ba9cca28..32159d869 100644 --- a/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts +++ b/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts @@ -691,7 +691,8 @@ export const ProductionDetail = useCrudSchemas(reactive([ }, tableForm:{ multiple: true, - enterSearch:true, + disabled: true, + // enterSearch:true, // isInpuFocusShow: true, searchListPlaceholder: '请选择物料代码', // 输入框占位文本 searchField: 'itemCode', // 查询弹窗赋值字段 diff --git a/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/index.vue b/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/index.vue index 1e9dde54f..5006d4d04 100644 --- a/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/index.vue +++ b/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/index.vue @@ -210,6 +210,10 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => row['packQty'] = val[0]['packQty'] row[formField] = val[0][searchField] }else if (formField == 'itemCode') { + if(tableData.value.find(item1=>item1['itemCode'] == val[0]['itemCode'])){ + message.warning(`物料${val[0]['itemCode']}已经存在`) + return + } row['uom'] = val[0]['uom'] row['produceDate'] = dayjs().valueOf() row[formField] = val[0][searchField] diff --git a/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/index.vue b/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/index.vue index 491dc8daf..0ce049b13 100644 --- a/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/index.vue +++ b/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/index.vue @@ -211,6 +211,10 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => row['packQty'] = val[0]['packQty'] row[formField] = val[0][searchField] }else if (formField == 'itemCode') { + if(tableData.value.find(item1=>item1['itemCode'] == val[0]['itemCode'])){ + message.warning(`物料${val[0]['itemCode']}已经存在`) + return + } row['uom'] = val[0]['uom'] row['produceDate'] = dayjs().valueOf() row[formField] = val[0][searchField] diff --git a/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue b/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue index 086524541..85d9c1a37 100644 --- a/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue +++ b/src/views/wms/productionManage/productredress/productredressRequestMain/index.vue @@ -131,6 +131,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => // 明细查询页赋值 row[formField] = val[0][searchField] if (formField == 'itemCode') { + val = val.filter(item=>!tableData.value.find(item1=>item1['itemCode']==item['itemCode']&&item1['batch']==item['batch']&&item1['packingNumber']==item['packingNumber']&&item1['locationCode']==item['locationCode']&&item1['inventoryStatus']==item['inventoryStatus'])) + if(val.length==0) return val.forEach(item=>{ if(tableData.value.find(item1=>item1['itemCode'] == item['itemCode']&&item1['batch'] == item['batch']&&item1['packingNumber'] == item['packingNumber']&&item1['toLocationCode'] == item['locationCode']&&item1['inventoryStatus'] == item['inventoryStatus'])) return const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...item})) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue index f32d747da..16f684f64 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue @@ -92,11 +92,11 @@ - + @@ -189,10 +189,12 @@ const buttonTableClick = async (val, row) => { } } // 查看质检报告 +const reportHeight = ref(window.innerHeight - 120) const showQualityReport = ref(false) const qualityReport = ref('') const checkQualityReport = async (row)=>{ showQualityReport.value = true + // qualityReport.value = "http://localhost/purchasereceiptReport?asnNumber=ASNS20240720-0002" qualityReport.value = `${getReportUrl()}/purchasereceiptReport?asnNumber=${row.asnNumber}` } diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue index 761fe31c3..47aba1611 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue @@ -510,6 +510,13 @@ const searchTableSuccess1 = async (formField, searchField, val, formRef, type, r } const updateTableData = (tableList)=>{ + let itemCodes = tableList.filter(item=>tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode'])) + if(itemCodes.length>0){ + itemCodes = itemCodes.map(item=>(item.itemCode)) + message.warning(`物料${itemCodes.join(',')}已经存在`) + } + tableList = tableList.filter(item=>!tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode'])) + if(tableList.length==0) return tableList.forEach(row=>{ //poNumber poLine itemCode batch const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row})) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue index 8863f857d..3aececbe4 100644 --- a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue @@ -487,6 +487,13 @@ const searchTableSuccess1 = async (formField, searchField, val, formRef, type, r } const updateTableData = (tableList)=>{ + let itemCodes = tableList.filter(item=>tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode'])) + if(itemCodes.length>0){ + itemCodes = itemCodes.map(item=>(item.itemCode)) + message.warning(`物料${itemCodes.join(',')}已经存在`) + } + tableList = tableList.filter(item=>!tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode'])) + if(tableList.length==0) return tableList.forEach(row=>{ //poNumber poLine itemCode batch const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row})) diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue index 7875f9402..c63cf0ccf 100644 --- a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue @@ -719,7 +719,10 @@ const handleSubmit = async (id: number) => { message.success(t('common.submitSuccess')) await getList() tableObject.loading = false - } catch {} + } catch { + } finally { + tableObject.loading = false + } } /** 导出按钮操作 */ @@ -915,9 +918,11 @@ const submitForm = async (formType, submitData) => { formRef.value.formLoading = false return } + data.returnSourceType='1' await PurchasereturnRequestMainApi.createPurchasereturnRequestMain(data) message.success(t('common.createSuccess')) } else { + data.returnSourceType='1' await PurchasereturnRequestMainApi.updatePurchasereturnRequestMain(data) message.success(t('common.updateSuccess')) } diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/index.vue new file mode 100644 index 000000000..b45a912ed --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/index.vue @@ -0,0 +1,198 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/purchasereturnRecordSpareMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/purchasereturnRecordSpareMain.data.ts new file mode 100644 index 000000000..98ed4935a --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/purchasereturnRecordSpareMain.data.ts @@ -0,0 +1,903 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +/** + * @returns {Array} 采购退货记录主表 + */ +export const PurchasereturnRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 190, + fixed: 'left' + }, + sortTableDefault: 1012, + sortSearchDefault:1, + isSearch: true + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 190 + }, + isTable: true + }, + // { + // label: '任务单号', + // field: 'jobNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable: false + // }, + // { + // label: '采购收货记录单号', + // field: 'purchaseReceiptRecordNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isSearch: true, + // sortTableDefault: 3, + // sortSearchDefault: 5, + // }, + // { + // label: 'qad采购退货记录单号', + // field: 'qadPurchaseReturnRecordCode', + // sort: 'custom', + // table: { + // width: 180 + // }, + // sortSearchDefault:3, + // sortTableDefault: 4, + // isTable: false + // }, + // { + // label: '发货单号', + // field: 'asnNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // sortSearchDefault:3, + // isSearch: false, + // sortTableDefault: 2 + // }, + // { + // label: '要货计划单号', + // field: 'ppNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable: false + // }, + // { + // label: '供应商代码', + // field: 'supplierCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1, + // sortSearchDefault:2, + // isSearch: true + // }, + { + label: '从月台代码', + field: 'fromDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '运输方式', + field: 'transferMode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '入库事务类型', + field: 'inTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '原因', + field: 'available', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '操作', + // field: 'action', + // isDetail: false, + // isForm: false, + // table: { + // width: 150, + // fixed: 'right' + // }, + // } +])) + +//表单校验 +export const PurchasereturnRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'change' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货记录子表 + */ +export const PurchasereturnRecordDetail = useCrudSchemas(reactive([ + + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1001, + sortSearchDefault: 1001, + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + hiddenInMain: true, + sortSearchDefault: 1002, + sortTableDefault: 1001, + }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1004, + // }, + // { + // label: '包装数量', + // field: 'packQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1004, + // form: { + // component: 'InputNumber', + // } + // }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + sortTableDefault: 1004, + hiddenInMain:true, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6, + disabled:false + } + }, + { + label: '从器具号', + field: 'fromContainerNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain: true + }, + { + label: '到器具号', + field: 'toContainerNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain: true + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1000, + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1000, + hiddenInMain: true + }, + { + label: '替代批次', + field: 'altBatch', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain: true + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1009, + hiddenInMain: true + }, + // { + // label: '到库位代码', + // field: 'toLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1009, + // hiddenInMain: true + // }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库位组代码', + // field: 'toLocationGroupCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库区代码', + // field: 'toAreaCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + // { + // label: '从货主代码', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + // { + // label: '到货主代码', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1008, + hiddenInMain: true + }, + // { + // label: '订单号', + // field: 'poNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 4, + // }, + // { + // label: '订单行', + // field: 'poLine', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 5, + // }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault: 1013, + hiddenInMain: true, + isSearch: false + }, + { + label: '原因', + field: 'reason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1013, + hiddenInMain: true + }, + + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault: 6, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 6, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + // { + // label: '数量', + // field: 'qty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:true, + // sortTableDefault: 1005, + // form: { + // component: 'InputNumber', + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sortTableDefault: 1006, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1011, + hiddenInMain: true + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1007, + hiddenInMain: true + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1014, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1014, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, +])) + +//表单校验 +export const PurchasereturnRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + reason: [ + { required: true, message: '请选择原因', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + fromLocationGroupCode: [ + { required: true, message: '请选择从库位组代码', trigger: 'change' } + ], + fromAreaCode: [ + { required: true, message: '请选择从库区代码', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poline: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue new file mode 100644 index 000000000..758a5cfff --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue @@ -0,0 +1,1017 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMain.data.ts new file mode 100644 index 000000000..cfe8ea285 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMain.data.ts @@ -0,0 +1,1674 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from "@/api/wms/location"; +import {Location} from "@/views/wms/basicDataManage/factoryModeling/location/location.data"; +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + + + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'PurchaseReturnRequest' +} + const data = await getRequestsettingApi.getRequestsettingPage(queryParams) + const requestsettingData =data?.list[0]||{} + + // 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + + +// 采购收货记录展示列 +export const PurchasereceiptRecordMain1 = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + fixed: 'left', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '采购收货记录单号', + field: 'number', + fixed: 'left', + sort: 'custom', + table: { + width: 200 + }, + isSearch: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: true + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // + // }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + }, + + +])) + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + // { + // label: '供应商代码', + // field: 'supplierCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:1, + // isSearch: true, + // form:{ + // componentProps:{ + // enterSearch: true, + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + // searchField: 'code', // 查询弹窗赋值字段 + // searchTitle: '供应商信息', // 查询弹窗标题 + // searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + // searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法 + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // } + // } + // }, + // { + // label: '维修备件收货记录单号', + // field: 'purchaseReceiptRecordNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // enterSearch: true, + // disabled:true, + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择采购收货记录单号', // 输入框占位文本 + // searchField: 'number', // 查询弹窗赋值字段 + // searchTitle: '采购收货记录', // 查询弹窗标题 + // searchAllSchemas: PurchasereceiptRecordMain1.allSchemas, // 查询弹窗所需类 + // searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageReturn, // 查询弹窗所需分页方法 + // searchCondition: [ + // { + // key: 'supplierCode', + // value: 'supplierCode', + // isMainValue: true + // }], + // verificationParams: [{ + // key: 'number', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // } + // } + // }, + // { + // label: '发货单号', + // field: 'asnNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isForm: false, + // sortTableDefault:2 + // }, + // { + // label: '要货计划单号', + // field: 'ppNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isForm: false, + // isTable: false, + // }, + // { + // label: '承运商', + // field: 'carrierCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '运输方式', + // field: 'transferMode', + // sort: 'custom', + // dictType: DICT_TYPE.TRANSFER_MODE, + // dictClass: 'string', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '车牌号', + // field: 'vehiclePlateNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '从仓库代码', + // field: 'fromWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + // }, + // { + // label: '到仓库代码', + // field: 'toWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm:false, + // isForm: false, + // isTable: false, + // }, + // { + // label: '从库区类型范围', + // field: 'fromAreaTypes', + // dictType: DICT_TYPE.AREA_TYPE, + // dictClass: 'string', + // isTable: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // }, + // { + // label: '到库区类型范围', + // field: 'toAreaTypes', + // dictType: DICT_TYPE.AREA_TYPE, + // dictClass: 'string', + // isTable: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm:false, + // isForm: false, + // }, + // { + // label: '从库区代码范围', + // field: 'fromAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + // }, + // { + // label: '到库区代码范围', + // field: 'toAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + // isTableForm:false, + // }, + // { + // label: '从月台代码', + // field: 'fromDockCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + + // }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'PurchaseReturn', + componentProps: { + disabled: true + } + }, + isForm: false, + isTable: false, + }, + // { + // label: '申请时间', + // field: 'requestTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // isForm: false, + // isTable: false, + // }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm:false, + isTableForm:false, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isForm:false, + table: { + width: 150 + }, + isTable: false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTable:false, + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: false + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + } +])) + +//表单校验 +export const PurchasereturnRequestMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + dueTime: [ + { required: true, message: '请选择截止时间', trigger: 'blur' } + ], + purchaseReceiptRecordNumber: [ + { required: true, message: '请输入采购收货记录单号', trigger: 'blur' } + ], + carrierCode: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + vehiclePlateNumber: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + fromWarehouseCode: [ + { required: true, message: '请输入从仓库代码', trigger: 'blur' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetail = useCrudSchemas(reactive([ + // { + // label: '订单号', + // field: 'poNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + // { + // label: '订单行', + // field: 'poLine', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // isInpuFocusShow: false, // 开启查询弹窗 + // searchListPlaceholder: '请选择订单行', + // searchField: 'poLine', + // searchTitle: '采购收货记录信息', + // searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + // searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + // searchCondition: [{ + // key: 'number', + // value: 'purchaseReceiptRecordNumber', + // message: '请填写采购收货记录号!', + // isMainValue: true + // }] + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // isSearchList: false, + // searchListPlaceholder: '请选择订单行', + // searchField: 'poLine', + // searchTitle: '采购收货记录信息', + // searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + // searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + // searchCondition: [{ + // key: 'number', + // value: 'purchaseReceiptRecordNumber', + // message: '请填写采购收货记录号!', + // isMainValue: true + // }] + // } + // }, + // }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.getBalancePageSpare, + searchCondition: [{ + key: 'available', + value: 'TRUE', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReturnSpare', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'inOrOut', + value: 'out', + action: '==', + isSearch: true, + isMainValue: false + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.getBalancePageSpare, + searchCondition: [{ + key: 'available', + value: 'TRUE', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReturnSpare', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'inOrOut', + value: 'out', + action: '==', + isSearch: true, + isMainValue: false + }] + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '替代批次', + field: 'altBatch', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '器具号', + field: 'containerNumber', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + tableForm:{ + disabled:true + }, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:false, + tableForm:{ + disabled:true, + type:'InputNumber', + min:0, + precision: 6 + } + }, + // { //与国强联调的时候发现退货数量用的是qty + // label: '退货数量', + // field: 'returnedQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // disabled:false + // } + // }, + // isTable: false, + // isTableForm: false, + // isForm:false, + // tableForm:{ + // type:'InputNumber', + // min:0, + // precision: 6, + // disabled:false + // } + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '库存余额', + field: 'inventoryBalance', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6, + disabled:true, + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + hiddenInMain: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '到货日期', + // field: 'arriveDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '生产日期', + // field: 'produceDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '过期日期', + // field: 'expireDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // isTableForm: false, + // isTable: false, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isTableForm:false, + // hiddenInMain: true, + // isForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm: false, + isTable: false, + hiddenInMain: true, + form: { + componentProps:{ + disabled:true + } + }, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm:false, + }, + // { + // label: '接口类型', + // field: 'interfaceType', + // dictType: DICT_TYPE.INTERFACE_TYPE, + // dictClass: 'string', + // isSearch: true, + // isTable: true, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isForm:false, + // isTableForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isTableForm: false, + // isTable: false, + // hiddenInMain: true, + // isForm: false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm:false, + isForm:false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true + }, + isTableForm:false, + isForm:false + }, + // { + // label: '原因', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereturnRequestDetailRules = reactive({ + // packingNumber: [ + // { required: true, message: '请输入包装号', trigger: 'blur' } + // ], + // batch: [ + // { required: true, message: '请输入批次', trigger: 'blur' } + // ], + // inventoryStatus: [ + // { required: true, message: '请选择库存状态', trigger: 'change' } + // ], + // poNumber: [ + // { required: true, message: '请输入订单号', trigger: 'blur' } + // ], + // poLine: [ + // { required: true, message: '请输入订单行', trigger: 'blur' } + // ], + // reason: [ + // { required: true, message: '请选择原因', trigger: 'change' } + // ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +export const PurchasereReturnRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm: false, + isForm: false + }, + { + label: '器具号', + field: 'containerNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码1', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + + { + label: '替代批次', + field: 'altBatch', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, +])) + diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue index ffd5f3682..79b6e7f5e 100644 --- a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue @@ -221,6 +221,16 @@ const onEnter = async (field,value)=>{ getSearchTableData(value,true) } const updateTableData = (tableList)=>{ + console.log('tableList',tableList) + let itemCodes = tableList.filter(item=>tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode'])) + console.log('itemCodes',itemCodes) + + if(itemCodes.length>0){ + itemCodes = itemCodes.map(item=>(item.itemCode)) + message.warning(`物料${itemCodes.join(',')}已经存在`) + } + tableList = tableList.filter(item=>!tableData.value.find(item1=>item1['poNumber']==item['number']&&item1['supplierCode']==item['supplierCode']&&item1['poLine']==item['lineNumber']&&item1['itemCode']==item['itemCode'])) + if(tableList.length==0) return tableList.forEach(row=>{ const newRow = JSON.parse(JSON.stringify({...tableFormKeys,...row})) newRow['poLine'] = row['lineNumber'] diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/sparereceiptRequestMain.data.ts b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/sparereceiptRequestMain.data.ts index c3e136109..428dbde25 100644 --- a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/sparereceiptRequestMain.data.ts +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/sparereceiptRequestMain.data.ts @@ -619,6 +619,7 @@ export const PurchasereceiptRequestDetail = useCrudSchemas(reactive + :allSchemas="PurchasePlanMain.allSchemas" :detailAllSchemas="PurchasePlanDetail.allSchemas"> + + @@ -80,7 +87,7 @@ /> + @success="importSuccess" :updateIsDisable="false" :appendIsDisable="true" :coverIsDisable="true" :mode="1" :coverIsShow="false" :appendIsShow="false"/> @@ -281,6 +288,7 @@ const getSearchTableData = async (number,formField,searchField)=>{ } const { tableObject, tableMethods } = useTable({ + defaultParams:{isZero:1}, getListApi: PurchasePlanDetailApi.getPurchasePlanDetailPage // 分页接口 }) @@ -332,6 +340,7 @@ const getSearchTableData = async (number,formField,searchField)=>{ } else if (val=='mainOrderSelectionPub'){// 批量发布 handleSelectionPublish() } else if (val == 'filtrate') { // 筛选 + console.log('筛选',tableObject) } else { // 其他按钮 console.log('其他按钮', item) } @@ -510,7 +519,26 @@ const { wsCache } = useCache() tableObject.loading = false } } + + const isZero = ref(false) + const zeroChange = ()=>{ + // isZero.value + if(tableObject.params.isSearch){ + tableObject.params.filters = tableObject.params.filters.filter(item=>item.column!='isZero') + tableObject.params.filters = [...tableObject.params.filters,{ + action: "==", + column: "isZero", + value: isZero.value?0:1 + }] + }else{ + tableObject.params.isZero = isZero.value?0:1 + } + getList() + console.log('tableObject',tableObject) + } const searchList = (model)=>{ + model.isZero = isZero.value?0:1 + console.log('model',model) selectionRows.value = [] setSearchParams(model) } @@ -634,6 +662,7 @@ const handleSelectionPublish = async ()=>{ } const handleExportDetails = async () => { + console.log('tableObject.params',tableObject.params) try { // 导出的二次确认 await message.exportConfirm() @@ -807,9 +836,14 @@ const handleSelectionPublish = async ()=>{ // 筛选提交 const searchFormClick = (searchData) => { + searchData.filters = searchData.filters.filter(item=>item.column!='isZero') tableObject.params = { isSearch: true, - filters: searchData.filters + filters: [...searchData.filters,{ + action: "==", + column: "isZero", + value: isZero.value?0:1 + }] } getList() // 刷新当前列表 } diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts index 2f5c2006f..5657b9cb8 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts @@ -75,7 +75,8 @@ export const PurchasePlanMain = useCrudSchemas(reactive([ component: 'DatePicker', componentProps: { valueFormat: 'YYYY-MM-DD HH:mm:ss', - type: 'datetimerange', + // type: 'datetimerange', + type: 'daterange', defaultTime: [new Date('1 '), new Date('1 ')] } }, @@ -518,6 +519,7 @@ export const PurchasePlanDetail = useCrudSchemas(reactive([ componentProps: { dialogWidth:'1085px',//搜索出来弹窗的宽度 isSearchList: true, + enterSearch: true, searchListPlaceholder: '请选择采购订单', searchField: 'number', searchTitle: '采购订单信息',