完成工厂建模

This commit is contained in:
ddmt 2024-11-23 21:59:58 +08:00
parent fc3954970f
commit 299f1a419e
2 changed files with 181 additions and 9 deletions

View File

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询设备信息列表
export function listEquipmentInfo(query) {
return request({
url: '/baseInfo/equipmentInfo/list',
method: 'get',
params: query
})
}
// 查询设备信息详细
export function getEquipmentInfo(id) {
return request({
url: '/baseInfo/equipmentInfo/' + id,
method: 'get'
})
}
// 新增设备信息
export function addEquipmentInfo(data) {
return request({
url: '/baseInfo/equipmentInfo',
method: 'post',
data: data
})
}
// 修改设备信息
export function updateEquipmentInfo(data) {
return request({
url: '/baseInfo/equipmentInfo',
method: 'put',
data: data
})
}
// 删除设备信息
export function delEquipmentInfo(id) {
return request({
url: '/baseInfo/equipmentInfo/' + id,
method: 'delete'
})
}
// 导出设备信息
export function exportEquipmentInfo(query) {
return request({
url: '/baseInfo/equipmentInfo/export',
method: 'get',
params: query
})
}

View File

@ -76,7 +76,7 @@
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="产品名称" align="center" prop="materialName" />
<el-table-column label="生产线名称" align="center" prop="productLineName" />
<el-table-column label="描述" align="center" prop="remark" />
<!-- <el-table-column label="描述" align="center" prop="remark" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -106,7 +106,7 @@
/>
<!-- 添加或修改工厂建模对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :inline="true" :rules="rules" label-width="100px">
<el-form-item label="生产线名称" prop="productLineName">
<el-input v-model="form.productLineName" placeholder="请输入生产线名称" />
@ -128,6 +128,45 @@
<!-- <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> -->
<Editor :height=127 v-model="form.remark" />
</el-form-item>
<el-divider content-position="center">设备信息信息</el-divider>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddMesEquipment">添加</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteMesEquipment">删除</el-button>
</el-col>
</el-row>
<el-table :data="form.mesEquipmentList" :row-class-name="rowMesEquipmentIndex" @selection-change="handleMesEquipmentSelectionChange" ref="mesEquipmentList">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="设备" prop="name" width="150">
<template slot-scope="scope">
<el-select v-model="value[scope.$index]" placeholder="请选择" @change="seleqcted(value[scope.$index], scope.$index)">
<el-option
v-for="item in mesEquipmentLists"
:key="item.id"
:label="item.name"
:value="item.id"
style="color: black; font-weight: 300;">
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="编码" prop="code" width="100">
</el-table-column>
<el-table-column label="型号" prop="model" width="100">
</el-table-column>
<el-table-column label="生产日期" prop="productDate" width="150">
<template slot-scope="scope">
<span>{{ scope.row.productDate }}</span>
</template>
</el-table-column>
<el-table-column label="生产批号" prop="batchNo" width="150">
</el-table-column>
<el-table-column label="制造商" prop="manufacturer" width="150">
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -141,6 +180,7 @@
<script>
import { listModel, getModel, delModel, addModel, updateModel, exportModel } from "@/api/mes/model";
import { listEquipmentInfo } from "@/api/mes/equipmentInfo";
import Editor from "@/components/Editor/index"
import factoryModel from "@/components/Material/MaterialSelect";
@ -152,11 +192,14 @@ export default {
},
data() {
return {
value: [],
factoryModel_open: false,
//
loading: true,
//
ids: [],
//
checkedMesEquipment: [],
//
single: true,
//
@ -167,6 +210,10 @@ export default {
total: 0,
//
modelList: [],
//
mesEquipmentList: [],
//
mesEquipmentLists: [],
//
title: "",
//
@ -175,30 +222,53 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
materialId: null,
materialName: null,
productLineName: null,
remark: null
},
//
form: {},
//
rules: {
productLineName: [
{ required: true, message: "请输入生产线名称", trigger: "blur" }
],
materialName: [
{ required: true, message: "请选择产品", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
watch: {
'mesEquipmentList': {
handler(newVal, oldVal) {
this.form.mesEquipmentList = newVal;
},
immediate: true,
deep: true,
}
},
methods: {
seleqcted(row, index) {
this.mesEquipmentLists.forEach(element => {
if (element.id == row) {
console.log(index, element);
this.form.mesEquipmentList[index] = element;
}
});
},
handleMaterialSelected(list){
this.form.materialId = list[0].id;
this.form.materialName = list[0].name;
this.form.productModel = list[0].model;
this.form.productSpecification = list[0].specification;
// this.form.mesFactoryModelDetailList = list[0].mesFactoryModelDetailList;
this.factoryModel_open=false;
console.log("handleMaterialSelected", list[0],this.form);
console.log(this.modelList);
},
/** 查询工厂建模列表 */
getList() {
@ -208,6 +278,9 @@ export default {
this.total = response.total;
this.loading = false;
});
listEquipmentInfo().then(response => {
this.mesEquipmentLists = response.rows;
});
},
//
cancel() {
@ -218,12 +291,16 @@ export default {
reset() {
this.form = {
id: null,
materialId: null,
materialName: null,
productLineName: null,
remark: null,
mesEquipmentList: [],
productSpecification: null,
productModel: null
};
this.value = []
this.mesEquipmentList = [];
this.resetForm("form");
},
/** 搜索按钮操作 */
@ -254,9 +331,17 @@ export default {
const id = row.id || this.ids
getModel(id).then(response => {
this.form = response.data;
this.form.materialName = this.form.mesFactoryModelDetailList.name;
this.form.productModel = this.form.mesFactoryModelDetailList.model;
this.form.productSpecification = this.form.mesFactoryModelDetailList.specification;
this.mesEquipmentList = this.form.mesFactoryModelDetailList
this.form.mesEquipmentList = this.form.mesFactoryModelDetailList;
this.form.materialName = this.form.mesFactoryModelDetail.name;
this.form.productModel = this.form.mesFactoryModelDetail.model;
this.form.productSpecification = this.form.mesFactoryModelDetail.specification;
console.log(this.form);
this.form.mesFactoryModelDetailList.forEach((item, index) => {
this.value[index] = item.equipmentId;
this.seleqcted(item.equipmentId, index);
});
this.open = true;
this.title = "修改工厂建模";
});
@ -265,6 +350,9 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.mesFactoryModelDetailList = this.form.mesEquipmentList;
delete this.form.mesEquipmentList; //
delete this.form.mesFactoryModelDetail; //
if (this.form.id != null) {
updateModel(this.form).then(response => {
this.msgSuccess("修改成功");
@ -294,6 +382,37 @@ export default {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 设备信息序号 */
rowMesEquipmentIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 设备信息添加按钮操作 */
handleAddMesEquipment() {
let obj = {};
obj.code = "";
obj.model = "";
obj.name = "";
obj.productDate = "";
obj.batchNo = "";
obj.manufacturer = "";
this.mesEquipmentList.push(obj);
},
/** 设备信息删除按钮操作 */
handleDeleteMesEquipment() {
if (this.checkedMesEquipment.length == 0) {
this.$alert("请先选择要删除的设备信息数据", "提示", { confirmButtonText: "确定", });
} else {
this.mesEquipmentList = this.mesEquipmentList.filter((item, index) => {
let isDelete = this.checkedMesEquipment.includes(item);
if (isDelete) this.value.splice(index, 1);
return !isDelete;
})
}
},
/** 单选框选中数据 */
handleMesEquipmentSelectionChange(selection) {
this.checkedMesEquipment = selection;
},
/** 导出按钮操作 */
handleExport() {