mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-02 03:02:19 +08:00
feat: gant block init fix
This commit is contained in:
parent
0ca3e79099
commit
402c63f307
@ -19,21 +19,8 @@ import { GanttToolbarContext } from '../../context';
|
|||||||
import { useDesignable } from '../../../../../schema-component';
|
import { useDesignable } from '../../../../../schema-component';
|
||||||
import { TableBlockProvider, useGanttBlockContext, useBlockRequestContext } from '../../../../../block-provider';
|
import { TableBlockProvider, useGanttBlockContext, useBlockRequestContext } from '../../../../../block-provider';
|
||||||
import { useProps } from '../../../../hooks/useProps';
|
import { useProps } from '../../../../hooks/useProps';
|
||||||
|
import { formatData, mockTasks } from './utils';
|
||||||
|
|
||||||
const formatData = (data = [], fieldNames) => {
|
|
||||||
const tasks: any[] = [];
|
|
||||||
data.forEach((v) => {
|
|
||||||
tasks.push({
|
|
||||||
start: new Date(v[fieldNames.start]),
|
|
||||||
end: new Date(v[fieldNames.end]),
|
|
||||||
name: v[fieldNames.title],
|
|
||||||
id: v.id + '',
|
|
||||||
type: 'task',
|
|
||||||
progress: v[fieldNames.progress],
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return tasks;
|
|
||||||
};
|
|
||||||
function Toolbar(props) {
|
function Toolbar(props) {
|
||||||
const fieldSchema = useFieldSchema();
|
const fieldSchema = useFieldSchema();
|
||||||
const toolBarSchema: Schema = useMemo(
|
const toolBarSchema: Schema = useMemo(
|
||||||
@ -57,6 +44,7 @@ const getColumnWidth = (dataSetLength, clientWidth) => {
|
|||||||
const columnWidth = clientWidth / dataSetLength > 50 ? Math.floor(clientWidth / dataSetLength) + 20 : 50;
|
const columnWidth = clientWidth / dataSetLength > 50 ? Math.floor(clientWidth / dataSetLength) + 20 : 50;
|
||||||
return columnWidth;
|
return columnWidth;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const Gantt: any = (props) => {
|
export const Gantt: any = (props) => {
|
||||||
const { designable } = useDesignable();
|
const { designable } = useDesignable();
|
||||||
|
|
||||||
@ -99,7 +87,7 @@ export const Gantt: any = (props) => {
|
|||||||
const { resource } = useBlockRequestContext();
|
const { resource } = useBlockRequestContext();
|
||||||
const fieldSchema = useFieldSchema();
|
const fieldSchema = useFieldSchema();
|
||||||
const { fieldNames, dataSource } = useProps(props);
|
const { fieldNames, dataSource } = useProps(props);
|
||||||
const { range: viewMode } = fieldNames || { range: 'day' };
|
const viewMode = fieldNames.range || 'day';
|
||||||
const tasks = formatData(dataSource, fieldNames) || [];
|
const tasks = formatData(dataSource, fieldNames) || [];
|
||||||
const wrapperRef = useRef<HTMLDivElement>(null);
|
const wrapperRef = useRef<HTMLDivElement>(null);
|
||||||
const taskListRef = useRef<HTMLDivElement>(null);
|
const taskListRef = useRef<HTMLDivElement>(null);
|
||||||
|
@ -0,0 +1,112 @@
|
|||||||
|
export function mockTasks() {
|
||||||
|
const currentDate = new Date();
|
||||||
|
const tasks: any[] = [
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 1),
|
||||||
|
end: new Date(currentDate.getFullYear(), currentDate.getMonth(), 15),
|
||||||
|
name: "Some Project",
|
||||||
|
id: "ProjectSample",
|
||||||
|
progress: 25,
|
||||||
|
type: "project",
|
||||||
|
hideChildren: false,
|
||||||
|
displayOrder: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 1),
|
||||||
|
end: new Date(
|
||||||
|
currentDate.getFullYear(),
|
||||||
|
currentDate.getMonth(),
|
||||||
|
2,
|
||||||
|
12,
|
||||||
|
28
|
||||||
|
),
|
||||||
|
name: "Idea",
|
||||||
|
id: "Task 0",
|
||||||
|
progress: 45,
|
||||||
|
type: "task",
|
||||||
|
project: "ProjectSample",
|
||||||
|
displayOrder: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 2),
|
||||||
|
end: new Date(currentDate.getFullYear(), currentDate.getMonth(), 4, 0, 0),
|
||||||
|
name: "Research",
|
||||||
|
id: "Task 1",
|
||||||
|
progress: 25,
|
||||||
|
dependencies: ["Task 0"],
|
||||||
|
type: "task",
|
||||||
|
project: "ProjectSample",
|
||||||
|
displayOrder: 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 4),
|
||||||
|
end: new Date(currentDate.getFullYear(), currentDate.getMonth(), 8, 0, 0),
|
||||||
|
name: "Discussion with team",
|
||||||
|
id: "Task 2",
|
||||||
|
progress: 10,
|
||||||
|
dependencies: ["Task 1"],
|
||||||
|
type: "task",
|
||||||
|
project: "ProjectSample",
|
||||||
|
displayOrder: 4,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 8),
|
||||||
|
end: new Date(currentDate.getFullYear(), currentDate.getMonth(), 9, 0, 0),
|
||||||
|
name: "Developing",
|
||||||
|
id: "Task 3",
|
||||||
|
progress: 2,
|
||||||
|
dependencies: ["Task 2"],
|
||||||
|
type: "task",
|
||||||
|
project: "ProjectSample",
|
||||||
|
displayOrder: 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 8),
|
||||||
|
end: new Date(currentDate.getFullYear(), currentDate.getMonth(), 10),
|
||||||
|
name: "Review",
|
||||||
|
id: "Task 4",
|
||||||
|
type: "task",
|
||||||
|
progress: 70,
|
||||||
|
dependencies: ["Task 2"],
|
||||||
|
project: "ProjectSample",
|
||||||
|
displayOrder: 6,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 15),
|
||||||
|
end: new Date(currentDate.getFullYear(), currentDate.getMonth(), 15),
|
||||||
|
name: "Release",
|
||||||
|
id: "Task 6",
|
||||||
|
progress: currentDate.getMonth(),
|
||||||
|
type: "milestone",
|
||||||
|
dependencies: ["Task 4"],
|
||||||
|
project: "ProjectSample",
|
||||||
|
displayOrder: 7,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: new Date(currentDate.getFullYear(), currentDate.getMonth(), 18),
|
||||||
|
end: new Date(currentDate.getFullYear(), currentDate.getMonth(), 19),
|
||||||
|
name: "Party Time",
|
||||||
|
id: "Task 9",
|
||||||
|
progress: 0,
|
||||||
|
isDisabled: true,
|
||||||
|
type: "task",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
return tasks;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const formatData = (data = [], fieldNames) => {
|
||||||
|
const tasks: any[] = [];
|
||||||
|
data.forEach((v) => {
|
||||||
|
tasks.push({
|
||||||
|
start: new Date(v[fieldNames.start]),
|
||||||
|
end: new Date(v[fieldNames.end]),
|
||||||
|
name: v[fieldNames.title],
|
||||||
|
id: v.id + '',
|
||||||
|
type: 'task',
|
||||||
|
progress: v[fieldNames.progress],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return tasks;
|
||||||
|
};
|
@ -1,23 +1,12 @@
|
|||||||
// import DeleteEvent from './DeleteEvent';
|
|
||||||
import { ActionBar } from '../action';
|
import { ActionBar } from '../action';
|
||||||
import { Gantt } from './components/gantt/gantt';
|
import { Gantt } from './components/gantt/gantt';
|
||||||
import { GanttDesigner } from './Gantt.Designer';
|
import { GanttDesigner } from './Gantt.Designer';
|
||||||
// import { Event } from './Event';
|
|
||||||
// import { Nav } from './Nav';
|
|
||||||
// import './style.less';
|
|
||||||
// import { Title } from './Title';
|
|
||||||
// import { Today } from './Today';
|
|
||||||
// import { ViewSelect } from './ViewSelect';
|
|
||||||
|
|
||||||
import { ViewMode } from './types/public-types';
|
import { ViewMode } from './types/public-types';
|
||||||
|
|
||||||
Gantt.ActionBar = ActionBar;
|
Gantt.ActionBar = ActionBar;
|
||||||
// Calendar.Event = Event;
|
|
||||||
// Calendar.DeleteEvent = DeleteEvent;
|
|
||||||
// Calendar.Title = Title;
|
|
||||||
// Calendar.Today = Today;
|
|
||||||
Gantt.ViewMode = ViewMode;
|
Gantt.ViewMode = ViewMode;
|
||||||
// Gantt.ViewSelect = ViewSelect;
|
|
||||||
Gantt.Designer = GanttDesigner;
|
Gantt.Designer = GanttDesigner;
|
||||||
|
|
||||||
// const GanttV2 = Gantt;
|
// const GanttV2 = Gantt;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user