diff --git a/src/resource-scheduler/components/schedule-table/schedule-table.tsx b/src/resource-scheduler/components/schedule-table/schedule-table.tsx index 5eb2cb3858c4783f045c265554d784cb650b1988..a9f10c2b17550f83628bf88d7c44000ac7da2e17 100644 --- a/src/resource-scheduler/components/schedule-table/schedule-table.tsx +++ b/src/resource-scheduler/components/schedule-table/schedule-table.tsx @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable no-unused-vars */ /* eslint-disable @typescript-eslint/no-unused-vars */ -import { computed, defineComponent, ref } from 'vue'; +import { computed, defineComponent, ref, useSlots } from 'vue'; import { IResourceViewModel, ITaskViewModel } from '../../interface'; import { initStore } from '../../store'; import { @@ -12,9 +12,13 @@ import { } from '../../hooks/use-schedule-table'; import { ScheduleTableEvent, ScheduleTableProps } from './schedule-table-type'; import './schedule-table.scss'; +import { ScheduleToolbar } from '../schedule-toolbar/schedule-toolbar'; export const ScheduleTable = defineComponent({ name: 'ScheduleTable', + components: { + ScheduleToolbar, + }, props: ScheduleTableProps, emits: ScheduleTableEvent, setup(props, { emit }) { @@ -31,14 +35,23 @@ export const ScheduleTable = defineComponent({ initStore(props, emit as any); // 初始化表格 - const { resourceViewModels, taskViewModels } = useInitScheduleTable( - headerCanvas, - bodyCanvas, - coordinateElement, - ); + const { + resourceViewModels, + taskViewModels, + onRefresh, + onSave, + onSaveAs, + onConfigRefresh, + } = useInitScheduleTable(headerCanvas, bodyCanvas, coordinateElement); + + // 插槽 + const slots = useSlots(); // 计算表格样式 - const { headerStyle, bodyStyle } = useScheduleTableStyle(props); + const { headerStyle, bodyStyle } = useScheduleTableStyle( + props, + slots && !!slots.extraToolbar, + ); // 监听视图大小变化 useScheduleTableReSize(props, headerCanvas, bodyCanvas, coordinateElement); @@ -79,11 +92,28 @@ export const ScheduleTable = defineComponent({ visibleTaskViewModels, handleScroll, visibleRange, + onRefresh, + onSave, + onSaveAs, + onConfigRefresh, }; }, render() { return (