diff --git a/src/api/wms/mstr/index.ts b/src/api/wms/mstr/index.ts new file mode 100644 index 000000000..f34bc2a89 --- /dev/null +++ b/src/api/wms/mstr/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface MstrVO { + id: number + hflccHflcd: string + plProdLine: string + plDesc: string + plMvarAcct: string + plCchgAcct: string + type: string + remark: string + extraProperties: string + concurrencyStamp: number + siteId: string +} + +// 查询产品类信息列表 +export const getMstrPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/mstr/senior', data }) + } else { + return await request.get({ url: `/wms/mstr/page`, params }) + } +} + +// 查询产品类信息详情 +export const getMstr = async (id: number) => { + return await request.get({ url: `/wms/mstr/get?id=` + id }) +} + +// 新增产品类信息 +export const createMstr = async (data: MstrVO) => { + return await request.post({ url: `/wms/mstr/create`, data }) +} + +// 修改产品类信息 +export const updateMstr = async (data: MstrVO) => { + return await request.put({ url: `/wms/mstr/update`, data }) +} + +// 删除产品类信息 +export const deleteMstr = async (id: number) => { + return await request.delete({ url: `/wms/mstr/delete?id=` + id }) +} + +// 导出产品类信息 Excel +export const exportMstr = async (params) => { + return await request.download({ url: `/wms/mstr/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/mstr/get-import-template' }) +} \ No newline at end of file diff --git a/src/components/BasicForm/src/BasicForm.vue b/src/components/BasicForm/src/BasicForm.vue index 5fa0fbd9a..378a2ba07 100644 --- a/src/components/BasicForm/src/BasicForm.vue +++ b/src/components/BasicForm/src/BasicForm.vue @@ -615,14 +615,12 @@ const submitForm = async () => { formLoading.value = true if (formType.value == 'create') { const validateForm = await tableFormRef.value.validateForm() - if (!validateForm && props.tableFormDataLength) { + if (props.tableFormDataLength) { if (props.tableData.length == 0) { message.warning('请填写明细信息!') formLoading.value = false return } - formLoading.value = false - return } // 主子表——提交请求 try { diff --git a/src/components/TableForm/src/TableForm.vue b/src/components/TableForm/src/TableForm.vue index 28db8d9a7..88439dd30 100644 --- a/src/components/TableForm/src/TableForm.vue +++ b/src/components/TableForm/src/TableForm.vue @@ -551,6 +551,7 @@ const tableSelectionChange = (val) => { } const handleSelectionDelete = () => { emit('tableSelectionDelete', deleteTableData.value) + TableBaseComponents_Ref.value.clearSelection() nextTick(() => { deleteTableData.value.forEach((row) => { TableBaseComponents_Ref.value!.toggleRowSelection(row, false) diff --git a/src/views/wms/basicDataManage/subject/mstr/index.vue b/src/views/wms/basicDataManage/subject/mstr/index.vue new file mode 100644 index 000000000..67ea231af --- /dev/null +++ b/src/views/wms/basicDataManage/subject/mstr/index.vue @@ -0,0 +1,236 @@ + + + diff --git a/src/views/wms/basicDataManage/subject/mstr/mstr.data.ts b/src/views/wms/basicDataManage/subject/mstr/mstr.data.ts new file mode 100644 index 000000000..da3628962 --- /dev/null +++ b/src/views/wms/basicDataManage/subject/mstr/mstr.data.ts @@ -0,0 +1,67 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const MstrRules = reactive({ + hflccHflcd: [required], + plProdLine: [required], + plMvarAcct: [required], + plCchgAcct: [required], + concurrencyStamp: [required], +}) + +export const Mstr = useCrudSchemas(reactive([ + { + label: '域代码', + field: 'hflccHflcd', + sort: 'custom', + isSearch: true, + }, + { + label: '产品类', + field: 'plProdLine', + sort: 'custom', + isSearch: true, + }, + { + label: '产品描述', + field: 'plDesc', + sort: 'custom', + }, + { + label: '物料差异账户', + field: 'plMvarAcct', + sort: 'custom', + isSearch: true, + }, + { + label: '成本重估账户', + field: 'plCchgAcct', + sort: 'custom', + isSearch: true, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + 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')] + } + }, + isForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts b/src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts index 4a7479093..4b131b1bb 100644 --- a/src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts +++ b/src/views/wms/issueManage/issue/issueRequestMain/issueRequestMain.data.ts @@ -560,6 +560,9 @@ export const IssueRequestMainRules = reactive({ workshopCode: [ { required: true, message: '请选择车间代码', trigger: 'change' } ], + productionLineCode: [ + { required: true, message: '请选择生产线代码', trigger: 'change' } + ], // fromWarehouseCode: [ // { required: true, message: '请选择从仓库代码', trigger: 'change' } // ], diff --git a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts index f18f34c0d..80e5d6536 100644 --- a/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts +++ b/src/views/wms/issueManage/repleinsh/repleinshRequestMain/repleinshRequestMain.data.ts @@ -471,6 +471,122 @@ export const RepleinshRequestMainRules = reactive({ * @returns {Array} 补料申请子表 */ export const RepleinshRequestDetail = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortSearchDefault:2, + sortTableDefault:3, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition:[{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + enterSearch:true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition:[{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key : 'businessTypeCode', + value: queryParams.businessTypeCode + }] + }, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + sortTableDefault:4, + isTableForm: false, + isForm: false, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, { label: '到库位代码', field: 'toLocationCode', @@ -541,7 +657,8 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ field: 'inventoryStatus', dictType: DICT_TYPE.INVENTORY_STATUS, dictClass: 'string', - isTable: true, + isTableForm: false, + isTable:false, sort: 'custom', form: { value: 'OK', @@ -557,6 +674,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ table: { width: 150 }, + isTableForm:false, tableForm: { type: 'Select', default: 'OK', @@ -573,63 +691,23 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ }, hiddenInMain:true, isTableForm: false, + isTable:false, form: { componentProps: { disabled: true } } }, - { - label: '物料代码', - field: 'itemCode', - sort: 'custom', - table: { - width: 150 - }, - isSearch:true, - sortSearchDefault:2, - sortTableDefault:3, - form: { - // labelMessage: '信息提示说明!!!', - componentProps: { - isSearchList: true, // 开启查询弹窗 - searchListPlaceholder: '请选择物料代码', // 输入框占位文本 - searchField: 'code', // 查询弹窗赋值字段 - searchTitle: '物料基础信息', // 查询弹窗标题 - searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 - searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 - searchCondition:[{ - key: 'available', - value: 'TRUE', - isMainValue: false - }] - } - }, - tableForm:{ - enterSearch:true, - isInpuFocusShow: true, - searchListPlaceholder: '请选择物料代码', // 输入框占位文本 - searchField: 'code', // 查询弹窗赋值字段 - searchTitle: '物料基础信息', // 查询弹窗标题 - searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 - searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 - searchCondition:[{ - key: 'available', - value: 'TRUE', - isMainValue: false - },{ - key : 'businessTypeCode', - value: queryParams.businessTypeCode - }] - }, - }, + { label: '备注', field: 'remark', sort: 'custom', + isTableForm:false, table: { width: 150 }, + isTable:false, hiddenInMain:true, }, { @@ -667,36 +745,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ isTableForm: false, isForm: false }, - { - label: '物料名称', - field: 'itemName', - sort: 'custom', - sortTableDefault:4, - isTableForm: false, - isForm: false, - }, - { - label: '物料描述1', - field: 'itemDesc1', - sort: 'custom', - table: { - width: 150 - }, - hiddenInMain:true, - isTableForm: false, - isForm: false, - }, - { - label: '物料描述2', - field: 'itemDesc2', - sort: 'custom', - table: { - width: 150 - }, - hiddenInMain:true, - isTableForm: false, - isForm: false, - }, + { label: '项目代码', field: 'projectCode', @@ -706,50 +755,10 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ }, hiddenInMain:true, isTableForm: false, + isTable:false, isForm: false, }, - { - label: '数量', - field: 'qty', - sort: 'custom', - table: { - width: 150 - }, - hiddenInMain:true, - form: { - component: 'InputNumber', - componentProps: { - min: 0, - precision: 6 - } - }, - tableForm: { - type: 'InputNumber', - min: 0, - precision: 6 - } - }, - { - label: '计量单位', - field: 'uom', - dictType: DICT_TYPE.UOM, - dictClass: 'string', - isTable: true, - sort: 'custom', - table: { - width: 150 - }, - sortTableDefault:9, - tableForm: { - type: 'Select', - disabled: true - }, - form: { - componentProps: { - disabled: true - } - } - }, + { label: '采购订单号', field: 'poNumber', @@ -760,6 +769,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ hiddenInMain:true, isTableForm: false, sortTableDefault:1, + isTable:false, }, { label: '订单行', @@ -771,6 +781,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ hiddenInMain:true, isTableForm: false, sortTableDefault:2, + isTable:false, }, { @@ -783,6 +794,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ isTableForm: false, isForm: false, hiddenInMain:true, + isTable:false, }, { label: '到货主代码', @@ -794,6 +806,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ isTableForm: false, isForm: false, hiddenInMain:true, + isTable:false, }, { label: '最后更新时间', @@ -829,6 +842,7 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ }, isTableForm: false, hiddenInMain:true, + isTable:false, isForm: false }, { @@ -847,9 +861,9 @@ export const RepleinshRequestDetail = useCrudSchemas(reactive([ //表单校验 export const RepleinshRequestDetailRules = reactive({ - inventoryStatus: [ - { required: true, message: '请选择库存状态', trigger: 'change' } - ], + // inventoryStatus: [ + // { required: true, message: '请选择库存状态', trigger: 'change' } + // ], toLocationCode: [ { required: true, message: '请输入到库位代码', trigger: 'blur' } ], diff --git a/src/views/wms/productionManage/processproduction/processproductionRequest/index.vue b/src/views/wms/productionManage/processproduction/processproductionRequest/index.vue index e62b08b73..fe2a491bb 100644 --- a/src/views/wms/productionManage/processproduction/processproductionRequest/index.vue +++ b/src/views/wms/productionManage/processproduction/processproductionRequest/index.vue @@ -292,6 +292,7 @@ const handleHandle = async (id: number) => { /** 添加/修改操作 */ const basicFormRef = ref() const openForm = (type: string, row?: any) => { + tableData.value = [] // 重置明细数据 basicFormRef.value.open(type, row) } diff --git a/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts b/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts index bc469c5ad..d3f6e0e3e 100644 --- a/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts +++ b/src/views/wms/productionManage/productionplan/productionMain/productionMain.data.ts @@ -236,7 +236,6 @@ export const ProductionMain = useCrudSchemas(reactive([ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] } }, - isSearch: true, sortTableDefault:1000, form: { component: 'DatePicker', @@ -731,6 +730,9 @@ export const ProductionDetail = useCrudSchemas(reactive([ } }, isSearch: true, + isTableForm: false, + isForm: false, + // hiddenInMain: true, sortTableDefault:1000, form: { component: 'DatePicker', diff --git a/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts b/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts index 466d2a4e5..b6b85d8b5 100644 --- a/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts +++ b/src/views/wms/productionManage/productionplan/productionMainAssemble/productionMainAssemble.data.ts @@ -235,7 +235,6 @@ export const ProductionMain = useCrudSchemas(reactive([ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] } }, - isSearch: true, sortTableDefault:1000, form: { component: 'DatePicker', @@ -730,6 +729,9 @@ export const ProductionDetail = useCrudSchemas(reactive([ } }, isSearch: true, + isTableForm: false, + isForm: false, + // hiddenInMain: true, sortTableDefault:1000, form: { component: 'DatePicker', diff --git a/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/productreceiptRequestMain.data.ts b/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/productreceiptRequestMain.data.ts index eb64606c0..ad2d93277 100644 --- a/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/productreceiptRequestMain.data.ts +++ b/src/views/wms/productionManage/productreceipt/productreceiptRequestMain/productreceiptRequestMain.data.ts @@ -535,6 +535,9 @@ export const ProductreceiptRequestMainRules = reactive({ // departmentCode: [ // { required: true, message: '请输入部门', trigger: 'blur' } // ], + productionLineCode: [ + { required: true, message: '请选择生产线代码', trigger: 'change' } + ], autoCommit: [ { required: true, message: '请选择是否自动提交', trigger: 'change' } ], diff --git a/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/productreceiptAssembleRequestMain.data.ts b/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/productreceiptAssembleRequestMain.data.ts index 9e01199c7..84fb8ddaa 100644 --- a/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/productreceiptAssembleRequestMain.data.ts +++ b/src/views/wms/productionManage/productreceiptAssemble/productreceiptAssembleRequestMain/productreceiptAssembleRequestMain.data.ts @@ -536,6 +536,9 @@ export const ProductreceiptRequestMainRules = reactive({ // departmentCode: [ // { required: true, message: '请输入部门', trigger: 'blur' } // ], + productionLineCode: [ + { required: true, message: '请选择生产线代码', trigger: 'change' } + ], autoCommit: [ { required: true, message: '请选择是否自动提交', trigger: 'change' } ], diff --git a/src/views/wms/productionManage/productrepair/productrepairRequestMain/index.vue b/src/views/wms/productionManage/productrepair/productrepairRequestMain/index.vue index 5f291b7e7..a6ba77156 100644 --- a/src/views/wms/productionManage/productrepair/productrepairRequestMain/index.vue +++ b/src/views/wms/productionManage/productrepair/productrepairRequestMain/index.vue @@ -56,6 +56,8 @@ @searchTableSuccess="searchTableSuccess" @submitForm="submitForm" @buttonOperationClick="buttonOperationClick" + :isShowReduceButtonSelection="true" +@tableSelectionDelete="tableSelectionDelete" /> @@ -686,7 +688,9 @@ const tableFormButton = async (val , row) => { await getDetailListBom() } } - +const tableSelectionDelete = (selection) => { + tableData.value = tableData.value.filter(item => !selection.includes(item)) +} /** 初始化 **/ onMounted(async () => { getList() diff --git a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts index 5c7911793..b6902aa29 100644 --- a/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts +++ b/src/views/wms/productionManage/productscrap/productscrapRequestMain/productscrapRequestMain.data.ts @@ -500,6 +500,9 @@ export const ProductscrapRequestMainRules = reactive({ // dueTime: [ // { required: true, message: '请选择截止时间', trigger: 'change' } // ], + productionLineCode: [ + { required: true, message: '请选择生产线代码', trigger: 'change' } + ], departmentCode: [ { required: true, message: '请输入部门', trigger: 'blur' } ],