vxe-gantt 3.0.23 → 3.0.24

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/lib/ui/index.js CHANGED
@@ -15,7 +15,7 @@ var _log = require("./src/log");
15
15
  var setConfig = _core.VxeUI.setConfig,
16
16
  setIcon = _core.VxeUI.setIcon,
17
17
  checkVersion = _core.VxeUI.checkVersion;
18
- _core.VxeUI.ganttVersion = "3.0.23";
18
+ _core.VxeUI.ganttVersion = "3.0.24";
19
19
  setConfig({
20
20
  gantt: {
21
21
  // size: null,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.default=void 0;var _core=require("@vxe-ui/core"),_log=require("./src/log"),setConfig=_core.VxeUI.setConfig,setIcon=_core.VxeUI.setIcon,checkVersion=_core.VxeUI.checkVersion,iconPrefix=(_core.VxeUI.ganttVersion="3.0.23",setConfig({gantt:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:null,result:"result",total:"page.total",message:"message"}},taskViewScaleConfs:{week:{startDay:1}},taskViewConfig:{showNowLine:!0},taskSplitConfig:{enabled:!0,resize:!0,showCollapseTableButton:!0,showCollapseTaskButton:!0}}}),"vxe-icon-"),pVersion=(setIcon({GANTT_VIEW_LEFT_OPEN:iconPrefix+"arrow-left",GANTT_VIEW_LEFT_CLOSE:iconPrefix+"arrow-right",GANTT_VIEW_RIGHT_OPEN:iconPrefix+"arrow-right",GANTT_VIEW_RIGHT_CLOSE:iconPrefix+"arrow-left"}),3),sVersion=18,_default=(checkVersion?checkVersion(_core.VxeUI.tableVersion,pVersion,sVersion)||(0,_log.errLog)("vxe.error.errorVersion",["vxe-table@".concat(_core.VxeUI.tableVersion||"?"),"vxe-table v".concat(pVersion,".").concat(sVersion,"+")]):(0,_log.errLog)("Requires vxe-table v".concat(pVersion,".").concat(sVersion,"+")),exports.default=_core.VxeUI);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.default=void 0;var _core=require("@vxe-ui/core"),_log=require("./src/log"),setConfig=_core.VxeUI.setConfig,setIcon=_core.VxeUI.setIcon,checkVersion=_core.VxeUI.checkVersion,iconPrefix=(_core.VxeUI.ganttVersion="3.0.24",setConfig({gantt:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showLoading:!0,showResponseMsg:!0,showActionMsg:!0,response:{list:null,result:"result",total:"page.total",message:"message"}},taskViewScaleConfs:{week:{startDay:1}},taskViewConfig:{showNowLine:!0},taskSplitConfig:{enabled:!0,resize:!0,showCollapseTableButton:!0,showCollapseTaskButton:!0}}}),"vxe-icon-"),pVersion=(setIcon({GANTT_VIEW_LEFT_OPEN:iconPrefix+"arrow-left",GANTT_VIEW_LEFT_CLOSE:iconPrefix+"arrow-right",GANTT_VIEW_RIGHT_OPEN:iconPrefix+"arrow-right",GANTT_VIEW_RIGHT_CLOSE:iconPrefix+"arrow-left"}),3),sVersion=18,_default=(checkVersion?checkVersion(_core.VxeUI.tableVersion,pVersion,sVersion)||(0,_log.errLog)("vxe.error.errorVersion",["vxe-table@".concat(_core.VxeUI.tableVersion||"?"),"vxe-table v".concat(pVersion,".").concat(sVersion,"+")]):(0,_log.errLog)("Requires vxe-table v".concat(pVersion,".").concat(sVersion,"+")),exports.default=_core.VxeUI);
package/lib/ui/src/log.js CHANGED
@@ -6,6 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.warnLog = exports.errLog = void 0;
7
7
  var _core = require("@vxe-ui/core");
8
8
  var log = _core.VxeUI.log;
9
- var version = "gantt v".concat("3.0.23");
9
+ var version = "gantt v".concat("3.0.24");
10
10
  var warnLog = exports.warnLog = log.create('warn', version);
11
11
  var errLog = exports.errLog = log.create('error', version);
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core"),log=_core.VxeUI.log,version="gantt v".concat("3.0.23"),warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core"),log=_core.VxeUI.log,version="gantt v".concat("3.0.24"),warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.eqEmptyValue = eqEmptyValue;
7
+ exports.getClass = getClass;
7
8
  exports.getFuncText = getFuncText;
8
9
  exports.getGlobalDefaultConfig = getGlobalDefaultConfig;
9
10
  exports.getLastZIndex = getLastZIndex;
@@ -53,4 +54,7 @@ function eqEmptyValue(cellValue) {
53
54
  }
54
55
  function getStringValue(cellValue) {
55
56
  return eqEmptyValue(cellValue) ? '' : cellValue;
57
+ }
58
+ function getClass(property, params) {
59
+ return property ? _xeUtils.default.isFunction(property) ? property(params) : property : '';
56
60
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.eqEmptyValue=eqEmptyValue,exports.getFuncText=getFuncText,exports.getGlobalDefaultConfig=getGlobalDefaultConfig,exports.getLastZIndex=getLastZIndex,exports.getStringValue=getStringValue,exports.getSubLastZIndex=getSubLastZIndex,exports.isEnableConf=isEnableConf,exports.nextSubZIndex=nextSubZIndex,exports.nextZIndex=nextZIndex;var _xeUtils=_interopRequireDefault(require("xe-utils")),_core=require("@vxe-ui/core"),_domZindex=_interopRequireDefault(require("dom-zindex"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getConfig=_core.VxeUI.getConfig;function isEnableConf(e){return e&&!1!==e.enabled}function nextZIndex(){return _domZindex.default.getNext()}function getLastZIndex(){return _domZindex.default.getCurrent()}function nextSubZIndex(){return _domZindex.default.getSubNext()}function getSubLastZIndex(){return _domZindex.default.getSubCurrent()}function getGlobalDefaultConfig(e,t){return _xeUtils.default.eqNull(e)?t:e}function getFuncText(e,t){var n;return e?(n=getConfig().translate,_xeUtils.default.toValueString(n?n(""+e,t):e)):""}function eqEmptyValue(e){return null==e||""===e}function getStringValue(e){return eqEmptyValue(e)?"":e}
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.eqEmptyValue=eqEmptyValue,exports.getClass=getClass,exports.getFuncText=getFuncText,exports.getGlobalDefaultConfig=getGlobalDefaultConfig,exports.getLastZIndex=getLastZIndex,exports.getStringValue=getStringValue,exports.getSubLastZIndex=getSubLastZIndex,exports.isEnableConf=isEnableConf,exports.nextSubZIndex=nextSubZIndex,exports.nextZIndex=nextZIndex;var _xeUtils=_interopRequireDefault(require("xe-utils")),_core=require("@vxe-ui/core"),_domZindex=_interopRequireDefault(require("dom-zindex"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var getConfig=_core.VxeUI.getConfig;function isEnableConf(e){return e&&!1!==e.enabled}function nextZIndex(){return _domZindex.default.getNext()}function getLastZIndex(){return _domZindex.default.getCurrent()}function nextSubZIndex(){return _domZindex.default.getSubNext()}function getSubLastZIndex(){return _domZindex.default.getSubCurrent()}function getGlobalDefaultConfig(e,t){return _xeUtils.default.eqNull(e)?t:e}function getFuncText(e,t){var n;return e?(n=getConfig().translate,_xeUtils.default.toValueString(n?n(""+e,t):e)):""}function eqEmptyValue(e){return null==e||""===e}function getStringValue(e){return eqEmptyValue(e)?"":e}function getClass(e,t){return e?_xeUtils.default.isFunction(e)?e(t):e:""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-gantt",
3
- "version": "3.0.23",
3
+ "version": "3.0.24",
4
4
  "description": "A vue based gantt component",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -64,8 +64,8 @@
64
64
  "vue": "~2.6.14",
65
65
  "vue-i18n": "^8.15.1",
66
66
  "vue-router": "^3.5.1",
67
- "vxe-pc-ui": "^3.10.29",
68
- "vxe-table": "^3.19.18"
67
+ "vxe-pc-ui": "^3.10.32",
68
+ "vxe-table": "^3.19.20"
69
69
  },
70
70
  "vetur": {
71
71
  "tags": "helper/vetur/tags.json",
@@ -1,6 +1,8 @@
1
1
  import { VNode, CreateElement } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import { getCellRestHeight } from './util'
4
+ import { getClass } from '../../ui/src/utils'
5
+ import XEUtils from 'xe-utils'
4
6
  import GanttViewChartComponent from './gantt-chart'
5
7
 
6
8
  import type { TableInternalData, TableReactData, VxeTableConstructor, VxeTableMethods, VxeTablePrivateMethods, VxeTableDefines } from 'vxe-table'
@@ -48,9 +50,10 @@ export default defineVxeComponent({
48
50
  const { headerGroups } = reactData
49
51
  const { todayDateMaps } = internalData
50
52
  const taskViewOpts = $xeGantt.computeTaskViewOpts
51
- const { showNowLine } = taskViewOpts
53
+ const { showNowLine, viewStyle } = taskViewOpts
52
54
  const { scaleItem } = headerGroups[headerGroups.length - 1] || {}
53
- const { field } = column
55
+ const { field, dateObj } = column
56
+ const { cellClassName, cellStyle } = viewStyle || {}
54
57
  const todayValue = showNowLine && scaleItem ? todayDateMaps[scaleItem.type] : null
55
58
 
56
59
  const rowRest = fullAllDataRowIdData[rowid] || {}
@@ -96,16 +99,24 @@ export default defineVxeComponent({
96
99
  })
97
100
  )
98
101
  }
99
- const ctParams = { source: sourceType, type: viewType, row, column, $rowIndex, rowIndex, _rowIndex }
102
+ const ctParams = { source: sourceType, type: viewType, dateObj, row, column, $rowIndex, rowIndex, _rowIndex }
100
103
  return h('td', {
101
104
  key: $columnIndex,
102
- class: ['vxe-gantt-view--body-column', {
103
- 'is--now': showNowLine && todayValue === field,
104
- 'col--rs-height': isRsHeight
105
- }],
106
- style: {
107
- height: `${cellHeight}px`
108
- },
105
+ class: [
106
+ 'vxe-gantt-view--body-column',
107
+ {
108
+ 'is--now': showNowLine && todayValue === field,
109
+ 'col--rs-height': isRsHeight
110
+ },
111
+ getClass(cellClassName, ctParams)
112
+ ],
113
+ style: cellStyle
114
+ ? Object.assign({}, XEUtils.isFunction(cellStyle) ? cellStyle(ctParams) : cellStyle, {
115
+ height: `${cellHeight}px`
116
+ })
117
+ : {
118
+ height: `${cellHeight}px`
119
+ },
109
120
  on: {
110
121
  click (evnt: MouseEvent) {
111
122
  $xeGantt.handleTaskCellClickEvent(evnt, { row, column })
@@ -122,6 +133,7 @@ export default defineVxeComponent({
122
133
  renderRows (h: CreateElement, $xeTable: VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods, tableData: any[]) {
123
134
  const _vm = this
124
135
  const $xeGanttView = _vm.$xeGanttView
136
+ const $xeGantt = _vm.$xeGantt
125
137
  const { reactData } = $xeGanttView
126
138
 
127
139
  const tableProps = $xeTable
@@ -137,6 +149,10 @@ export default defineVxeComponent({
137
149
  const { transform } = treeOpts
138
150
  const childrenField = treeOpts.children || treeOpts.childrenField
139
151
 
152
+ const taskViewOpts = $xeGantt.computeTaskViewOpts
153
+ const { viewStyle } = taskViewOpts
154
+ const { rowClassName, rowStyle } = viewStyle || {}
155
+
140
156
  const { tableColumn, scrollYLoad } = reactData
141
157
 
142
158
  const trVNs:VNode[] = []
@@ -170,16 +186,22 @@ export default defineVxeComponent({
170
186
  trOns.dragend = $xeTable.handleRowDragDragendEvent
171
187
  trOns.dragover = $xeTable.handleRowDragDragoverEvent
172
188
  }
189
+ const rowParams = { source: sourceType, type: viewType, row, rowIndex, $rowIndex, _rowIndex }
173
190
  trVNs.push(
174
191
  h('tr', {
175
192
  key: treeConfig ? rowid : $rowIndex,
176
- class: ['vxe-gantt-view--body-row', {
177
- 'row--stripe': stripe && (_rowIndex + 1) % 2 === 0,
178
- 'is--new': isNewRow,
179
- 'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
180
- 'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
181
- 'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid]
182
- }],
193
+ class: [
194
+ 'vxe-gantt-view--body-row',
195
+ {
196
+ 'row--stripe': stripe && (_rowIndex + 1) % 2 === 0,
197
+ 'is--new': isNewRow,
198
+ 'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
199
+ 'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
200
+ 'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid]
201
+ },
202
+ getClass(rowClassName, rowParams)
203
+ ],
204
+ style: rowStyle ? XEUtils.isFunction(rowStyle) ? rowStyle(rowParams) : rowStyle : undefined,
183
205
  attrs: {
184
206
  rowid
185
207
  },
@@ -13,6 +13,8 @@ import type { VxeGanttViewConstructor, GanttViewReactData, VxeGanttDefines, VxeG
13
13
 
14
14
  const { globalEvents } = VxeUI
15
15
 
16
+ const sourceType = 'gantt'
17
+
16
18
  function createInternalData (): GanttViewInternalData {
17
19
  return {
18
20
  xeTable: null,
@@ -826,11 +828,106 @@ function checkLastSyncScroll ($xeGanttView: VxeGanttViewConstructor & VxeGanttVi
826
828
  }, 200)
827
829
  }
828
830
 
829
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
830
- function handleScrollEvent ($xeGanttView: VxeGanttViewConstructor & VxeGanttViewPrivateMethods, evnt: Event, isRollY: boolean, isRollX: boolean, scrollTop: number, scrollLeft: number) {
831
+ function handleScrollData ($xeGanttView: VxeGanttViewConstructor & VxeGanttViewPrivateMethods, isRollY: boolean, isRollX: boolean, scrollTop: number, scrollLeft: number) {
832
+ const reactData = $xeGanttView.reactData
833
+ const internalData = $xeGanttView.internalData
834
+
835
+ if (isRollX) {
836
+ internalData.lastScrollLeft = scrollLeft
837
+ }
838
+ if (isRollY) {
839
+ internalData.lastScrollTop = scrollTop
840
+ }
841
+ reactData.lastScrollTime = Date.now()
831
842
  checkLastSyncScroll($xeGanttView, isRollX, isRollY)
832
843
  }
833
844
 
845
+ function handleScrollEvent ($xeGanttView: VxeGanttViewConstructor & VxeGanttViewPrivateMethods, evnt: Event, isRollY: boolean, isRollX: boolean, scrollTop: number, scrollLeft: number) {
846
+ const $xeGantt = $xeGanttView.$xeGantt
847
+ const internalData = $xeGanttView.internalData
848
+ const $xeTable = internalData.xeTable
849
+
850
+ const { lastScrollLeft, lastScrollTop } = internalData
851
+ const xHandleEl = $xeGanttView.$refs.refScrollXHandleElem as HTMLDivElement
852
+ const yHandleEl = $xeGanttView.$refs.refScrollYHandleElem as HTMLDivElement
853
+ if (!xHandleEl || !yHandleEl) {
854
+ return
855
+ }
856
+ if (!$xeTable) {
857
+ return
858
+ }
859
+ const bodyHeight = yHandleEl.clientHeight
860
+ const bodyWidth = xHandleEl.clientWidth
861
+ const scrollHeight = yHandleEl.scrollHeight
862
+ const scrollWidth = xHandleEl.scrollWidth
863
+ let isTop = false
864
+ let isBottom = false
865
+ let isLeft = false
866
+ let isRight = false
867
+ let direction = ''
868
+ let isTopBoundary = false
869
+ let isBottomBoundary = false
870
+ let isLeftBoundary = false
871
+ let isRightBoundary = false
872
+ if (isRollX) {
873
+ const xThreshold = $xeTable.computeScrollXThreshold
874
+ isLeft = scrollLeft <= 0
875
+ if (!isLeft) {
876
+ isRight = scrollLeft + bodyWidth >= scrollWidth - 1
877
+ }
878
+ if (scrollLeft > lastScrollLeft) {
879
+ direction = 'right'
880
+ if (scrollLeft + bodyWidth >= scrollWidth - xThreshold) {
881
+ isRightBoundary = true
882
+ }
883
+ } else {
884
+ direction = 'left'
885
+ if (scrollLeft <= xThreshold) {
886
+ isLeftBoundary = true
887
+ }
888
+ }
889
+ }
890
+ if (isRollY) {
891
+ const yThreshold = $xeTable.computeScrollYThreshold
892
+ isTop = scrollTop <= 0
893
+ if (!isTop) {
894
+ isBottom = scrollTop + bodyHeight >= scrollHeight - 1
895
+ }
896
+ if (scrollTop > lastScrollTop) {
897
+ direction = 'bottom'
898
+ if (scrollTop + bodyHeight >= scrollHeight - yThreshold) {
899
+ isBottomBoundary = true
900
+ }
901
+ } else {
902
+ direction = 'top'
903
+ if (scrollTop <= yThreshold) {
904
+ isTopBoundary = true
905
+ }
906
+ }
907
+ }
908
+ handleScrollData($xeGanttView, isRollY, isRollX, scrollTop, scrollLeft)
909
+ const evntParams = {
910
+ source: sourceType,
911
+ scrollTop,
912
+ scrollLeft,
913
+ bodyHeight,
914
+ bodyWidth,
915
+ scrollHeight,
916
+ scrollWidth,
917
+ isX: isRollX,
918
+ isY: isRollY,
919
+ isTop,
920
+ isBottom,
921
+ isLeft,
922
+ isRight,
923
+ direction
924
+ }
925
+ if (isBottomBoundary || isTopBoundary || isRightBoundary || isLeftBoundary) {
926
+ $xeGantt.dispatchEvent('scroll-boundary', evntParams, evnt)
927
+ }
928
+ $xeGantt.dispatchEvent('scroll', evntParams, evnt)
929
+ }
930
+
834
931
  /**
835
932
  * 同步表格滚动
836
933
  */
@@ -49,3 +49,7 @@ export function eqEmptyValue (cellValue: any) {
49
49
  export function getStringValue (cellValue: any) {
50
50
  return eqEmptyValue(cellValue) ? '' : cellValue
51
51
  }
52
+
53
+ export function getClass (property: any, params: any) {
54
+ return property ? XEUtils.isFunction(property) ? property(params) : property : ''
55
+ }