vxe-gantt 4.0.15 → 4.0.16

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.
@@ -11,6 +11,9 @@ import type { VxeGanttViewConstructor, VxeGanttViewPrivateMethods, VxeGanttConst
11
11
 
12
12
  const { renderEmptyElement } = VxeUI
13
13
 
14
+ const sourceType = 'gantt'
15
+ const viewType = 'chart'
16
+
14
17
  export default defineVxeComponent({
15
18
  name: 'VxeGanttViewChart',
16
19
  setup () {
@@ -22,7 +25,7 @@ export default defineVxeComponent({
22
25
 
23
26
  const refElem = ref() as Ref<HTMLDivElement>
24
27
 
25
- const renderTaskBar = ($xeTable: VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods, row: any, rowid: string, $rowIndex: number) => {
28
+ const renderTaskBar = ($xeTable: VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods, row: any, rowid: string, rowIndex: number, $rowIndex: number, _rowIndex: number) => {
26
29
  const tableProps = $xeTable.props
27
30
  const { treeConfig } = tableProps
28
31
  const tableReactData = $xeTable.reactData
@@ -72,6 +75,7 @@ export default defineVxeComponent({
72
75
  title = getStringValue(contentMethod({ row, title }))
73
76
  }
74
77
 
78
+ const ctParams = { source: sourceType, type: viewType, row, $rowIndex, rowIndex, _rowIndex }
75
79
  return h('div', {
76
80
  key: treeConfig ? rowid : $rowIndex,
77
81
  rowid,
@@ -81,6 +85,9 @@ export default defineVxeComponent({
81
85
  }],
82
86
  style: {
83
87
  height: `${cellHeight}px`
88
+ },
89
+ onContextmenu (evnt) {
90
+ $xeGantt.handleTaskBarContextmenuEvent(evnt, ctParams)
84
91
  }
85
92
  }, [
86
93
  h('div', {
@@ -122,7 +129,7 @@ export default defineVxeComponent({
122
129
  const tableReactData = $xeTable.reactData
123
130
  const { treeExpandedFlag } = tableReactData
124
131
  const tableInternalData = $xeTable.internalData
125
- const { treeExpandedMaps } = tableInternalData
132
+ const { fullAllDataRowIdData, treeExpandedMaps } = tableInternalData
126
133
  const { computeTreeOpts } = $xeTable.getComputeMaps()
127
134
  const treeOpts = computeTreeOpts.value
128
135
  const { transform } = treeOpts
@@ -133,7 +140,14 @@ export default defineVxeComponent({
133
140
  const trVNs: VNode[] = []
134
141
  tableData.forEach((row, $rowIndex) => {
135
142
  const rowid = $xeTable ? $xeTable.getRowid(row) : ''
136
- trVNs.push(renderTaskBar($xeTable, row, rowid, $rowIndex))
143
+ const rowRest = fullAllDataRowIdData[rowid] || {}
144
+ let rowIndex = $rowIndex
145
+ let _rowIndex = -1
146
+ if (rowRest) {
147
+ rowIndex = rowRest.index
148
+ _rowIndex = rowRest._index
149
+ }
150
+ trVNs.push(renderTaskBar($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex))
137
151
  let isExpandTree = false
138
152
  let rowChildren: any[] = []
139
153
 
@@ -1,11 +1,15 @@
1
1
  import { h, inject, ref, Ref, onMounted, onUnmounted } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
 
4
- import type { VxeGanttViewConstructor, VxeGanttViewPrivateMethods } from '../../../types'
4
+ import type { VxeGanttConstructor, VxeGanttPrivateMethods, VxeGanttViewConstructor, VxeGanttViewPrivateMethods } from '../../../types'
5
+
6
+ const sourceType = 'gantt'
7
+ const viewType = 'footer'
5
8
 
6
9
  export default defineVxeComponent({
7
10
  name: 'VxeGanttViewFooter',
8
11
  setup () {
12
+ const $xeGantt = inject('$xeGantt', {} as (VxeGanttConstructor & VxeGanttPrivateMethods))
9
13
  const $xeGanttView = inject('$xeGanttView', {} as VxeGanttViewConstructor & VxeGanttViewPrivateMethods)
10
14
 
11
15
  const { internalData } = $xeGanttView
@@ -16,7 +20,10 @@ export default defineVxeComponent({
16
20
  const renderVN = () => {
17
21
  return h('div', {
18
22
  ref: refElem,
19
- class: 'vxe-gantt-view--footer-wrapper'
23
+ class: 'vxe-gantt-view--footer-wrapper',
24
+ onContextmenu (evnt) {
25
+ $xeGantt.handleTaskFooterContextmenuEvent(evnt, { source: sourceType, type: viewType, $rowIndex: -1 })
26
+ }
20
27
  }, [
21
28
  h('div', {
22
29
  ref: refHeaderScroll,
@@ -8,6 +8,9 @@ import type { VxeGanttViewConstructor, VxeGanttViewPrivateMethods, VxeGanttConst
8
8
 
9
9
  const { getI18n } = VxeUI
10
10
 
11
+ const sourceType = 'gantt'
12
+ const viewType = 'header'
13
+
11
14
  export default defineVxeComponent({
12
15
  name: 'VxeGanttViewHeader',
13
16
  setup () {
@@ -69,7 +72,7 @@ export default defineVxeComponent({
69
72
  }
70
73
  }
71
74
  let cellVNs: string | VxeComponentSlotType[] = label
72
- const ctParams = { scaleObj: scaleItem, title: label, dateObj: dateObj, $rowIndex }
75
+ const ctParams = { source: sourceType, type: viewType, column, scaleObj: scaleItem, title: label, dateObj: dateObj, $rowIndex }
73
76
  if (titleSlot) {
74
77
  cellVNs = $xeGantt.callSlot(titleSlot, ctParams)
75
78
  } else if (titleMethod) {
@@ -90,7 +93,10 @@ export default defineVxeComponent({
90
93
  }],
91
94
  colspan: childCount || null,
92
95
  title: titleSlot ? null : label,
93
- style: cellStys
96
+ style: cellStys,
97
+ onContextmenu (evnt) {
98
+ $xeGantt.handleTaskHeaderContextmenuEvent(evnt, ctParams)
99
+ }
94
100
  }, cellVNs)
95
101
  }))
96
102
  }))
@@ -1546,6 +1546,50 @@ export default defineVxeComponent({
1546
1546
  },
1547
1547
  handleTaskBarDblclickEvent (evnt, params) {
1548
1548
  $xeGantt.dispatchEvent('task-bar-dblclick', params, evnt)
1549
+ },
1550
+ handleTaskHeaderContextmenuEvent (evnt, params) {
1551
+ const $xeTable = refTable.value
1552
+ if ($xeTable) {
1553
+ const tableProps = $xeTable.props
1554
+ const { menuConfig } = tableProps
1555
+ if (isEnableConf(menuConfig)) {
1556
+ evnt.stopPropagation()
1557
+ $xeTable.handleOpenMenuEvent(evnt, 'header', params)
1558
+ }
1559
+ }
1560
+ },
1561
+ handleTaskBodyContextmenuEvent (evnt, params) {
1562
+ const $xeTable = refTable.value
1563
+ if ($xeTable) {
1564
+ const tableProps = $xeTable.props
1565
+ const { menuConfig } = tableProps
1566
+ if (isEnableConf(menuConfig)) {
1567
+ evnt.stopPropagation()
1568
+ $xeTable.handleOpenMenuEvent(evnt, 'body', params)
1569
+ }
1570
+ }
1571
+ },
1572
+ handleTaskFooterContextmenuEvent (evnt, params) {
1573
+ const $xeTable = refTable.value
1574
+ if ($xeTable) {
1575
+ const tableProps = $xeTable.props
1576
+ const { menuConfig } = tableProps
1577
+ if (isEnableConf(menuConfig)) {
1578
+ evnt.stopPropagation()
1579
+ $xeTable.handleOpenMenuEvent(evnt, 'footer', params)
1580
+ }
1581
+ }
1582
+ },
1583
+ handleTaskBarContextmenuEvent (evnt, params) {
1584
+ const $xeTable = refTable.value
1585
+ if ($xeTable) {
1586
+ const tableProps = $xeTable.props
1587
+ const { menuConfig } = tableProps
1588
+ if (isEnableConf(menuConfig)) {
1589
+ evnt.stopPropagation()
1590
+ $xeTable.handleOpenMenuEvent(evnt, 'body', params)
1591
+ }
1592
+ }
1549
1593
  }
1550
1594
  }
1551
1595