返工管理页面逻辑调整

dev-scheduling
zhangdi 3 months ago
parent 3e90f9eeef
commit 64e7121d36
  1. 9
      src/views/processManagement/components/processMainte/processPlanning.vue
  2. 252
      src/views/processManagement/components/processMainte/reworkProcessPlanning.vue

@ -390,10 +390,15 @@
</template> </template>
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData3[${scope.$index}].tool`" :rules="formRules3.tool"> <el-form-item :prop="`tableData3[${scope.$index}].tool`" :rules="formRules3.tool">
<el-select v-model="scope.row.tool" placeholder="请选择" clearable filterable> <el-input
v-model="scope.row.tool"
placeholder="请输入"
style="width: 100%"
></el-input>
<!-- <el-select v-model="scope.row.tool" placeholder="请选择" clearable filterable>
<el-option label="是" value="1"></el-option> <el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option> <el-option label="否" value="2"></el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>

@ -22,7 +22,7 @@
<div class="table-btn-left"> <div class="table-btn-left">
<el-button type="primary" plain @click="addTable()">插入一行</el-button> <el-button type="primary" plain @click="addTable()">插入一行</el-button>
<el-button type="danger" plain @click="delTable()">删除选择行</el-button> <el-button type="danger" plain @click="delTable()">删除选择行</el-button>
<el-button type="primary" plain @click="submit()">保存</el-button> <el-button type="primary" @click="submit()">保存</el-button>
</div> </div>
</div> </div>
<div class="table-btn-right" v-if="activeName == '1'"> <div class="table-btn-right" v-if="activeName == '1'">
@ -31,9 +31,8 @@
<el-button type="primary" @change="reworkNoNumSave()">保存</el-button> --> <el-button type="primary" @change="reworkNoNumSave()">保存</el-button> -->
<el-input placeholder="请输入内容" v-model="reworkNoNum"> <el-input placeholder="请输入内容" v-model="reworkNoNum">
<template #append> <template #append>
<el-button :icon="Search" >保存</el-button> <el-button :icon="Search" @click="reworkNoNumSave()">保存</el-button>
</template> </template>
<el-button class="el-icon-search" @click="reworkNoNumSave()">保存</el-button>
</el-input> </el-input>
</div> </div>
<div class="table-btn-right-box"> <div class="table-btn-right-box">
@ -51,7 +50,7 @@
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
<el-button type="primary" @change="modelLevelChange()">导入模板</el-button> <el-button type="primary" @click="modelLevelChange()">导入模板</el-button>
</div> </div>
<!-- <div class="table-btn-right-box"> <!-- <div class="table-btn-right-box">
<el-select <el-select
@ -81,17 +80,17 @@
> >
<el-table :data="form1.tableData1" style="width: 100%" v-if="activeName == '1'"> <el-table :data="form1.tableData1" style="width: 100%" v-if="activeName == '1'">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="reworkNo" label="返工序号"> <el-table-column prop="processInfo.reworkNo" label="返工序号">
<template #header> <template #header>
<span><i style="color: red">*</i>返工序号</span> <span><i style="color: red">*</i>返工序号</span>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-form-item <el-form-item
:prop="`tableData1[${scope.$index}].reworkNo`" :prop="`tableData1[${scope.$index}].processInfo.reworkNo`"
:rules="formRules1.reworkNo" :rules="formRules1.reworkNo"
> >
<el-input <el-input
v-model="scope.row.reworkNo" v-model="scope.row.processInfo.reworkNo"
placeholder="请输入" placeholder="请输入"
style="width: 100%" style="width: 100%"
></el-input> ></el-input>
@ -167,6 +166,23 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="makeMemo" label="工序描述">
<template #header>
<span><i style="color: red">*</i>工序描述</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].processInfo.makeMemo`"
:rules="formRules1.makeMemo"
>
<el-input
v-model="scope.row.processInfo.makeMemo"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="makeTeam" label="加工班组"> <el-table-column prop="makeTeam" label="加工班组">
<template #default="scope"> <template #default="scope">
<el-select <el-select
@ -175,14 +191,18 @@
clearable clearable
filterable filterable
> >
<el-option v-for="(item, index) in teamOptions" :label="item.name" :value="item.id"></el-option> <el-option
v-for="(item, index) in teamOptions"
:label="item.tsName"
:value="item.id"
></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ocId" label="外协厂商"> <el-table-column prop="ocId" label="外协厂商">
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-model="scope.row.processInfo.ocId" v-model="scope.row.ocId"
placeholder="请输入" placeholder="请输入"
style="width: 100%" style="width: 100%"
></el-input> ></el-input>
@ -209,23 +229,6 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="makeMemo" label="工序描述">
<template #header>
<span><i style="color: red">*</i>工序描述</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].processInfo.makeMemo`"
:rules="formRules1.makeMemo"
>
<el-input
v-model="scope.row.processInfo.makeMemo"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
</el-table> </el-table>
</el-form> </el-form>
<el-form <el-form
@ -238,12 +241,20 @@
<el-table :data="form2.tableData2" style="width: 100%"> <el-table :data="form2.tableData2" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="date" label="工序号"> <el-table-column prop="date" label="工序号">
<template #header>
<span><i style="color: red">*</i>工序号</span>
</template>
<template #default="scope"> <template #default="scope">
<el-form-item
:prop="`tableData2[${scope.$index}].trialNo`"
:rules="formRules2.trialNo"
>
<el-input <el-input
v-model="scope.row.trialNo" v-model="scope.row.trialNo"
placeholder="请输入" placeholder="请输入"
style="width: 100%" style="width: 100%"
></el-input> ></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="date" label="检验项目"> <el-table-column prop="date" label="检验项目">
@ -261,7 +272,11 @@
clearable clearable
filterable filterable
> >
<el-option v-for="(item, index) in projectOptions" :label="item.name" :value="item.id"></el-option> <el-option
v-for="(item, index) in projectOptions"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
@ -281,12 +296,16 @@
clearable clearable
filterable filterable
> >
<el-option v-for="(item, index) in standardList" :label="item.name" :value="item.id"></el-option> <el-option
v-for="(item, index) in standardList"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="date" label="标准值"> <!-- <el-table-column prop="date" label="标准值">
<template #default="scope"> <template #default="scope">
<el-input <el-input
v-model="scope.row.projectStandard" v-model="scope.row.projectStandard"
@ -294,6 +313,32 @@
style="width: 100%" style="width: 100%"
></el-input> ></el-input>
</template> </template>
</el-table-column> -->
<el-table-column prop="proHours" label="定额工时(分钟)">
<template #header>
<span><i style="color: red">*</i>定额工时(分钟)</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData2[${scope.$index}].proHours`"
:rules="formRules2.proHours"
>
<el-input
v-model="scope.row.proHours"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="prepareHours" label="准备工时(分钟)">
<template #default="scope">
<el-input
v-model="scope.row.prepareHours"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form> </el-form>
@ -337,6 +382,11 @@
</template> </template>
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData3[${scope.$index}].tool`" :rules="formRules3.tool"> <el-form-item :prop="`tableData3[${scope.$index}].tool`" :rules="formRules3.tool">
<el-input
v-model="scope.row.tool"
placeholder="请输入"
style="width: 100%"
></el-input>
<!-- <el-select v-model="scope.row.tool" placeholder="请选择" clearable filterable> <!-- <el-select v-model="scope.row.tool" placeholder="请选择" clearable filterable>
<el-option label="是" value="1"></el-option> <el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option> <el-option label="否" value="2"></el-option>
@ -453,7 +503,7 @@ import {
getCraftAbilityList, getCraftAbilityList,
getProject, getProject,
getTeamSetList, getTeamSetList,
getStandardList getStandardList,
} from '@/api/processManagement/taskProcessing'; } from '@/api/processManagement/taskProcessing';
// import {getPartList} from '@/api/orderManagement/getPartList'; // import {getPartList} from '@/api/orderManagement/getPartList';
@ -531,15 +581,23 @@ export default {
form1: { form1: {
tableData1: [], // tableData1: [], //
deleteIds: [],
selectIds: [], //ID
}, },
form2: { form2: {
tableData2: [], // tableData2: [], //
deleteIds: [],
selectIds: [], //ID
}, },
form3: { form3: {
tableData3: [], // tableData3: [], //
deleteIds: [],
selectIds: [], //ID
}, },
form4: { form4: {
tableData4: [], // tableData4: [], //
deleteIds: [],
selectIds: [], //ID
}, },
formRules1: { formRules1: {
reworkNo: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }], reworkNo: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
@ -552,15 +610,18 @@ export default {
makeMemo: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }], makeMemo: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
}, },
formRules2: { formRules2: {
trialNo: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
projectName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }], projectName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
projectStandard: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }], projectStandard: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
proHours: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }], proHours: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
}, },
formRules3: { formRules3: {
trialNo: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
testType: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }], testType: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
tool: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }], tool: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
}, },
formRules4: { formRules4: {
trialNo: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
moldCode: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }], moldCode: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
}, },
processSetOption: [], processSetOption: [],
@ -570,7 +631,7 @@ export default {
projectOptions: [], // projectOptions: [], //
teamOptions: [], // teamOptions: [], //
standardList: [], // standardList: [], //
tempId: 0,
}; };
}, },
mounted() { mounted() {
@ -578,9 +639,9 @@ export default {
this.getModelList(); this.getModelList();
this.getProcessSetList(); this.getProcessSetList();
this.getCraftAbilityList(); this.getCraftAbilityList();
this.getProject() this.getProject();
this.getTeamSetList() this.getTeamSetList();
this.getStandardList() this.getStandardList();
}, },
methods: { methods: {
// getPartList(){ // getPartList(){
@ -605,16 +666,18 @@ export default {
}, },
// //
processChange(row, index) { processChange(row, index) {
let selectName = this.processSetOption.find(item => item.id == row.processCode); let selectName = this.processSetOption.find(item => item.id == row.processInfo.ppsId);
this.form1.tableData1[index].processName = selectName.name; this.form1.tableData1[index].processInfo.processName = selectName.name;
}, },
// //
craftChange(row, index) { craftChange(row, index) {
let selectName = this.craftAbilityOption.find(item => item.id == row.craftCode); let selectName = this.craftAbilityOption.find(item => item.id == row.processInfo.caId);
this.form1.tableData1[index].craftName = selectName.name; this.form1.tableData1[index].processInfo.craftName = selectName.name;
}, },
reworkNoNumSave() { reworkNoNumSave() {
console.log(99999, this.reworkNoNum); this.form1.tableData1.forEach(item => {
item.reworkNo = this.reworkNoNum;
});
}, },
// //
getProcessSetList() { getProcessSetList() {
@ -668,40 +731,53 @@ export default {
}, },
// //
getDetails() { getDetails() {
getProcessAuthorized({ partId: this.partId, taskId: this.updateRow.id, version:this.updateRow.version }).then(res => { getProcessAuthorized({
partId: this.partId,
taskId: this.updateRow.id,
version: this.updateRow.version,
}).then(res => {
this.data = this.transformCraftTree(res.data.data); this.data = this.transformCraftTree(res.data.data);
this.partInfoData = res.data.data; this.partInfoData = res.data.data;
}); });
}, },
// //
transformCraftTree(responseData) { transformCraftTree(responseData) {
console.log('原始数据:', responseData); //
const { partInfo, craftList } = responseData; const { partInfo, craftList } = responseData;
const partCode = partInfo.partCode; const partCode = partInfo?.partCode || '未知零件';
//
const tree = [ const tree = [
{ {
label: partCode, label: partCode,
disabled: true, disabled: true,
rawData: partInfo, // rawData: partInfo,
children: craftList.map(craft => { children: (craftList || []).map(craft => {
const { craftInfo, processList } = craft; const { craftInfo, processList = [] } = craft;
return { return {
...craft, ...craft,
label: `${craftInfo.reworkOrder}`, label: `${craftInfo?.reworkOrder || '返工单'}`,
children: processList.map(process => { children: processList.map(process => {
const { processInfo, projectList, measuringToolList, moldToolList } = process; const ppsName =
process.ppsName || process.name || process.processName || '未知工序';
// projectList
const projectChildren = (process.projectList || []).map(project => ({
...project,
label: project.projectName || '未知检验项目', // 👈
disabled: true, //
isProjectNode: true, // 便
}));
return { return {
...processInfo,
...process, ...process,
label: processInfo.ppsName, label: ppsName,
children: projectList.map(project => { // projectList children
return { children: projectChildren.length > 0 ? projectChildren : undefined,
...project, // 使
label: project.projectName, projectList: process.projectList || [],
disabled: true, measuringToolList: process.measuringToolList || [],
}; moldToolList: process.moldToolList || [],
}),
}; };
}), }),
}; };
@ -727,6 +803,7 @@ export default {
if (this.treeLeave === 2) { if (this.treeLeave === 2) {
this.activeName = '1'; this.activeName = '1';
this.form1.tableData1 = nodes.processList; this.form1.tableData1 = nodes.processList;
console.log('当前节点数据:', nodes.processList);
} }
// //
if (this.treeLeave === 3) { if (this.treeLeave === 3) {
@ -767,29 +844,69 @@ export default {
}, },
// //
addTable() { addTable() {
this.tempId++;
if (this.activeName == '1') { if (this.activeName == '1') {
this.form1.tableData1.push({ id: null,processNo:this.getProcessNo(this.form1.tableData1) }); this.form1.tableData1.push({
processInfo: {
_tempId: this.tempId, //
id: null,
processNo: this.getProcessNo(this.form1.tableData1),
},
});
} }
if (this.activeName == '2') { if (this.activeName == '2') {
this.form2.tableData2.push({ id: null,processNo:this.getProcessNo(this.form2.tableData2) }); this.form2.tableData2.push({
processInfo: {
_tempId: this.tempId, //
id: null,
processNo: this.getProcessNo(this.form1.tableData1),
},
});
} }
if (this.activeName == '3') { if (this.activeName == '3') {
this.form3.tableData3.push({ id: null,processNo:this.getProcessNo(this.form3.tableData3) }); this.form3.tableData3.push({
processInfo: {
_tempId: this.tempId, //
id: null,
processNo: this.getProcessNo(this.form1.tableData1),
},
});
} }
if (this.activeName == '4') { if (this.activeName == '4') {
this.form4.tableData4.push({ id: null,processNo:this.getProcessNo(this.form4.tableData4) }); this.form4.tableData4.push({
processInfo: {
_tempId: this.tempId, //
id: null,
processNo: this.getProcessNo(this.form1.tableData1),
},
});
} }
}, },
handleSelectionChange1(val) {
this.form1.selectIds = val.map(row => row.id || row._tempId);
},
handleSelectionChange2(val) {
this.form2.selectIds = val.map(row => row.id || row._tempId);
},
handleSelectionChange3(val) {
this.form3.selectIds = val.map(row => row.id || row._tempId);
},
handleSelectionChange4(val) {
this.form4.selectIds = val.map(row => row.id || row._tempId);
},
// //
delTable() { delTable() {
if (this.activeName == '1') { const active = this.activeName;
let message = '请至少选择一条数据进行删除';
if (active == '1') {
} }
if (this.activeName == '2') { if (active == '2') {
} }
if (this.activeName == '3') { if (active == '3') {
} }
if (this.activeName == '4') { if (active == '4') {
} }
}, },
submit() { submit() {
@ -825,10 +942,12 @@ export default {
}, },
submitData() { submitData() {
let newArr = []; let newArr = [];
console.log('newArr', newArr);
if (this.treeLeave == 2) { if (this.treeLeave == 2) {
this.treeNodes.processList.forEach(item => { this.treeNodes.processList.forEach(item => {
newArr.push({ newArr.push({
...(item.processInfo || item), ...item.processInfo,
processProjectVOList: item.projectList || [], processProjectVOList: item.projectList || [],
processMeasuringToolVOList: item.measuringToolList || [], processMeasuringToolVOList: item.measuringToolList || [],
processMoldToolVOList: item.moldToolList || [], processMoldToolVOList: item.moldToolList || [],
@ -858,7 +977,8 @@ export default {
processMoldToolDeleteIds: [], // processMoldToolDeleteIds: [], //
}; };
reworkAuthorizedAccomplish(query_).then(res => { reworkAuthorizedAccomplish(query_).then(res => {
this.$emit('cancel'); // this.$emit('cancel');
this.getDetails();
}); });
}, },
}, },

Loading…
Cancel
Save