diff --git a/src/api/mes/mesLine.js b/src/api/mes/mesLine.js index 8ca0eab..9a77166 100644 --- a/src/api/mes/mesLine.js +++ b/src/api/mes/mesLine.js @@ -43,10 +43,18 @@ export function delMesLine(id) { }); } //线体获取 -export function getLineBodyList(query) { +export function selectLineBody(query) { return request({ url: '/mes/mesLine/selectLineBody', method: 'get', params: query }); } + +export function getProductListBom(query) { + return request({ + url: '/mes/mesLine/getProductListBom', + method: 'get', + params: query + }); +} diff --git a/src/views/mes/mesLine/index.vue b/src/views/mes/mesLine/index.vue index be30dbc..814911f 100644 --- a/src/views/mes/mesLine/index.vue +++ b/src/views/mes/mesLine/index.vue @@ -63,7 +63,7 @@ plain icon="el-icon-plus" size="mini" - @click="handleAddLineBody" + @click="handleAdd" v-hasPermi="['mes:mesLine:add']" >新增 @@ -120,6 +120,7 @@ + - - + + + + + + + + + + + + @@ -190,6 +206,38 @@ + + + + 选择产品 + + + + + + + + + + + + + - - + @@ -209,18 +259,21 @@ import { delMesLine, addMesLine, updateMesLine, + selectLineBody } from "@/api/mes/mesLine"; -import SelectMesLine from "./selectMesLine"; +import ItemSelectMaterial from "@/views/mes/mesLine/selectMaterial"; export default { name: "MesLine", - components: {SelectMesLine,}, + components: {ItemSelectMaterial,}, data() { return { // 遮罩层 loading: true, + proloading: false, // 选中数组 ids: [], + codes: [], // 非单个禁用 single: true, // 非多个禁用 @@ -229,6 +282,7 @@ export default { showSearch: true, // 总条数 total: 0, + lineBodys: [], // 线体管理表格数据 mesLineList: [], // 弹出层标题 @@ -269,6 +323,7 @@ export default { }, created() { this.getList(); + this.getLineBody(); }, methods: { /** 查询线体管理列表 */ @@ -280,6 +335,14 @@ export default { this.loading = false; }); }, + getLineBody() { + selectLineBody(this.queryParams).then((response) => { + this.lineBodys = response.rows; + }); + }, + selectChange(lineCode) { + this.form.lineName = this.lineBodys.find(item => item.lineCode === lineCode).lineName; + }, // 取消按钮 cancel() { this.open = false; @@ -291,6 +354,7 @@ export default { id: null, lineCode: null, lineName: null, + productList: [], useMan: null, efficiency: null, attr1: null, @@ -332,6 +396,10 @@ export default { this.single = selection.length !== 1; this.multiple = !selection.length; }, + // 产品绑定 + productSelectionChange(selection) { + this.codes = selection.map((item) => item.productCode); + }, /** 新增按钮操作 */ handleAdd() { this.reset(); @@ -360,13 +428,16 @@ export default { }, /** 提交按钮 */ submitForm() { + this.$refs["form"].validate((valid) => { if (valid) { + this.form.processList = []; + this.form.qualityList = []; + this.form.processItems?.forEach((item,index) => { + this.form.processList[index] = item.value; + this.form.qualityList[index] = item.quality; + }); if (this.form.id != null) { - this.form.processItems?.forEach(item => { - this.form.processList.push(item.value); - this.form.qualityList.push(item.quality); - }); updateMesLine(this.form).then((response) => { this.$modal.msgSuccess("修改成功"); this.open = false; @@ -374,6 +445,11 @@ export default { }); } else { addMesLine(this.form).then((response) => { + if(response.code == 200) { + this.$modal.msgSuccess("添加成功"); + }else { + this.$modal.msgError(response.msg); + } this.open = false; this.getList(); }); @@ -405,21 +481,39 @@ export default { `mesLine_${new Date().getTime()}.xlsx` ); }, - handleAddLineBody() { - this.$refs.selectMesLine.showFlag = true; + //物料选择确认 + onSelectMaterial(obj) { + obj.map(item => { + if(item.productCode) { + if(this.form.productList.some(e => e.productCode === item.productCode)) { + this.$modal.msgError("该物料已存在"); + return; + } + this.form.productList.push(item); + } + }) + console.log(this.form.productList); + }, + deleteProduct(row) { + const productCode = row.productCode; + this.$modal + .confirm('是否确认删除线体编号为"' + productCode + '"的数据项?') + .then(() => { + this.form.productList = this.form.productList.filter(item => item.productCode !== productCode); + }) + .then(() => { + this.$modal.msgSuccess("删除成功"); + }) + .catch(() => {}); + }, + handleSelectProduct() { + this.$refs.itemSelectMaterial.showFlag = true; }, onSelectLineBody(obj) { console.log(obj); this.form.lineCode = obj.code; this.form.lineName = obj.name; - addMesLine(this.form).then((response) => { - if(response.code == 200) { - this.$modal.msgSuccess("添加成功"); - }else { - this.$modal.msgError(response.msg); - } - this.getList(); - }); + }, //添加工艺项 addProcessItem() { @@ -438,6 +532,17 @@ export default { } this.form.processItems = this.processItems; }, + formatProductNames(row, column, cellValue) { + // cellValue 是当前列对应的值,即 productList 数组 + if (Array.isArray(cellValue)) { + // 使用 map 获取所有 productName 并用 join 方法以逗号连接 + return cellValue.map(item => item.productName).join(', '); + } else { + // 如果不是数组,可以返回一个默认值或者处理错误信息 + return ''; + } + }, + }, }; diff --git a/src/views/mes/mesLine/selectMaterial.vue b/src/views/mes/mesLine/selectMaterial.vue new file mode 100644 index 0000000..e326fc7 --- /dev/null +++ b/src/views/mes/mesLine/selectMaterial.vue @@ -0,0 +1,148 @@ + + diff --git a/src/views/mes/mesLine/selectMesLine.vue b/src/views/mes/mesLine/selectMesLine.vue index 71e0f2a..4a57ace 100644 --- a/src/views/mes/mesLine/selectMesLine.vue +++ b/src/views/mes/mesLine/selectMesLine.vue @@ -58,7 +58,7 @@