vxe-gantt 3.0.4 → 3.0.5

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/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.5");
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.5";
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: {
@@ -8345,18 +8471,39 @@ function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
8345
8471
  width: "".concat(viewCellWidth, "px")
8346
8472
  }
8347
8473
  });
8348
- })), h('thead', {}, headerGroups.map(function (cols, rIndex) {
8474
+ })), h('thead', {}, headerGroups.map(function (_ref, $rowIndex) {
8475
+ var scaleItem = _ref.scaleItem,
8476
+ columns = _ref.columns;
8477
+ var type = scaleItem.type,
8478
+ titleMethod = scaleItem.titleMethod;
8349
8479
  return h('tr', {
8350
- key: rIndex
8351
- }, cols.map(function (column, cIndex) {
8480
+ key: $rowIndex
8481
+ }, columns.map(function (column, cIndex) {
8482
+ var dateObj = column.params;
8483
+ var label = "".concat(column.title);
8484
+ if ($rowIndex < headerGroups.length - 1) {
8485
+ if (scaleItem.type === 'day') {
8486
+ label = getI18n("vxe.gantt.dayss.w".concat(dateObj.e));
8487
+ } else {
8488
+ label = getI18n("vxe.gantt.".concat(!$rowIndex && headerGroups.length > 1 ? 'tFullFormat' : 'tSimpleFormat', ".").concat(type), dateObj);
8489
+ }
8490
+ }
8491
+ if (titleMethod) {
8492
+ label = "".concat(titleMethod({
8493
+ scaleObj: scaleItem,
8494
+ title: label,
8495
+ dateObj: dateObj,
8496
+ $rowIndex: $rowIndex
8497
+ }));
8498
+ }
8352
8499
  return h('th', {
8353
8500
  key: cIndex,
8354
8501
  class: 'vxe-gantt-view--header-column',
8355
8502
  attrs: {
8356
- colspan: column.children ? column.children.length : null,
8357
- title: "".concat(column.field)
8503
+ colspan: column.childCount || null,
8504
+ title: label
8358
8505
  }
8359
- }, column.title);
8506
+ }, label);
8360
8507
  }));
8361
8508
  }))])])]);
8362
8509
  }
@@ -8878,6 +9025,8 @@ var renderEmptyElement = core_.VxeUI.renderEmptyElement;
8878
9025
 
8879
9026
 
8880
9027
 
9028
+
9029
+
8881
9030
  var globalEvents = core_.VxeUI.globalEvents;
8882
9031
  function createInternalData() {
8883
9032
  return {
@@ -8921,95 +9070,267 @@ function handleParseColumn($xeGanttView) {
8921
9070
  var reactData = $xeGanttView.reactData;
8922
9071
  var internalData = $xeGanttView.internalData;
8923
9072
  var ganttProps = $xeGantt;
9073
+ var ganttReactData = $xeGantt.reactData;
8924
9074
  var treeConfig = ganttProps.treeConfig;
9075
+ var taskScaleList = ganttReactData.taskScaleList;
8925
9076
  var minViewDate = reactData.minViewDate,
8926
9077
  maxViewDate = reactData.maxViewDate;
8927
- var taskViewOpts = $xeGantt.computeTaskViewOpts;
9078
+ var minScale = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().last(taskScaleList);
8928
9079
  var fullCols = [];
8929
9080
  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
- }
9081
+ if (minScale && minViewDate && maxViewDate) {
9082
+ var minSType = minScale.type;
9083
+ var weekScale = taskScaleList.find(function (item) {
9084
+ return item.type === 'week';
9085
+ });
9086
+ var gapTime = 1000 * 60 * 60 * 24;
9087
+ switch (minScale.type) {
9088
+ case 'hour':
9089
+ gapTime = 1000 * 60 * 60;
9090
+ break;
9091
+ case 'minute':
9092
+ gapTime = 1000 * 60;
9093
+ break;
9094
+ case 'second':
9095
+ gapTime = 1000;
9096
+ break;
9097
+ default:
9098
+ {
9099
+ break;
9100
+ }
9101
+ }
9102
+ var currTime = minViewDate.getTime();
9103
+ var diffDayNum = maxViewDate.getTime() - minViewDate.getTime();
9104
+ var countSize = Math.max(5, Math.floor(diffDayNum / gapTime) + 1);
9105
+ switch (minScale.type) {
9106
+ case 'day':
9107
+ case 'date':
9108
+ if (diffDayNum > 1000 * 60 * 60 * 24 * 366 * 3) {
9109
+ reactData.tableColumn = [];
9110
+ reactData.headerGroups = [];
9111
+ return;
9112
+ }
9113
+ break;
9114
+ case 'hour':
9115
+ if (diffDayNum > 1000 * 60 * 60 * 24 * 31 * 3) {
9116
+ reactData.tableColumn = [];
9117
+ reactData.headerGroups = [];
9118
+ return;
9119
+ }
9120
+ break;
9121
+ case 'minute':
9122
+ if (diffDayNum > 1000 * 60 * 60 * 24 * 3) {
9123
+ reactData.tableColumn = [];
9124
+ reactData.headerGroups = [];
9125
+ return;
9126
+ }
9127
+ break;
9128
+ case 'second':
9129
+ if (diffDayNum > 1000 * 60 * 60 * 3) {
9130
+ reactData.tableColumn = [];
9131
+ reactData.headerGroups = [];
9132
+ return;
9010
9133
  }
9011
9134
  break;
9135
+ }
9136
+ var renderListMaps = {
9137
+ year: [],
9138
+ quarter: [],
9139
+ month: [],
9140
+ week: [],
9141
+ day: [],
9142
+ date: [],
9143
+ hour: [],
9144
+ minute: [],
9145
+ second: []
9146
+ };
9147
+ var tempTypeMaps = {
9148
+ year: {},
9149
+ quarter: {},
9150
+ month: {},
9151
+ week: {},
9152
+ day: {},
9153
+ date: {},
9154
+ hour: {},
9155
+ minute: {},
9156
+ second: {}
9157
+ };
9158
+ var handleData = function handleData(type, colMaps, minCol) {
9159
+ if (minSType === type) {
9160
+ return;
9161
+ }
9162
+ var currCol = colMaps[type];
9163
+ var currKey = "".concat(currCol.field);
9164
+ var currGpCol = tempTypeMaps[type][currKey];
9165
+ if (!currGpCol) {
9166
+ currGpCol = currCol;
9167
+ tempTypeMaps[type][currKey] = currGpCol;
9168
+ renderListMaps[type].push(currGpCol);
9169
+ }
9170
+ if (currGpCol) {
9171
+ if (!currGpCol.children) {
9172
+ currGpCol.children = [];
9173
+ }
9174
+ currGpCol.children.push(minCol);
9175
+ }
9176
+ };
9177
+ for (var i = 0; i < countSize; i++) {
9178
+ var itemDate = new Date(currTime + i * gapTime);
9179
+ 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('-'),
9180
+ _XEUtils$toDateString2 = _slicedToArray(_XEUtils$toDateString, 6),
9181
+ yyyy = _XEUtils$toDateString2[0],
9182
+ MM = _XEUtils$toDateString2[1],
9183
+ dd = _XEUtils$toDateString2[2],
9184
+ HH = _XEUtils$toDateString2[3],
9185
+ mm = _XEUtils$toDateString2[4],
9186
+ ss = _XEUtils$toDateString2[5];
9187
+ var e = itemDate.getDay();
9188
+ var E = e + 1;
9189
+ var q = Math.ceil((itemDate.getMonth() + 1) / 3);
9190
+ var W = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().getYearWeek(itemDate, weekScale ? weekScale.startDay : undefined);
9191
+ var dateObj = {
9192
+ yy: yyyy,
9193
+ M: MM,
9194
+ d: dd,
9195
+ H: HH,
9196
+ m: mm,
9197
+ s: ss,
9198
+ q: q,
9199
+ W: W,
9200
+ E: E,
9201
+ e: e
9202
+ };
9203
+ var colMaps = {
9204
+ year: {
9205
+ field: yyyy,
9206
+ title: yyyy,
9207
+ params: dateObj
9208
+ },
9209
+ quarter: {
9210
+ field: "".concat(yyyy, "_q").concat(q),
9211
+ title: q,
9212
+ params: dateObj
9213
+ },
9214
+ month: {
9215
+ field: "".concat(yyyy, "_").concat(MM),
9216
+ title: MM,
9217
+ params: dateObj
9218
+ },
9219
+ week: {
9220
+ field: "".concat(yyyy, "_W").concat(W),
9221
+ title: W,
9222
+ params: dateObj
9223
+ },
9224
+ day: {
9225
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_E").concat(E),
9226
+ title: E,
9227
+ params: dateObj
9228
+ },
9229
+ date: {
9230
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd),
9231
+ title: dd,
9232
+ params: dateObj
9233
+ },
9234
+ hour: {
9235
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH),
9236
+ title: HH,
9237
+ params: dateObj
9238
+ },
9239
+ minute: {
9240
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm),
9241
+ title: mm,
9242
+ params: dateObj
9243
+ },
9244
+ second: {
9245
+ field: "".concat(yyyy, "_").concat(MM, "_").concat(dd, "_").concat(HH, "_").concat(mm, "_").concat(ss),
9246
+ title: ss,
9247
+ params: dateObj
9248
+ }
9249
+ };
9250
+ var minCol = colMaps[minSType];
9251
+ if (minScale.level < 19) {
9252
+ handleData('year', colMaps, minCol);
9253
+ }
9254
+ if (minScale.level < 17) {
9255
+ handleData('quarter', colMaps, minCol);
9256
+ }
9257
+ if (minScale.level < 14) {
9258
+ handleData('month', colMaps, minCol);
9259
+ }
9260
+ if (minScale.level < 13) {
9261
+ handleData('week', colMaps, minCol);
9262
+ }
9263
+ if (minScale.level < 11) {
9264
+ handleData('day', colMaps, minCol);
9265
+ }
9266
+ if (minScale.level < 12) {
9267
+ handleData('date', colMaps, minCol);
9268
+ }
9269
+ if (minScale.level < 7) {
9270
+ handleData('hour', colMaps, minCol);
9271
+ }
9272
+ if (minScale.level < 5) {
9273
+ handleData('minute', colMaps, minCol);
9274
+ }
9275
+ fullCols.push(minCol);
9276
+ }
9277
+ taskScaleList.forEach(function (scaleItem) {
9278
+ if (scaleItem.type === minSType) {
9279
+ groupCols.push({
9280
+ scaleItem: scaleItem,
9281
+ columns: fullCols
9282
+ });
9283
+ return;
9012
9284
  }
9285
+ var list = renderListMaps[scaleItem.type] || [];
9286
+ if (list) {
9287
+ list.forEach(function (item) {
9288
+ item.childCount = item.children ? item.children.length : 0;
9289
+ item.children = undefined;
9290
+ });
9291
+ }
9292
+ groupCols.push({
9293
+ scaleItem: scaleItem,
9294
+ columns: list
9295
+ });
9296
+ });
9297
+ var $xeTable = internalData.xeTable;
9298
+ if ($xeTable) {
9299
+ var startField = $xeGantt.computeStartField;
9300
+ var endField = $xeGantt.computeEndField;
9301
+ var tableInternalData = $xeTable;
9302
+ var afterFullData = tableInternalData.afterFullData,
9303
+ afterTreeFullData = tableInternalData.afterTreeFullData;
9304
+ var treeOpts = $xeTable.computeTreeOpts;
9305
+ var transform = treeOpts.transform;
9306
+ var childrenField = treeOpts.children || treeOpts.childrenField;
9307
+ var ctMaps = {};
9308
+ var handleParseRender = function handleParseRender(row) {
9309
+ var rowid = $xeTable.getRowid(row);
9310
+ var startValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, startField);
9311
+ var endValue = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(row, endField);
9312
+ if (startValue && endValue) {
9313
+ var startDate = parseStringDate($xeGanttView, startValue);
9314
+ var endDate = parseStringDate($xeGanttView, endValue);
9315
+ var oLeftSize = Math.floor((startDate.getTime() - minViewDate.getTime()) / gapTime);
9316
+ var oWidthSize = Math.floor((endDate.getTime() - startDate.getTime()) / gapTime) + 1;
9317
+ ctMaps[rowid] = {
9318
+ row: row,
9319
+ rowid: rowid,
9320
+ oLeftSize: oLeftSize,
9321
+ oWidthSize: oWidthSize
9322
+ };
9323
+ }
9324
+ };
9325
+ if (treeConfig) {
9326
+ external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eachTree(afterTreeFullData, handleParseRender, {
9327
+ children: transform ? treeOpts.mapChildrenField : childrenField
9328
+ });
9329
+ } else {
9330
+ afterFullData.forEach(handleParseRender);
9331
+ }
9332
+ internalData.chartMaps = ctMaps;
9333
+ }
9013
9334
  }
9014
9335
  reactData.tableColumn = fullCols;
9015
9336
  reactData.headerGroups = groupCols;
@@ -9417,14 +9738,7 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9417
9738
  tableData: [],
9418
9739
  tableColumn: [],
9419
9740
  headerGroups: [],
9420
- viewCellWidth: 40,
9421
- rowHeightStore: {
9422
- large: 52,
9423
- default: 48,
9424
- medium: 44,
9425
- small: 40,
9426
- mini: 36
9427
- }
9741
+ viewCellWidth: 20
9428
9742
  };
9429
9743
  var internalData = createInternalData();
9430
9744
  return {
@@ -9739,11 +10053,10 @@ function syncTableScrollTop($xeGanttView, scrollTop) {
9739
10053
  overflowY = reactData.overflowY,
9740
10054
  scrollXLoad = reactData.scrollXLoad,
9741
10055
  scrollYLoad = reactData.scrollYLoad;
9742
- var taskViewOpts = $xeGantt.computeTaskViewOpts;
9743
10056
  var scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
9744
10057
  return h('div', {
9745
10058
  ref: 'refElem',
9746
- class: ['vxe-gantt-view', "mode--".concat(taskViewOpts.mode || 'day'), {
10059
+ class: ['vxe-gantt-view', {
9747
10060
  'is--scroll-y': overflowY,
9748
10061
  'is--scroll-x': overflowX,
9749
10062
  'is--virtual-x': scrollXLoad,
@@ -9801,13 +10114,16 @@ var external_root_VxeUITable_commonjs_vxe_table_commonjs2_vxe_table_amd_vxe_tabl
9801
10114
 
9802
10115
 
9803
10116
 
10117
+
10118
+
10119
+
9804
10120
 
9805
10121
 
9806
10122
 
9807
10123
 
9808
10124
  var gantt_getConfig = core_.VxeUI.getConfig,
9809
10125
  getIcon = core_.VxeUI.getIcon,
9810
- getI18n = core_.VxeUI.getI18n,
10126
+ gantt_getI18n = core_.VxeUI.getI18n,
9811
10127
  commands = core_.VxeUI.commands,
9812
10128
  globalMixins = core_.VxeUI.globalMixins,
9813
10129
  createEvent = core_.VxeUI.createEvent,
@@ -9818,6 +10134,20 @@ var tableProps = external_root_VxeUITable_commonjs_vxe_table_commonjs2_vxe_table
9818
10134
  var tableMethods = {};
9819
10135
  var propKeys = Object.keys(tableProps);
9820
10136
  var defaultLayouts = [['Form'], ['Toolbar', 'Top', 'Gantt', 'Bottom', 'Pager']];
10137
+ var viewTypeLevelMaps = {
10138
+ year: 19,
10139
+ quarter: 17,
10140
+ month: 15,
10141
+ week: 13,
10142
+ day: 11,
10143
+ date: 9,
10144
+ hour: 7,
10145
+ minute: 5,
10146
+ second: 3
10147
+ };
10148
+ function getViewTypeLevel(type) {
10149
+ return viewTypeLevelMaps[type || 'date'] || viewTypeLevelMaps.date;
10150
+ }
9821
10151
  function getTableOns($xeGantt) {
9822
10152
  var _vm = $xeGantt;
9823
10153
  var $listeners = _vm.$listeners;
@@ -9869,6 +10199,7 @@ function gantt_createInternalData() {
9869
10199
  zoomConfig: Object,
9870
10200
  layouts: Array,
9871
10201
  taskConfig: Object,
10202
+ taskViewScaleConfs: Object,
9872
10203
  taskViewConfig: Object,
9873
10204
  taskBarConfig: Object,
9874
10205
  taskSplitConfig: Object,
@@ -9905,7 +10236,8 @@ function gantt_createInternalData() {
9905
10236
  currentPage: 1
9906
10237
  },
9907
10238
  showLeftView: true,
9908
- showRightView: true
10239
+ showRightView: true,
10240
+ taskScaleList: []
9909
10241
  };
9910
10242
  var internalData = gantt_createInternalData();
9911
10243
  return {
@@ -9955,6 +10287,11 @@ function gantt_createInternalData() {
9955
10287
  var props = $xeGantt;
9956
10288
  return Object.assign({}, gantt_getConfig().gantt.taskConfig, props.taskConfig);
9957
10289
  },
10290
+ computeTaskViewScaleMapsOpts: function computeTaskViewScaleMapsOpts() {
10291
+ var $xeGantt = this;
10292
+ var props = $xeGantt;
10293
+ return external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().merge({}, gantt_getConfig().gantt.taskViewScaleConfs, props.taskViewScaleConfs);
10294
+ },
9958
10295
  computeTaskViewOpts: function computeTaskViewOpts() {
9959
10296
  var $xeGantt = this;
9960
10297
  var props = $xeGantt;
@@ -9970,6 +10307,12 @@ function gantt_createInternalData() {
9970
10307
  var props = $xeGantt;
9971
10308
  return Object.assign({}, gantt_getConfig().gantt.taskSplitConfig, props.taskSplitConfig);
9972
10309
  },
10310
+ computeTaskScaleConfs: function computeTaskScaleConfs() {
10311
+ var $xeGantt = this;
10312
+ var taskViewOpts = $xeGantt.computeTaskViewOpts;
10313
+ var scales = taskViewOpts.scales;
10314
+ return scales;
10315
+ },
9973
10316
  computeTitleField: function computeTitleField() {
9974
10317
  var $xeGantt = this;
9975
10318
  var taskOpts = $xeGantt.computeTaskOpts;
@@ -10215,6 +10558,10 @@ function gantt_createInternalData() {
10215
10558
  proxyConfig: function proxyConfig() {
10216
10559
  var $xeGantt = this;
10217
10560
  $xeGantt.initProxy();
10561
+ },
10562
+ computeTaskScaleConfs: function computeTaskScaleConfs() {
10563
+ var $xeGantt = this;
10564
+ $xeGantt.handleTaskScaleConfig();
10218
10565
  }
10219
10566
  },
10220
10567
  methods: _objectSpread2(_objectSpread2({}, tableMethods), {}, {
@@ -10225,6 +10572,47 @@ function gantt_createInternalData() {
10225
10572
  $gantt: $xeGantt
10226
10573
  }, params));
10227
10574
  },
10575
+ handleTaskScaleConfig: function handleTaskScaleConfig() {
10576
+ var $xeGantt = this;
10577
+ var reactData = $xeGantt.reactData;
10578
+ var taskScaleConfs = $xeGantt.computeTaskScaleConfs;
10579
+ var taskViewScaleMapsOpts = $xeGantt.computeTaskViewScaleMapsOpts;
10580
+ var scaleConfs = [];
10581
+ if (taskScaleConfs) {
10582
+ var keyMaps = {};
10583
+ taskScaleConfs.forEach(function (conf) {
10584
+ var sConf = !conf || external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isString(conf) ? {
10585
+ type: conf
10586
+ } : conf;
10587
+ var type = sConf.type;
10588
+ if (!type || !viewTypeLevelMaps[type]) {
10589
+ errLog('vxe.error.errProp', ["type=".concat(type), external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().keys(viewTypeLevelMaps).join(',')]);
10590
+ return;
10591
+ }
10592
+ if (keyMaps[type]) {
10593
+ errLog('vxe.error.repeatProp', ['type', type]);
10594
+ return;
10595
+ }
10596
+ keyMaps[type] = true;
10597
+ scaleConfs.push(Object.assign({}, type ? taskViewScaleMapsOpts[type] || {} : {}, sConf, {
10598
+ level: getViewTypeLevel(type)
10599
+ }));
10600
+ });
10601
+ }
10602
+ if (!scaleConfs.length) {
10603
+ scaleConfs.push({
10604
+ type: 'month',
10605
+ level: viewTypeLevelMaps.month
10606
+ }, {
10607
+ type: 'day',
10608
+ level: viewTypeLevelMaps.day
10609
+ });
10610
+ }
10611
+ reactData.taskScaleList = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().orderBy(scaleConfs, {
10612
+ field: 'level',
10613
+ order: 'desc'
10614
+ });
10615
+ },
10228
10616
  initToolbar: function initToolbar() {
10229
10617
  var $xeGantt = this;
10230
10618
  $xeGantt.$nextTick(function () {
@@ -10284,7 +10672,7 @@ function gantt_createInternalData() {
10284
10672
  if (core_.VxeUI.modal) {
10285
10673
  core_.VxeUI.modal.message({
10286
10674
  id: code,
10287
- content: getI18n('vxe.grid.selectOneRecord'),
10675
+ content: gantt_getI18n('vxe.grid.selectOneRecord'),
10288
10676
  status: 'warning'
10289
10677
  });
10290
10678
  }
@@ -10306,7 +10694,7 @@ function gantt_createInternalData() {
10306
10694
  $gantt: $xeGantt
10307
10695
  }) : external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().get(rest, messageProp);
10308
10696
  }
10309
- return msg || getI18n(defaultMsg);
10697
+ return msg || gantt_getI18n(defaultMsg);
10310
10698
  },
10311
10699
  handleDeleteRow: function handleDeleteRow(code, alertKey, callback) {
10312
10700
  var $xeGantt = this;
@@ -10317,7 +10705,7 @@ function gantt_createInternalData() {
10317
10705
  if (core_.VxeUI.modal) {
10318
10706
  return core_.VxeUI.modal.confirm({
10319
10707
  id: "cfm_".concat(code),
10320
- content: getI18n(alertKey),
10708
+ content: gantt_getI18n(alertKey),
10321
10709
  escClosable: true
10322
10710
  }).then(function (type) {
10323
10711
  if (type === 'confirm') {
@@ -10329,7 +10717,7 @@ function gantt_createInternalData() {
10329
10717
  if (core_.VxeUI.modal) {
10330
10718
  core_.VxeUI.modal.message({
10331
10719
  id: "msg_".concat(code),
10332
- content: getI18n('vxe.grid.selectOneRecord'),
10720
+ content: gantt_getI18n('vxe.grid.selectOneRecord'),
10333
10721
  status: 'warning'
10334
10722
  });
10335
10723
  }
@@ -10972,7 +11360,7 @@ function gantt_createInternalData() {
10972
11360
  }
10973
11361
  core_.VxeUI.modal.message({
10974
11362
  id: code,
10975
- content: getI18n('vxe.grid.selectOneRecord'),
11363
+ content: gantt_getI18n('vxe.grid.selectOneRecord'),
10976
11364
  status: 'warning'
10977
11365
  });
10978
11366
  }
@@ -11084,7 +11472,7 @@ function gantt_createInternalData() {
11084
11472
  }
11085
11473
  core_.VxeUI.modal.message({
11086
11474
  id: code,
11087
- content: getI18n('vxe.grid.dataUnchanged'),
11475
+ content: gantt_getI18n('vxe.grid.dataUnchanged'),
11088
11476
  status: 'info'
11089
11477
  });
11090
11478
  }
@@ -11922,6 +12310,7 @@ function gantt_createInternalData() {
11922
12310
  }
11923
12311
  }
11924
12312
  });
12313
+ $xeGantt.handleTaskScaleConfig();
11925
12314
  $xeGantt.initPages();
11926
12315
  },
11927
12316
  mounted: function mounted() {