vxe-gantt 3.0.7 → 3.0.9

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.
Files changed (38) hide show
  1. package/es/gantt/src/gantt-body.js +8 -0
  2. package/es/gantt/src/gantt-header.js +19 -5
  3. package/es/gantt/src/gantt-view.js +57 -42
  4. package/es/gantt/src/gantt.js +0 -3
  5. package/es/gantt/style.css +19 -4
  6. package/es/gantt/style.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/es/vxe-gantt/style.css +19 -4
  12. package/es/vxe-gantt/style.min.css +1 -1
  13. package/lib/gantt/src/gantt-body.js +10 -0
  14. package/lib/gantt/src/gantt-body.min.js +1 -1
  15. package/lib/gantt/src/gantt-header.js +21 -4
  16. package/lib/gantt/src/gantt-header.min.js +1 -1
  17. package/lib/gantt/src/gantt-view.js +78 -50
  18. package/lib/gantt/src/gantt-view.min.js +1 -1
  19. package/lib/gantt/src/gantt.js +0 -3
  20. package/lib/gantt/src/gantt.min.js +1 -1
  21. package/lib/gantt/style/style.css +19 -4
  22. package/lib/gantt/style/style.min.css +1 -1
  23. package/lib/index.umd.js +110 -59
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/ui/index.js +1 -1
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/lib/vxe-gantt/style/style.css +19 -4
  32. package/lib/vxe-gantt/style/style.min.css +1 -1
  33. package/package.json +2 -2
  34. package/packages/gantt/src/gantt-body.ts +9 -0
  35. package/packages/gantt/src/gantt-header.ts +18 -5
  36. package/packages/gantt/src/gantt-view.ts +57 -43
  37. package/packages/gantt/src/gantt.ts +0 -3
  38. package/styles/components/gantt.scss +21 -3
package/lib/index.umd.js CHANGED
@@ -7643,7 +7643,7 @@ var core_ = __webpack_require__(4345);
7643
7643
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
7644
7644
 
7645
7645
  var log = core_.VxeUI.log;
7646
- var version = "gantt v".concat("3.0.7");
7646
+ var version = "gantt v".concat("3.0.9");
7647
7647
  var warnLog = log.create('warn', version);
7648
7648
  var errLog = log.create('error', version);
7649
7649
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
@@ -7653,7 +7653,7 @@ var errLog = log.create('error', version);
7653
7653
  var setConfig = core_.VxeUI.setConfig,
7654
7654
  setIcon = core_.VxeUI.setIcon,
7655
7655
  checkVersion = core_.VxeUI.checkVersion;
7656
- core_.VxeUI.ganttVersion = "3.0.7";
7656
+ core_.VxeUI.ganttVersion = "3.0.9";
7657
7657
  setConfig({
7658
7658
  gantt: {
7659
7659
  // size: null,
@@ -8426,6 +8426,7 @@ function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
8426
8426
 
8427
8427
 
8428
8428
 
8429
+
8429
8430
  var getI18n = core_.VxeUI.getI18n;
8430
8431
  /* harmony default export */ var gantt_header = (defineVxeComponent({
8431
8432
  name: 'VxeGanttViewHeader',
@@ -8450,7 +8451,8 @@ var getI18n = core_.VxeUI.getI18n;
8450
8451
  var internalData = $xeGanttView.internalData;
8451
8452
  var headerGroups = reactData.headerGroups,
8452
8453
  viewCellWidth = reactData.viewCellWidth;
8453
- var visibleColumn = internalData.visibleColumn;
8454
+ var todayDateMaps = internalData.todayDateMaps,
8455
+ visibleColumn = internalData.visibleColumn;
8454
8456
  return h('div', {
8455
8457
  ref: 'refElem',
8456
8458
  class: 'vxe-gantt-view--header-wrapper'
@@ -8478,12 +8480,15 @@ var getI18n = core_.VxeUI.getI18n;
8478
8480
  columns = _ref.columns;
8479
8481
  var type = scaleItem.type,
8480
8482
  titleMethod = scaleItem.titleMethod,
8483
+ headerCellStyle = scaleItem.headerCellStyle,
8481
8484
  slots = scaleItem.slots;
8482
8485
  var titleSlot = slots ? slots.title : null;
8486
+ var todayValue = $rowIndex === headerGroups.length - 1 ? todayDateMaps[type] : null;
8483
8487
  return h('tr', {
8484
8488
  key: $rowIndex
8485
8489
  }, columns.map(function (column, cIndex) {
8486
- var childCount = column.childCount,
8490
+ var field = column.field,
8491
+ childCount = column.childCount,
8487
8492
  dateObj = column.dateObj;
8488
8493
  var label = "".concat(column.title);
8489
8494
  if ($rowIndex < headerGroups.length - 1) {
@@ -8505,13 +8510,24 @@ var getI18n = core_.VxeUI.getI18n;
8505
8510
  } else if (titleMethod) {
8506
8511
  cellVNs = "".concat(titleMethod(ctParams));
8507
8512
  }
8513
+ var cellStys = {};
8514
+ if (headerCellStyle) {
8515
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(headerCellStyle)) {
8516
+ cellStys = headerCellStyle(ctParams);
8517
+ } else {
8518
+ cellStys = headerCellStyle;
8519
+ }
8520
+ }
8508
8521
  return h('th', {
8509
8522
  key: cIndex,
8510
- class: 'vxe-gantt-view--header-column',
8523
+ class: ['vxe-gantt-view--header-column', {
8524
+ 'is--now': todayValue && todayValue === field
8525
+ }],
8511
8526
  attrs: {
8512
8527
  colspan: childCount || null,
8513
8528
  title: titleSlot ? null : label
8514
- }
8529
+ },
8530
+ style: cellStys
8515
8531
  }, cellVNs);
8516
8532
  }));
8517
8533
  }))])])]);
@@ -8756,7 +8772,10 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8756
8772
  //
8757
8773
  renderColumn: function renderColumn(h, $xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex, column, $columnIndex) {
8758
8774
  var _vm = this;
8775
+ var $xeGanttView = _vm.$xeGanttView;
8759
8776
  var $xeGantt = _vm.$xeGantt;
8777
+ var reactData = $xeGanttView.reactData,
8778
+ internalData = $xeGanttView.internalData;
8760
8779
  var tableReactData = $xeTable;
8761
8780
  var resizeHeightFlag = tableReactData.resizeHeightFlag;
8762
8781
  var tableInternalData = $xeTable;
@@ -8767,6 +8786,12 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8767
8786
  var defaultRowHeight = $xeTable.computeDefaultRowHeight;
8768
8787
  var resizableOpts = $xeTable.computeResizableOpts;
8769
8788
  var isAllRowDrag = resizableOpts.isAllRowDrag;
8789
+ var headerGroups = reactData.headerGroups;
8790
+ var todayDateMaps = internalData.todayDateMaps;
8791
+ var _ref = headerGroups[headerGroups.length - 1] || {},
8792
+ scaleItem = _ref.scaleItem;
8793
+ var field = column.field;
8794
+ var todayValue = scaleItem ? todayDateMaps[scaleItem.type] : null;
8770
8795
  var rowRest = fullAllDataRowIdData[rowid] || {};
8771
8796
  var resizeHeight = resizeHeightFlag ? rowRest.resizeHeight : 0;
8772
8797
  var isRsHeight = resizeHeight > 0;
@@ -8812,6 +8837,7 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8812
8837
  return h('td', {
8813
8838
  key: $columnIndex,
8814
8839
  class: ['vxe-gantt-view--body-column', {
8840
+ 'is--now': todayValue === field,
8815
8841
  'col--rs-height': isRsHeight
8816
8842
  }],
8817
8843
  style: {
@@ -9063,6 +9089,7 @@ function createInternalData() {
9063
9089
  startMaps: {},
9064
9090
  endMaps: {},
9065
9091
  chartMaps: {},
9092
+ todayDateMaps: {},
9066
9093
  elemStore: {},
9067
9094
  // 存放横向 X 虚拟滚动相关的信息
9068
9095
  scrollXStore: {
@@ -9087,6 +9114,39 @@ function parseStringDate($xeGanttView, dateValue) {
9087
9114
  var dateFormat = taskOpts.dateFormat;
9088
9115
  return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toStringDate(dateValue, dateFormat || null);
9089
9116
  }
9117
+ function updateTodayData($xeGanttView) {
9118
+ var $xeGantt = $xeGanttView.$xeGantt;
9119
+ var internalData = $xeGanttView.internalData;
9120
+ var ganttReactData = $xeGantt.reactData;
9121
+ var taskScaleList = ganttReactData.taskScaleList;
9122
+ var weekScale = taskScaleList.find(function (item) {
9123
+ return item.type === 'week';
9124
+ });
9125
+ var itemDate = new Date();
9126
+ var _XEUtils$toDateString = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toDateString(itemDate, 'yyyy-M-d-H-m-s').split('-'),
9127
+ _XEUtils$toDateString2 = _slicedToArray(_XEUtils$toDateString, 6),
9128
+ yyyy = _XEUtils$toDateString2[0],
9129
+ MM = _XEUtils$toDateString2[1],
9130
+ dd = _XEUtils$toDateString2[2],
9131
+ HH = _XEUtils$toDateString2[3],
9132
+ mm = _XEUtils$toDateString2[4],
9133
+ ss = _XEUtils$toDateString2[5];
9134
+ var e = itemDate.getDay();
9135
+ var E = e + 1;
9136
+ var q = Math.ceil((itemDate.getMonth() + 1) / 3);
9137
+ var W = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined);
9138
+ internalData.todayDateMaps = {
9139
+ year: yyyy,
9140
+ quarter: "".concat(yyyy, "_q").concat(q),
9141
+ month: "".concat(yyyy, "_").concat(MM),
9142
+ week: "".concat(yyyy, "_W").concat(W),
9143
+ day: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_E").concat(E),
9144
+ date: "".concat(yyyy, "_").concat(MM, "_").concat(dd),
9145
+ hour: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH),
9146
+ minute: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm),
9147
+ second: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm, "_").concat(ss)
9148
+ };
9149
+ }
9090
9150
  function handleParseColumn($xeGanttView) {
9091
9151
  var $xeGantt = $xeGanttView.$xeGantt;
9092
9152
  var reactData = $xeGanttView.reactData;
@@ -9097,12 +9157,9 @@ function handleParseColumn($xeGanttView) {
9097
9157
  var taskScaleList = ganttReactData.taskScaleList;
9098
9158
  var minViewDate = reactData.minViewDate,
9099
9159
  maxViewDate = reactData.maxViewDate;
9100
- var scrollXStore = internalData.scrollXStore;
9101
9160
  var minScale = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(taskScaleList);
9102
9161
  var fullCols = [];
9103
9162
  var groupCols = [];
9104
- scrollXStore.startIndex = 0;
9105
- scrollXStore.endIndex = 1;
9106
9163
  if (minScale && minViewDate && maxViewDate) {
9107
9164
  var minSType = minScale.type;
9108
9165
  var weekScale = taskScaleList.find(function (item) {
@@ -9127,37 +9184,6 @@ function handleParseColumn($xeGanttView) {
9127
9184
  var currTime = minViewDate.getTime();
9128
9185
  var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
9129
9186
  var countSize = Math.max(5, Math.floor(diffDayNum / gapTime) + 1);
9130
- // switch (minScale.type) {
9131
- // case 'day':
9132
- // case 'date':
9133
- // if (diffDayNum > (1000 * 60 * 60 * 24 * 366 * 3)) {
9134
- // reactData.tableColumn = []
9135
- // reactData.headerGroups = []
9136
- // return
9137
- // }
9138
- // break
9139
- // case 'hour':
9140
- // if (diffDayNum > (1000 * 60 * 60 * 24 * 31 * 3)) {
9141
- // reactData.tableColumn = []
9142
- // reactData.headerGroups = []
9143
- // return
9144
- // }
9145
- // break
9146
- // case 'minute':
9147
- // if (diffDayNum > (1000 * 60 * 60 * 24 * 3)) {
9148
- // reactData.tableColumn = []
9149
- // reactData.headerGroups = []
9150
- // return
9151
- // }
9152
- // break
9153
- // case 'second':
9154
- // if (diffDayNum > (1000 * 60 * 60 * 3)) {
9155
- // reactData.tableColumn = []
9156
- // reactData.headerGroups = []
9157
- // return
9158
- // }
9159
- // break
9160
- // }
9161
9187
  var renderListMaps = {
9162
9188
  year: [],
9163
9189
  quarter: [],
@@ -9201,14 +9227,14 @@ function handleParseColumn($xeGanttView) {
9201
9227
  };
9202
9228
  for (var i = 0; i < countSize; i++) {
9203
9229
  var itemDate = new Date(currTime + i * gapTime);
9204
- var _XEUtils$toDateString = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toDateString(itemDate, 'yyyy-M-d-H-m-s').split('-'),
9205
- _XEUtils$toDateString2 = _slicedToArray(_XEUtils$toDateString, 6),
9206
- yyyy = _XEUtils$toDateString2[0],
9207
- MM = _XEUtils$toDateString2[1],
9208
- dd = _XEUtils$toDateString2[2],
9209
- HH = _XEUtils$toDateString2[3],
9210
- mm = _XEUtils$toDateString2[4],
9211
- ss = _XEUtils$toDateString2[5];
9230
+ var _XEUtils$toDateString3 = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toDateString(itemDate, 'yyyy-M-d-H-m-s').split('-'),
9231
+ _XEUtils$toDateString4 = _slicedToArray(_XEUtils$toDateString3, 6),
9232
+ yyyy = _XEUtils$toDateString4[0],
9233
+ MM = _XEUtils$toDateString4[1],
9234
+ dd = _XEUtils$toDateString4[2],
9235
+ HH = _XEUtils$toDateString4[3],
9236
+ mm = _XEUtils$toDateString4[4],
9237
+ ss = _XEUtils$toDateString4[5];
9212
9238
  var e = itemDate.getDay();
9213
9239
  var E = e + 1;
9214
9240
  var q = Math.ceil((itemDate.getMonth() + 1) / 3);
@@ -9323,9 +9349,13 @@ function handleParseColumn($xeGanttView) {
9323
9349
  if ($xeTable) {
9324
9350
  var startField = $xeGantt.computeStartField;
9325
9351
  var endField = $xeGantt.computeEndField;
9352
+ var tableReactData = $xeTable;
9353
+ var isRowGroupStatus = tableReactData.isRowGroupStatus;
9326
9354
  var tableInternalData = $xeTable;
9327
9355
  var afterFullData = tableInternalData.afterFullData,
9328
- afterTreeFullData = tableInternalData.afterTreeFullData;
9356
+ afterTreeFullData = tableInternalData.afterTreeFullData,
9357
+ afterGroupFullData = tableInternalData.afterGroupFullData;
9358
+ var aggregateOpts = $xeTable.computeAggregateOpts;
9329
9359
  var treeOpts = $xeTable.computeTreeOpts;
9330
9360
  var transform = treeOpts.transform;
9331
9361
  var childrenField = treeOpts.children || treeOpts.childrenField;
@@ -9347,7 +9377,16 @@ function handleParseColumn($xeGanttView) {
9347
9377
  };
9348
9378
  }
9349
9379
  };
9350
- if (treeConfig) {
9380
+ if (isRowGroupStatus) {
9381
+ // 行分组
9382
+ var mapChildrenField = aggregateOpts.mapChildrenField;
9383
+ if (mapChildrenField) {
9384
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData, handleParseRender, {
9385
+ children: mapChildrenField
9386
+ });
9387
+ }
9388
+ } else if (treeConfig) {
9389
+ // 树结构
9351
9390
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, handleParseRender, {
9352
9391
  children: transform ? treeOpts.mapChildrenField : childrenField
9353
9392
  });
@@ -9359,6 +9398,7 @@ function handleParseColumn($xeGanttView) {
9359
9398
  }
9360
9399
  internalData.visibleColumn = fullCols;
9361
9400
  reactData.headerGroups = groupCols;
9401
+ updateTodayData($xeGanttView);
9362
9402
  updateScrollXStatus($xeGanttView);
9363
9403
  handleTableColumn($xeGanttView);
9364
9404
  }
@@ -9368,6 +9408,7 @@ function handleUpdateData($xeGanttView) {
9368
9408
  var internalData = $xeGanttView.internalData;
9369
9409
  var ganttProps = $xeGantt;
9370
9410
  var treeConfig = ganttProps.treeConfig;
9411
+ var scrollXStore = internalData.scrollXStore;
9371
9412
  var $xeTable = internalData.xeTable;
9372
9413
  var sdMaps = {};
9373
9414
  var edMaps = {};
@@ -9376,9 +9417,13 @@ function handleUpdateData($xeGanttView) {
9376
9417
  if ($xeTable) {
9377
9418
  var startField = $xeGantt.computeStartField;
9378
9419
  var endField = $xeGantt.computeEndField;
9420
+ var tableReactData = $xeTable;
9421
+ var isRowGroupStatus = tableReactData.isRowGroupStatus;
9379
9422
  var tableInternalData = $xeTable;
9380
9423
  var afterFullData = tableInternalData.afterFullData,
9381
- afterTreeFullData = tableInternalData.afterTreeFullData;
9424
+ afterTreeFullData = tableInternalData.afterTreeFullData,
9425
+ afterGroupFullData = tableInternalData.afterGroupFullData;
9426
+ var aggregateOpts = $xeTable.computeAggregateOpts;
9382
9427
  var treeOpts = $xeTable.computeTreeOpts;
9383
9428
  var transform = treeOpts.transform;
9384
9429
  var childrenField = treeOpts.children || treeOpts.childrenField;
@@ -9396,7 +9441,16 @@ function handleUpdateData($xeGanttView) {
9396
9441
  }
9397
9442
  }
9398
9443
  };
9399
- if (treeConfig) {
9444
+ if (isRowGroupStatus) {
9445
+ // 行分组
9446
+ var mapChildrenField = aggregateOpts.mapChildrenField;
9447
+ if (mapChildrenField) {
9448
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterGroupFullData, handleMinMaxData, {
9449
+ children: mapChildrenField
9450
+ });
9451
+ }
9452
+ } else if (treeConfig) {
9453
+ // 树结构
9400
9454
  external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, handleMinMaxData, {
9401
9455
  children: transform ? treeOpts.mapChildrenField : childrenField
9402
9456
  });
@@ -9404,6 +9458,8 @@ function handleUpdateData($xeGanttView) {
9404
9458
  afterFullData.forEach(handleMinMaxData);
9405
9459
  }
9406
9460
  }
9461
+ scrollXStore.startIndex = 0;
9462
+ scrollXStore.endIndex = Math.max(1, scrollXStore.visibleSize);
9407
9463
  reactData.minViewDate = minDate;
9408
9464
  reactData.maxViewDate = maxDate;
9409
9465
  internalData.startMaps = sdMaps;
@@ -9451,10 +9507,8 @@ function updateChart($xeGanttView) {
9451
9507
  }
9452
9508
  var rowid = rowEl.getAttribute('rowid');
9453
9509
  var rowRest = rowid ? chartMaps[rowid] : null;
9454
- if (rowRest) {
9455
- barEl.style.left = "".concat(viewCellWidth * rowRest.oLeftSize, "px");
9456
- barEl.style.width = "".concat(viewCellWidth * rowRest.oWidthSize, "px");
9457
- }
9510
+ barEl.style.left = "".concat(rowRest ? viewCellWidth * rowRest.oLeftSize : 0, "px");
9511
+ barEl.style.width = "".concat(rowRest ? viewCellWidth * rowRest.oWidthSize : 0, "px");
9458
9512
  });
9459
9513
  }
9460
9514
  return $xeGanttView.$nextTick();
@@ -12445,9 +12499,6 @@ function gantt_createInternalData() {
12445
12499
  if (props.expandConfig) {
12446
12500
  warnLog('vxe.error.notProp', ['expand-config']);
12447
12501
  }
12448
- if (props.aggregateConfig) {
12449
- warnLog('vxe.error.notProp', ['aggregate-config']);
12450
- }
12451
12502
  $xeGantt.$nextTick(function () {
12452
12503
  if (props.formConfig) {
12453
12504
  if (!VxeUIFormComponent) {