From 46db21574881cbdf262daa5070ccc4a069dddac4 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Tue, 28 Nov 2023 18:08:59 +0800 Subject: [PATCH] 2023-11-28 --- src/api/part/bomManagement.js | 63 ++ src/views/modules/part/bomManagement.vue | 1294 +++++++++++++++++++++- 2 files changed, 1346 insertions(+), 11 deletions(-) diff --git a/src/api/part/bomManagement.js b/src/api/part/bomManagement.js index 7924e3d..5f8eda8 100644 --- a/src/api/part/bomManagement.js +++ b/src/api/part/bomManagement.js @@ -28,5 +28,68 @@ export const bomManagementEdit = data => createAPI(`/plm/bomManagement/bomManage */ export const bomManagementDelete = data => createAPI(`/plm/bomManagement/bomManagementDelete`,'post',data) +/** + * 查询物料清单 + * @param data + * @returns {*} + */ +export const queryPartList = data => createAPI(`/plm/bomManagement/queryPartList`,'post',data) + +/** + * 查bom明细 + * @param data + * @returns {*} + */ +export const queryBomDetail = data => createAPI(`/plm/bomManagement/queryBomDetail`,'post',data) + +/** + * 查bom明细 + * @param data + * @returns {*} + */ +export const queryBomComponent = data => createAPI(`/plm/bomManagement/queryBomComponent`,'post',data) + +/** + * bom明细新增 + * @param data + * @returns {*} + */ +export const bomDetailSave = data => createAPI(`/plm/bomManagement/bomDetailSave`,'post',data) + +/** + * bom明细删除 + * @param data + * @returns {*} + */ +export const bomDetailDelete = data => createAPI(`/plm/bomManagement/bomDetailDelete`,'post',data) + +/** + * 新增bom主信息 + * @param data + * @returns {*} + */ +export const saveBomHeader = data => createAPI(`/plm/bomManagement/saveBomHeader`,'post',data) + +/** + * 查询bom主信息 + * @param data + * @returns {*} + */ +export const queryBomHeader = data => createAPI(`/plm/bomManagement/queryBomHeader`,'post',data) + +/** + * 新增bom子明细 + * @param data + * @returns {*} + */ +export const saveBomComponent = data => createAPI(`/plm/bomManagement/saveBomComponent`,'post',data) + +/** + * 删除bom子明细 + * @param data + * @returns {*} + */ +export const deleteBomComponent = data => createAPI(`/plm/bomManagement/deleteBomComponent`,'post',data) + diff --git a/src/views/modules/part/bomManagement.vue b/src/views/modules/part/bomManagement.vue index 6fdf9e6..8ff6ebf 100644 --- a/src/views/modules/part/bomManagement.vue +++ b/src/views/modules/part/bomManagement.vue @@ -86,19 +86,331 @@ - - + + - 物料编码 - + 物料编码 + 物料编码 + - + + + + + + + + + + + + + + 保存 + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新增 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新增 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 保存 - 关闭 + 关闭 + + + + + + + + + + + + + + + + + + + + + + 保存 + 关闭 + + + + + +
+ + + + + + + + + 查询 + + + + + + + +
+ + 关闭 + +
+ + + +
+ + + + + + + + + 查询 + + + + + + + + + +
+ + 确认 + 关闭
@@ -113,8 +425,18 @@ import { bomManagementSave, // bom新增 bomManagementEdit, // bom编辑 bomManagementDelete, // bom删除 + queryBomHeader, // 查询bom主信息 + saveBomHeader, // 新增bom主信息 + queryBomDetail, // 查bom明细 + bomDetailSave, // bom明细新增 + bomDetailDelete, // bom明细删除 + queryPartList, // 查询物料清单 + queryBomComponent, // 查bom子明细 + saveBomComponent, // 新增bom子明细 + deleteBomComponent, // 删除bom子明细 } from '@/api/part/bomManagement.js' import ChooseList from '@/views/modules/common/Chooselist' +import dayjs from "dayjs"; export default { // 组件 @@ -128,6 +450,12 @@ export default { handler: function (newV, oldV) { this.searchData.partNo = this.searchData.partNo.toUpperCase() } + }, + saveDetailData: { + deep: true, + handler: function (newV, oldV) { + this.saveDetailData.alternativeNo = this.saveDetailData.alternativeNo.toUpperCase() + } } }, // 对象 @@ -156,6 +484,9 @@ export default { }, // 其它 dataListLoading: false, + // 初始页签 + detailTable: 'bom_detail', + subDetailTable: 'bom_sub_detail', // ======== 数据对象 ======== modalData: { flag: '', @@ -163,6 +494,76 @@ export default { site: this.$store.state.user.site, partNo: '', partDesc: '', + engChgLevel: '', + bomType: '', + noteText: '', + effPhaseInDate: '', + effPhaseOutDate: '', + engRevision: '', + typeFlag: '', + netWeight: '', + createDate: '', + createBy: '', + updateDate: '', + updateBy: '' + }, + detailData: { + site: this.$store.state.user.site, + partNo: '', + engChgLevel: '', + bomType: '', + alternativeNo: '', + alternativeDescription: '', + minLotQty: '', + defaultFlag: '', + detailNoteText: '', + createDate: '', + createBy: '', + updateDate: '', + updateBy: '' + }, + subDetailData: { + site: this.$store.state.user.site, + partNo: '', + engChgLevel: '', + bomType: '', + alternativeNo: '', + componentPart: '', + componentPartDesc: '', + printUnit: '', + qtyPerAssembly: '', + componentScrap: '', + issueType: '', + shrinkageFactor: '', + lineItemNo: '', + operationNo: '', + issueToLoc: '', + noteText: '', + createDate: '', + createBy: '', + updateDate: '', + updateBy: '' + }, + partData: { + site: this.$store.state.user.site, + partNo: '', + partDesc: '', + }, + componentPartData: { + site: this.$store.state.user.site, + partNo: '', + partDesc: '', + }, + saveDetailData: { + site: this.$store.state.user.site, + partNo: '', + engChgLevel: '', + bomType: '', + alternativeNo: '', + alternativeDescription: '', + minLotQty: '', + defaultFlag: '', + detailNoteText: '', createDate: '', createBy: '', updateDate: '', @@ -170,6 +571,12 @@ export default { }, // ======== 数据列表 ======== dataList: [], + partList: [], + componentPartList: [], + componentPartSelections: [], + subDetailList: [], + detailDataList: [], + checkedDetail: [], // ======== 列表表头 ======== columnList: [ { @@ -198,7 +605,7 @@ export default { tableName: 'BOM信息表', columnProp: 'partDesc', headerAlign: 'center', - align: 'center', + align: 'left', columnLabel: '物料名称', columnHidden: false, columnImage: false, @@ -208,7 +615,6 @@ export default { fixed: '', columnWidth: 120 }, - { userId: this.$store.state.user.name, functionId: 104002, @@ -282,6 +688,240 @@ export default { columnWidth: 80 } ], + partColumnList: [ + { + columnProp: 'partNo', + headerAlign: "center", + align: "center", + columnLabel: '物料编码', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + }, + { + columnProp: 'partDesc', + headerAlign: "center", + align: "center", + columnLabel: '物料名称', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + }, + ], + componentPartColumnList: [ + { + columnProp: 'partNo', + headerAlign: "center", + align: "center", + columnLabel: '物料编码', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + }, + { + columnProp: 'partDesc', + headerAlign: "center", + align: "center", + columnLabel: '物料名称', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + } + ], + columnSubDetailList: [ + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2ComponentPart', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'componentPart', + headerAlign: 'center', + align: 'center', + columnLabel: '物料编码', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 120 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2ComponentPartDesc', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'componentPartDesc', + headerAlign: 'center', + align: 'left', + columnLabel: '物料名称', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 120 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2QtyPerAssembly', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'qtyPerAssembly', + headerAlign: 'center', + align: 'right', + columnLabel: '单位用量', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 80 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2ComponentScrap', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'componentScrap', + headerAlign: 'center', + align: 'right', + columnLabel: '调机量', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 80 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2ShrinkageFactor', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'shrinkageFactor', + headerAlign: 'center', + align: 'right', + columnLabel: '损耗率', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 80 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2PrintUnitName', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'printUnitName', + headerAlign: 'center', + align: 'left', + columnLabel: '单位', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 60 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2IssueType', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'issueType', + headerAlign: 'center', + align: 'left', + columnLabel: '生产属性', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 80 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2OperationDesc', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'operationNo', + headerAlign: 'center', + align: 'left', + columnLabel: '工序', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 80 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2IssueToLoc', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'issueToLoc', + headerAlign: 'center', + align: 'left', + columnLabel: '发料库位', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 80 + }, + { + userId: this.$store.state.user.name, + functionId: 104002, + serialNumber: '104002Table2NoteText', + tableId: '104002Table2', + tableName: 'BOM子物料表', + columnProp: 'componentNoteText', + headerAlign: 'center', + align: 'left', + columnLabel: '备注', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 150 + }, + ], // ======== 必填规则 ======== rules: { partNo: [ @@ -297,13 +937,81 @@ export default { message: ' ', trigger: 'change' } + ], + bomType: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + effPhaseInDate: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + effPhaseOutDate: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + engChgLevel: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + alternativeNo: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + typeFlag: [ + { + required: true, + message: ' ', + trigger: 'change' + } ] }, + detailRules: { + alternativeNo: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + alternativeDescription: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + minLotQty: [ + { + required: true, + message: ' ', + trigger: 'change' + } + ], + }, // ======== 复选数据集 ======== bomSelections: [], // ======== 模态框开关控制 ======== modalFlag: false, modalDisableFlag: false, + partModelFlag: false, + componentPartModelFlag: false, + saveDetailModalFlag :false } }, mounted () { @@ -335,6 +1043,42 @@ export default { this.getDataList() }, + // ======== 页签切换相关方法 ======== + /** + * 明细页签选择替换 + * @param tab + * @param event + */ + tabDetailClick (tab, event) { + // 刷新列表数据 + this.refreshDetailTable() + }, + /** + * 子明细页签选择替换 + * @param tab + * @param event + */ + tabSubDetailClick (tab, event) { + // 刷新列表数据 + this.refreshSubDetailTable() + }, + /** + * 刷新明细页签的table数据 + */ + refreshDetailTable () { + if (this.detailTable === 'bom_detail') { + + } + }, + /** + * 刷新子明细页签的table数据 + */ + refreshSubDetailTable () { + if (this.subDetailTable === 'bom_sub_detail') { + + } + }, + // ======== 列表数据操作方法 ======== /** * 未知 @@ -380,11 +1124,69 @@ export default { site: this.$store.state.user.site, partNo: '', partDesc: '', + engChgLevel: '', + bomType: '', + noteText: '', + effPhaseInDate: '', + effPhaseOutDate: '', + engRevision: '', + typeFlag: 'B', + netWeight: 0, createBy: this.$store.state.user.name } + this.detailData = { + site: this.$store.state.user.site, + partNo: '', + engChgLevel: '', + bomType: '', + alternativeNo: '', + alternativeDescription: '', + minLotQty: '', + defaultFlag: '', + detailNoteText: '', + createDate: '', + createBy: '', + updateDate: '', + updateBy: '' + } + this.subDetailList = [] this.modalDisableFlag = false this.modalFlag = true }, + /** + * bom编辑模态框 + */ + async updateModal (row) { + this.modalData = { + flag: '2', + site: row.site, + partNo: row.partNo, + partDesc: row.partDesc, + engChgLevel: row.engChgLevel, + bomType: row.bomType, + noteText: row.noteText, + effPhaseInDate: row.effPhaseInDate, + effPhaseOutDate: row.effPhaseOutDate, + engRevision: row.engRevision, + typeFlag: row.typeFlag, + netWeight: row.netWeight, + updateBy: this.$store.state.user.name + } + // 查bom明细 + queryBomDetail(this.modalData).then(({data}) => { + if (data && data.code === 0) { + this.detailDataList = data.rows.detailList + this.subDetailList = data.rows.componentList + this.detailData = data.rows.detailData + this.modalDisableFlag = true + this.modalFlag = true + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }, // ======== 新增/编辑/删除方法 ======== /** @@ -399,8 +1201,49 @@ export default { this.$message.warning('请选择物料名称!') return } + if (this.modalData.bomType === '' || this.modalData.bomType == null) { + this.$message.warning('请选择制造类型!') + return + } + if (this.modalData.effPhaseInDate === '' || this.modalData.effPhaseInDate == null) { + this.$message.warning('请选择开始时间!') + return + } + if (this.modalData.effPhaseOutDate === '' || this.modalData.effPhaseOutDate == null) { + this.$message.warning('请选择结束时间!') + return + } + if (this.modalData.engChgLevel === '' || this.modalData.engChgLevel == null) { + this.$message.warning('请填写BOM版本号!') + return + } + if (this.detailData.alternativeNo === '' || this.detailData.alternativeNo == null) { + this.$message.warning('请选择替代!') + return + } + let tempData = { + site: this.$store.state.user.site, + partNo: this.modalData.partNo, + partDesc: this.modalData.partDesc, + engChgLevel: this.modalData.engChgLevel, + bomType: this.modalData.bomType, + noteText: this.modalData.noteText, + effPhaseInDate: this.modalData.effPhaseInDate, + effPhaseOutDate: this.modalData.effPhaseOutDate, + engRevision: this.modalData.engRevision, + typeFlag: this.modalData.typeFlag, + netWeight: this.modalData.netWeight, + alternativeNo: this.detailData.alternativeNo, + alternativeDescription: this.detailData.alternativeDescription, + minLotQty: this.detailData.minLotQty, + defaultFlag: this.detailData.defaultFlag, + detailNoteText: this.detailData.detailNoteText, + createBy: this.$store.state.user.name, + updateBy: this.$store.state.user.name, + informationList: this.subDetailList + } if (this.modalData.flag === '1') { - bomManagementSave(this.modalData).then(({data}) => { + bomManagementSave(tempData).then(({data}) => { if (data && data.code === 0) { this.getDataList() this.modalFlag = false @@ -417,7 +1260,7 @@ export default { } }) } else { - bomManagementEdit(this.modalData).then(({data}) => { + bomManagementEdit(tempData).then(({data}) => { if (data && data.code === 0) { this.getDataList() this.modalFlag = false @@ -435,6 +1278,43 @@ export default { }) } }, + /** + * 新增编辑模态框关闭 + */ + closeModal () { + let tempArr = [] + tempArr.push(this.modalData) + if (this.modalData.flag === '1') { + this.$confirm(`是否不保存且删除该条BOM记录?`, '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + let tempData = { + informationList: tempArr + } + bomManagementDelete(tempData).then(({data}) => { + if (data && data.code === 0) { + this.getDataList() + this.modalFlag = false + this.$message({ + message: '操作成功', + type: 'success', + duration: 1500, + onClose: () => {} + }) + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }).catch(() => { + }) + } else { + this.modalFlag = false + } + }, /** * bom删除 */ @@ -470,6 +1350,388 @@ export default { }).catch(() => { }) }, + /** + * 查询未建 bom 的物料 + */ + queryPartList () { + queryPartList(this.partData).then(({data}) => { + if (data && data.code === 0) { + this.partList = data.rows + this.partModelFlag = true + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }, + /** + * 双击选中物料 + * @param row + */ + getRowData (row) { + this.modalData.partNo = row.partNo + this.modalData.partDesc = row.partDesc + this.partModelFlag = false + }, + /** + * 新增子明细 + */ + queryComponentPartList () { + if (this.detailData.alternativeNo === '' || this.detailData.alternativeNo == null) { + this.$message.warning('请先选择替代!') + return + } + // 查询所有物料 + queryPartList(this.componentPartData).then(({data}) => { + if (data && data.code === 0) { + this.componentPartList = data.rows + this.componentPartModelFlag = true + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }, + /** + * 表格的新增 + * @param row + * @param rowIndex + */ + rowClassName({ row, rowIndex }) { + row.xh = rowIndex + 1; + }, + /** + * 单选框选中数据 + * @param selection + */ + componentSelectionChange(selection) { + this.checkedDetail = selection + }, + /** + * 删除子物料 + */ + deleteComponentPart () { + if (this.checkedDetail.length === 0) { + this.$message.warning('请选择要删除子物料!') + return + } else { + this.$confirm("请是否确认删除该子明细记录?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + // callback: (action) => { + // if (action === "confirm") { + // let val = this.checkedDetail + // val.forEach((val, index) => { + // this.subDetailList.forEach((v, i) => { + // if (val.xh === v.xh) { + // this.subDetailList.splice(i, 1) + // } + // }) + // }) + // this.$message({message: "删除成功!", type: "success",}) + // return + // } else { + // this.$message({message: "已取消删除操作", type: "warning",}) + // return + // } + // }, + }).then(() => { + let tempData = { + informationList: this.checkedDetail + } + deleteBomComponent(tempData).then(({data}) => { + if (data && data.code === 0) { + this.subDetailList = data.rows + this.$message({ + message: '操作成功', + type: 'success', + duration: 1500, + onClose: () => {} + }) + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }).catch(() => { + }) + } + }, + /** + * 子物料 + * @param row + */ + componentPartClickRow (row) { + this.$refs.componentPartTable.toggleRowSelection(row) + }, + componentClickRow (row) { + this.$refs.componentTable.toggleRowSelection(row) + }, + /** + * 多选子物料 + * @param val + */ + selectionComponentPart (val) { + this.componentPartSelections = val + }, + getRowKeys(row) { + // 唯一值,一般都为id + return row.partNo + }, + /** + * 提交选中的子物料 + */ + confirmComponentPart () { + // for (let i = 0; i < this.componentPartSelections.length; i++) { + // let obj = {} + // obj.site = this.$store.state.user.site + // obj.partNo = this.modalData.partNo + // obj.engChgLevel = this.modalData.engChgLevel + // obj.bomType = this.modalData.bomType + // obj.alternativeNo = this.detailData.alternativeNo + // obj.componentPart = this.componentPartSelections[i].partNo + // obj.componentPartDesc = this.componentPartSelections[i].partDesc + // obj.qtyPerAssembly = '' + // obj.printUnit = this.componentPartSelections[i].umId + // obj.printUnitName = this.componentPartSelections[i].umName + // this.subDetailList.push(obj) + // } + let tempData = { + site: this.$store.state.user.site, + partNo: this.modalData.partNo, + engChgLevel: this.modalData.engChgLevel, + bomType: this.modalData.bomType, + alternativeNo: this.detailData.alternativeNo, + createBy: this.$store.state.user.name, + informationList: this.componentPartSelections + } + saveBomComponent(tempData).then(({data}) => { + if (data && data.code === 0) { + this.subDetailList = data.rows + this.componentPartModelFlag = false + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }, + /** + * 回车事件 + */ + focusNextInput (index, type) { + let aaa = '' + if (this.subDetailList.length - 1 === index) { + aaa = `${type}0` + } else { + aaa = `${type}${index + 1}` + } + this.$nextTick(() => { + this.$refs[aaa].focus() + }) + }, + /** + * 保存主表信息 + */ + saveBomHeader () { + if (this.modalData.partNo === '' || this.modalData.partNo == null) { + this.$message.warning('请先选择Bom物料!') + return + } + if (this.modalData.engChgLevel === '' || this.modalData.engChgLevel == null) { + this.$message.warning('请先填写Bom版本号!') + return + } + if (this.modalData.bomType === '' || this.modalData.bomType == null) { + this.$message.warning('请先选择制造类型!') + return + } + if (this.modalData.typeFlag === '' || this.modalData.typeFlag == null) { + this.$message.warning('请先选择类型!') + return + } + // 新增主表信息 + saveBomHeader(this.modalData).then(({data}) => { + if (data && data.code === 0) { + this.modalData = { + flag: '1', + title: 'bom新增', + site: data.rows.modalData.site, + partNo: data.rows.modalData.partNo, + partDesc: data.rows.modalData.partDesc, + engChgLevel: data.rows.modalData.engChgLevel, + bomType: data.rows.modalData.bomType, + noteText: data.rows.modalData.noteText, + effPhaseInDate: data.rows.modalData.effPhaseInDate, + effPhaseOutDate: data.rows.modalData.effPhaseOutDate, + engRevision: data.rows.modalData.engRevision, + typeFlag: data.rows.modalData.typeFlag, + netWeight: data.rows.modalData.netWeight, + } + this.detailDataList = data.rows.detailDataList + this.detailData = data.rows.detailData + this.subDetailList = [] + this.modalDisableFlag = true + this.$message({ + message: '操作成功', + type: 'success', + duration: 1500, + onClose: () => {} + }) + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }, + /** + * 新增替代模态框 + */ + saveBomDetail () { + if (this.modalData.partNo === '' || this.modalData.partNo == null) { + this.$message.warning('请先选择Bom物料!') + return + } + if (this.modalData.engChgLevel === '' || this.modalData.engChgLevel == null) { + this.$message.warning('请先填写Bom版本号!') + return + } + if (this.modalData.bomType === '' || this.modalData.bomType == null) { + this.$message.warning('请先选择制造类型!') + return + } + this.saveDetailData = { + site: this.$store.state.user.site, + partNo: this.modalData.partNo, + engChgLevel: this.modalData.engChgLevel, + bomType: this.modalData.bomType, + alternativeNo: '', + alternativeDescription: '', + minLotQty: '', + defaultFlag: '', + detailNoteText: '', + createDate: '', + createBy: this.$store.state.user.name, + } + // 查询bom主信息 + queryBomHeader(this.modalData).then(({data}) => { + if (data && data.code === 0) { + if (data.rows.length > 0) { + this.saveDetailModalFlag = true + } else { + this.$message.warning('请先保存BOM主记录!') + } + } else { + this.$alert(data.msg, '提示', { + confirmButtonText: '确定' + }) + } + }) + }, + /** + * 新增替代方法 + */ + detailDataSave () { + if (this.saveDetailData.partNo === '' || this.saveDetailData.partNo == null) { + this.$message.warning('请先选择Bom物料!') + return + } + if (this.saveDetailData.engChgLevel === '' || this.saveDetailData.engChgLevel == null) { + this.$message.warning('请先填写Bom版本号!') + return + } + if (this.saveDetailData.bomType === '' || this.saveDetailData.bomType == null) { + this.$message.warning('请先选择制造类型!') + return + } + if (this.saveDetailData.alternativeNo === '' || this.saveDetailData.alternativeNo == null) { + this.$message.warning('请填写替代编码!') + return + } + if (this.saveDetailData.alternativeDescription === '' || this.saveDetailData.alternativeDescription == null) { + this.$message.warning('请填写替代名称!') + return + } + if (this.saveDetailData.minLotQty === '' || this.saveDetailData.minLotQty == null) { + this.$message.warning('请填写最小订单数!') + return + } + bomDetailSave(this.saveDetailData).then(({data}) => { + if (data && data.code === 0) { + this.detailDataList = data.rows + this.detailData = this.saveDetailData + this.subDetailList = [] + this.saveDetailModalFlag = false + this.$message({ + message: '操作成功', + type: 'success', + duration: 1500, + onClose: () => {} + }) + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }, + /** + * 删除替代 + */ + deleteBomDetail () { + if (this.detailData.alternativeNo === '' || this.detailData.alternativeNo == null) { + this.$message.warning('请选择要删除的替代编码!') + return + } + if (this.detailData.alternativeNo === '*') { + this.$message.warning('当前为默认替代,不可以删除!') + return + } + this.$confirm(`是否删除这项替代?`, '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + bomDetailDelete(this.detailData).then(({data}) => { + if (data && data.code === 0) { + this.detailData = data.rows.detailData + this.detailDataList = data.rows.detailDataList + this.subDetailList = data.rows.subDetailList + this.$message({ + message: '操作成功', + type: 'success', + duration: 1500, + onClose: () => {} + }) + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }).catch(() => { + }) + }, + /** + * 替代改变事件 + */ + alternativeChange () { + queryBomComponent(this.detailData).then(({data}) => { + if (data && data.code === 0) { + this.detailData = data.rows.detailData + this.subDetailList = data.rows.componentList + } else { + this.$alert(data.msg, '错误', { + confirmButtonText: '确定' + }) + } + }) + }, // ======== chooseList相关方法 ======== /** @@ -531,7 +1793,17 @@ export default { } +