diff --git a/src/api/productionManagement/frontTooling.js b/src/api/productionManagement/frontTooling.js
index 3f613a6..5c8bf4b 100644
--- a/src/api/productionManagement/frontTooling.js
+++ b/src/api/productionManagement/frontTooling.js
@@ -2,7 +2,7 @@ import request from '@/axios';
//列表接口
export const getList = (current, size, params) => {
return request({
- url: '/blade-desk//sjWorkOrder/queryByReadStatus',
+ url: '/blade-desk/sjWorkOrder/queryByReadStatus',
method: 'get',
params: {
...params,
diff --git a/src/views/productionSchedulingPlan/schedulingDashboard/container.vue b/src/views/productionSchedulingPlan/schedulingDashboard/container.vue
index 17b75eb..c727548 100644
--- a/src/views/productionSchedulingPlan/schedulingDashboard/container.vue
+++ b/src/views/productionSchedulingPlan/schedulingDashboard/container.vue
@@ -327,6 +327,10 @@
@mouseenter="showTooltip($event, task, order.woCode)"
@mouseleave="hideTooltip()"
>
+
+
+
+
- {{
- task.processName
- }}
-
-
- {{ task.processName }}
-
-->
@@ -859,8 +840,6 @@ export default {
// this.formLabelAlign.teamName = this.tsName;
this.updateTime();
- // 根据参数加载数据
- // this.getData();
},
// 计算重叠的窄任务的垂直偏移量
getNarrowTaskOffset(orderWoCode, taskIndex, layerIndex) {
@@ -962,7 +941,14 @@ export default {
// 格式化为 YYYY-MM-DD
const format = date => date.toISOString().split('T')[0];
this.formLabelAlign.timeRange = [format(startDate), format(endDate)];
-
+ const savedLegend = sessionStorage.getItem('legendStatus');
+ if (savedLegend) {
+ try {
+ this.legendStatus = JSON.parse(savedLegend);
+ } catch (e) {
+ console.warn('Failed to parse legendStatus from sessionStorage', e);
+ }
+ }
// 如果是重置操作,也应触发图例状态同步
if (type === 'reset') {
this.legendStatus.completed = false;
@@ -977,6 +963,7 @@ export default {
handleLegendChange(type) {
// 如果需要重新加载数据,可以调用
this.formLabelAlign.planStatusList = [];
+
if (this.legendStatus.completed) {
this.formLabelAlign.planStatusList.push('5');
}
@@ -986,8 +973,9 @@ export default {
if (this.legendStatus.pending) {
this.formLabelAlign.planStatusList.push('1');
}
- if (type == 'reset') {
- }
+
+ // sessionStorage.setItem('formLabelAlign', JSON.stringify(this.formLabelAlign));
+ sessionStorage.setItem('legendStatus', JSON.stringify(this.legendStatus)); // 新增
this.getData();
},
@@ -1091,6 +1079,10 @@ export default {
// this.formLabelAlign.planStatusList = [];
// }
let seeData = sessionStorage.getItem('formLabelAlign');
+ let seeLegend = sessionStorage.getItem('legendStatus');
+ if (seeLegend) {
+ this.legendStatus = JSON.parse(seeLegend);
+ }
if (seeData) {
this.formLabelAlign = JSON.parse(seeData);
}
@@ -1302,6 +1294,7 @@ export default {
console.log(this.formLabelAlign, '99999');
sessionStorage.setItem('formLabelAlign', JSON.stringify(this.formLabelAlign));
+ sessionStorage.setItem('legendStatus', JSON.stringify(this.legendStatus)); // 新增
this.getData();
},
@@ -1328,6 +1321,7 @@ export default {
// this.updateTime('reset');
sessionStorage.setItem('formLabelAlign', JSON.stringify(this.formLabelAlign));
+ sessionStorage.setItem('legendStatus', JSON.stringify(this.legendStatus)); // 新增
this.getData();
},
@@ -1344,15 +1338,6 @@ export default {
},
// 任务 样式计算
getStatusColor(row) {
- if (row.planStatus === '1') {
- if (row.remindStatus === '1') {
- return '#FFD700'; // 黄色(可自定义)
- } else if (row.remindStatus === '2') {
- return '#dc3545'; // 红色(与返工状态一致,或自定义)
- }
- // 如果没有 remindStatus,默认保持原灰色
- return '#6c757d';
- }
switch (row.planStatus) {
case '5':
return '#007bff';
@@ -1361,6 +1346,8 @@ export default {
return '#28a745';
case '6':
return '#dc3545';
+ case '1':
+ return '#6c757d';
default:
return '#ccc';
}
@@ -1602,12 +1589,11 @@ export default {
return false;
}
const taskWidthPercent = this.getWidthPercent(startTime, endTime);
-
+
const containerWidth = this.$refs.timelineContainer.scrollWidth;
if (containerWidth <= 0) return false; // 防止除零或无效计算
-
- const taskPixelWidth = (containerWidth * taskWidthPercent)/100;
+ const taskPixelWidth = (containerWidth * taskWidthPercent) / 100;
const textWidth = this.getTextWidth(text, 10); // 确保字体大小匹配实际样式
return taskPixelWidth >= textWidth + 4; // 4px 是左右 padding 缓冲
},
@@ -1624,7 +1610,9 @@ export default {
// 根据是否能容纳文字,返回不同的样式
getTaskTextStyle(task, layerIndex) {
const canFit = this.canFitText(task.processName, task.planStartTime, task.planEndTime);
-
+ const bgColor = this.getStatusColor(task);
+ // 判断是否为黄色(提醒状态)
+ const isYellow = bgColor === '#FFD700';
if (canFit) {
// 文字在内部居中
return {
@@ -1632,7 +1620,7 @@ export default {
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
- color: 'white',
+ color: isYellow ? '#000' : 'white',
fontSize: '10px',
whiteSpace: 'nowrap',
textShadow: '0 0 2px rgba(0,0,0,0.5)',
@@ -1645,7 +1633,7 @@ export default {
top: isEvenLayer ? '-15px' : 'calc(100% )',
left: '50%',
transform: 'translateX(-50%)',
- color: '#333',
+ color: isYellow ? '#000' : '#333',
fontSize: '10px',
whiteSpace: 'nowrap',
padding: '2px 6px',
@@ -1654,6 +1642,14 @@ export default {
};
}
},
+ getTaskIcon(task) {
+ // 示例:根据 planStatus 返回不同图标
+ if (task.remindStatus == '2' || task.remindStatus == '1') {
+ return 'el-icon-warning';
+ } else {
+ return '';
+ }
+ },
},
};
@@ -2014,9 +2010,50 @@ export default {
border: 1px solid rgba(255, 255, 255, 0.3);
min-width: 5px;
z-index: 1;
+ .task-icon {
+ position: absolute;
+ top: -14px;
+ left: -8px;
+ width: 16px;
+ height: 16px;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 2;
+ font-size: 12px;
+ color: #666;
+
+ i {
+ font-weight: bold;
+ }
+ }
+ .task-icon-red {
+ color: #ff4d4f; /* 红色 - 与 current-time-indicator 一致 */
+ background-color: white;
+ }
+
+ .task-icon-yellow {
+ color: #faad14; /* Element UI 警告黄色 */
+ background-color: white;
+ }
}
.task-bar.task-bar-narrow {
overflow: visible; /* 允许覆盖元素超出边界 */
+ .task-icon {
+ top: -14px;
+ left: 0;
+ transform: translateX(-50%);
+ }
+ .task-icon-red {
+ color: #ff4d4f; /* 红色 - 与 current-time-indicator 一致 */
+ background-color: white;
+ }
+
+ .task-icon-yellow {
+ color: #faad14; /* Element UI 警告黄色 */
+ background-color: white;
+ }
}
.task-bar:hover {