排产代码提交

dev-scheduling
zhangdi 5 days ago
parent 0e1b713742
commit 90c6031f56
  1. 127
      src/views/productionSchedulingPlan/schedulingDashboard/index.vue

@ -35,7 +35,12 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="时间:"> <el-form-item label="时间:">
<el-date-picker v-model="formLabelAlign.startTime" type="date" placeholder="选择日期"> <el-date-picker
v-model="formLabelAlign.startTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="选择日期"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -211,27 +216,27 @@
> >
<div class="tooltip-content"> <div class="tooltip-content">
<!-- 工单标题 --> <!-- 工单标题 -->
<div class="wo-code-title" v-if="searchType=='1'">{{ tooltipData.woCode }}</div> <div class="wo-code-title" v-if="searchType == '1'">{{ tooltipData.woCode }}</div>
<div class="wo-code-title" v-if="searchType=='2'">{{ tooltipData.teamName }}</div> <div class="wo-code-title" v-if="searchType == '2'">{{ tooltipData.teamName }}</div>
<div class="wo-code-title" v-if="searchType=='3'">{{ tooltipData.equipName }}</div> <div class="wo-code-title" v-if="searchType == '3'">{{ tooltipData.equipName }}</div>
<!-- 详情列表 --> <!-- 详情列表 -->
<ul class="detail-list"> <ul class="detail-list">
<li class="detail-item" v-if="searchType=='1'"> <li class="detail-item" v-if="searchType == '1'">
<span class="label">工序</span> <span class="label">工序</span>
<span class="value">{{ tooltipData.processName || '-' }}</span> <span class="value">{{ tooltipData.processName || '-' }}</span>
</li> </li>
<li class="detail-item" v-if="searchType=='1'"> <li class="detail-item" v-if="searchType == '1'">
<span class="label">班组</span> <span class="label">班组</span>
<span class="value">{{ tooltipData.teamName || '-' }}</span> <span class="value">{{ tooltipData.teamName || '-' }}</span>
</li> </li>
<li class="detail-item" v-if="searchType=='2'||searchType=='3'"> <li class="detail-item" v-if="searchType == '2' || searchType == '3'">
<span class="label">车间订单号</span> <span class="label">车间订单号</span>
<span class="value">{{ tooltipData.woCode || '-' }}</span> <span class="value">{{ tooltipData.woCode || '-' }}</span>
</li> </li>
<li class="detail-item"> <li class="detail-item">
<span class="label">计划开始时间</span> <span class="label">计划开始时间</span>
<span class="value">{{tooltipData.planStartTime || '-' }}</span> <span class="value">{{ tooltipData.planStartTime || '-' }}</span>
</li> </li>
<li class="detail-item"> <li class="detail-item">
<span class="label">实际开始时间</span> <span class="label">实际开始时间</span>
@ -239,7 +244,7 @@
</li> </li>
<li class="detail-item"> <li class="detail-item">
<span class="label">计划完成时间</span> <span class="label">计划完成时间</span>
<span class="value">{{tooltipData.planEndTime || '-' }}</span> <span class="value">{{ tooltipData.planEndTime || '-' }}</span>
</li> </li>
<li class="detail-item"> <li class="detail-item">
<span class="label">实际完成时间</span> <span class="label">实际完成时间</span>
@ -248,9 +253,7 @@
<li class="detail-item"> <li class="detail-item">
<span class="label">状态</span> <span class="label">状态</span>
<span class="value"> <span class="value">
<el-tag :type="tooltipData.status">{{ <el-tag :type="tooltipData.status">{{ tooltipData.status || '未知' }}</el-tag>
tooltipData.status || '未知'
}}</el-tag>
</span> </span>
</li> </li>
</ul> </ul>
@ -270,7 +273,7 @@ export default {
searchType: '', searchType: '',
formLabelAlign: { formLabelAlign: {
type: '1', // type: '1', //
startTime: '', // startTime: null, //
teamName: '', // teamName: '', //
equipName: '', // equipName: '', //
woCode: '', // woCode: '', //
@ -313,6 +316,7 @@ export default {
}, },
mounted() { mounted() {
this.searchType = this.formLabelAlign.type; this.searchType = this.formLabelAlign.type;
this.formLabelAlign.startTime = new Date().toISOString().substr(0, 10);
this.getData(); this.getData();
}, },
methods: { methods: {
@ -474,6 +478,49 @@ export default {
hideTooltip() { hideTooltip() {
this.tooltipVisible = false; this.tooltipVisible = false;
}, },
// methods
getLayeredTasks(device) {
const tasks = this.getDeviceTasks(device);
if (!tasks.length) return [];
//
const sortedTasks = [...tasks].sort((a, b) => {
return this.timeToMinutes(a.startTime) - this.timeToMinutes(b.startTime);
});
const layers = [];
sortedTasks.forEach(task => {
//
let placed = false;
for (let i = 0; i < layers.length; i++) {
const lastTask = layers[i][layers[i].length - 1];
if (this.timeToMinutes(task.startTime) >= this.timeToMinutes(lastTask.endTime)) {
layers[i].push(task);
placed = true;
break;
}
}
if (!placed) {
layers.push([task]);
}
});
return layers;
},
//
getLayerOffset(layerIndex, totalLayers) {
if (totalLayers <= 1) return 0;
// = /
const layerHeight = this.rowHeight / totalLayers;
return layerIndex * layerHeight + 2; // 2px
},
//
getLayerTaskHeight(totalLayers) {
if (totalLayers <= 1) return this.rowHeight - 4; // 4px
return this.rowHeight / totalLayers - 4;
},
}, },
}; };
</script> </script>
@ -779,35 +826,35 @@ export default {
margin: 3px 0; margin: 3px 0;
} }
.wo-code-title { .wo-code-title {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
color: #1f2d3d; color: #1f2d3d;
margin-bottom: 15px; margin-bottom: 15px;
padding-bottom: 10px; padding-bottom: 10px;
border-bottom: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6;
} }
.detail-list { .detail-list {
list-style: none; list-style: none;
padding: 0; padding: 0;
margin: 0; margin: 0;
.detail-item {
display: flex;
align-items: center;
margin-bottom: 12px;
line-height: 24px;
.label {
width: 100px;
color: #666;
font-weight: 500;
}
.value { .detail-item {
flex: 1; display: flex;
color: #333; align-items: center;
} margin-bottom: 12px;
line-height: 24px;
.label {
width: 100px;
color: #666;
font-weight: 500;
}
.value {
flex: 1;
color: #333;
} }
} }
}
</style> </style>

Loading…
Cancel
Save