From 749cb2f4ad815c5a68c19fe961d5ca2149a84dd4 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 17 九月 2026 11:28:54 +0800
Subject: [PATCH] feat(mes): 新增员工排班明细页面,修复计划排程菜单404
---
src/views/mes/pro/task/components/gantt-chart.vue | 34 ++++++++++++++++++++++++----------
1 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/src/views/mes/pro/task/components/gantt-chart.vue b/src/views/mes/pro/task/components/gantt-chart.vue
index eb9adb0..8f67c32 100644
--- a/src/views/mes/pro/task/components/gantt-chart.vue
+++ b/src/views/mes/pro/task/components/gantt-chart.vue
@@ -13,7 +13,7 @@
* 1. 鎸夎鍗曞垎缁勫睍绀虹敓浜т换鍔★紝璁㈠崟涓� project 琛岋紝浠诲姟涓哄瓙琛�
* 2. 鏀寔鍙棰勮鍜屾嫋鎷界紪杈戜袱绉嶆ā寮�
* 3. 鎷栨嫿鍚庤Е鍙� taskUpdate 浜嬩欢锛岄�氱煡鐖剁粍浠舵壒閲忎繚瀛�
- * 4. 鏃堕棿鍒诲害锛氬懆 鈫� 鏃� 鈫� 8 灏忔椂锛�1 宸ヤ綔鏃� = 8 灏忔椂锛�
+ * 4. 鏃堕棿鍒诲害锛氬懆 鈫� 鏃� 鈫� 灏忔椂
*/
defineOptions({ name: 'GanttChart', inheritAttrs: false });
@@ -47,8 +47,8 @@
gantt.config.readonly = props.readonly;
gantt.config.date_format = '%Y-%m-%d %H:%i:%s';
- gantt.config.duration_unit = 'hour'; // 鎸佺画鏃堕棿鍗曚綅涓哄皬鏃讹紝閰嶅悎 duration_step 瀹炵幇宸ヤ綔鏃ュ崟浣�
- gantt.config.duration_step = 8; // 1 宸ヤ綔鏃� = 8 灏忔椂
+ gantt.config.duration_unit = 'hour'; // 鎸佺画鏃堕棿鍗曚綅涓哄皬鏃�
+ gantt.config.duration_step = 1; // duration 瀛楁鍗充负瀹為檯灏忔椂鏁�
gantt.config.row_height = 36;
gantt.config.bar_height = 24;
gantt.config.fit_tasks = true;
@@ -70,7 +70,7 @@
gantt.config.buttons_left = ['gantt_save_btn'];
gantt.config.buttons_right = ['gantt_cancel_btn'];
- // 鏃堕棿鍒诲害锛氬懆 > 鏃� > 8 灏忔椂
+ // 鏃堕棿鍒诲害锛氬懆 > 鏃� > 灏忔椂
const weekScaleTemplate = (date: Date) => {
const dateToStr = gantt.date.date_to_str('%M %d');
const endDate = gantt.date.add(gantt.date.add(date, 1, 'week'), -1, 'day');
@@ -82,7 +82,7 @@
gantt.config.scales = [
{ unit: 'week', step: 1, format: weekScaleTemplate },
{ unit: 'day', step: 1, format: dayTemplate, css: daysStyle },
- { unit: 'hour', step: 8, format: '%H:%i' },
+ { unit: 'hour', step: 1, format: '%H:%i' },
];
gantt.config.scale_height = 50;
gantt.config.show_task_cells = true;
@@ -168,15 +168,29 @@
[BarcodeBizTypeEnum.WORKORDER]: 'project',
[BarcodeBizTypeEnum.TASK]: 'task',
};
- gantt.parse({
- data: tasks.map((item: any) => ({
+ const data = tasks
+ .map((item: any) => ({
...item,
type: typeMap[item.type] || item.type,
start_date: item.startDate ? new Date(item.startDate) : undefined,
end_date: item.endDate ? new Date(item.endDate) : undefined,
- })),
- links: [],
- });
+ }))
+ // 杩囨护缂哄け/闈炴硶鏃ユ湡鐨勪换鍔★紝閬垮厤 dhtmlx-gantt 璁$畻鏃堕棿杞存椂鎶� valueOf 寮傚父
+ .filter(
+ (task: any) =>
+ task.start_date instanceof Date &&
+ task.end_date instanceof Date &&
+ !Number.isNaN(task.start_date.getTime()) &&
+ !Number.isNaN(task.end_date.getTime()),
+ );
+ if (data.length === 0) {
+ return;
+ }
+ try {
+ gantt.parse({ data, links: [] });
+ } catch (error) {
+ console.error('鐢樼壒鍥炬覆鏌撳け璐ワ細', error);
+ }
}
watch(
--
Gitblit v1.9.3