diff --git a/src/api/api/materialEdit.ts b/src/api/api/materialEdit.ts index c16eabf..841b713 100644 --- a/src/api/api/materialEdit.ts +++ b/src/api/api/materialEdit.ts @@ -25,4 +25,22 @@ export async function updateMaterial(params, controller) { result = data }); return result; +} + +// 根据模式和物料名查找物料 +export async function searchMaterialsByFactory(params, controller) { + let result = {}; + await http.post('/api/' + controller + '/SearchMaterialsByFactory', params).then((data) => { + result = data + }); + return result; +} + +// 创建物料修改路线 +export async function modifyMaterial(params, controller) { + let result = {}; + await http.post('/api/' + controller + '/ModifyMaterial', params).then((data) => { + result = data + }); + return result; } \ No newline at end of file diff --git a/src/views/Need/all.vue b/src/views/Need/all.vue index 8c5d48a..d0c14e3 100644 --- a/src/views/Need/all.vue +++ b/src/views/Need/all.vue @@ -302,7 +302,6 @@ this.pageInfo.total = result.Data.Total || 0; this.dataList = result.Data.List; this.hasLoaded = true; - debugger }, //日期处理 dateFormat(dataStr) { diff --git a/src/views/Need/components/EditView.vue b/src/views/Need/components/EditView.vue index 1a2268f..6b69e8d 100644 --- a/src/views/Need/components/EditView.vue +++ b/src/views/Need/components/EditView.vue @@ -202,8 +202,9 @@ export default { teamId: this.dataInfoObj.FTeamID, viewType: this.dataInfoObj.FViewType }); - console.log('_data', _data); - debugger + + let freezingCols = await GetFreezingColumns(); + if (this.dataInfoObj.FViewType == 1 || this.dataInfoObj.FViewType == 10) { this.inputCodeValue = _data.rows[0]?_data.rows[0].HalfCode:""; this.inputDescValue = _data.rows[0]?_data.rows[0].HalfDesc:""; @@ -255,7 +256,6 @@ export default { let col7 = dataColumn.filter(s => s.fieldType == 7) || []; _data.rows.forEach((item, i) => { - columnsList = _data.columns.map(function (items) { let info = _data.infos[i] if (info) { @@ -270,7 +270,7 @@ export default { return items.cellClass = items.cellClass + " three"; case "4": return items.cellClass = items.cellClass + " four"; - } + } } } @@ -301,21 +301,35 @@ export default { let saveId = this.dataInfoObj.FViewType + "_" + this.dataInfoObj.FID; localStorage.setItem('EditView' + saveId, JSON.stringify(_data.rows)); - console.log('editColumn', editColumn); this.editColumn = editColumn; this.dataList = _data.rows; this.dataColumn = dataColumn; this.originalColumns = this.deepCopy(dataColumn); - this.getFreezingColumns(); - debugger + let freezingColumns = freezingCols.FFreezingColumns + + if (freezingColumns) { + let c_list = freezingColumns.split(",") + c_list.forEach(c => { + if(c && c.length > 0) { + this.freezingColumnSetting.push(c) + } + }) + } + + if (this.freezingColumnSetting && this.freezingColumnSetting.length > 0) { + this.dataColumn = ref([]); + this.setFreezingColumns(); + } + + this._changeType(_data.rows[0],2); setTimeout(function () { layer.close(idx); }, 500); }, async getFreezingColumns() { - let result = await GetFreezingColumns(); + let result = await GetFreezingColumns(); let freezingColumns = result.FFreezingColumns if (freezingColumns) { @@ -348,13 +362,11 @@ export default { if (result != null && result.FID) { let col7 = this.dataColumn.filter(s => s.fieldType == 7) || []; - console.log('this.typeList[0]', this.typeList[0].filter(t => t.FValue == data.FTypeID1)[0]); col7.forEach((item) => { if (item.table == "TFS_MaterialInfo") { data[item.key] = result[item.key] || data[item.key] || ""; } }); - console.log('data.FTypeID1', data.FTypeID1); let type1 = this.typeList[0].filter(t => t.FValue == data.FTypeID1)[0]; let typeName = type1.FName; @@ -422,11 +434,9 @@ export default { }; let saveId = this.dataInfoObj.FViewType + "_" + this.dataInfoObj.FID; let cacheDataList = JSON.parse(localStorage.getItem('EditView' + saveId)); - console.log('cacheDataList', cacheDataList); this.dataList.forEach((row, index) => { let cache = cacheDataList[index]; let dataObj = {}; - console.log('this.editColumn', this.editColumn); for (let col of this.editColumn) { let valTemp = row[col.key]; if (this.dataInfoObj.FViewType == 10) { @@ -456,8 +466,6 @@ export default { } } - console.log('dataObj', dataObj); - for (let key in dataObj) { if (!updateObj[key]) updateObj[key] = []; updateObj[key].push(dataObj[key]); @@ -467,8 +475,6 @@ export default { if (updateLog != "") { delete updateObj.LogList // 发送保存请求 - debugger - console.log('updateObj', updateObj); let _result = await updateBatchById2(updateObj); if (_result.Code === 200) { await commonSave({ @@ -515,7 +521,6 @@ export default { } else { this.dataColumn = this.tmpDataColumn; } - this.$nextTick(); }, setFreezingColumnsSetting(fcs) { this.freezingColumnSetting = fcs; diff --git a/src/views/materia/all.vue b/src/views/materia/all.vue index 4085ea2..71808b0 100644 --- a/src/views/materia/all.vue +++ b/src/views/materia/all.vue @@ -117,7 +117,7 @@ }, { title: "产品分类", - key: "FMaterialType", + key: "FMaterialTypeName", width: "200px", align: 'center' }, @@ -281,7 +281,19 @@ result.Data.List = result.Data.List || []; this.pageInfo.total = result.Data.Total || 0; this.dataList = result.Data.List; - console.log('this.dataList', this.dataList); + + this.dataList.forEach(item => { + if (item.FMaterialType == 10) { + item.FMaterialTypeName = "产成品" + } else if(item.FMaterialType == 20) { + item.FMaterialTypeName = "半成品" + } else if(item.FMaterialType == 30) { + item.FMaterialTypeName = "中间品/香基" + } else if(item.FMaterialType == 40) { + item.FMaterialTypeName = "原/辅料" + } + }); + this.hasLoaded = true; }, //日期处理 diff --git a/src/views/materia/components/AddMateria.vue b/src/views/materia/components/AddMateria.vue index 2a6840d..0237ce5 100644 --- a/src/views/materia/components/AddMateria.vue +++ b/src/views/materia/components/AddMateria.vue @@ -33,7 +33,7 @@ -
+
提交 取消 @@ -323,7 +323,7 @@ export default { } else { result = await createMaterial(postData, "MaterialTeamwork") || 0; } - console.log('result', result); + if (result.TaskId > 0) { this.cancelClick(true); } diff --git a/src/views/materia/components/EditMateria.vue b/src/views/materia/components/EditMateria.vue index 7e53e4f..ba37373 100644 --- a/src/views/materia/components/EditMateria.vue +++ b/src/views/materia/components/EditMateria.vue @@ -17,7 +17,7 @@ -
+
确认 取消 @@ -81,6 +81,10 @@ import { ref, watch } from 'vue'; +import { + searchMaterialsByFactory, + modifyMaterial +} from "/src/api/api/materialEdit" import { getDataCode, getPageList, @@ -92,6 +96,7 @@ import { import { getFactoryList } from "/src/api/api/factory"; +import { layer } from '@layui/layer-vue'; export default { setup() { @@ -110,20 +115,23 @@ export default { type: "radio" }, { title: "物料号", - key: "FName" + key: "FCode", + width: "120px" }, { title: "试验号", - key: "FTestCode" + key: "FTestCode", + width: "120px" }, { title: "物料描述", - key: "FTypeName", - width: "110px" + key: "FName", + width: "280px" }, { title: "产品分类", - key: "FVersionCode" + key: "FTypeName", + width: "200px" } ]; dataColumn.forEach((item) => { @@ -139,10 +147,7 @@ export default { watch(selectedKey, function () { const chose = dataList.value.find(s => s.FID == selectedKey.value) || null; if (chose != null) { - dataInfo.value.FFormulaName = chose.FName + "+" + chose.FTestCode + "+" + chose.FVersionCode; - dataInfo.value.FFormulaID = chose.FID; - dataInfo.value.FVersionCode = chose.FVersionCode; - dataInfo.value.FFormulaTestCode = chose.FTestCode; + dataInfo.value.FID = chose.FID; } }); @@ -235,83 +240,44 @@ export default { } let postData = { FPageIndex: this.pageInfo.current, - FPageSize: this.pageInfo.limit - } - let search = this.dataInfo.FSearchName; - if (search && search != "") { - postData.Or_FPlmCode = postData.Or_FTestCode = postData.Or_FName = postData.Or_FVersionCode = - search; + FPageSize: this.pageInfo.limit, + FSearchName: this.dataInfo.FSearchName ? this.dataInfo.FSearchName : "" } - let result = await getPageList(postData, "Formula"); + + let result = await searchMaterialsByFactory(postData, "MaterialTeamwork"); + console.log('result', result); result.Data.List = result.Data.List || []; result.Data.List.forEach((item) => { let type = this.typeList.find(s => s.FValue == item.FType); item.FTypeName = type == null ? item.FType : type.FName; - if (this.dataInfo.FFormulaID == item.FID) this.selectedKey = item.FID }); this.pageInfo.total = result.Data.Total || 0; this.dataList = result.Data.List; }, //数据-验证 async submitClick(isCreate) { - let postData = this.dataInfo; - postData.FSaleCode = (postData.FSaleCode || "").trim(); - postData.FTestCode = (postData.FTestCode || "").trim(); - postData.FMaterialGroup = (postData.FMaterialGroup || "").trim(); - postData.FWeightUnit = (postData.FWeightUnit || "").trim(); - postData.FFormulaName = (postData.FFormulaName || "").trim(); - postData.FCreateFactoryID=(postData.FCreateFactoryID==-1?"":postData.FCreateFactoryID); - for (let key in postData) { - if (postData[key] == "") return false; - } - // let indexs = [postData.FSaleCode.indexOf("-"), postData.FSaleCode.indexOf("@")]; - // if (indexs[0] == -1 || indexs[1] == -1 || indexs[1] - indexs[0] < 2) { - // layer.msg('必须要输入包材代码') - // return false; - // } - postData.FState = isCreate ? 1 : 0; - postData = JSON.parse(JSON.stringify(postData)); - if (postData.FTestCode != postData.FFormulaTestCode) { - this.sureTextCode(postData); - return false; + let postData = { + FMaterialId: this.dataInfo.FID, + FCreateFactoryID: this.dataInfo.FCreateFactoryID + }; + + if (postData.FCreateFactoryID && postData.FMaterialId) { + this._postTermData(postData); + } else if(!postData.FCreateFactoryID) { + layer.msg("选择模式不能为空", { icon : 2, time: 1000}) + } else { + layer.msg("必须选择物料", { icon : 2, time: 1000}) } - this._postTermData(postData); - }, - //数据-确认 - sureTextCode(postData) { - let $this = this; - layer.confirm("选择的配方和订单试验号不一致,请确认使用选择的配方嘛?", { - title: "提示", - btn: [{ - text: '暂时保存', - callback: function (id) { - layer.close(id); - postData["FState"] = 0; - $this._postTermData(postData); - } - }, - { - text: '确认提交', - callback: function (id) { - layer.close(id); - postData["FState"] = 1; - $this._postTermData(postData); - } - } - ] - }); + }, //数据-提交 async _postTermData(postData) { - delete postData["FSearchName"]; let result = 0; let idx = layer.load(2); - if (postData.FID && postData.FID > 0) { - result = await updateDataInfo(postData, "Teamwork") || 0; - } else { - result = await insertDataInfo(postData, "Teamwork") || 0; - } - if (result > 0) { + result = await modifyMaterial(postData, "MaterialTeamwork") || 0; + + console.log('result', result); + if (result.Data.TaskId > 0) { this.cancelClick(true); } layer.close(idx); diff --git a/src/views/materia/components/EditView.vue b/src/views/materia/components/EditView.vue index c2fae5a..b19dd1a 100644 --- a/src/views/materia/components/EditView.vue +++ b/src/views/materia/components/EditView.vue @@ -195,9 +195,12 @@ export default { async initPage(idx) { let _data = await getMaterialViewsByTeamId({ teamId: this.dataInfoObj.FTeamID, + teamWorkType: this.dataInfoObj.FTeamworkType, teamType: 1 }, "MaterialTeamwork"); + let freezingCols = await GetFreezingColumns(); + this.typeList[0] = _data.types.filter(s => s.FDepth == 1) || []; this.typeList[1] = _data.types.filter(s => s.FDepth != 1) || []; let dataColumn = _data.columns || []; @@ -305,7 +308,22 @@ export default { this.dataList = _data.rows; this.dataColumn = dataColumn; this.originalColumns = this.deepCopy(dataColumn); - this.getFreezingColumns(); + + let freezingColumns = freezingCols.FFreezingColumns + + if (freezingColumns) { + let c_list = freezingColumns.split(",") + c_list.forEach(c => { + if(c && c.length > 0) { + this.freezingColumnSetting.push(c) + } + }) + } + + if (this.freezingColumnSetting && this.freezingColumnSetting.length > 0) { + this.dataColumn = ref([]); + this.setFreezingColumns(); + } if (this.dataInfoObj.FCanEdit != 2) { this._changeType(_data.rows[0],2); @@ -416,8 +434,9 @@ export default { let idx = layer.load(2); let updateObj = { LogList: [], - FTeamID: this.dataInfoObj['FTeamID'], - FViewType: this.dataInfoObj.FViewType + FTeamID: this.dataInfoObj.FTeamID, + FViewType: this.dataInfoObj.FViewType, + FTeamworkType: this.dataInfoObj.FTeamworkType, }; let saveId = this.dataInfoObj.FViewType + "_" + this.dataInfoObj.FID; let cacheDataList = JSON.parse(localStorage.getItem('EditView' + saveId)); @@ -459,8 +478,6 @@ export default { } }); let updateLog = updateObj.LogList.join("、"); - - console.log('this.dataInfoObj.step', this.dataInfoObj.step); if (updateLog != "") { delete updateObj.LogList diff --git a/src/views/materia/route.vue b/src/views/materia/route.vue index 693fd89..a4c6b8c 100644 --- a/src/views/materia/route.vue +++ b/src/views/materia/route.vue @@ -114,7 +114,7 @@ }, { title: "产品分类", - key: "FMaterialType", + key: "FMaterialTypeName", width: "200px", align: 'center' }, @@ -211,6 +211,7 @@ this.dataColumn[2].hide = true; this.dataColumn[7].hide = false; } + this._getTypeList(); this._getPageList(true); }, @@ -263,7 +264,19 @@ }); this.pageInfo.total = result.Data.Total || 0; this.dataList = result.Data.List; + this.dataList.forEach(item => { + if (item.FMaterialType == 10) { + item.FMaterialTypeName = "产成品" + } else if(item.FMaterialType == 20) { + item.FMaterialTypeName = "半成品" + } else if(item.FMaterialType == 30) { + item.FMaterialTypeName = "中间品/香基" + } else if(item.FMaterialType == 40) { + item.FMaterialTypeName = "原/辅料" + } + }); this.hasLoaded = true; + console.log('this.dataList', this.dataList); }, //日期处理 dateFormat(dataStr) { @@ -287,6 +300,7 @@ } data.FTeamID = data.FMaterialTeamID; + data.FMdfMaterialTeamId = data.FMaterialTeamID; this.objInfoObj = data; this.editType = type; this.showEditBox[3] = true;