工艺管理模板调整

dev-scheduling
zhangdi 2 months ago
parent 0f750e2028
commit 883cb4c60b
  1. 4
      src/api/processManagement/processTemplate.js
  2. 287
      src/views/processManagement/components/addTemplateDialog.vue

@ -16,7 +16,7 @@ export const getList = (current, size, params) => {
// 保存 // 保存
export const add = row => { export const add = row => {
return request({ return request({
url: '/blade-desk/dsProModel/save', url: '/blade-desk/dsProModel/submit',
method: 'post', method: 'post',
data: row, data: row,
}); });
@ -27,7 +27,7 @@ export const add = row => {
// 修改 // 修改
export const update = row => { export const update = row => {
return request({ return request({
url: '/blade-desk/dsProModel/update', url: '/blade-desk/dsProModel/submit',
method: 'post', method: 'post',
data: row, data: row,
}); });

@ -16,18 +16,23 @@
> >
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="模板编码:" prop="code"> <el-form-item label="模板编码:" prop="promodel.code">
<el-input v-model="ruleForm.code"></el-input> <el-input v-model="ruleForm.promodel.code"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="模板名称:" prop="name"> <el-form-item label="模板名称:" prop="promodel.name">
<el-input v-model="ruleForm.name"></el-input> <el-input v-model="ruleForm.promodel.name"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="模板类型:" prop="templateType"> <el-form-item label="模板类型:" prop="promodel.templateType">
<el-select v-model="ruleForm.templateType" placeholder="请选择" clearable filterable> <el-select
v-model="ruleForm.promodel.templateType"
placeholder="请选择"
clearable
filterable
>
<el-option <el-option
v-for="(item, index) in processTemplateList" v-for="(item, index) in processTemplateList"
:label="item.dictValue" :label="item.dictValue"
@ -38,16 +43,26 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="作业中心:" prop="workCenterId"> <el-form-item label="作业中心:" prop="promodel.workCenterId">
<el-select v-model="ruleForm.workCenterId" placeholder="请选择" clearable filterable> <el-select
v-model="ruleForm.promodel.workCenterId"
placeholder="请选择"
clearable
filterable
>
<el-option v-for="item in workCenterList" :label="item.wcName" :value="item.id"> <el-option v-for="item in workCenterList" :label="item.wcName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="镀种分类:" prop="platingType"> <el-form-item label="镀种分类:" prop="promodel.platingType">
<el-select v-model="ruleForm.platingType" placeholder="请选择" clearable filterable> <el-select
v-model="ruleForm.promodel.platingType"
placeholder="请选择"
clearable
filterable
>
<el-option <el-option
v-for="(item, index) in platingTypeList" v-for="(item, index) in platingTypeList"
:label="item.plateType" :label="item.plateType"
@ -58,9 +73,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="优先级:" prop="priority"> <el-form-item label="优先级:" prop="promodel.priority">
<el-input-number <el-input-number
v-model="ruleForm.priority" v-model="ruleForm.promodel.priority"
controls-position="right" controls-position="right"
:min="1" :min="1"
:max="10" :max="10"
@ -68,8 +83,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="备注:" prop="remarks"> <el-form-item label="备注:" prop="promodel.remarks">
<el-input v-model="ruleForm.remarks" type="textarea" :rows="2"></el-input> <el-input v-model="ruleForm.promodel.remarks" type="textarea" :rows="2"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -81,6 +96,8 @@
@node-click="handleNodeClick" @node-click="handleNodeClick"
:default-expand-all="true" :default-expand-all="true"
:expand-on-click-node="false" :expand-on-click-node="false"
highlight-current-row
:current-row-key="currentRowId"
/> />
</div> </div>
<div class="process-right"> <div class="process-right">
@ -359,70 +376,38 @@ export default {
}, },
data() { data() {
return { return {
treeData: [ currentRowId: '',
{
label: '工序列表', treeData: [],
processList: [
{
processInfo: {
processName: '工序1',
},
projectInfo: [
{
jobName: '作业1',
},
{
jobName: '作业2',
},
],
},
{
processInfo: {
processName: '工序2',
},
projectInfo: [
{
jobName: '作业2',
},
{
jobName: '作业3',
},
],
},
],
},
], //
defaultProps: { defaultProps: {
label: data => { label: data => {
// Level 1: "" // label
if (data.label && data.processList) { if (data.label && data.processList) {
return data.label; return data.label;
} }
// Level 2: // processName
if (data.processInfo) { if (data.processName) {
return data.processInfo.processName || '未命名工序'; return data.processName;
} }
// Level 3: / // projectCode
if (data.jobName !== undefined) { if (data.projectCode !== undefined) {
return data.jobName; return `项目-${data.projectCode}`;
} }
return '未知节点'; return '未知节点';
}, },
children: data => { children: data => {
// Level 1 Level 2 //
if (data.processList) { if (data.processList) {
return data.processList; return data.processList;
} }
// Level 2 Level 3 //
if (data.processInfo && data.projectInfo) { if (data.modelProjectList) {
return data.projectInfo; return data.modelProjectList;
} }
// Level 3
return []; return [];
}, },
isLeaf: data => { isLeaf: data => {
// jobName return !data.processList && !data.modelProjectList;
return data.jobName !== undefined;
}, },
}, },
activeName: '1', activeName: '1',
@ -437,21 +422,33 @@ export default {
// tableData: [], // tableData: [],
ruleForm: { ruleForm: {
code: '', promodel: {
name: '', code: '',
workCenterId: '', name: '',
platingType: '', workCenterId: '',
priority: '', platingType: '',
tableData: [], priority: '',
},
// tableData: [],
tableData2: [], tableData2: [],
tableData: [],
}, },
rules: { rules: {
code: [{ required: true, message: '请输入', trigger: 'blur' }], // code: [{ required: true, message: '', trigger: 'blur' }],
name: [{ required: true, message: '请输入', trigger: 'blur' }], // name: [{ required: true, message: '', trigger: 'blur' }],
workCenterId: [{ required: true, message: '请选择', trigger: 'blur' }], // workCenterId: [{ required: true, message: '', trigger: 'blur' }],
platingType: [{ required: true, message: '请选择', trigger: 'blur' }], // platingType: [{ required: true, message: '', trigger: 'blur' }],
priority: [{ required: true, message: '请选择', trigger: 'blur' }], // priority: [{ required: true, message: '', trigger: 'blur' }],
templateType: [{ required: true, message: '请选择', trigger: 'blur' }], // templateType: [{ required: true, message: '', trigger: 'blur' }],
promodel: {
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' }],
},
tableData: [ tableData: [
{ {
required: true, required: true,
@ -504,16 +501,36 @@ export default {
mounted() { mounted() {
this.openShow = this.showDialog; this.openShow = this.showDialog;
this.getDictionary(); //
this.getProcessesTeams(); Promise.all([
this.getProcessList(); this.getDictionary(),
this.getWorkCenterList(); this.getProcessesTeams(),
this.getProcessAbilityList(); this.getProcessList(),
this.getProject(); this.getWorkCenterList(),
this.getStandardList(); this.getProcessAbilityList(),
if (this.title == '修改') { this.getProject(),
this.getDetail(); this.getStandardList(),
} ])
.then(() => {
//
if (this.title == '修改') {
return this.getDetail();
}
})
.then(() => {
this.treeData = [
{
label: '工序列表',
processList: this.ruleForm.tableData,
},
];
//
this.$nextTick(() => {
if (this.ruleForm.tableData.length > 0) {
this.ruleForm.tableData = this.treeData[0].processList;
}
});
});
}, },
methods: { methods: {
// //
@ -538,16 +555,17 @@ export default {
}, },
// //
handleNodeClick(nodes, node, self) { handleNodeClick(data) {
const data = nodes;
if (data.label && data.processList) { if (data.label && data.processList) {
// ""
this.activeName = '1'; this.activeName = '1';
this.treeLeave = 1; this.treeLeave = 1; //
this.ruleForm.tableData = data.processList; this.ruleForm.tableData = [];
} else if (data.processInfo) { } else if (data.processName && data.modelProjectList) {
this.activeName = '2'; //
this.treeLeave = 2; this.activeName = '2'; // Tab
this.ruleForm.tableData2 = [data.projectInfo]; this.treeLeave = 2; //
this.ruleForm.tableData2 = data.modelProjectList;
} }
}, },
// tab // tab
@ -590,8 +608,11 @@ export default {
}, },
getDetail() { getDetail() {
getDetail(this.updateRow.id).then(res => { getDetail(this.updateRow.id).then(res => {
this.ruleForm = res.data.data.dsProModelEntity; this.ruleForm.promodel = res.data.data.dsProModelEntity;
this.ruleForm.tableData = res.data.data.dsProDetailEntityList; //
this.ruleForm.tableData = res.data.data.proDetailVOList;
this.treeData = [{ label: '工序列表', processList: res.data.data.proDetailVOList }];
}); });
}, },
getDictionary() { getDictionary() {
@ -650,42 +671,64 @@ export default {
style: pinyin.STYLE_NORMAL, // STYLE_TONE style: pinyin.STYLE_NORMAL, // STYLE_TONE
heteronym: false, // heteronym: false, //
}); });
// / 1. promodel
const promodel = {
code: this.ruleForm.promodel.code,
name: this.ruleForm.promodel.name,
workCenterId: this.ruleForm.promodel.workCenterId,
platingType: this.ruleForm.promodel.platingType,
priority: this.ruleForm.promodel.priority,
templateType: this.ruleForm.promodel.templateType,
remarks: this.ruleForm.promodel.remarks,
//
modelNameStr: pinyin(this.ruleForm.promodel.name, {
style: pinyin.STYLE_NORMAL,
heteronym: false,
})
.flat()
.join(''),
};
// 2.
const tableData = this.ruleForm.tableData.map(item => {
const { _tempId, ...rest } = item; // ID
return rest;
});
let query = { let query = {
promodel: { promodel,
...this.ruleForm, tableData,
modelNameStr: pinyinArr.flat().join(''),
},
tableData: this.ruleForm.tableData,
}; };
console.log('提交数据:', query);
// //
if (!this.moldAddMore) { if (!this.moldAddMore) {
update(query) // update(query)
.then(res => { // .then(res => {
this.formLoading = false; // this.formLoading = false;
this.$message({ // this.$message({
type: 'success', // type: 'success',
message: '操作成功!', // message: '!',
}); // });
this.$emit('closeDialog'); // this.$emit('closeDialog');
}) // })
.catch(err => { // .catch(err => {
this.formLoading = false; // this.formLoading = false;
}); // });
} else { } else {
// //
add(query) // add(query)
.then(res => { // .then(res => {
this.formLoading = false; // this.formLoading = false;
this.$message({ // this.$message({
type: 'success', // type: 'success',
message: '操作成功!', // message: '!',
}); // });
this.$emit('closeDialog'); // this.$emit('closeDialog');
}) // })
.catch(err => { // .catch(err => {
this.formLoading = false; // this.formLoading = false;
}); // });
} }
} else { } else {
// //

Loading…
Cancel
Save