工艺管理代码提交

dev-scheduling
zhangdi 3 days ago
parent e17d015ce5
commit 4c68f51e76
  1. 70
      src/views/processManagement/bathRefine/accumulateClass.vue
  2. 5
      src/views/processManagement/bathRefine/bathRefineTask.vue
  3. 16
      src/views/processManagement/bathRefine/components/addAccumulateClassDialog.vue
  4. 8
      src/views/processManagement/bathRefine/components/periodicalBatch.vue
  5. 10
      src/views/processManagement/bathRefine/components/periodicalClassDevice.vue
  6. 2
      src/views/processManagement/components/inPlantMaintenance.vue
  7. 132
      src/views/processManagement/components/processMainte/partDetails.vue
  8. 1
      src/views/processManagement/components/processMainte/reworkProcessPlanning.vue
  9. 21
      src/views/processManagement/inPlantProcess.vue
  10. 138
      src/views/productionSchedulingPlan/schedulingDashboard/index.vue

@ -8,7 +8,6 @@
v-model="form"
v-model:page="page"
ref="crud"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@ -17,6 +16,8 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@row-update="rowUpdate"
@row-del="rowDel"
>
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button>
@ -173,7 +174,7 @@ export default {
option: {
height: 'auto',
calcHeight: 32,
rowKey: 'keyValue',
rowKey: 'id',
tip: false,
simplePage: true,
searchShow: true,
@ -185,9 +186,9 @@ export default {
index: false,
selection: true,
viewBtn: false,
delBtn: false,
delBtn: true,
addBtn: false,
editBtn: false,
editBtn: true,
editBtnText: '修改',
addBtnIcon: ' ',
viewBtnIcon: ' ',
@ -196,7 +197,6 @@ export default {
viewBtnText: '详情',
labelWidth: 120,
searchLabelWidth: 120,
menu: false,
menuWidth: 220,
dialogWidth: 1200,
dialogClickModal: false,
@ -318,7 +318,7 @@ export default {
},
{
label: '添加量',
prop: 'actualValue',
prop: 'addQuantity',
search: false,
sortable: true,
overHidden: true,
@ -334,7 +334,7 @@ export default {
},
{
label: '添加量倍数',
prop: 'actualValueMom',
prop: 'addQuantityMultiple',
search: false,
sortable: true,
overHidden: true,
@ -424,6 +424,7 @@ export default {
closeDialog() {
this.showMaintain = false;
this.showDialog =false
this.onLoad(this.page);
},
selectionChange(val) {
this.selectionList = val;
@ -471,25 +472,38 @@ export default {
selectChange(list, row) {
row._select = !row._select;
},
//
remove() {
let arr = this.tableData.filter(item => item._select);
if (arr.length != 0) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
if (this.rowId) {
let deleteData = this.tableData.filter(item => item._select);
this.deleteProcessArr = deleteData.filter(item => item.tidId);
}
let deleteArr = this.tableData.filter(item => !item._select);
this.tableData = deleteArr;
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return remove(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
} else {
this.$message.error('请至少选择一条数据进行操作!');
}
},
rowUpdate(row, index, done, loading) {
update(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
handleSave() {
this.showDialog = false;
@ -499,9 +513,9 @@ export default {
this.onLoad(this.page);
},
searchChange(params, done) {
// this.query = params;
// this.page.currentPage = 1;
// this.onLoad(this.page, params);
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
currentChange(currentPage) {

@ -219,7 +219,7 @@ export default {
},
{
label: '安排日期',
prop: 'createTime',
prop: 'taskCreateTime',
width: 120,
search: true,
sortable: true,
@ -241,8 +241,7 @@ export default {
},
{
label: '责任人',
prop: 'userName',
bind: 'finishMan.userName',
prop: 'finishManStr',
width: 120,
type: 'select',
search: false,

@ -47,7 +47,7 @@
<el-form-item :prop="`tableData[${scope.$index}].batchNo`" :rules="formRules.batchNo">
<el-select v-model="scope.row.batchNo">
<el-option
v-for="item in batchNo"
v-for="item in batchNoOptions"
:key="item.value"
:value="item.value"
:label="item.label"
@ -79,7 +79,7 @@
</template>
<template #default="scope">
<el-form-item
:prop="`tableData[${scope.$index}].preserveContent `"
:prop="`tableData[${scope.$index}].preserveContent`"
:rules="formRules.preserveContent"
>
<el-input v-model="scope.row.preserveContent"></el-input>
@ -173,6 +173,16 @@ export default {
},
data() {
return {
batchNoOptions:[
{
label:'作业槽1',
value:1
},
{
label:'作业槽2',
value:2
}
],
ruleTypeData: [
{
label: '电量差类',
@ -283,7 +293,7 @@ export default {
wcId: '', // ID
batchNo: '', // /
preserveContent: '', //
bbpType: this.tabPosition === 'bathInspection' ? 3 : 4,
bbpType: 2,
});
},

@ -16,6 +16,7 @@
@refresh-change="refreshChange"
@on-load="onLoad"
@row-update="rowUpdate"
@row-del="rowDel"
>
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button>
@ -206,7 +207,7 @@ export default {
},
{
label: '维护人',
prop: 'craftName',
prop: 'keepManStr',
search: false,
sortable: true,
headerAlign: 'center',
@ -215,7 +216,7 @@ export default {
},
{
label: '维护时间',
prop: 'craftName',
prop: 'keepTime',
search: false,
sortable: true,
headerAlign: 'center',
@ -231,6 +232,7 @@ export default {
methods: {
closeDialog() {
this.showDialog = false;
this.onLoad(this.page);
},
selectChange(list, row) {
row._select = !row._select;
@ -253,7 +255,7 @@ export default {
});
},
rowUpdate(row, index, done, loading) {
update(row).then(
update([row]).then(
() => {
this.onLoad(this.page);
this.$message({

@ -16,6 +16,7 @@
@refresh-change="refreshChange"
@on-load="onLoad"
@row-update="rowUpdate"
@row-del="rowDel"
>
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button>
@ -219,7 +220,7 @@ export default {
},
{
label: '维护人',
prop: 'craftName',
prop: 'keepManStr',
search: false,
sortable: true,
headerAlign: 'center',
@ -228,7 +229,7 @@ export default {
},
{
label: '维护时间',
prop: 'craftName',
prop: 'keepTime',
search: false,
sortable: true,
headerAlign: 'center',
@ -244,6 +245,7 @@ export default {
methods: {
closeDialog() {
this.showDialog = false;
this.onLoad(this.page);
},
selectChange(list, row) {
row._select = !row._select;
@ -266,7 +268,7 @@ export default {
});
},
rowUpdate(row, index, done, loading) {
update(row).then(
update([row]).then(
() => {
this.onLoad(this.page);
this.$message({
@ -332,7 +334,7 @@ export default {
getList(
page.currentPage,
page.pageSize,
Object.assign(params, this.query, { bbpType: 3 })
Object.assign(params, this.query, { bbpType: 4 })
).then(res => {
this.data = res.data.data.records;
this.loading = false;

@ -124,7 +124,7 @@ export default {
},
{
label: '产线',
prop: 'wcName',
prop: 'equipmentName',
search: true,
sortable: true,
filter: true,

@ -97,7 +97,12 @@
</el-col>
<el-col :span="8" v-if="partType == '热表'">
<el-form-item label="镀种1:" prop="plate">
<el-select v-model="formData.plate" placeholder="请选择" style="width: 250px" disabled>
<el-select
v-model="formData.plate"
placeholder="请选择"
style="width: 250px"
disabled
>
<el-option label="镀种一" value="1" />
<el-option label="镀种二" value="2" />
<el-option label="镀种三" value="3" />
@ -439,6 +444,7 @@ export default {
},
data() {
return {
showProcessVersion:false,
setCrewShow: false,
activeName: '1',
craftData: {},
@ -570,16 +576,66 @@ export default {
methods: {
//
handleNodeClick(nodes, node, self) {
// if (nodes.disabled) {
// //
// return false;
// }
// this.treeLeave = node.level;
// if (this.treeLeave == 3) {
// this.activeName = '2';
// }
// if (this.treeLeave == 2) {
// this.activeName = '1';
// }
if (nodes.disabled) {
//
return false;
}
this.treeNodes = nodes;
this.treeLeave = node.level;
if (this.treeLeave == 3) {
this.activeName = '2';
}
if (this.treeLeave == 2) {
//
this.form1.tableData1 = [];
this.form2.tableData2 = [];
this.form3.tableData3 = [];
this.form4.tableData4 = [];
//
if (this.treeLeave === 2) {
this.activeName = '1';
this.form1.tableData1 = nodes.processList;
}
//
if (this.treeLeave === 3) {
this.activeName = '2';
//
const { processInfo, projectList, measuringToolList, moldToolList } = nodes.rawData;
//
this.form2.tableData2 = projectList.map(item => ({
trialNo: item.projectCode,
projectName: item.projectName,
projectStandard: item.projectStandard,
proHours: item.proHours,
prepareHours: item.prepareHours,
}));
//
this.form3.tableData3 = measuringToolList.map(item => ({
trialNo: item.projectCode || '',
testType: item.testType,
tool: item.tool,
toolSize: item.toolSize,
toolInfo: item.toolInfo,
}));
//
this.form4.tableData4 = moldToolList.map(item => ({
trialNo: processInfo.processNo,
moldCode: item.moldCode,
moldName: item.moldName,
isPrint: item.isPrint,
printNo: item.printNo,
testFixtureNo: item.testFixtureNo,
}));
}
},
setDataLocal() {
@ -608,18 +664,17 @@ export default {
let query = {
partId: 4,
partVersion: '1.3',
rank:'2'
rank: '2',
};
debugger
getProcessManagementAuthorized(query).then(res => {
// this.craftData = res.data;
// this.data = this.transformCraftTree(res.data.data);
console.log('工艺编制信息-零件工艺', res.data.data);
});
} else if (this.detailsType == 'taskProcessing') {
getProcessAuthorized(this.rowData.id).then(res => {
this.craftData = res.data.data;
// this.data = this.transformCraftTree(res.data.data);
console.log('工艺编制信息-工艺任务', res.data.data);
});
}
@ -631,7 +686,7 @@ export default {
let query = {
partId: 4,
partVersion: '1.3',
rank:'2'
rank: '2',
};
getPartManagementDetail(query).then(res => {
this.formData = res.data.data.dsPartEntity;
@ -644,7 +699,60 @@ export default {
});
}
},
handleClick(tab, event) {},
//
transformCraftTree(responseData) {
const { partInfo, craftList } = responseData;
const partCode = partInfo.partCode;
//
const tree = [
{
label: partCode,
disabled: true,
rawData: partInfo, //
children: craftList.map(craft => {
const { craftInfo, processList } = craft;
// roamNo-craftNo
const craftLabel = `${craftInfo.roamNo}-${craftInfo.craftNo}`;
return {
...craftInfo,
label: craftLabel,
processList: processList.map(process => {
return process.processInfo;
}),
rawData: craftInfo, //
children: processList.map(process => {
const { processInfo, projectList, measuringToolList, moldToolList } = process;
//
const processLabel = processInfo.processName;
return {
...processInfo,
label: processLabel,
rawData: {
processInfo,
projectList,
measuringToolList,
moldToolList,
}, //
children: projectList.map(project => ({
label: project.projectName, //
rawData: project, //
disabled: true,
})),
};
}),
};
}),
},
];
return tree;
},
handleClick(tab, event) {
},
partSubRefLoad() {
this.$refs.partSubRef.loadData(this.partId, true);
},

@ -501,7 +501,6 @@ export default {
};
},
mounted() {
console.log(9999, this.updateRow);
this.getDetails();
this.getModelList();
},

@ -34,6 +34,7 @@ export default {
return {
selectionList: [],
loading: false,
query: {},
option: {
height: 'auto',
calcHeight: 32,
@ -76,7 +77,7 @@ export default {
searchSpan: 6,
searchMenuPosition: 'right',
align: 'center',
menu:false,
menu: false,
column: [
{
label: '作业中心',
@ -90,7 +91,7 @@ export default {
align: 'left',
type: 'select',
hide: true,
dicUrl: '/blade-desk/bsWorkCenter/getList',
dicUrl: '/blade-desk/bsWorkCenter/getList',
props: {
label: 'wcName',
value: 'id',
@ -110,7 +111,7 @@ export default {
},
{
label: '产线',
prop: 'wcName',
prop: 'equipmentName',
search: true,
sortable: true,
filter: true,
@ -121,7 +122,7 @@ export default {
},
{
label: '确认编号',
prop: 'condition',
prop: 'confirmCondition',
search: false,
sortable: true,
filter: true,
@ -208,6 +209,18 @@ export default {
type: 'warning',
}).then(() => {});
},
//
searchReset() {
this.query = {};
this.onLoad(this.page);
},
//
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
//
selectionChange(list) {
this.selectionList = list;

@ -12,14 +12,13 @@
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="6" >
<el-col :span="4">
<el-form-item label="车间订单号:" label-width="120px">
<el-input v-model="formLabelAlign.woCode" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="4">
<el-form-item label="班组:">
<!-- <el-input v-model="formLabelAlign.teamame" placeholder="请输入"></el-input> -->
<el-select v-model="formLabelAlign.teamName" filterable placeholder="请选择">
<el-option
v-for="(item, index) in selectTeamOptions"
@ -28,13 +27,11 @@
:key="index"
>
</el-option>
<!-- <el-option label="班组2" value="2"> </el-option> -->
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-col :span="4">
<el-form-item label="设备:">
<!-- <el-input v-model="formLabelAlign.equipName" placeholder="请输入"></el-input> -->
<el-select v-model="formLabelAlign.equipName" filterable placeholder="请选择">
<el-option
v-for="(item, index) in selectEquipOptions"
@ -46,7 +43,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="4">
<el-form-item label="时间:">
<el-date-picker
v-model="formLabelAlign.startTime"
@ -57,7 +54,7 @@
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-col :span="8">
<el-button type="primary" icon="el-icon-search" @click="handleSubmit"> 搜索 </el-button>
<el-button icon="el-icon-delete" @click="handleSubmit"> 清空 </el-button>
</el-col>
@ -87,45 +84,32 @@
<!-- 甘特图主体 -->
<div class="gantt-wrapper">
<!-- 左侧设备列表 -->
<div class="device-list">
<div
v-if="searchType == '1'"
class="device-item device-item-title"
:style="{ height: '36px' }"
>
车间订单号
</div>
<div
v-if="searchType == '2'"
class="device-item device-item-title"
:style="{ height: '36px' }"
>
班组
</div>
<div
v-if="searchType == '3'"
class="device-item device-item-title"
:style="{ height: '36px' }"
>
设备
<div class="info-list">
<div class="info-item-title">
<div class="info-title-cell">车间订单号</div>
<div class="info-title-cell">零件号</div>
<div class="info-title-cell">批次号</div>
<div class="info-title-cell">数量</div>
</div>
<div
v-for="(device, index) in devices"
v-for="(order, index) in currentPageOrders"
:key="index"
:style="{
height: getRowHeight(device) + 'px',
lineHeight: getRowHeight(device) + 'px',
textAlign: 'center',
height: getRowHeight(order.woCode) + 'px',
borderBottom: '1px solid #ccc',
}"
:title="device"
>
{{ device }}
<div class="info-item">
<div class="info-cell">{{ order }}</div>
<div class="info-cell">{{ order.partCode }}</div>
<div class="info-cell">{{ order.batchNo }}</div>
<div class="info-cell">{{ order.makeQty }}</div>
</div>
</div>
</div>
<!-- 右侧时间轴 (时间在上刻度线在下) @wheel.prevent="handleWheel"-->
<div class="timeline-container" >
<div class="timeline-container">
<!-- 图表X轴区域时间在上刻度线在下 -->
<div class="chart-axis">
<!-- 时间标签 -->
@ -230,7 +214,18 @@
</div>
</div>
</div>
<!-- 分页控件 -->
<div class="pagination-container">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalOrders"
></el-pagination>
</div>
<!-- 悬浮提示框 -->
<div
v-if="tooltipVisible"
@ -328,15 +323,15 @@ export default {
return {
searchType: '',
formLabelAlign: {
// type: '1', //
type: '1', //
startTime: null, //
teamName: '', //
equipName: '', //
woCode: '', //
},
rowHeight: 36,
zoomLevel: 2, // (1-4)
minZoom: 4,
zoomLevel: 4, // (1-4)
minZoom: 1,
maxZoom: 4,
//
@ -379,13 +374,27 @@ export default {
this.formLabelAlign.startTime = new Date().toISOString().substr(0, 10);
this.getData();
this.getSelectTeam();
this.getSelectEquip()
},
methods: {
typeChange(){
this.formLabelAlign.teamName = ''
this.formLabelAlign.equipName = ''
this.formLabelAlign.woCode = ''
//
handleSizeChange(val) {
this.pageSize = val;
this.currentPage = 1;
this.updateCurrentPageOrders();
},
handleCurrentChange(val) {
this.currentPage = val;
this.updateCurrentPageOrders();
},
updateCurrentPageOrders() {
const start = (this.currentPage - 1) * this.pageSize;
const end = start + this.pageSize;
this.currentPageOrders = this.allOrders.slice(start, end);
},
typeChange() {
this.formLabelAlign.teamName = '';
this.formLabelAlign.equipName = '';
this.formLabelAlign.woCode = '';
},
getData() {
getData(this.formLabelAlign).then(res => {
@ -1007,4 +1016,43 @@ export default {
background-color: #284c89 !important;
color: #fff;
}
/* 左侧信息列表样式 */
.info-list {
width: 450px;
background-color: #f8f9fa;
border-right: 1px solid #eee;
flex-shrink: 0;
}
.info-item-title {
display: flex;
background: #284c89;
color: #fff;
font-weight: bold;
height: 36px;
}
.info-title-cell {
flex: 1;
text-align: center;
line-height: 36px;
border-right: 1px solid #eee;
}
.info-item {
display: flex;
height: 100%;
}
.info-cell {
flex: 1;
text-align: center;
padding: 5px;
box-sizing: border-box;
border-right: 1px solid #eee;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>

Loading…
Cancel
Save