vxe-gantt 4.0.0-beta.3 → 4.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/es/gantt/src/gantt-body.js +70 -36
- package/es/gantt/src/gantt-chart.js +80 -56
- package/es/gantt/src/gantt-view.js +62 -7
- package/es/gantt/src/gantt.js +22 -5
- package/es/gantt/style.css +17 -0
- package/es/gantt/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +7 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-gantt/style.css +17 -0
- package/es/vxe-gantt/style.min.css +1 -1
- package/lib/gantt/src/gantt-body.js +104 -44
- package/lib/gantt/src/gantt-body.min.js +1 -1
- package/lib/gantt/src/gantt-chart.js +100 -60
- package/lib/gantt/src/gantt-chart.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +79 -6
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/gantt/src/gantt.js +29 -6
- package/lib/gantt/src/gantt.min.js +1 -1
- package/lib/gantt/style/style.css +17 -0
- package/lib/gantt/style/style.min.css +1 -1
- package/lib/index.umd.js +347 -139
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +13 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-gantt/style/style.css +17 -0
- package/lib/vxe-gantt/style/style.min.css +1 -1
- package/package.json +3 -3
- package/packages/gantt/src/gantt-body.ts +79 -37
- package/packages/gantt/src/gantt-chart.ts +90 -61
- package/packages/gantt/src/gantt-view.ts +62 -7
- package/packages/gantt/src/gantt.ts +21 -4
- package/packages/ui/index.ts +9 -1
- package/styles/components/gantt-module/gantt-chart.scss +1 -0
- package/styles/components/gantt.scss +19 -0
|
@@ -5,7 +5,7 @@ import XEUtils from 'xe-utils'
|
|
|
5
5
|
import { getCellRestHeight } from './util'
|
|
6
6
|
import { getStringValue } from '../../ui/src/utils'
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { VxeTableConstructor, VxeTableMethods, VxeTablePrivateMethods } from 'vxe-table'
|
|
9
9
|
import type { VxeGanttViewConstructor, VxeGanttViewPrivateMethods, VxeGanttConstructor, VxeGanttPrivateMethods } from '../../../types'
|
|
10
10
|
|
|
11
11
|
const { renderEmptyElement } = VxeUI
|
|
@@ -21,80 +21,109 @@ export default defineVxeComponent({
|
|
|
21
21
|
|
|
22
22
|
const refElem = ref() as Ref<HTMLDivElement>
|
|
23
23
|
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
const tableInternalData = $xeTable
|
|
28
|
-
const fullAllDataRowIdData = tableInternalData
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const { computeCellOpts, computeRowOpts, computeDefaultRowHeight } = $xeTable.getComputeMaps()
|
|
34
|
-
cellOpts = computeCellOpts.value
|
|
35
|
-
rowOpts = computeRowOpts.value
|
|
36
|
-
defaultRowHeight = computeDefaultRowHeight.value
|
|
37
|
-
}
|
|
24
|
+
const renderTaskBar = ($xeTable: VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods, row: any, rowid: string, $rowIndex: number) => {
|
|
25
|
+
const tableProps = $xeTable.props
|
|
26
|
+
const { treeConfig } = tableProps
|
|
27
|
+
const tableInternalData = $xeTable.internalData
|
|
28
|
+
const { fullAllDataRowIdData } = tableInternalData
|
|
29
|
+
const { computeCellOpts, computeRowOpts, computeDefaultRowHeight } = $xeTable.getComputeMaps()
|
|
30
|
+
const cellOpts = computeCellOpts.value
|
|
31
|
+
const rowOpts = computeRowOpts.value
|
|
32
|
+
const defaultRowHeight = computeDefaultRowHeight.value
|
|
38
33
|
|
|
39
|
-
const { tableData } = reactData
|
|
40
34
|
const titleField = computeTitleField.value
|
|
41
35
|
const progressField = computeProgressField.value
|
|
42
36
|
const taskBarOpts = computeTaskBarOpts.value
|
|
43
37
|
const { showProgress, showContent, contentMethod, barStyle } = taskBarOpts
|
|
44
38
|
const { round } = barStyle || {}
|
|
45
39
|
|
|
40
|
+
const rowRest = fullAllDataRowIdData[rowid] || {}
|
|
41
|
+
const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight)
|
|
42
|
+
let title = getStringValue(XEUtils.get(row, titleField))
|
|
43
|
+
const progressValue = showProgress ? Math.min(100, Math.max(0, XEUtils.toNumber(XEUtils.get(row, progressField)))) : 0
|
|
44
|
+
|
|
45
|
+
if (contentMethod) {
|
|
46
|
+
title = getStringValue(contentMethod({ row, title }))
|
|
47
|
+
}
|
|
48
|
+
return h('div', {
|
|
49
|
+
key: treeConfig ? rowid : $rowIndex,
|
|
50
|
+
rowid,
|
|
51
|
+
class: ['vxe-gantt-view--chart-row', {
|
|
52
|
+
'is--round': round
|
|
53
|
+
}],
|
|
54
|
+
style: {
|
|
55
|
+
height: `${cellHeight}px`
|
|
56
|
+
}
|
|
57
|
+
}, [
|
|
58
|
+
h('div', {
|
|
59
|
+
class: 'vxe-gantt-view--chart-bar',
|
|
60
|
+
rowid,
|
|
61
|
+
onClick (evnt) {
|
|
62
|
+
$xeGantt.handleTaskBarClickEvent(evnt, { row })
|
|
63
|
+
},
|
|
64
|
+
onDblclick (evnt) {
|
|
65
|
+
$xeGantt.handleTaskBarDblclickEvent(evnt, { row })
|
|
66
|
+
}
|
|
67
|
+
}, [
|
|
68
|
+
showProgress
|
|
69
|
+
? h('div', {
|
|
70
|
+
class: 'vxe-gantt-view--chart-progress',
|
|
71
|
+
style: {
|
|
72
|
+
width: `${progressValue || 0}%`
|
|
73
|
+
}
|
|
74
|
+
})
|
|
75
|
+
: renderEmptyElement($xeGantt),
|
|
76
|
+
showContent
|
|
77
|
+
? h('div', {
|
|
78
|
+
class: 'vxe-gantt-view--chart-content'
|
|
79
|
+
}, title)
|
|
80
|
+
: renderEmptyElement($xeGantt)
|
|
81
|
+
])
|
|
82
|
+
])
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const renderRows = ($xeTable: VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods, tableData: any[]) => {
|
|
86
|
+
const tableProps = $xeTable.props
|
|
87
|
+
const { treeConfig } = tableProps
|
|
88
|
+
const tableReactData = $xeTable.reactData
|
|
89
|
+
const { treeExpandedFlag } = tableReactData
|
|
90
|
+
const tableInternalData = $xeTable.internalData
|
|
91
|
+
const { treeExpandedMaps } = tableInternalData
|
|
92
|
+
const { computeTreeOpts } = $xeTable.getComputeMaps()
|
|
93
|
+
const treeOpts = computeTreeOpts.value
|
|
94
|
+
const { transform } = treeOpts
|
|
95
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
96
|
+
|
|
97
|
+
const { scrollYLoad } = reactData
|
|
98
|
+
|
|
46
99
|
const trVNs: VNode[] = []
|
|
47
|
-
tableData.forEach((row,
|
|
100
|
+
tableData.forEach((row, $rowIndex) => {
|
|
48
101
|
const rowid = $xeTable ? $xeTable.getRowid(row) : ''
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
let
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
|
|
102
|
+
trVNs.push(renderTaskBar($xeTable, row, rowid, $rowIndex))
|
|
103
|
+
let isExpandTree = false
|
|
104
|
+
let rowChildren: any[] = []
|
|
105
|
+
|
|
106
|
+
if (treeConfig && !scrollYLoad && !transform) {
|
|
107
|
+
rowChildren = row[childrenField]
|
|
108
|
+
isExpandTree = !!treeExpandedFlag && rowChildren && rowChildren.length > 0 && !!treeExpandedMaps[rowid]
|
|
109
|
+
}
|
|
110
|
+
// 如果是树形表格
|
|
111
|
+
if (isExpandTree) {
|
|
112
|
+
trVNs.push(...renderRows($xeTable, rowChildren))
|
|
55
113
|
}
|
|
56
|
-
trVNs.push(
|
|
57
|
-
h('div', {
|
|
58
|
-
key: rIndex,
|
|
59
|
-
rowid,
|
|
60
|
-
class: ['vxe-gantt-view--chart-row', {
|
|
61
|
-
'is--round': round
|
|
62
|
-
}],
|
|
63
|
-
style: {
|
|
64
|
-
height: `${cellHeight}px`
|
|
65
|
-
}
|
|
66
|
-
}, [
|
|
67
|
-
h('div', {
|
|
68
|
-
class: 'vxe-gantt-view--chart-bar',
|
|
69
|
-
rowid,
|
|
70
|
-
onClick (evnt) {
|
|
71
|
-
$xeGantt.handleTaskBarClickEvent(evnt, { row })
|
|
72
|
-
},
|
|
73
|
-
onDblclick (evnt) {
|
|
74
|
-
$xeGantt.handleTaskBarDblclickEvent(evnt, { row })
|
|
75
|
-
}
|
|
76
|
-
}, [
|
|
77
|
-
showProgress
|
|
78
|
-
? h('div', {
|
|
79
|
-
class: 'vxe-gantt-view--chart-progress',
|
|
80
|
-
style: {
|
|
81
|
-
width: `${progressValue || 0}%`
|
|
82
|
-
}
|
|
83
|
-
})
|
|
84
|
-
: renderEmptyElement($xeGantt),
|
|
85
|
-
showContent
|
|
86
|
-
? h('div', {
|
|
87
|
-
class: 'vxe-gantt-view--chart-content'
|
|
88
|
-
}, title)
|
|
89
|
-
: renderEmptyElement($xeGantt)
|
|
90
|
-
])
|
|
91
|
-
])
|
|
92
|
-
)
|
|
93
114
|
})
|
|
115
|
+
return trVNs
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const renderVN = () => {
|
|
119
|
+
const $xeTable = $xeGanttView.internalData.xeTable
|
|
120
|
+
|
|
121
|
+
const { tableData } = reactData
|
|
122
|
+
|
|
94
123
|
return h('div', {
|
|
95
124
|
ref: refElem,
|
|
96
125
|
class: 'vxe-gantt-view--chart-wrapper'
|
|
97
|
-
},
|
|
126
|
+
}, $xeTable ? renderRows($xeTable, tableData) : [])
|
|
98
127
|
}
|
|
99
128
|
|
|
100
129
|
onMounted(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h, ref, reactive, nextTick, inject, watch, provide, onMounted, onUnmounted } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
|
-
import { setScrollTop, setScrollLeft } from '../../ui/src/dom'
|
|
3
|
+
import { setScrollTop, setScrollLeft, removeClass, addClass } from '../../ui/src/dom'
|
|
4
4
|
import { VxeUI } from '@vxe-ui/core'
|
|
5
5
|
import { getRefElem } from './util'
|
|
6
6
|
import XEUtils from 'xe-utils'
|
|
@@ -131,6 +131,8 @@ export default defineVxeComponent({
|
|
|
131
131
|
} as unknown as VxeGanttViewConstructor & VxeGanttViewPrivateMethods
|
|
132
132
|
|
|
133
133
|
const handleParseColumn = () => {
|
|
134
|
+
const ganttProps = $xeGantt.props
|
|
135
|
+
const { treeConfig } = ganttProps
|
|
134
136
|
const { minViewDate, maxViewDate } = reactData
|
|
135
137
|
const taskViewOpts = computeTaskViewOpts.value
|
|
136
138
|
const fullCols: VxeGanttPropTypes.Column[] = []
|
|
@@ -182,10 +184,15 @@ export default defineVxeComponent({
|
|
|
182
184
|
if ($xeTable) {
|
|
183
185
|
const startField = computeStartField.value
|
|
184
186
|
const endField = computeEndField.value
|
|
187
|
+
const { computeTreeOpts } = $xeTable.getComputeMaps()
|
|
185
188
|
const tableInternalData = $xeTable.internalData
|
|
186
|
-
const { afterFullData } = tableInternalData
|
|
189
|
+
const { afterFullData, afterTreeFullData } = tableInternalData
|
|
190
|
+
const treeOpts = computeTreeOpts.value
|
|
191
|
+
const { transform } = treeOpts
|
|
192
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
193
|
+
|
|
187
194
|
const ctMaps: Record<string, VxeGanttDefines.RowCacheItem> = {}
|
|
188
|
-
|
|
195
|
+
const handleParseRender = (row: any) => {
|
|
189
196
|
const rowid = $xeTable.getRowid(row)
|
|
190
197
|
const startValue = XEUtils.get(row, startField)
|
|
191
198
|
const endValue = XEUtils.get(row, endField)
|
|
@@ -201,7 +208,13 @@ export default defineVxeComponent({
|
|
|
201
208
|
oWidthSize
|
|
202
209
|
}
|
|
203
210
|
}
|
|
204
|
-
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
if (treeConfig) {
|
|
214
|
+
XEUtils.eachTree(afterTreeFullData, handleParseRender, { children: transform ? treeOpts.mapChildrenField : childrenField })
|
|
215
|
+
} else {
|
|
216
|
+
afterFullData.forEach(handleParseRender)
|
|
217
|
+
}
|
|
205
218
|
internalData.chartMaps = ctMaps
|
|
206
219
|
}
|
|
207
220
|
}
|
|
@@ -213,6 +226,8 @@ export default defineVxeComponent({
|
|
|
213
226
|
}
|
|
214
227
|
|
|
215
228
|
const handleUpdateData = () => {
|
|
229
|
+
const ganttProps = $xeGantt.props
|
|
230
|
+
const { treeConfig } = ganttProps
|
|
216
231
|
const $xeTable = internalData.xeTable
|
|
217
232
|
const sdMaps: Record<string, any> = {}
|
|
218
233
|
const edMaps: Record<string, any> = {}
|
|
@@ -221,9 +236,14 @@ export default defineVxeComponent({
|
|
|
221
236
|
if ($xeTable) {
|
|
222
237
|
const startField = computeStartField.value
|
|
223
238
|
const endField = computeEndField.value
|
|
239
|
+
const { computeTreeOpts } = $xeTable.getComputeMaps()
|
|
224
240
|
const tableInternalData = $xeTable.internalData
|
|
225
|
-
const { afterFullData } = tableInternalData
|
|
226
|
-
|
|
241
|
+
const { afterFullData, afterTreeFullData } = tableInternalData
|
|
242
|
+
const treeOpts = computeTreeOpts.value
|
|
243
|
+
const { transform } = treeOpts
|
|
244
|
+
const childrenField = treeOpts.children || treeOpts.childrenField
|
|
245
|
+
|
|
246
|
+
const handleMinMaxData = (row: any) => {
|
|
227
247
|
const startValue = XEUtils.get(row, startField)
|
|
228
248
|
const endValue = XEUtils.get(row, endField)
|
|
229
249
|
if (startValue && endValue) {
|
|
@@ -236,7 +256,13 @@ export default defineVxeComponent({
|
|
|
236
256
|
maxDate = endDate
|
|
237
257
|
}
|
|
238
258
|
}
|
|
239
|
-
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if (treeConfig) {
|
|
262
|
+
XEUtils.eachTree(afterTreeFullData, handleMinMaxData, { children: transform ? treeOpts.mapChildrenField : childrenField })
|
|
263
|
+
} else {
|
|
264
|
+
afterFullData.forEach(handleMinMaxData)
|
|
265
|
+
}
|
|
240
266
|
}
|
|
241
267
|
reactData.minViewDate = minDate
|
|
242
268
|
reactData.maxViewDate = maxDate
|
|
@@ -400,6 +426,7 @@ export default defineVxeComponent({
|
|
|
400
426
|
const handleLazyRecalculate = () => {
|
|
401
427
|
calcScrollbar()
|
|
402
428
|
updateStyle()
|
|
429
|
+
updateChart()
|
|
403
430
|
return nextTick()
|
|
404
431
|
}
|
|
405
432
|
|
|
@@ -584,6 +611,34 @@ export default defineVxeComponent({
|
|
|
584
611
|
const ganttViewPrivateMethods: VxeGanttViewPrivateMethods = {
|
|
585
612
|
handleUpdateStyle: updateStyle,
|
|
586
613
|
handleLazyRecalculate,
|
|
614
|
+
handleUpdateCurrentRow (row) {
|
|
615
|
+
const $xeTable = internalData.xeTable
|
|
616
|
+
const el = refElem.value
|
|
617
|
+
if ($xeTable && el) {
|
|
618
|
+
if (row) {
|
|
619
|
+
const tableProps = $xeTable.props
|
|
620
|
+
const { highlightCurrentRow } = tableProps
|
|
621
|
+
const { computeRowOpts } = $xeTable.getComputeMaps()
|
|
622
|
+
const rowOpts = computeRowOpts.value
|
|
623
|
+
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
624
|
+
XEUtils.arrayEach(el.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${$xeTable.getRowid(row)}"]`), elem => addClass(elem, 'row--current'))
|
|
625
|
+
}
|
|
626
|
+
} else {
|
|
627
|
+
XEUtils.arrayEach(el.querySelectorAll('.vxe-gantt-view--body-row.row--current'), elem => removeClass(elem, 'row--current'))
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
handleUpdateHoverRow (row) {
|
|
632
|
+
const $xeTable = internalData.xeTable
|
|
633
|
+
const el = refElem.value
|
|
634
|
+
if ($xeTable && el) {
|
|
635
|
+
if (row) {
|
|
636
|
+
XEUtils.arrayEach(el.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${$xeTable.getRowid(row)}"]`), elem => addClass(elem, 'row--hover'))
|
|
637
|
+
} else {
|
|
638
|
+
XEUtils.arrayEach(el.querySelectorAll('.vxe-gantt-view--body-row.row--hover'), elem => removeClass(elem, 'row--hover'))
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
},
|
|
587
642
|
triggerHeaderScrollEvent (evnt) {
|
|
588
643
|
const { elemStore, inVirtualScroll, inBodyScroll, inFooterScroll } = internalData
|
|
589
644
|
if (inVirtualScroll) {
|
|
@@ -1397,6 +1397,22 @@ export default defineVxeComponent({
|
|
|
1397
1397
|
$xeGantt.dispatchEvent('zoom', { type: reactData.isZMax ? 'max' : 'revert' }, evnt)
|
|
1398
1398
|
},
|
|
1399
1399
|
handleTaskCellClickEvent (evnt, params) {
|
|
1400
|
+
const $xeTable = refTable.value
|
|
1401
|
+
if ($xeTable) {
|
|
1402
|
+
const tableProps = $xeTable.props
|
|
1403
|
+
const { highlightCurrentRow } = tableProps
|
|
1404
|
+
const { computeRowOpts } = $xeTable.getComputeMaps()
|
|
1405
|
+
const rowOpts = computeRowOpts.value
|
|
1406
|
+
const { row } = params
|
|
1407
|
+
// 如果是当前行
|
|
1408
|
+
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
1409
|
+
$xeTable.triggerCurrentRowEvent(evnt, Object.assign({
|
|
1410
|
+
$table: $xeTable,
|
|
1411
|
+
rowIndex: $xeTable.getRowIndex(row),
|
|
1412
|
+
$rowIndex: $xeTable.getVMRowIndex(row)
|
|
1413
|
+
}, params))
|
|
1414
|
+
}
|
|
1415
|
+
}
|
|
1400
1416
|
$xeGantt.dispatchEvent('task-cell-click', params, evnt)
|
|
1401
1417
|
},
|
|
1402
1418
|
handleTaskCellDblclickEvent (evnt, params) {
|
|
@@ -1710,20 +1726,21 @@ export default defineVxeComponent({
|
|
|
1710
1726
|
if (!enabled) {
|
|
1711
1727
|
return renderEmptyElement($xeGantt)
|
|
1712
1728
|
}
|
|
1729
|
+
const isResize = resize && showLeftView && showRightView
|
|
1713
1730
|
const ons: {
|
|
1714
1731
|
onMousedown?: typeof dragSplitEvent
|
|
1715
1732
|
} = {}
|
|
1716
|
-
if (
|
|
1733
|
+
if (isResize) {
|
|
1717
1734
|
ons.onMousedown = dragSplitEvent
|
|
1718
1735
|
}
|
|
1719
1736
|
return h('div', {
|
|
1720
1737
|
class: ['vxe-gantt--view-split-bar', {
|
|
1721
|
-
'is--resize':
|
|
1722
|
-
...ons
|
|
1738
|
+
'is--resize': isResize
|
|
1723
1739
|
}]
|
|
1724
1740
|
}, [
|
|
1725
1741
|
h('div', {
|
|
1726
|
-
class: 'vxe-gantt--view-split-bar-handle'
|
|
1742
|
+
class: 'vxe-gantt--view-split-bar-handle',
|
|
1743
|
+
...ons
|
|
1727
1744
|
}),
|
|
1728
1745
|
showCollapseTableButton || showCollapseTaskButton
|
|
1729
1746
|
? h('div', {
|
package/packages/ui/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core'
|
|
2
|
+
import { errLog } from './src/log'
|
|
2
3
|
|
|
3
|
-
const { setConfig, setIcon } = VxeUI
|
|
4
|
+
const { setConfig, setIcon, checkVersion } = VxeUI
|
|
4
5
|
|
|
5
6
|
VxeUI.ganttVersion = process.env.VUE_APP_VXE_VERSION as string
|
|
6
7
|
|
|
@@ -61,4 +62,11 @@ setIcon({
|
|
|
61
62
|
GANTT_VIEW_RIGHT_CLOSE: iconPrefix + 'arrow-left'
|
|
62
63
|
})
|
|
63
64
|
|
|
65
|
+
if (!checkVersion(VxeUI.tableVersion, 4, 16)) {
|
|
66
|
+
errLog('vxe.error.errorVersion', [`vxe-table@${VxeUI.tableVersion || '?'}`, 'vxe-table v4.16+'])
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export {
|
|
70
|
+
VxeUI
|
|
71
|
+
}
|
|
64
72
|
export default VxeUI
|
|
@@ -578,6 +578,25 @@
|
|
|
578
578
|
white-space: nowrap;
|
|
579
579
|
}
|
|
580
580
|
|
|
581
|
+
// 行高亮
|
|
582
|
+
.vxe-gantt-view--body-row {
|
|
583
|
+
&.row--stripe {
|
|
584
|
+
background-color: var(--vxe-ui-table-row-striped-background-color);
|
|
585
|
+
}
|
|
586
|
+
&.row--current {
|
|
587
|
+
background-color: var(--vxe-ui-table-row-current-background-color);
|
|
588
|
+
}
|
|
589
|
+
&.row--hover {
|
|
590
|
+
background-color: var(--vxe-ui-table-row-hover-background-color);
|
|
591
|
+
&.row--stripe {
|
|
592
|
+
background-color: var(--vxe-ui-table-row-hover-striped-background-color);
|
|
593
|
+
}
|
|
594
|
+
&.row--current {
|
|
595
|
+
background-color: var(--vxe-ui-table-row-hover-current-background-color);
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
|
|
581
600
|
.vxe-gantt-view {
|
|
582
601
|
&.mode--day {
|
|
583
602
|
.vxe-gantt-view--header-column {
|