@ -1,42 +1,45 @@
< template >
< div class = "schedule-preview-wrap" >
< div ref = "ganttContainerRef" class = "schedule-gantt-container" : style = "{ height }" > < / div >
< div class = "schedule-detail-panel" >
< div class = "schedule-detail-title" > { { t ( 'GanttChart.GanttPanel.detailTitle' ) } } < / div >
< div v-if ="!editable" class="schedule-status-legend" >
< div
v - for = "item in sortedPlanStatusList"
: key = "item.key"
class = "legend-item"
: style = "{ borderLeftColor: item.color }"
>
< div class = "gantt-main-area" >
< div class = "schedule-status-legend" >
< div v -for = " item in sortedPlanStatusList " :key ="item.key" class = "legend-item"
: style = "{ borderLeftColor: item.color }" >
< span class = "legend-color" : style = "{ backgroundColor: item.color }" > < / span >
< span class = "legend-label" > { { item . label } } < / span >
< / div >
< / div >
< div ref = "ganttContainerRef" class = "schedule-gantt-container" : style = "{ height }" > < / div >
< / div >
< div class = "schedule-detail-panel" >
< div class = "schedule-detail-title" > { { t ( 'GanttChart.GanttPanel.detailTitle' ) } } < / div >
< template v-if ="activePreviewDevice" >
< el -descriptions :column ="1" border size = "small" >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.deviceNameLabel')" > { { activePreviewDevice . deviceName } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.deviceIdLabel')" > { { activePreviewDevice . deviceId } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.capacityLabel')" > { { activePreviewDevice . ratedCapacity ? ? '-' } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item v-if ="'dailyAverageValue' in activePreviewDevice" :label="t('GanttChart.GanttPanel.dailyAvgLabel')" > {{ activePreviewDevice.dailyAverageValue ? ? ' - ' }} < / el -descriptions -item >
< el -descriptions -item v-if ="'dataCollectionCapacity' in activePreviewDevice" :label="t('GanttChart.GanttPanel.dataCollectionCapacityLabel')" > {{ activePreviewDevice.dataCollectionCapacity ? ? ' - ' }} < / el -descriptions -item >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.planCountLabel')" > { { activePreviewDevice . plans ? . length ? ? 0 } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.deviceNameLabel')" > { { activePreviewDevice . deviceName
} } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.deviceIdLabel')" > { { activePreviewDevice . deviceId
} } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.capacityLabel')" > { { activePreviewDevice . ratedCapacity
? ? '-' } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item v -if = " ' dailyAverageValue ' in activePreviewDevice "
: label = "t('GanttChart.GanttPanel.dailyAvgLabel')" > { { activePreviewDevice . dailyAverageValue ? ? '-'
} } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item v -if = " ' dataCollectionCapacity ' in activePreviewDevice "
: label = "t('GanttChart.GanttPanel.dataCollectionCapacityLabel')" > { {
activePreviewDevice . dataCollectionCapacity ? ? '-' } } < / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item :label ="t('GanttChart.GanttPanel.planCountLabel')" > { { activePreviewDevice . plans ? . length
? ? 0 } } < / e l - d e s c r i p t i o n s - i t e m >
< / e l - d e s c r i p t i o n s >
< div class = "schedule-plan-list-title" > { { t ( 'GanttChart.GanttPanel.planDetailTitle' ) } } < / div >
< div class = "schedule-plan-list" >
< div
v - for = "(plan, index) in activePreviewTask ? [activePreviewTask] : (activePreviewDevice?.plans ?? [])"
< div v -for = " ( plan , index ) in activePreviewTask ? [ activePreviewTask ] : ( activePreviewDevice ? .plans ? ? [ ] ) "
: key = "`${activePreviewDevice?.deviceId}-${plan.taskDetailId}-${index}`"
: class = "['schedule-plan-item', { 'schedule-plan-item-active': plan.sourceType === 'CURRENT' }]"
>
: class = "['schedule-plan-item', { 'schedule-plan-item-active': plan.sourceType === 'CURRENT' }]" >
< div class = "schedule-plan-item-head" >
< span class = "schedule-plan-item-title" > { { plan . productCode ? ? '-' } } / { { plan . productName ? ? '-' } } < / span >
< span
v - if = "plan.planStatus && PLAN_STATUS_COLOR_MAP[plan.planStatus]"
class = "plan-status-tag"
: style = "{ backgroundColor: PLAN_STATUS_COLOR_MAP[plan.planStatus].color }"
>
< span class = "schedule-plan-item-title" > { { plan . productCode ? ? '-' } } / { { plan . productName ? ? '-'
} } < / span >
< span v -if = " plan.planStatus & & PLAN_STATUS_COLOR_MAP [ plan.planStatus ] " class = "plan-status-tag"
: style = "{ backgroundColor: PLAN_STATUS_COLOR_MAP[plan.planStatus].color }" >
{ { PLAN _STATUS _COLOR _MAP [ plan . planStatus ] . label } }
< / span >
< / div >
@ -53,21 +56,18 @@
< / div >
< / div >
< el -dialog v -if = " props.editable " v -model = " taskAdjustDialogVisible " :title ="t('GanttChart.GanttPanel.adjustTaskTitle')" width = "420px" append -to -body >
< el -dialog v -if = " props.editable " v -model = " taskAdjustDialogVisible " :title ="t('GanttChart.GanttPanel.adjustTaskTitle')"
width = "420px" append - to - body >
< el -form label -width = " 90px " >
< el -form -item :label ="t('GanttChart.GanttPanel.deviceLabel')" >
< el -select v-model ="taskAdjustForm.deviceTaskId" :placeholder="t('GanttChart.GanttPanel.devicePlaceholder')" class="!w-full" >
< el -select v -model = " taskAdjustForm.deviceTaskId " :placeholder ="t('GanttChart.GanttPanel.devicePlaceholder')"
class = "!w-full" >
< el -option v -for = " item in previewDeviceOptions " :key ="item.value" :label ="item.label" :value ="item.value" / >
< / e l - s e l e c t >
< / e l - f o r m - i t e m >
< el -form -item :label ="t('GanttChart.GanttPanel.startDateLabel')" >
< el -date -picker
v - model = "taskAdjustForm.startDate"
type = "date"
value - format = "YYYY-MM-DD"
: placeholder = "t('GanttChart.GanttPanel.startDatePlaceholder')"
class = "!w-full"
/ >
< el -date -picker v -model = " taskAdjustForm.startDate " type = "date" value -format = " YYYY -MM -DD "
: placeholder = "t('GanttChart.GanttPanel.startDatePlaceholder')" class = "!w-full" / >
< / e l - f o r m - i t e m >
< el -form -item :label ="t('GanttChart.GanttPanel.durationLabel')" >
< el -input -number v -model = " taskAdjustForm.duration " :min ="1" :max ="365" class = "!w-full" / >
@ -75,25 +75,23 @@
< / e l - f o r m >
< template # footer >
< el -button @ click = "taskAdjustDialogVisible = false" > { { t ( 'GanttChart.GanttPanel.buttonCancel' ) } } < / e l - b u t t o n >
< el -button type = "primary" @click ="handleTaskAdjustSubmit" > {{ t ( ' GanttChart.GanttPanel.buttonConfirm ' ) }} < / el -button >
< el -button type = "primary" @click ="handleTaskAdjustSubmit" > {{ t ( ' GanttChart.GanttPanel.buttonConfirm ' )
} } < / e l - b u t t o n >
< / template >
< / e l - d i a l o g >
< el -dialog v -if = " props.editable " v -model = " startDateEditorVisible " :title ="t('GanttChart.GanttPanel.editStartDateTitle')" width = "360px" append -to -body >
< el -dialog v -if = " props.editable " v -model = " startDateEditorVisible "
: title = "t('GanttChart.GanttPanel.editStartDateTitle')" width = "360px" append - to - body >
< el -form label -width = " 80px " >
< el -form -item :label ="t('GanttChart.GanttPanel.startTimeLabel')" >
< el -date -picker
v - model = "startDateEditorValue"
type = "datetime"
value - format = "YYYY-MM-DD HH:mm:ss"
: placeholder = "t('GanttChart.GanttPanel.startTimePlaceholder')"
class = "!w-full"
/ >
< el -date -picker v -model = " startDateEditorValue " type = "datetime" value -format = " YYYY -MM -DD HH : mm : ss "
: placeholder = "t('GanttChart.GanttPanel.startTimePlaceholder')" class = "!w-full" / >
< / e l - f o r m - i t e m >
< / e l - f o r m >
< template # footer >
< el -button @ click = "startDateEditorVisible = false" > { { t ( 'GanttChart.GanttPanel.buttonCancel' ) } } < / e l - b u t t o n >
< el -button type = "primary" @click ="handleStartDateEditorSubmit" > {{ t ( ' GanttChart.GanttPanel.buttonConfirm ' ) }} < / el -button >
< el -button type = "primary" @click ="handleStartDateEditorSubmit" > {{ t ( ' GanttChart.GanttPanel.buttonConfirm ' )
} } < / e l - b u t t o n >
< / template >
< / e l - d i a l o g >
< / template >
@ -702,20 +700,29 @@ const initGanttPreview = () => {
return
}
gantt . plugins ( { tooltip : true , inline _edit : true , undo : true } )
gantt . config . readonly = ! props . editable
gantt . config . drag _move = ! ! props . editable
gantt . config . drag _links = false
gantt . config . drag _progress = false
gantt . config . drag _resize = ! ! props . editable
gantt . config . order _branch = ! ! props . editable
gantt . config . order _branch _free = ! ! props . editable
gantt . config . details _on _dblclick = false
gantt . config . show _progress = false
gantt . config . row _height = 40
gantt . config . scale _height = 44
gantt . config . xml _date = '%Y-%m-%d %H:%i'
gantt . config . task _height = 24
/ / 加 载 甘 特 图 插 件
gantt . plugins ( { tooltip : true , inline _edit : true , undo : true } )
/ / 编 辑 相 关 配 置
gantt . config . readonly = ! props . editable / / 是 否 只 读 模 式
gantt . config . drag _move = ! ! props . editable / / 是 否 允 许 拖 动 任 务
gantt . config . drag _links = false / / 是 否 允 许 拖 动 链 接
gantt . config . drag _progress = false / / 是 否 允 许 拖 动 进 度
gantt . config . drag _resize = ! ! props . editable / / 是 否 允 许 调 整 任 务 大 小
gantt . config . order _branch = ! ! props . editable / / 是 否 允 许 分 支 内 排 序
gantt . config . order _branch _free = ! ! props . editable / / 是 否 允 许 跨 分 支 排 序
gantt . config . details _on _dblclick = false / / 双 击 是 否 显 示 详 情
gantt . config . show _progress = false / / 是 否 显 示 进 度 条
/ / 布 局 相 关 配 置
gantt . config . row _height = 48 / / 任 务 行 高 度
gantt . config . scale _height = 70 / / 时 间 轴 高 度
gantt . config . xml _date = '%Y-%m-%d %H:%i' / / 日 期 格 式
gantt . config . task _height = 36 / / 任 务 条 高 度
gantt . config . min _column _width = 80 / / 最 小 列 宽
gantt . config . column _width = 90 / / 默 认 列 宽
gantt . config . bar _height = 34 / / 任 务 条 实 际 高 度
gantt . config . resize _step = 15 / / 调 整 步 长
gantt . config . columns = [
{
@ -760,7 +767,7 @@ const initGanttPreview = () => {
gantt . templates . tooltip _text = ( start , end , task : any ) => buildTaskTooltipHtml ( task , start , end )
gantt . templates . task _class = ( _start , _end , task : any ) => {
if ( ! task ? . _planData ) return ''
/ / 当 e d i t a b l e 为 f a l s e 时 , 根 据 p l a n S t a t u s 显 示 对 应 的 颜 色
if ( ! props . editable ) {
const planStatus = task . _planData ? . planStatus
@ -780,7 +787,7 @@ const initGanttPreview = () => {
}
return statusMap [ planStatus ] || 'schedule-plan-task-default'
}
/ / 当 e d i t a b l e 为 t r u e 时 , 使 用 原 来 的 逻 辑
const sourceType = String ( task ? . _planData ? . sourceType ? ? '' ) . toUpperCase ( )
return sourceType === 'HISTORY' ? 'schedule-plan-task-history' : 'schedule-plan-task'
@ -794,12 +801,12 @@ const initGanttPreview = () => {
const ganttData = buildPreviewGanttData ( previewScheduleList . value )
gantt . parse ( ganttData )
/ / 强 制 刷 新 所 有 任 务 的 样 式 , 确 保 颜 色 正 确 应 用
gantt . eachTask ( ( task : any ) => {
gantt . refreshTask ( task . id )
} )
initTaskTooltips ( )
if ( ganttData . data . length ) {
@ -858,7 +865,7 @@ const initGanttPreview = () => {
startDateEditorTaskId . value = taskId
startDateEditorValue . value = dayjs ( task . start _date ) . format ( 'YYYY-MM-DD HH:mm:ss' )
startDateEditorVisible . value = true
} catch { }
} catch { }
}
ganttContainerRef . value . addEventListener ( 'click' , gridClickHandler , true )
tooltipCleanupFns . value . push ( ( ) => {
@ -988,11 +995,20 @@ onBeforeUnmount(() => {
. schedule - preview - wrap {
display : flex ;
width : 100 % ;
height : 100 % ;
gap : 12 px ;
overflow : hidden ;
}
. schedule- gantt - container {
. gantt- main - area {
flex : 1 ;
min - width : 0 ;
display : flex ;
flex - direction : column ;
overflow : hidden ;
}
. schedule - gantt - container {
min - width : 0 ;
border : 1 px solid var ( -- el - border - color ) ;
border - radius : 4 px ;
@ -1010,9 +1026,7 @@ onBeforeUnmount(() => {
}
. schedule - status - legend {
display : grid ;
grid - template - columns : repeat ( auto - fit , minmax ( 100 px , 1 fr ) ) ;
gap : 8 px ;
display : flex ;
margin - bottom : 12 px ;
padding : 8 px ;
background : var ( -- el - fill - color - light ) ;
@ -1026,6 +1040,7 @@ onBeforeUnmount(() => {
padding : 4 px 8 px ;
border - left : 3 px solid ;
font - size : 12 px ;
margin - right : 20 px
}
. legend - color {
@ -1052,15 +1067,18 @@ onBeforeUnmount(() => {
overflow : auto ;
max - height : 55 vh ;
border : 1 px solid var ( -- el - border - color ) ;
border - radius : 4 px ;
border - radius : 8 px ;
padding : 8 px ;
}
. schedule - plan - item {
padding : 8 px ;
border - radius : 4 px ;
border - radius : 8 px ;
background : var ( -- el - fill - color - light ) ;
font - size : 14 px ;
line - height : 1.4 ;
}
. schedule - plan - item - head {
display : flex ;
align - items : center ;
@ -1068,55 +1086,135 @@ onBeforeUnmount(() => {
gap : 8 px ;
margin - bottom : 4 px ;
}
. schedule - plan - item - title {
font - weight : 600 ;
color : var ( -- el - text - color - primary ) ;
overflow : hidden ;
text - overflow : ellipsis ;
white - space : nowrap ;
font - size : 16 px ;
}
. plan - status - tag {
display : inline - block ;
padding : 2 px 8 px ;
border - radius : 2 px ;
font - size : 1 2 px ;
padding : 4 px 8 px ;
border - radius : 4 px ;
font - size : 1 0 px ;
color : # ffffff ;
font - weight : 600 ;
white - space : nowrap ;
flex - shrink : 0 ;
}
. schedule - plan - item - active {
border : 1 px solid var ( -- el - color - success - light - 5 ) ;
background : var ( -- el - color - success - light - 9 ) ;
}
. schedule - plan - item + . schedule - plan - item {
. schedule - plan - item + . schedule - plan - item {
margin - top : 8 px ;
}
. schedule - gantt - container : deep ( . gantt _grid _data . gantt _row ) {
font - weight : 600 ;
background : linear - gradient ( 180 deg , # f8fafc 0 % , # f0f4f8 100 % ) ;
border - bottom : 1 px solid # e2e8f0 ;
height : 48 px ;
display : flex ;
align - items : flex - end ;
}
. schedule - gantt - container : deep ( . gantt _grid _data . gantt _row : nth - child ( even ) ) {
background : linear - gradient ( 180 deg , # ffffff 0 % , # f9fafb 100 % ) ;
}
. schedule - gantt - container : deep ( . gantt _grid _data . gantt _row : hover ) {
background : linear - gradient ( 180 deg , # f3f4f6 0 % , # e5e7eb 100 % ) ! important ;
}
. schedule - gantt - container : deep ( . gantt _grid _data . gantt _cell ) {
text - overflow : clip ;
font - size : 13 px ;
color : # 4 b5563 ;
border - right : 1 px solid # e5e7eb ;
padding : 0 12 px ;
line - height : 36 px ;
display : flex ;
align - items : center ;
justify - content : flex - start ;
}
. schedule - gantt - container : deep ( . gantt _scale _line ) {
border - bottom : 2 px solid # d1d5db ;
background : linear - gradient ( 180 deg , # ffffff 0 % , # f9fafb 100 % ) ;
display : flex ;
align - items : center ;
margin - bottom : 2 px ;
}
. schedule - gantt - container : deep ( . gantt _scale _line : last - child ) {
margin - bottom : 0 ;
border - bottom : 1 px solid # e5e7eb ;
}
. schedule - gantt - container : deep ( . gantt _scale _cell ) {
font - size : 14 px ;
font - weight : 600 ;
color : # 374151 ;
border - right : 1 px solid # e5e7eb ;
padding : 0 8 px ;
text - align : center ;
background : linear - gradient ( 180 deg , # ffffff 0 % , # f9fafb 100 % ) ;
display : flex ;
align - items : center ;
justify - content : center ;
height : 35 px ;
}
. schedule - gantt - container : deep ( . gantt _scale _line : last - child . gantt _scale _cell ) {
font - size : 13 px ;
font - weight : 500 ;
color : # 6 b7280 ;
background : linear - gradient ( 180 deg , # f9fafb 0 % , # f3f4f6 100 % ) ;
border - bottom : 1 px solid # e5e7eb ;
height : 35 px ;
}
. schedule - gantt - container : deep ( . gantt _task _bg ) {
background : # ffffff ;
}
. schedule - gantt - container : deep ( . gantt _task _bg . gantt _task _cell ) {
border - right - width : 2 px ;
border - right : 1 px solid # f3f4f6 ;
border - bottom : 1 px solid # f3f4f6 ;
}
. schedule - gantt - container : deep ( . gantt - inline - editor - trigger ) {
display : inline - block ;
width : 100 % ;
overflow : visible ;
cursor : pointer ;
. schedule - gantt - container : deep ( . gantt _task _bg . gantt _task _row : nth - child ( even ) ) {
background : # f9fafb ;
}
. schedule - gantt - container : deep ( . gantt _task _bg . gantt _task _row : hover ) {
background : # f3f4f6 ! important ;
}
. schedule - gantt - container : deep ( . gantt _task _line ) {
border - radius : 10 px ;
box - shadow : 0 2 px 4 px rgba ( 0 , 0 , 0 , 0.1 ) ;
border : none ;
}
. schedule - gantt - container : deep ( . gantt _task _content ) {
font - size : 12 px ;
font - weight : 500 ;
color : # ffffff ;
padding : 0 12 px ;
line - height : 32 px ;
text - shadow : 0 1 px 2 px rgba ( 0 , 0 , 0 , 0.1 ) ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task ) {
background : # 67 c23a ;
border - color : # 67 c23a ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task . gantt _task _content ) {
@ -1125,8 +1223,7 @@ onBeforeUnmount(() => {
/* 已排产状态 - 蓝色 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 1 ) {
background : # 409 eff ! important ;
border - color : # 409 eff ! important ;
background : # 3 b82f6 ! important ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 1 . gantt _task _content ) {
@ -1135,8 +1232,7 @@ onBeforeUnmount(() => {
/* 已开工状态 - 绿色 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 8 ) {
background : # 67 c23a ! important ;
border - color : # 67 c23a ! important ;
background : # 10 b981 ! important ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 8 . gantt _task _content ) {
@ -1145,8 +1241,7 @@ onBeforeUnmount(() => {
/* 暂停状态 - 橙色 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 3 ) {
background : # e6a23c ! important ;
border - color : # e6a23c ! important ;
background : # f59e0b ! important ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 3 . gantt _task _content ) {
@ -1155,8 +1250,7 @@ onBeforeUnmount(() => {
/* 待入库状态 - 红色 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 4 ) {
background : # f56c6c ! important ;
border - color : # f56c6c ! important ;
background : # ef4444 ! important ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 4 . gantt _task _content ) {
@ -1165,8 +1259,7 @@ onBeforeUnmount(() => {
/* 已入库状态 - 紫色 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 5 ) {
background : # 8 e7cc3 ! important ;
border - color : # 8 e7cc3 ! important ;
background : # 8 b5cf6 ! important ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 5 . gantt _task _content ) {
@ -1175,8 +1268,7 @@ onBeforeUnmount(() => {
/* 其他状态 - 深灰 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 2 ) {
background : # 606266 ! important ;
border - color : # 606266 ! important ;
background : # 4 b5563 ! important ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - status - 2 . gantt _task _content ) {
@ -1185,17 +1277,17 @@ onBeforeUnmount(() => {
/* 默认状态 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - default ) {
background : # 909399 ;
border - color : # 909399 ;
background : # 6 b7280 ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - default . gantt _task _content ) {
color : # ffffff ;
}
/* 历史任务 */
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - history ) {
background : # 9 09399 ;
border- color : # 909399 ;
background : # 9 ca3af ;
opacity: 0.7 ;
}
. schedule - gantt - container : deep ( . gantt _task _line . schedule - plan - task - history . gantt _task _content ) {
@ -1204,5 +1296,28 @@ onBeforeUnmount(() => {
: deep ( . gantt _tooltip ) {
z - index : 5000 ! important ;
background : rgba ( 255 , 255 , 255 , 0.95 ) ! important ;
border : 1 px solid # e5e7eb ! important ;
border - radius : 8 px ! important ;
box - shadow : 0 4 px 6 px - 1 px rgba ( 0 , 0 , 0 , 0.1 ) , 0 2 px 4 px - 1 px rgba ( 0 , 0 , 0 , 0.06 ) ! important ;
padding : 12 px ! important ;
font - size : 13 px ! important ;
line - height : 1.5 ! important ;
}
: deep ( . gantt _tooltip ) div {
margin - bottom : 6 px ! important ;
}
: deep ( . gantt _tooltip ) div : last - child {
margin - bottom : 0 ! important ;
}
: deep ( . gantt _tree _content ) {
line - height : 50 px ;
}
: deep ( . gantt _tree _icon . gantt _close : before ) {
margin - top : 5 px ;
}
< / style >