diff --git a/src/api/wms/cutItem/index.ts b/src/api/wms/cutItem/index.ts new file mode 100644 index 000000000..9c7a0bc2d --- /dev/null +++ b/src/api/wms/cutItem/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface CutItemVO { + id: number + itemCode: string + beginDate: Date + cutoverQty: number + planQty: number + available: string + siteId: string + concurrencyStamp: number +} + +// 查询打切品番配置列表 +export const getCutItemPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/cut-item/senior', data }) + } else { + return await request.get({ url: `/wms/cut-item/page`, params }) + } +} + +// 查询打切品番配置详情 +export const getCutItem = async (id: number) => { + return await request.get({ url: `/wms/cut-item/get?id=` + id }) +} + +// 新增打切品番配置 +export const createCutItem = async (data: CutItemVO) => { + return await request.post({ url: `/wms/cut-item/create`, data }) +} + +// 修改打切品番配置 +export const updateCutItem = async (data: CutItemVO) => { + return await request.put({ url: `/wms/cut-item/update`, data }) +} + +// 删除打切品番配置 +export const deleteCutItem = async (id: number) => { + return await request.delete({ url: `/wms/cut-item/delete?id=` + id }) +} +// 重新计算打切品番配置 +export const recalculate = async (id: number) => { + return await request.get({ url: `/wms/cut-item/recalculate?id=` + id }) +} + +// 导出打切品番配置 Excel +export const exportCutItem = async (params) => { + return await request.download({ url: `/wms/cut-item/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/cut-item/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/demandforecastingDetail/index.ts b/src/api/wms/demandforecastingDetail/index.ts index f8c2cfbe6..62f23c7e8 100644 --- a/src/api/wms/demandforecastingDetail/index.ts +++ b/src/api/wms/demandforecastingDetail/index.ts @@ -18,7 +18,8 @@ export interface DemandforecastingDetailVO { } // 要货预测-列表和头部请求参数 -const getPageParams = (params)=>{ +const getPageParams = (par) => { + const params = { ...par } // 到货日期 if(params.dueDate&¶ms.dueDate.length>0){ if(isString(params.dueDate[0])){ diff --git a/src/api/wms/location/index.ts b/src/api/wms/location/index.ts index 9060039d4..e7920efbf 100644 --- a/src/api/wms/location/index.ts +++ b/src/api/wms/location/index.ts @@ -47,7 +47,7 @@ export const getLocationMPage = async (params) => { return await request.get({ url: `/wms/location/Mpage`, params }) } } - +//补料申请获取到库位根据业务类型 export const getLocationPageRepleinsh = async (params) => { if (params.isSearch) { delete params.isSearch @@ -57,6 +57,17 @@ export const getLocationPageRepleinsh = async (params) => { return await request.get({ url: `/wms/location/pageForRepleinsh`, params }) } } + +//补料申请获取来源库位根据业务类型 +export const formLocationPageRepleinsh = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return request.post({ url: '/wms/location/getFormRepleinshSenior', data }) + } else { + return await request.get({ url: `/wms/location/pageFormRepleinsh`, params }) + } +} // 查询库位所有列表 export const getLocationList = async (params) => { return await request.get({ url: `/wms/location/list`, params }) diff --git a/src/utils/disposition/defaultButtons.ts b/src/utils/disposition/defaultButtons.ts index 87b7430f1..c7b045405 100644 --- a/src/utils/disposition/defaultButtons.ts +++ b/src/utils/disposition/defaultButtons.ts @@ -377,6 +377,20 @@ export function mainListDeleteBtn(option: any) { hasPermi: '' }) } + +// 主列表-重新计算按钮 +export function mainListRecalculateBtn(option: any) { + return __defaultBtnOption(option, { + label: t(`ts.重新计算`).replace('ts.', ''), + name: 'recalculate', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + export function mainListEnableBtn(option: any) { return __defaultBtnOption(option, { label: t(`ts.启用`).replace('ts.', ''), diff --git a/src/views/system/systemInstallPackage/index.vue b/src/views/system/systemInstallPackage/index.vue index a5b4eef33..0025b9757 100644 --- a/src/views/system/systemInstallPackage/index.vue +++ b/src/views/system/systemInstallPackage/index.vue @@ -146,7 +146,8 @@ const openForm = (type: string, row?: any) => { fileId['value'] = currentTime } if(uploadFile){ - uploadFile['componentProps']['upData']['tableId'] = currentTime + uploadFile['componentProps']['upData']['tableId'] = 2147483647 + uploadFile['componentProps']['upData']['tableName'] = 'system_install_package' uploadFile['componentProps']['modelValue']= [] uploadFile['value'] = '' diff --git a/src/views/wms/basicDataManage/cutItem/cutItem.data.ts b/src/views/wms/basicDataManage/cutItem/cutItem.data.ts new file mode 100644 index 000000000..85fd0a4fc --- /dev/null +++ b/src/views/wms/basicDataManage/cutItem/cutItem.data.ts @@ -0,0 +1,190 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +// 表单校验 +export const CutItemRules = reactive({ + itemCode: [required], + cutoverQty: [required], + beginDate: [required] +}) + +export const CutItem = useCrudSchemas( + reactive([ + { + label: '品番', + field: 'itemCode', + sort: 'custom', + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择品番', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '品名', + field: 'itemName', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + } + }, + { + label: '背番', + field: 'backNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 150 + } + }, + { + label: '受入号', + field: 'receivedNumber', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 150 + } + }, + { + label: '打切数量', + field: 'cutoverQty', + sort: 'custom', + isTable: true, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 0 + } + } + }, + { + label: '已要货数量', + field: 'planQty', + sort: 'custom', + isForm: false, + isSearch: false + }, + + { + label: '开始日期', + field: 'beginDate', + sort: 'custom', + formatter: dateFormatter, + table: { + width: 180 + }, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: true, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + isForm: false, + isSearch: false, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + } + }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // isForm: false, + // isSearch: false + // }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 180, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/wms/basicDataManage/cutItem/index.vue b/src/views/wms/basicDataManage/cutItem/index.vue new file mode 100644 index 000000000..187595953 --- /dev/null +++ b/src/views/wms/basicDataManage/cutItem/index.vue @@ -0,0 +1,296 @@ + + + diff --git a/src/views/wms/basicDataManage/supplierManage/deliTime/deliTime.data.ts b/src/views/wms/basicDataManage/supplierManage/deliTime/deliTime.data.ts index 24d90c957..6fb2b51cb 100644 --- a/src/views/wms/basicDataManage/supplierManage/deliTime/deliTime.data.ts +++ b/src/views/wms/basicDataManage/supplierManage/deliTime/deliTime.data.ts @@ -102,7 +102,6 @@ export const DeliTime = useCrudSchemas(reactive([ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] }, }, - }, { label: '最后更新者', diff --git a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue index 64b1fa210..674655e9f 100644 --- a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue +++ b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/index.vue @@ -123,6 +123,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row ) => newRow['itemCode'] = item['code'] newRow['uom'] = item['uom'] newRow['id'] = item['id'] + newRow['itemName'] = item['name'] + newRow['productionLine'] = item['itemGroup'] newRow['toLocationCode'] = formRef.formModel['toLocationCode'] tableData.value.push(newRow) }) @@ -384,17 +386,17 @@ const submitForm = async (formType, submitData) => { data.id = data.masterId } data.subList = tableData.value // 拼接子表数据参数 - data.subList.forEach(item=>{ - item.toLocationCode = data.toLocationCode - }) + for (const item of data.subList) { + if (item.qty <= 0) { + message.warning('数量必须大于0') + return // 这会从整个 submitForm 函数返回 + } + item.toLocationCode = data.toLocationCode +} // if( data.subList.length>1){ // 喜婷说可以添加多条 // message.warning('明细只能选择一条数据') // return; // } - if(tableData.value.find(item => (item.qty <= 0))) { - message.warning('数量必须大于0') - return - } formRef.value.formLoading = true try { if (formType === 'create') { diff --git a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts index 9887391fd..0c030948a 100644 --- a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts +++ b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts @@ -7,7 +7,8 @@ import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/item import * as LocationApi from '@/api/wms/location' import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' - +import * as ProductionlineApi from '@/api/wms/productionline' +import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data' import * as WarehouseApi from '@/api/wms/warehouse' import { Warehouse } from '@/views/wms/basicDataManage/factoryModeling/warehouse/warehouse.data' @@ -93,42 +94,97 @@ export const RepleinshRequestMain = useCrudSchemas( isDetail: true }, { - label: '日期', - sortTableDefault: 5, + label: '日期时间', field: 'day', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, sort: 'custom', - isDetail: true, - isTable: true, - isForm: true, - isTableForm: false, - isSearch: true, - sortSearchDefault: 3, - formatter: dateFormatter2, - search: { + table: { + width: 180 + }, + sortTableDefault: 5, + form: { component: 'DatePicker', componentProps: { - valueFormat: 'YYYY-MM-DD HH:mm:ss', - type: 'daterange', - defaultTime: [new Date('1 '), new Date('1 ')] + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' } }, - form: { + search: { component: 'DatePicker', componentProps: { - format: 'YYYY-MM-DD', - valueFormat: 'x', - defaultTime: [new Date('1 '), new Date('1 ')] + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] } }, + isDetail: true, + isTable: true, + isForm: true, + isTableForm: false, + isSearch: true, + sortSearchDefault: 3, + }, + { + label: '来源库位', + field: 'fromLocationCode', + sort: 'custom', table: { width: 150 }, - detail: { - dateFormat: 'YYYY-MM-DD' + hiddenInMain: true, + // isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择来源库位', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.formLocationPageRepleinsh, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择来源库位', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.formLocationPageRepleinsh, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] } }, { - label: '到库位代码', + label: '目标库位', field: 'toLocationCode', sort: 'custom', table: { @@ -141,7 +197,7 @@ export const RepleinshRequestMain = useCrudSchemas( componentProps: { enterSearch: true, isSearchList: true, // 开启查询弹窗 - searchListPlaceholder: '请选择到库位代码', // 输入框占位文本 + searchListPlaceholder: '请选择目标库位', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 searchTitle: '库位信息', // 查询弹窗标题 searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 @@ -167,7 +223,7 @@ export const RepleinshRequestMain = useCrudSchemas( }, tableForm: { isInpuFocusShow: true, - searchListPlaceholder: '请选择到库位代码', // 输入框占位文本 + searchListPlaceholder: '请选择目标库位', // 输入框占位文本 searchField: 'code', // 查询弹窗赋值字段 searchTitle: '库位信息', // 查询弹窗标题 searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 @@ -591,10 +647,12 @@ export const RepleinshRequestMainRules = reactive({ toWarehouseCode: [{ required: true, message: '请输入到仓库代码', trigger: 'blur' }], toAreaTypes: [{ required: true, message: '请选择到库区类型范围', trigger: 'change' }], departmentCode: [{ required: true, message: '请输入部门', trigger: 'blur' }], + day: [{ required: true, message: '请选择日期时间', trigger: 'blur' }], autoCommit: [{ required: true, message: '请选择是否自动提交', trigger: 'change' }], autoAgree: [{ required: true, message: '请选择是否自动通过', trigger: 'change' }], autoExecute: [{ required: true, message: '请选择是否自动执行', trigger: 'change' }], - toLocationCode: [{ required: true, message: '请输入到库位代码', trigger: ['change', 'blur'] }], + toLocationCode: [{ required: true, message: '请输入目标库位', trigger: ['change', 'blur'] }], + fromLocationCode: [{ required: true, message: '请输入来源库位', trigger: ['change', 'blur'] }], directCreateRecord: [ { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } ], @@ -669,24 +727,106 @@ export const RepleinshRequestDetail = useCrudSchemas( ] // 失去焦点校验参数 } }, + + { + label: '背番', + field: 'backNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + isForm: false, + isTable: true, + isDetail: true, + tableForm: { + disabled:true + } + }, { label: '品名', field: 'itemName', sort: 'custom', sortTableDefault: 4, - isTableForm: false, - isForm: false + isTableForm: true, + isForm: false, + tableForm: { + disabled:true + } }, + + // { + // label: '包装规格', + // field: 'packUnit', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: true, + // tableForm: { + // isInpuFocusShow: true, + // searchListPlaceholder: '请选择包装规格', // 输入框占位文本 + // searchField: 'packUnit', // 查询弹窗赋值字段 + // searchTitle: '物料包装信息', // 查询弹窗标题 + // searchAllSchemas: Itempackaging.allSchemas, // 查询弹窗所需类 + // searchPage: ItempackagingApi.getItempackagingPage, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // },{ + // key: 'itemCode', + // value: 'itemCode', + // message: '请填写品番!', + // isMainValue: true + // }] + // } + // // form: { + // // // labelMessage: '信息提示说明!!!', + // // componentProps: { + // // enterSearch:true, + // // isSearch:true, + // // isSearchList: true, // 开启查询弹窗 + // // searchListPlaceholder: '请选择包装规格', // 输入框占位文本 + // // searchField: 'itemCode', // 查询弹窗赋值字段 + // // searchTitle: '物料包装信息', // 查询弹窗标题 + // // searchAllSchemas: Itempackaging.allSchemas, // 查询弹窗所需类 + // // searchPage: ItempackagingApi.getItempackagingPage, // 查询弹窗所需分页方法 + // // searchCondition: [{ + // // key: 'available', + // // value: 'TRUE', + // // isMainValue: false + // // },{ + // // key: 'itemCode', + // // value: 'itemCode', + // // message: '请填写品番!', + // // isMainValue: true + // // }], + // // verificationParams: [{ + // // key: 'packUnit', + // // action: '==', + // // value: '', + // // isMainValue: false, + // // isSearch: true, + // // isFormModel: true, + // // }], // 失去焦点校验参数 + // // } + // // } + // }, { - label: '背番', - field: 'backNumber', + label: '生产线区分', + field: 'productionLine', sort: 'custom', table: { width: 150 }, + isTableForm: true, isForm: false, - isTable: true, - isDetail: true + isTable: false, + isDetail: false, + tableForm: { + disabled:true + } }, { label: '描述', @@ -701,11 +841,58 @@ export const RepleinshRequestDetail = useCrudSchemas( }, { label: '数量', - field: 'unexecutedQty', + field: 'qty', sort: 'custom', sortTableDefault: 4, - isTableForm: false, - isForm: false + isTableForm: true, + isForm: false, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 0 + } + }, + { + label: '生产线代码', + field: 'productionLineCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: true, + isForm: false, + isTable: false, + isDetail: false, + tableForm: { + enterSearch:true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择生产线代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '生产线信息', // 查询弹窗标题 + searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类 + searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'workshopCode', + value: '', + message: '请填写车间代码!', + isMainValue: false + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, }, { label: '计量单位', @@ -740,7 +927,7 @@ export const RepleinshRequestDetail = useCrudSchemas( isTable: true, }, { - label: '到库位代码', + label: '目标库位', field: 'toLocationCode', sort: 'custom', table: { @@ -1009,8 +1196,11 @@ export const RepleinshRequestDetailRules = reactive({ // { required: true, message: '请选择库存状态', trigger: 'change' } // ], // toLocationCode: [ - // { required: true, message: '请输入到库位代码', trigger: 'blur' } + // { required: true, message: '请输入目标库位', trigger: 'blur' } // ], itemCode: [{ required: true, message: '请输入品番', trigger: 'blur' }], - remark: [{ max: 50, message: '不得超过50个字符', trigger: 'blur' }] + remark: [{ max: 50, message: '不得超过50个字符', trigger: 'blur' }], + productionLineCode: [ + { required: true, message: '请选择生产线代码', trigger: 'change' } + ] }) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts index 0ceee171b..4455a977f 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts @@ -234,6 +234,11 @@ hiddenSearchHigh:true, width: 150 }, }, + { + label: 'QAD版本号', + field: 'detailVersion', + sort: 'custom', + }, { label: '版本号', field: 'version', @@ -247,7 +252,7 @@ hiddenSearchHigh:true, enterSearch: true, isSearchList: true, // 开启查询弹窗 searchListPlaceholder: '请选择版本号', // 输入框占位文本 - searchField: 'detailVersion', // 查询弹窗赋值字段 + searchField: 'scpVersion', // 查询弹窗赋值字段 searchTitle: '版本号', // 查询弹窗标题 searchAllSchemas: Version.allSchemas, // 查询弹窗所需类 searchPage: DemandforecastingDetailApi.queryScpVersion, // 查询弹窗所需分页方法 @@ -548,7 +553,7 @@ export const DemandforecastingDetailRules = reactive({ export const DemandforecastingMainPlan = useCrudSchemas(reactive([ { label: '版本号', - field: 'detailVersion', + field: 'scpVersion', sort: 'custom', table: { width: 150 diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue index 60dc0a79b..46d5e0553 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue @@ -412,6 +412,7 @@ const updateDemandforecaste = async ()=>{ let res = await DemandforecastingMainApi.updateDemandforecaste(submitData) console.log('更新结果',res) message.success(t('更新成功')) + getList() } finally{ tableObject.loading = false } diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/demandforecastingMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/demandforecastingMain.data.ts index b2377c6af..01c5580c4 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/demandforecastingMain.data.ts +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/demandforecastingMain.data.ts @@ -124,6 +124,11 @@ hiddenSearchHigh:true, width: 150 }, }, + { + label: 'QAD版本号', + field: 'detailVersion', + sort: 'custom', + }, { label: '版本号', field: 'version', diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue index dbe66b090..98caa4efd 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue @@ -84,7 +84,7 @@ - + @@ -502,7 +502,7 @@ const isShowMainButton1 = (row, val) => { } return [ // defaultButtons.mainListPurchasePlanOpeBtn({ hide: isShowMainButton(row, ['2']) }), // 打开 - defaultButtons.mainListPurchasePlanCloBtn({ hide: !(row.status!=6&&row.status!=2&&row.type=='SCHEDULE'),hasPermi: 'wms:purchase-plan-main:close' }), // 关闭 + defaultButtons.mainListPurchasePlanCloBtn({ hide: !(row.isClose!=1&&row.status!=6&&row.status!=2&&row.type=='SCHEDULE'),hasPermi: 'wms:purchase-plan-main:close' }), // 关闭 defaultButtons.mainListPurchasePlanPubBtn({ hide: isShowMainButton(row, ['1']) ,hasPermi: 'wms:purchase-plan-main:publish'}), // 发布 defaultButtons.mainListPurchasePlanAccBtn({ hide: isShowMainButton(row, ['3']) ,hasPermi: 'wms:purchase-plan-main:accept'}), // 接受 defaultButtons.mainListPurchasePlanRejBtn({ hide: isShowMainButton(row, ['3']) ,hasPermi: 'wms:purchase-plan-main:noaccept'}), // 不接受 @@ -901,6 +901,7 @@ const handleSelectionPublish = async ()=>{ } const changeTableDataSearch = ()=>{ + debugger let filterList = tableData.value if(tableDataSearch.value['itemCode']){ filterList = tableData.value.filter(item => { @@ -909,7 +910,12 @@ const handleSelectionPublish = async ()=>{ } if(tableDataSearch.value['backNumber']){ filterList = filterList.filter(item => { - return item['backNumber'].includes(tableDataSearch.value['backNumber']) + //return item['backNumber'].includes(tableDataSearch.value['backNumber']) + // 如果 backNumber 为空(null/undefined/''),直接过滤掉 + if (!item['backNumber']) return false; + + // 否则检查是否包含搜索值 + return item['backNumber'].includes(tableDataSearch.value['backNumber']); }) } showTableData.value = filterList diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue index 12bae4df1..7ebf60586 100644 --- a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue @@ -181,8 +181,8 @@