vxe-gantt 3.0.4 → 3.0.6

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 (40) hide show
  1. package/es/gantt/src/gantt-chart.js +18 -4
  2. package/es/gantt/src/gantt-header.js +29 -6
  3. package/es/gantt/src/gantt-view.js +230 -87
  4. package/es/gantt/src/gantt.js +64 -3
  5. package/es/gantt/style.css +2 -0
  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 +6 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/es/vxe-gantt/style.css +2 -0
  12. package/es/vxe-gantt/style.min.css +1 -1
  13. package/lib/gantt/src/gantt-chart.js +22 -5
  14. package/lib/gantt/src/gantt-chart.min.js +1 -1
  15. package/lib/gantt/src/gantt-header.js +37 -6
  16. package/lib/gantt/src/gantt-header.min.js +1 -1
  17. package/lib/gantt/src/gantt-view.js +261 -91
  18. package/lib/gantt/src/gantt-view.min.js +1 -1
  19. package/lib/gantt/src/gantt.js +75 -2
  20. package/lib/gantt/src/gantt.min.js +1 -1
  21. package/lib/gantt/style/style.css +2 -0
  22. package/lib/gantt/style/style.min.css +1 -1
  23. package/lib/index.umd.js +527 -113
  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 +6 -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 +2 -0
  32. package/lib/vxe-gantt/style/style.min.css +1 -1
  33. package/package.json +3 -3
  34. package/packages/gantt/src/gantt-chart.ts +20 -4
  35. package/packages/gantt/src/gantt-header.ts +29 -6
  36. package/packages/gantt/src/gantt-view.ts +241 -91
  37. package/packages/gantt/src/gantt.ts +73 -2
  38. package/packages/ui/index.ts +5 -0
  39. package/styles/components/gantt-module/gantt-chart.scss +2 -0
  40. package/styles/theme/base.scss +1 -1
package/lib/index.umd.js CHANGED
@@ -4901,6 +4901,36 @@ $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
4901
4901
  });
4902
4902
 
4903
4903
 
4904
+ /***/ }),
4905
+
4906
+ /***/ 113:
4907
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
4908
+
4909
+ "use strict";
4910
+
4911
+ var $ = __webpack_require__(6518);
4912
+ var $find = (__webpack_require__(9213).find);
4913
+ var addToUnscopables = __webpack_require__(6469);
4914
+
4915
+ var FIND = 'find';
4916
+ var SKIPS_HOLES = true;
4917
+
4918
+ // Shouldn't skip holes
4919
+ // eslint-disable-next-line es/no-array-prototype-find -- testing
4920
+ if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
4921
+
4922
+ // `Array.prototype.find` method
4923
+ // https://tc39.es/ecma262/#sec-array.prototype.find
4924
+ $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
4925
+ find: function find(callbackfn /* , that = undefined */) {
4926
+ return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4927
+ }
4928
+ });
4929
+
4930
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
4931
+ addToUnscopables(FIND);
4932
+
4933
+
4904
4934
  /***/ }),
4905
4935
 
4906
4936
  /***/ 3418:
@@ -5024,6 +5054,33 @@ if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {
5024
5054
  } catch (error) { /* empty */ }
5025
5055
 
5026
5056
 
5057
+ /***/ }),
5058
+
5059
+ /***/ 8598:
5060
+ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
5061
+
5062
+ "use strict";
5063
+
5064
+ var $ = __webpack_require__(6518);
5065
+ var uncurryThis = __webpack_require__(9504);
5066
+ var IndexedObject = __webpack_require__(7055);
5067
+ var toIndexedObject = __webpack_require__(5397);
5068
+ var arrayMethodIsStrict = __webpack_require__(4598);
5069
+
5070
+ var nativeJoin = uncurryThis([].join);
5071
+
5072
+ var ES3_STRINGS = IndexedObject !== Object;
5073
+ var FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');
5074
+
5075
+ // `Array.prototype.join` method
5076
+ // https://tc39.es/ecma262/#sec-array.prototype.join
5077
+ $({ target: 'Array', proto: true, forced: FORCED }, {
5078
+ join: function join(separator) {
5079
+ return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);
5080
+ }
5081
+ });
5082
+
5083
+
5027
5084
  /***/ }),
5028
5085
 
5029
5086
  /***/ 2062:
@@ -7586,7 +7643,7 @@ var core_ = __webpack_require__(4345);
7586
7643
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
7587
7644
 
7588
7645
  var log = core_.VxeUI.log;
7589
- var version = "gantt v".concat("3.0.4");
7646
+ var version = "gantt v".concat("3.0.6");
7590
7647
  var warnLog = log.create('warn', version);
7591
7648
  var errLog = log.create('error', version);
7592
7649
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
@@ -7596,7 +7653,7 @@ var errLog = log.create('error', version);
7596
7653
  var setConfig = core_.VxeUI.setConfig,
7597
7654
  setIcon = core_.VxeUI.setIcon,
7598
7655
  checkVersion = core_.VxeUI.checkVersion;
7599
- core_.VxeUI.ganttVersion = "3.0.4";
7656
+ core_.VxeUI.ganttVersion = "3.0.6";
7600
7657
  setConfig({
7601
7658
  gantt: {
7602
7659
  // size: null,
@@ -7635,6 +7692,11 @@ setConfig({
7635
7692
  // beforeSave: null,
7636
7693
  // afterSave: null
7637
7694
  },
7695
+ taskViewScaleConfs: {
7696
+ week: {
7697
+ startDay: 1
7698
+ }
7699
+ },
7638
7700
  taskSplitConfig: {
7639
7701
  enabled: true,
7640
7702
  resize: true,
@@ -7853,6 +7915,8 @@ function _objectSpread2(e) {
7853
7915
 
7854
7916
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js
7855
7917
  var es_array_includes = __webpack_require__(4423);
7918
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.join.js
7919
+ var es_array_join = __webpack_require__(8598);
7856
7920
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js
7857
7921
  var es_array_map = __webpack_require__(2062);
7858
7922
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.sort.js
@@ -8287,6 +8351,65 @@ function getSlotVNs(vns) {
8287
8351
  }
8288
8352
  return [vns];
8289
8353
  }
8354
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
8355
+ function _arrayWithHoles(r) {
8356
+ if (Array.isArray(r)) return r;
8357
+ }
8358
+
8359
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
8360
+
8361
+
8362
+
8363
+
8364
+
8365
+
8366
+
8367
+
8368
+ function _iterableToArrayLimit(r, l) {
8369
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
8370
+ if (null != t) {
8371
+ var e,
8372
+ n,
8373
+ i,
8374
+ u,
8375
+ a = [],
8376
+ f = !0,
8377
+ o = !1;
8378
+ try {
8379
+ if (i = (t = t.call(r)).next, 0 === l) {
8380
+ if (Object(t) !== t) return;
8381
+ f = !1;
8382
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
8383
+ } catch (r) {
8384
+ o = !0, n = r;
8385
+ } finally {
8386
+ try {
8387
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
8388
+ } finally {
8389
+ if (o) throw n;
8390
+ }
8391
+ }
8392
+ return a;
8393
+ }
8394
+ }
8395
+
8396
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
8397
+
8398
+ function _nonIterableRest() {
8399
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
8400
+ }
8401
+
8402
+ ;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js
8403
+
8404
+
8405
+
8406
+
8407
+ function _slicedToArray(r, e) {
8408
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
8409
+ }
8410
+
8411
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js
8412
+ var es_array_find = __webpack_require__(113);
8290
8413
  ;// CONCATENATED MODULE: ./packages/gantt/src/util.ts
8291
8414
  function getRefElem(refEl) {
8292
8415
  if (refEl) {
@@ -8301,6 +8424,9 @@ function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
8301
8424
 
8302
8425
 
8303
8426
 
8427
+
8428
+
8429
+ var getI18n = core_.VxeUI.getI18n;
8304
8430
  /* harmony default export */ var gantt_header = (defineVxeComponent({
8305
8431
  name: 'VxeGanttViewHeader',
8306
8432
  inject: {
@@ -8318,6 +8444,7 @@ function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
8318
8444
  //
8319
8445
  renderVN: function renderVN(h) {
8320
8446
  var _vm = this;
8447
+ var $xeGantt = _vm.$xeGantt;
8321
8448
  var $xeGanttView = _vm.$xeGanttView;
8322
8449
  var reactData = $xeGanttView.reactData;
8323
8450
  var tableColumn = reactData.tableColumn,
@@ -8345,18 +8472,46 @@ function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
8345
8472
  width: "".concat(viewCellWidth, "px")
8346
8473
  }
8347
8474
  });
8348
- })), h('thead', {}, headerGroups.map(function (cols, rIndex) {
8475
+ })), h('thead', {}, headerGroups.map(function (_ref, $rowIndex) {
8476
+ var scaleItem = _ref.scaleItem,
8477
+ columns = _ref.columns;
8478
+ var type = scaleItem.type,
8479
+ titleMethod = scaleItem.titleMethod,
8480
+ slots = scaleItem.slots;
8481
+ var titleSlot = slots ? slots.title : null;
8349
8482
  return h('tr', {
8350
- key: rIndex
8351
- }, cols.map(function (column, cIndex) {
8483
+ key: $rowIndex
8484
+ }, columns.map(function (column, cIndex) {
8485
+ var childCount = column.childCount,
8486
+ dateObj = column.dateObj;
8487
+ var label = "".concat(column.title);
8488
+ if ($rowIndex < headerGroups.length - 1) {
8489
+ if (scaleItem.type === 'day') {
8490
+ label = getI18n("vxe.gantt.dayss.w".concat(dateObj.e));
8491
+ } else {
8492
+ label = getI18n("vxe.gantt.".concat(!$rowIndex && headerGroups.length > 1 ? 'tFullFormat' : 'tSimpleFormat', ".").concat(type), dateObj);
8493
+ }
8494
+ }
8495
+ var cellVNs = label;
8496
+ var ctParams = {
8497
+ scaleObj: scaleItem,
8498
+ title: label,
8499
+ dateObj: dateObj,
8500
+ $rowIndex: $rowIndex
8501
+ };
8502
+ if (titleSlot) {
8503
+ cellVNs = $xeGantt.callSlot(titleSlot, ctParams, h);
8504
+ } else if (titleMethod) {
8505
+ cellVNs = "".concat(titleMethod(ctParams));
8506
+ }
8352
8507
  return h('th', {
8353
8508
  key: cIndex,
8354
8509
  class: 'vxe-gantt-view--header-column',
8355
8510
  attrs: {
8356
- colspan: column.children ? column.children.length : null,
8357
- title: "".concat(column.field)
8511
+ colspan: childCount || null,
8512
+ title: titleSlot ? null : label
8358
8513
  }
8359
- }, column.title);
8514
+ }, cellVNs);
8360
8515
  }));
8361
8516
  }))])])]);
8362
8517
  }
@@ -8439,14 +8594,32 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8439
8594
  showContent = taskBarOpts.showContent,
8440
8595
  contentMethod = taskBarOpts.contentMethod,
8441
8596
  barStyle = taskBarOpts.barStyle;
8442
- var _ref = barStyle || {},
8443
- round = _ref.round;
8597
+ var isBarRowStyle = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(barStyle);
8598
+ var barStyObj = (barStyle ? isBarRowStyle ? barStyle({
8599
+ row: row,
8600
+ $gantt: $xeGantt
8601
+ }) : barStyle : {}) || {};
8602
+ var round = barStyObj.round;
8444
8603
  var rowRest = fullAllDataRowIdData[rowid] || {};
8445
8604
  var resizeHeight = resizeHeightFlag ? rowRest.resizeHeight : 0;
8446
8605
  var isRsHeight = resizeHeight > 0;
8447
8606
  var cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
8448
8607
  var title = getStringValue(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, titleField));
8449
8608
  var progressValue = showProgress ? Math.min(100, Math.max(0, external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, progressField)))) : 0;
8609
+ var vbStyle = {};
8610
+ var vpStyle = {
8611
+ width: "".concat(progressValue || 0, "%")
8612
+ };
8613
+ if (isBarRowStyle) {
8614
+ var bgColor = barStyObj.bgColor,
8615
+ completedBgColor = barStyObj.completedBgColor;
8616
+ if (bgColor) {
8617
+ vbStyle.backgroundColor = bgColor;
8618
+ }
8619
+ if (completedBgColor) {
8620
+ vpStyle.backgroundColor = completedBgColor;
8621
+ }
8622
+ }
8450
8623
  if (contentMethod) {
8451
8624
  title = getStringValue(contentMethod({
8452
8625
  row: row,
@@ -8467,6 +8640,7 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8467
8640
  }
8468
8641
  }, [h('div', {
8469
8642
  class: taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar',
8643
+ style: vbStyle,
8470
8644
  attrs: {
8471
8645
  rowid: rowid
8472
8646
  },
@@ -8486,9 +8660,7 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8486
8660
  row: row
8487
8661
  }, h) : [showProgress ? h('div', {
8488
8662
  class: 'vxe-gantt-view--chart-progress',
8489
- style: {
8490
- width: "".concat(progressValue, "%")
8491
- }
8663
+ style: vpStyle
8492
8664
  }) : renderEmptyElement($xeGantt), showContent ? h('div', {
8493
8665
  class: 'vxe-gantt-view--chart-content'
8494
8666
  }, title) : renderEmptyElement($xeGantt)])]);
@@ -8878,6 +9050,8 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8878
9050
 
8879
9051
 
8880
9052
 
9053
+
9054
+
8881
9055
  var globalEvents = core_.VxeUI.globalEvents;
8882
9056
  function createInternalData() {
8883
9057
  return {
@@ -8921,95 +9095,267 @@ function handleParseColumn($xeGanttView) {
8921
9095
  var reactData = $xeGanttView.reactData;
8922
9096
  var internalData = $xeGanttView.internalData;
8923
9097
  var ganttProps = $xeGantt;
9098
+ var ganttReactData = $xeGantt.reactData;
8924
9099
  var treeConfig = ganttProps.treeConfig;
9100
+ var taskScaleList = ganttReactData.taskScaleList;
8925
9101
  var minViewDate = reactData.minViewDate,
8926
9102
  maxViewDate = reactData.maxViewDate;
8927
- var taskViewOpts = $xeGantt.computeTaskViewOpts;
9103
+ var minScale = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(taskScaleList);
8928
9104
  var fullCols = [];
8929
9105
  var groupCols = [];
8930
- switch (taskViewOpts.mode) {
8931
- case 'year':
8932
- break;
8933
- case 'quarter':
8934
- break;
8935
- case 'month':
8936
- break;
8937
- case 'week':
8938
- break;
8939
- default:
8940
- {
8941
- if (minViewDate && maxViewDate) {
8942
- var currTime = minViewDate.getTime();
8943
- var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
8944
- var countDayNum = Math.max(6, Math.floor(diffDayNum / 86400000) + 1);
8945
- var groupList = [];
8946
- var colList = [];
8947
- var groupMaps = {};
8948
- for (var i = 0; i < countDayNum; i++) {
8949
- var itemDate = new Date(currTime + i * 86400000);
8950
- var yyyyy = "".concat(itemDate.getFullYear(), "-").concat(itemDate.getMonth() + 1);
8951
- var mmDd = "".concat(itemDate.getDate());
8952
- var groupCol = groupMaps[yyyyy];
8953
- var column = {
8954
- field: "".concat(yyyyy, "-").concat(mmDd),
8955
- title: mmDd
8956
- };
8957
- if (groupCol) {
8958
- groupCol.children.push(column);
8959
- fullCols.push(groupCol);
8960
- } else {
8961
- groupCol = {
8962
- field: yyyyy,
8963
- title: yyyyy,
8964
- children: [column]
8965
- };
8966
- groupList.push(groupCol);
8967
- fullCols.push(groupCol);
8968
- groupMaps[yyyyy] = groupCol;
8969
- }
8970
- colList.push(column);
8971
- }
8972
- groupCols.push(groupList, colList);
8973
- var $xeTable = internalData.xeTable;
8974
- if ($xeTable) {
8975
- var startField = $xeGantt.computeStartField;
8976
- var endField = $xeGantt.computeEndField;
8977
- var tableInternalData = $xeTable;
8978
- var afterFullData = tableInternalData.afterFullData,
8979
- afterTreeFullData = tableInternalData.afterTreeFullData;
8980
- var treeOpts = $xeTable.computeTreeOpts;
8981
- var transform = treeOpts.transform;
8982
- var childrenField = treeOpts.children || treeOpts.childrenField;
8983
- var ctMaps = {};
8984
- var handleParseRender = function handleParseRender(row) {
8985
- var rowid = $xeTable.getRowid(row);
8986
- var startValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, startField);
8987
- var endValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, endField);
8988
- if (startValue && endValue) {
8989
- var startDate = parseStringDate($xeGanttView, startValue);
8990
- var endDate = parseStringDate($xeGanttView, endValue);
8991
- var oLeftSize = Math.floor((startDate.getTime() - minViewDate.getTime()) / 86400000);
8992
- var oWidthSize = Math.floor((endDate.getTime() - startDate.getTime()) / 86400000) + 1;
8993
- ctMaps[rowid] = {
8994
- row: row,
8995
- rowid: rowid,
8996
- oLeftSize: oLeftSize,
8997
- oWidthSize: oWidthSize
8998
- };
8999
- }
9000
- };
9001
- if (treeConfig) {
9002
- external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, handleParseRender, {
9003
- children: transform ? treeOpts.mapChildrenField : childrenField
9004
- });
9005
- } else {
9006
- afterFullData.forEach(handleParseRender);
9007
- }
9008
- internalData.chartMaps = ctMaps;
9009
- }
9106
+ if (minScale && minViewDate && maxViewDate) {
9107
+ var minSType = minScale.type;
9108
+ var weekScale = taskScaleList.find(function (item) {
9109
+ return item.type === 'week';
9110
+ });
9111
+ var gapTime = 1000 * 60 * 60 * 24;
9112
+ switch (minScale.type) {
9113
+ case 'hour':
9114
+ gapTime = 1000 * 60 * 60;
9115
+ break;
9116
+ case 'minute':
9117
+ gapTime = 1000 * 60;
9118
+ break;
9119
+ case 'second':
9120
+ gapTime = 1000;
9121
+ break;
9122
+ default:
9123
+ {
9124
+ break;
9125
+ }
9126
+ }
9127
+ var currTime = minViewDate.getTime();
9128
+ var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
9129
+ 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;
9010
9137
  }
9011
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
+ var renderListMaps = {
9162
+ year: [],
9163
+ quarter: [],
9164
+ month: [],
9165
+ week: [],
9166
+ day: [],
9167
+ date: [],
9168
+ hour: [],
9169
+ minute: [],
9170
+ second: []
9171
+ };
9172
+ var tempTypeMaps = {
9173
+ year: {},
9174
+ quarter: {},
9175
+ month: {},
9176
+ week: {},
9177
+ day: {},
9178
+ date: {},
9179
+ hour: {},
9180
+ minute: {},
9181
+ second: {}
9182
+ };
9183
+ var handleData = function handleData(type, colMaps, minCol) {
9184
+ if (minSType === type) {
9185
+ return;
9012
9186
  }
9187
+ var currCol = colMaps[type];
9188
+ var currKey = "".concat(currCol.field);
9189
+ var currGpCol = tempTypeMaps[type][currKey];
9190
+ if (!currGpCol) {
9191
+ currGpCol = currCol;
9192
+ tempTypeMaps[type][currKey] = currGpCol;
9193
+ renderListMaps[type].push(currGpCol);
9194
+ }
9195
+ if (currGpCol) {
9196
+ if (!currGpCol.children) {
9197
+ currGpCol.children = [];
9198
+ }
9199
+ currGpCol.children.push(minCol);
9200
+ }
9201
+ };
9202
+ for (var i = 0; i < countSize; i++) {
9203
+ 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];
9212
+ var e = itemDate.getDay();
9213
+ var E = e + 1;
9214
+ var q = Math.ceil((itemDate.getMonth() + 1) / 3);
9215
+ var W = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined);
9216
+ var dateObj = {
9217
+ yy: yyyy,
9218
+ M: MM,
9219
+ d: dd,
9220
+ H: HH,
9221
+ m: mm,
9222
+ s: ss,
9223
+ q: q,
9224
+ W: W,
9225
+ E: E,
9226
+ e: e
9227
+ };
9228
+ var colMaps = {
9229
+ year: {
9230
+ field: yyyy,
9231
+ title: yyyy,
9232
+ dateObj: dateObj
9233
+ },
9234
+ quarter: {
9235
+ field: "".concat(yyyy, "_q").concat(q),
9236
+ title: "".concat(q),
9237
+ dateObj: dateObj
9238
+ },
9239
+ month: {
9240
+ field: "".concat(yyyy, "_").concat(MM),
9241
+ title: MM,
9242
+ dateObj: dateObj
9243
+ },
9244
+ week: {
9245
+ field: "".concat(yyyy, "_W").concat(W),
9246
+ title: "".concat(W),
9247
+ dateObj: dateObj
9248
+ },
9249
+ day: {
9250
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_E").concat(E),
9251
+ title: "".concat(E),
9252
+ dateObj: dateObj
9253
+ },
9254
+ date: {
9255
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd),
9256
+ title: dd,
9257
+ dateObj: dateObj
9258
+ },
9259
+ hour: {
9260
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH),
9261
+ title: HH,
9262
+ dateObj: dateObj
9263
+ },
9264
+ minute: {
9265
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm),
9266
+ title: mm,
9267
+ dateObj: dateObj
9268
+ },
9269
+ second: {
9270
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm, "_").concat(ss),
9271
+ title: ss,
9272
+ dateObj: dateObj
9273
+ }
9274
+ };
9275
+ var minCol = colMaps[minSType];
9276
+ if (minScale.level < 19) {
9277
+ handleData('year', colMaps, minCol);
9278
+ }
9279
+ if (minScale.level < 17) {
9280
+ handleData('quarter', colMaps, minCol);
9281
+ }
9282
+ if (minScale.level < 14) {
9283
+ handleData('month', colMaps, minCol);
9284
+ }
9285
+ if (minScale.level < 13) {
9286
+ handleData('week', colMaps, minCol);
9287
+ }
9288
+ if (minScale.level < 11) {
9289
+ handleData('day', colMaps, minCol);
9290
+ }
9291
+ if (minScale.level < 12) {
9292
+ handleData('date', colMaps, minCol);
9293
+ }
9294
+ if (minScale.level < 7) {
9295
+ handleData('hour', colMaps, minCol);
9296
+ }
9297
+ if (minScale.level < 5) {
9298
+ handleData('minute', colMaps, minCol);
9299
+ }
9300
+ fullCols.push(minCol);
9301
+ }
9302
+ taskScaleList.forEach(function (scaleItem) {
9303
+ if (scaleItem.type === minSType) {
9304
+ groupCols.push({
9305
+ scaleItem: scaleItem,
9306
+ columns: fullCols
9307
+ });
9308
+ return;
9309
+ }
9310
+ var list = renderListMaps[scaleItem.type] || [];
9311
+ if (list) {
9312
+ list.forEach(function (item) {
9313
+ item.childCount = item.children ? item.children.length : 0;
9314
+ item.children = undefined;
9315
+ });
9316
+ }
9317
+ groupCols.push({
9318
+ scaleItem: scaleItem,
9319
+ columns: list
9320
+ });
9321
+ });
9322
+ var $xeTable = internalData.xeTable;
9323
+ if ($xeTable) {
9324
+ var startField = $xeGantt.computeStartField;
9325
+ var endField = $xeGantt.computeEndField;
9326
+ var tableInternalData = $xeTable;
9327
+ var afterFullData = tableInternalData.afterFullData,
9328
+ afterTreeFullData = tableInternalData.afterTreeFullData;
9329
+ var treeOpts = $xeTable.computeTreeOpts;
9330
+ var transform = treeOpts.transform;
9331
+ var childrenField = treeOpts.children || treeOpts.childrenField;
9332
+ var ctMaps = {};
9333
+ var handleParseRender = function handleParseRender(row) {
9334
+ var rowid = $xeTable.getRowid(row);
9335
+ var startValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, startField);
9336
+ var endValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, endField);
9337
+ if (startValue && endValue) {
9338
+ var startDate = parseStringDate($xeGanttView, startValue);
9339
+ var endDate = parseStringDate($xeGanttView, endValue);
9340
+ var oLeftSize = Math.floor((startDate.getTime() - minViewDate.getTime()) / gapTime);
9341
+ var oWidthSize = Math.floor((endDate.getTime() - startDate.getTime()) / gapTime) + 1;
9342
+ ctMaps[rowid] = {
9343
+ row: row,
9344
+ rowid: rowid,
9345
+ oLeftSize: oLeftSize,
9346
+ oWidthSize: oWidthSize
9347
+ };
9348
+ }
9349
+ };
9350
+ if (treeConfig) {
9351
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, handleParseRender, {
9352
+ children: transform ? treeOpts.mapChildrenField : childrenField
9353
+ });
9354
+ } else {
9355
+ afterFullData.forEach(handleParseRender);
9356
+ }
9357
+ internalData.chartMaps = ctMaps;
9358
+ }
9013
9359
  }
9014
9360
  reactData.tableColumn = fullCols;
9015
9361
  reactData.headerGroups = groupCols;
@@ -9417,14 +9763,7 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9417
9763
  tableData: [],
9418
9764
  tableColumn: [],
9419
9765
  headerGroups: [],
9420
- viewCellWidth: 40,
9421
- rowHeightStore: {
9422
- large: 52,
9423
- default: 48,
9424
- medium: 44,
9425
- small: 40,
9426
- mini: 36
9427
- }
9766
+ viewCellWidth: 20
9428
9767
  };
9429
9768
  var internalData = createInternalData();
9430
9769
  return {
@@ -9739,11 +10078,10 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9739
10078
  overflowY = reactData.overflowY,
9740
10079
  scrollXLoad = reactData.scrollXLoad,
9741
10080
  scrollYLoad = reactData.scrollYLoad;
9742
- var taskViewOpts = $xeGantt.computeTaskViewOpts;
9743
10081
  var scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
9744
10082
  return h('div', {
9745
10083
  ref: 'refElem',
9746
- class: ['vxe-gantt-view', "mode--".concat(taskViewOpts.mode || 'day'), {
10084
+ class: ['vxe-gantt-view', {
9747
10085
  'is--scroll-y': overflowY,
9748
10086
  'is--scroll-x': overflowX,
9749
10087
  'is--virtual-x': scrollXLoad,
@@ -9801,13 +10139,16 @@ var external_root_VxeUITable_commonjs_vxe_table_commonjs2_vxe_table_amd_vxe_tabl
9801
10139
 
9802
10140
 
9803
10141
 
10142
+
10143
+
10144
+
9804
10145
 
9805
10146
 
9806
10147
 
9807
10148
 
9808
10149
  var gantt_getConfig = core_.VxeUI.getConfig,
9809
10150
  getIcon = core_.VxeUI.getIcon,
9810
- getI18n = core_.VxeUI.getI18n,
10151
+ gantt_getI18n = core_.VxeUI.getI18n,
9811
10152
  commands = core_.VxeUI.commands,
9812
10153
  globalMixins = core_.VxeUI.globalMixins,
9813
10154
  createEvent = core_.VxeUI.createEvent,
@@ -9818,6 +10159,20 @@ var tableProps = external_root_VxeUITable_commonjs_vxe_table_commonjs2_vxe_table
9818
10159
  var tableMethods = {};
9819
10160
  var propKeys = Object.keys(tableProps);
9820
10161
  var defaultLayouts = [['Form'], ['Toolbar', 'Top', 'Gantt', 'Bottom', 'Pager']];
10162
+ var viewTypeLevelMaps = {
10163
+ year: 19,
10164
+ quarter: 17,
10165
+ month: 15,
10166
+ week: 13,
10167
+ day: 11,
10168
+ date: 9,
10169
+ hour: 7,
10170
+ minute: 5,
10171
+ second: 3
10172
+ };
10173
+ function getViewTypeLevel(type) {
10174
+ return viewTypeLevelMaps[type || 'date'] || viewTypeLevelMaps.date;
10175
+ }
9821
10176
  function getTableOns($xeGantt) {
9822
10177
  var _vm = $xeGantt;
9823
10178
  var $listeners = _vm.$listeners;
@@ -9869,6 +10224,7 @@ function gantt_createInternalData() {
9869
10224
  zoomConfig: Object,
9870
10225
  layouts: Array,
9871
10226
  taskConfig: Object,
10227
+ taskViewScaleConfs: Object,
9872
10228
  taskViewConfig: Object,
9873
10229
  taskBarConfig: Object,
9874
10230
  taskSplitConfig: Object,
@@ -9905,7 +10261,8 @@ function gantt_createInternalData() {
9905
10261
  currentPage: 1
9906
10262
  },
9907
10263
  showLeftView: true,
9908
- showRightView: true
10264
+ showRightView: true,
10265
+ taskScaleList: []
9909
10266
  };
9910
10267
  var internalData = gantt_createInternalData();
9911
10268
  return {
@@ -9955,6 +10312,11 @@ function gantt_createInternalData() {
9955
10312
  var props = $xeGantt;
9956
10313
  return Object.assign({}, gantt_getConfig().gantt.taskConfig, props.taskConfig);
9957
10314
  },
10315
+ computeTaskViewScaleMapsOpts: function computeTaskViewScaleMapsOpts() {
10316
+ var $xeGantt = this;
10317
+ var props = $xeGantt;
10318
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().merge({}, gantt_getConfig().gantt.taskViewScaleConfs, props.taskViewScaleConfs);
10319
+ },
9958
10320
  computeTaskViewOpts: function computeTaskViewOpts() {
9959
10321
  var $xeGantt = this;
9960
10322
  var props = $xeGantt;
@@ -9970,6 +10332,12 @@ function gantt_createInternalData() {
9970
10332
  var props = $xeGantt;
9971
10333
  return Object.assign({}, gantt_getConfig().gantt.taskSplitConfig, props.taskSplitConfig);
9972
10334
  },
10335
+ computeTaskScaleConfs: function computeTaskScaleConfs() {
10336
+ var $xeGantt = this;
10337
+ var taskViewOpts = $xeGantt.computeTaskViewOpts;
10338
+ var scales = taskViewOpts.scales;
10339
+ return scales;
10340
+ },
9973
10341
  computeTitleField: function computeTitleField() {
9974
10342
  var $xeGantt = this;
9975
10343
  var taskOpts = $xeGantt.computeTaskOpts;
@@ -10028,7 +10396,7 @@ function gantt_createInternalData() {
10028
10396
  stys.maxHeight = maxHeight === 'auto' || maxHeight === '100%' ? '100%' : toCssUnit(maxHeight);
10029
10397
  }
10030
10398
  }
10031
- if (barStyle) {
10399
+ if (barStyle && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(barStyle)) {
10032
10400
  var bgColor = barStyle.bgColor,
10033
10401
  completedBgColor = barStyle.completedBgColor;
10034
10402
  if (bgColor) {
@@ -10215,6 +10583,10 @@ function gantt_createInternalData() {
10215
10583
  proxyConfig: function proxyConfig() {
10216
10584
  var $xeGantt = this;
10217
10585
  $xeGantt.initProxy();
10586
+ },
10587
+ computeTaskScaleConfs: function computeTaskScaleConfs() {
10588
+ var $xeGantt = this;
10589
+ $xeGantt.handleTaskScaleConfig();
10218
10590
  }
10219
10591
  },
10220
10592
  methods: _objectSpread2(_objectSpread2({}, tableMethods), {}, {
@@ -10225,6 +10597,47 @@ function gantt_createInternalData() {
10225
10597
  $gantt: $xeGantt
10226
10598
  }, params));
10227
10599
  },
10600
+ handleTaskScaleConfig: function handleTaskScaleConfig() {
10601
+ var $xeGantt = this;
10602
+ var reactData = $xeGantt.reactData;
10603
+ var taskScaleConfs = $xeGantt.computeTaskScaleConfs;
10604
+ var taskViewScaleMapsOpts = $xeGantt.computeTaskViewScaleMapsOpts;
10605
+ var scaleConfs = [];
10606
+ if (taskScaleConfs) {
10607
+ var keyMaps = {};
10608
+ taskScaleConfs.forEach(function (conf) {
10609
+ var sConf = !conf || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(conf) ? {
10610
+ type: conf
10611
+ } : conf;
10612
+ var type = sConf.type;
10613
+ if (!type || !viewTypeLevelMaps[type]) {
10614
+ errLog('vxe.error.errProp', ["type=".concat(type), external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(viewTypeLevelMaps).join(',')]);
10615
+ return;
10616
+ }
10617
+ if (keyMaps[type]) {
10618
+ errLog('vxe.error.repeatProp', ['type', type]);
10619
+ return;
10620
+ }
10621
+ keyMaps[type] = true;
10622
+ scaleConfs.push(Object.assign({}, type ? taskViewScaleMapsOpts[type] || {} : {}, sConf, {
10623
+ level: getViewTypeLevel(type)
10624
+ }));
10625
+ });
10626
+ }
10627
+ if (!scaleConfs.length) {
10628
+ scaleConfs.push({
10629
+ type: 'month',
10630
+ level: viewTypeLevelMaps.month
10631
+ }, {
10632
+ type: 'day',
10633
+ level: viewTypeLevelMaps.day
10634
+ });
10635
+ }
10636
+ reactData.taskScaleList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(scaleConfs, {
10637
+ field: 'level',
10638
+ order: 'desc'
10639
+ });
10640
+ },
10228
10641
  initToolbar: function initToolbar() {
10229
10642
  var $xeGantt = this;
10230
10643
  $xeGantt.$nextTick(function () {
@@ -10284,7 +10697,7 @@ function gantt_createInternalData() {
10284
10697
  if (core_.VxeUI.modal) {
10285
10698
  core_.VxeUI.modal.message({
10286
10699
  id: code,
10287
- content: getI18n('vxe.grid.selectOneRecord'),
10700
+ content: gantt_getI18n('vxe.grid.selectOneRecord'),
10288
10701
  status: 'warning'
10289
10702
  });
10290
10703
  }
@@ -10306,7 +10719,7 @@ function gantt_createInternalData() {
10306
10719
  $gantt: $xeGantt
10307
10720
  }) : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rest, messageProp);
10308
10721
  }
10309
- return msg || getI18n(defaultMsg);
10722
+ return msg || gantt_getI18n(defaultMsg);
10310
10723
  },
10311
10724
  handleDeleteRow: function handleDeleteRow(code, alertKey, callback) {
10312
10725
  var $xeGantt = this;
@@ -10317,7 +10730,7 @@ function gantt_createInternalData() {
10317
10730
  if (core_.VxeUI.modal) {
10318
10731
  return core_.VxeUI.modal.confirm({
10319
10732
  id: "cfm_".concat(code),
10320
- content: getI18n(alertKey),
10733
+ content: gantt_getI18n(alertKey),
10321
10734
  escClosable: true
10322
10735
  }).then(function (type) {
10323
10736
  if (type === 'confirm') {
@@ -10329,7 +10742,7 @@ function gantt_createInternalData() {
10329
10742
  if (core_.VxeUI.modal) {
10330
10743
  core_.VxeUI.modal.message({
10331
10744
  id: "msg_".concat(code),
10332
- content: getI18n('vxe.grid.selectOneRecord'),
10745
+ content: gantt_getI18n('vxe.grid.selectOneRecord'),
10333
10746
  status: 'warning'
10334
10747
  });
10335
10748
  }
@@ -10972,7 +11385,7 @@ function gantt_createInternalData() {
10972
11385
  }
10973
11386
  core_.VxeUI.modal.message({
10974
11387
  id: code,
10975
- content: getI18n('vxe.grid.selectOneRecord'),
11388
+ content: gantt_getI18n('vxe.grid.selectOneRecord'),
10976
11389
  status: 'warning'
10977
11390
  });
10978
11391
  }
@@ -11084,7 +11497,7 @@ function gantt_createInternalData() {
11084
11497
  }
11085
11498
  core_.VxeUI.modal.message({
11086
11499
  id: code,
11087
- content: getI18n('vxe.grid.dataUnchanged'),
11500
+ content: gantt_getI18n('vxe.grid.dataUnchanged'),
11088
11501
  status: 'info'
11089
11502
  });
11090
11503
  }
@@ -11922,6 +12335,7 @@ function gantt_createInternalData() {
11922
12335
  }
11923
12336
  }
11924
12337
  });
12338
+ $xeGantt.handleTaskScaleConfig();
11925
12339
  $xeGantt.initPages();
11926
12340
  },
11927
12341
  mounted: function mounted() {