中航光电热表web
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

284 lines
12 KiB

<template>
<el-dialog title="新增" append-to-body :modelValue="openShow" width="70%" @close="closeDialog" fullscreen>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="模板编码:" prop="code">
<el-input v-model="ruleForm.code"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="模板名称:" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="模板类型:" prop="templateType">
<el-select v-model="ruleForm.templateType" placeholder="请选择">
<el-option v-for="(item,index) in processTemplateList" :label="item.dictValue" :value="item.dictKey"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="作业中心:" prop="workCenterId">
<el-select v-model="ruleForm.workCenterId" placeholder="请选择">
<el-option label="作业中心1" value="1"> </el-option>
<el-option label="作业中心2" value="2"> </el-option>
<el-option label="作业中心3" value="3"> </el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="生产标识:" prop="shengchanbiaoshi">
<el-select v-model="value" placeholder="请选择">
<el-option label="生产标识1" value="1"> </el-option>
<el-option label="生产标识2" value="2"> </el-option>
<el-option label="生产标识3" value="3"> </el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="镀种分类:" prop="platingType">
<el-select v-model="ruleForm.platingType" placeholder="请选择">
<el-option v-for="(item,index) in platingTypeList" :label="item.plateType" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="优先级:" prop="priority">
<el-input-number v-model="ruleForm.priority" controls-position="right" @change="handleChange" :min="1" :max="10"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="备注:" prop="remarks">
<el-input v-model="ruleForm.remarks" type="textarea" :rows="3"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="margin-bottom: 12px;" v-if="moldAddMore">
<el-button type="primary" @click="addTable">插入一行</el-button>
<el-button type="danger" @click="delTable">删除行</el-button>
</div>
<el-table :data="tableData" style="width: 100%">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column prop="processNo" label="工序号" align="center">
<template #header>
<span><i style="color:red">*</i>工序号</span>
</template>
<template #default="scope">
<el-input v-model="scope.row.processNo" placeholder="请输入内容"></el-input>
</template>
</el-table-column>
<el-table-column prop="processCode" label="工序代码" align="center">
<template #header>
<span><i style="color:red">*</i>工序代码</span>
</template>
<template #default="scope">
<el-select v-model="scope.row.processCode" placeholder="请选择" @change="processChange(scope.row,scope.$index)">
<el-option v-for="(item,index) in processList" :label="item.code"
:value="item.id"> </el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="processName" label="工序名称" align="center">
<template #default="scope">
<span>{{ scope.row.processName }}</span>
</template>
</el-table-column>
<el-table-column prop="craftCode" label="工艺能力" align="center">
<template #header>
<span><i style="color:red">*</i>工艺能力</span>
</template>
<template #default="scope">
<el-select v-model="scope.row.craftCode" placeholder="请选择">
<el-option label="工艺能力1" value="1"> </el-option>
<el-option label="工艺能力2" value="2"> </el-option>
<el-option label="工艺能力3" value="3"> </el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="workHours" label="工时(分钟)" align="center">
<template #header>
<span><i style="color:red">*</i>工时(分钟)</span>
</template>
<template #default="scope">
<el-input-number v-model="scope.row.workHours" controls-position="right" @change="handleChange" :min="1" :max="10"></el-input-number>
</template>
</el-table-column>
<el-table-column prop="proDes" label="工序描述" align="center">
<template #header>
<span><i style="color:red">*</i>工序描述</span>
</template>
<template #default="scope">
<el-input v-model="scope.row.proDes" placeholder="请输入内容"></el-input>
</template>
</el-table-column>
<el-table-column prop="partName" label="主工序" align="center">
<template #header>
<span><i style="color:red">*</i>主工序</span>
</template>
<template #default="scope">
<el-select v-model="scope.row.isMain" placeholder="请选择">
<el-option label="是" value="1"> </el-option>
<el-option label="否" value="2"> </el-option>
</el-select>
</template>
</el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog">取 消</el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import { getDictionary } from '@/api/system/dict';
import { getProcessesTeams,add,update,getDetail} from "@/api/processManagement/processTemplate";
import { getList} from "@/api/processManagement/basicProcesses";
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
moldAddMore: {
type: Boolean,
default: false
},
updateRow:{
type:Object,
default:{}
}
},
data() {
return {
processTemplateList:[],
platingTypeList:[],
processList:[],
openShow: false,
tableData: [],
ruleForm:{
code:'',
name:'',
workCenterId:'',
platingType:'',
priority:''
},
rules:{
code:[{ required: true, message: '请输入', trigger: 'blur' },],
name:[{ required: true, message: '请输入', trigger: 'blur' },],
workCenterId:[{ required: true, message: '请选择', trigger: 'blur' },],
platingType:[{ required: true, message: '请选择', trigger: 'blur' },],
priority:[{ required: true, message: '请选择', trigger: 'blur' },],
templateType:[{ required: true, message: '请选择', trigger: 'blur' },],
},
}
},
mounted() {
this.openShow = this.showDialog
this.getDictionary()
this.getProcessesTeams()
this.getProcessList()
if(!this.moldAddMore){
// this.ruleForm = this.updateRow
// console.log(98989,this.updateRow)
this.getDetail()
}
},
methods: {
getDetail(){
getDetail(this.updateRow.id).then(res => {
this.ruleForm = res.data.data.dsProModelEntity;
this.tableData = res.data.data.dsProDetailEntityList;
});
},
getDictionary() {
getDictionary({ code: 'processTemplateType' }).then(res => {
this.processTemplateList = res.data.data
})
},
getProcessesTeams(){
getProcessesTeams({current:1,size:99999}).then(res => {
this.platingTypeList = res.data.data
})
},
getProcessList(){
getList(1,99999).then(res => {
this.processList = res.data.data.records
})
},
closeDialog() {
this.openShow = false
this.$emit('closeDialog');
},
// 插入一行
addTable() {
this.tableData.push({
processNo: null,
processCode: null,
processName: null,
craftCode: null,
workHours: null,
proDes: null,
isMain:null
})
},
// 删除一行
delTable(row, index) {
this.tableData.splice(index, 1)
},
// 工序代码选择
processChange(row,index){
let selected = this.processList.find((item) => item.id == row.processCode)
row.processName = selected.name
},
submit(){
this.$refs.ruleForm.validate((valid) => {
if (valid) {
let query ={
...this.ruleForm,
tableData:this.tableData
}
// 修改
if(!this.moldAddMore){
update(query).then(res=>{
this.$message({
type: 'success',
message: '操作成功!',
});
this.$emit('closeDialog');
})
}else{
// 新增
add(query).then(res=>{
this.$message({
type: 'success',
message: '操作成功!',
});
this.$emit('closeDialog');
})
}
}
})
}
}
}
</script>
<style lang="scss" scoped></style>