vxe-gantt 4.1.1 → 4.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ export default defineVxeComponent({
11
11
  setup() {
12
12
  const $xeGantt = inject('$xeGantt', {});
13
13
  const $xeGanttView = inject('$xeGanttView', {});
14
- const { computeTaskViewOpts } = $xeGantt.getComputeMaps();
14
+ const { computeTaskViewOpts, computeScaleUnit } = $xeGantt.getComputeMaps();
15
15
  const { reactData, internalData } = $xeGanttView;
16
16
  const refElem = ref();
17
17
  const refBodyScroll = ref();
@@ -33,6 +33,7 @@ export default defineVxeComponent({
33
33
  const { todayDateMaps } = internalData;
34
34
  const taskViewOpts = computeTaskViewOpts.value;
35
35
  const { showNowLine, viewStyle } = taskViewOpts;
36
+ const scaleUnit = computeScaleUnit.value;
36
37
  const { scaleItem } = headerGroups[headerGroups.length - 1] || {};
37
38
  const { field, dateObj } = column;
38
39
  const { cellClassName, cellStyle } = viewStyle || {};
@@ -74,7 +75,18 @@ export default defineVxeComponent({
74
75
  onDblclick: (evnt) => $xeTable.handleRowResizeDblclickEvent(evnt, cellParams)
75
76
  }));
76
77
  }
77
- const ctParams = { source: sourceType, type: viewType, dateObj, row, column, $rowIndex, rowIndex, _rowIndex };
78
+ const ctParams = {
79
+ $gantt: $xeGantt,
80
+ source: sourceType,
81
+ type: viewType,
82
+ scaleType: scaleUnit,
83
+ dateObj,
84
+ row,
85
+ column,
86
+ $rowIndex,
87
+ rowIndex,
88
+ _rowIndex
89
+ };
78
90
  return h('td', {
79
91
  key: $columnIndex,
80
92
  class: [
@@ -117,6 +129,7 @@ export default defineVxeComponent({
117
129
  const treeOpts = computeTreeOpts.value;
118
130
  const { transform } = treeOpts;
119
131
  const childrenField = treeOpts.children || treeOpts.childrenField;
132
+ const scaleUnit = computeScaleUnit.value;
120
133
  const taskViewOpts = computeTaskViewOpts.value;
121
134
  const { viewStyle } = taskViewOpts;
122
135
  const { rowClassName, rowStyle } = viewStyle || {};
@@ -152,7 +165,16 @@ export default defineVxeComponent({
152
165
  trOns.onDragend = $xeTable.handleRowDragDragendEvent;
153
166
  trOns.onDragover = $xeTable.handleRowDragDragoverEvent;
154
167
  }
155
- const rowParams = { source: sourceType, type: viewType, row, rowIndex, $rowIndex, _rowIndex };
168
+ const rowParams = {
169
+ $gantt: $xeGantt,
170
+ source: sourceType,
171
+ type: viewType,
172
+ scaleType: scaleUnit,
173
+ row,
174
+ rowIndex,
175
+ $rowIndex,
176
+ _rowIndex
177
+ };
156
178
  trVNs.push(h('tr', Object.assign({ key: treeConfig ? rowid : $rowIndex, class: [
157
179
  'vxe-gantt-view--body-row',
158
180
  {
@@ -13,7 +13,7 @@ export default defineVxeComponent({
13
13
  const $xeGantt = inject('$xeGantt', {});
14
14
  const $xeGanttView = inject('$xeGanttView', {});
15
15
  const { reactData, internalData } = $xeGanttView;
16
- const { computeProgressField, computeTitleField, computeTaskBarOpts } = $xeGantt.getComputeMaps();
16
+ const { computeProgressField, computeTitleField, computeTaskBarOpts, computeScaleUnit } = $xeGantt.getComputeMaps();
17
17
  const refElem = ref();
18
18
  const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) => {
19
19
  const tableProps = $xeTable.props;
@@ -31,7 +31,8 @@ export default defineVxeComponent({
31
31
  const titleField = computeTitleField.value;
32
32
  const progressField = computeProgressField.value;
33
33
  const taskBarOpts = computeTaskBarOpts.value;
34
- const barParams = { $gantt: $xeGantt, row };
34
+ const scaleUnit = computeScaleUnit.value;
35
+ const barParams = { $gantt: $xeGantt, row, scaleType: scaleUnit };
35
36
  const { showProgress, showContent, contentMethod, barStyle, drag, showTooltip } = taskBarOpts;
36
37
  const isBarRowStyle = XEUtils.isFunction(barStyle);
37
38
  const barStyObj = (barStyle ? (isBarRowStyle ? barStyle(barParams) : barStyle) : {}) || {};
@@ -56,9 +57,18 @@ export default defineVxeComponent({
56
57
  }
57
58
  }
58
59
  if (contentMethod) {
59
- title = getStringValue(contentMethod({ row, title }));
60
+ title = getStringValue(contentMethod({ row, title, scaleType: scaleUnit }));
60
61
  }
61
- const ctParams = { source: sourceType, type: viewType, row, $rowIndex, rowIndex, _rowIndex, $gantt: $xeGantt };
62
+ const ctParams = {
63
+ $gantt: $xeGantt,
64
+ source: sourceType,
65
+ type: viewType,
66
+ scaleType: scaleUnit,
67
+ row,
68
+ $rowIndex,
69
+ rowIndex,
70
+ _rowIndex
71
+ };
62
72
  const ons = {
63
73
  onClick(evnt) {
64
74
  $xeGantt.handleTaskBarClickEvent(evnt, barParams);
@@ -379,6 +379,7 @@ export default defineVxeComponent({
379
379
  refForm,
380
380
  refToolbar,
381
381
  refPager,
382
+ refGanttView,
382
383
  refGanttContainerElem,
383
384
  refClassifyWrapperElem,
384
385
  refPopupContainerElem
@@ -423,28 +424,24 @@ export default defineVxeComponent({
423
424
  const taskScaleConfs = computeTaskViewScales.value;
424
425
  const taskViewScaleOpts = computeTaskViewScaleOpts.value;
425
426
  const scaleConfs = [];
426
- if (taskScaleConfs) {
427
- const keyMaps = {};
428
- taskScaleConfs.forEach(conf => {
429
- const sConf = !conf || XEUtils.isString(conf) ? { type: conf } : conf;
430
- const { type } = sConf;
431
- if (!type || !viewTypeLevelMaps[type]) {
432
- errLog('vxe.error.errProp', [`type=${type}`, XEUtils.keys(viewTypeLevelMaps).join(',')]);
433
- return;
434
- }
435
- if (keyMaps[type]) {
436
- errLog('vxe.error.repeatProp', ['type', type]);
437
- return;
438
- }
439
- keyMaps[type] = true;
440
- scaleConfs.push(Object.assign({}, type ? taskViewScaleOpts[type] || {} : {}, sConf, {
441
- level: getViewTypeLevel(type)
442
- }));
443
- });
444
- }
445
- if (!scaleConfs.length) {
446
- scaleConfs.push({ type: 'month', level: viewTypeLevelMaps.month }, { type: 'date', level: viewTypeLevelMaps.date });
447
- }
427
+ const keyMaps = {};
428
+ const scaleList = (taskScaleConfs && taskScaleConfs.length ? taskScaleConfs : ['month', 'date']);
429
+ scaleList.forEach(conf => {
430
+ const sConf = !conf || XEUtils.isString(conf) ? { type: conf } : conf;
431
+ const { type } = sConf;
432
+ if (!type || !viewTypeLevelMaps[type]) {
433
+ errLog('vxe.error.errProp', [`type=${type}`, XEUtils.keys(viewTypeLevelMaps).join(',')]);
434
+ return;
435
+ }
436
+ if (keyMaps[type]) {
437
+ errLog('vxe.error.repeatProp', ['type', type]);
438
+ return;
439
+ }
440
+ keyMaps[type] = true;
441
+ scaleConfs.push(Object.assign({}, type ? taskViewScaleOpts[type] || {} : {}, sConf, {
442
+ level: getViewTypeLevel(type)
443
+ }));
444
+ });
448
445
  reactData.taskScaleList = XEUtils.orderBy(scaleConfs, { field: 'level', order: 'desc' });
449
446
  };
450
447
  const initToolbar = () => {
@@ -1645,7 +1642,10 @@ export default defineVxeComponent({
1645
1642
  const { row } = params;
1646
1643
  let content = formatText(XEUtils.get(row, titleField));
1647
1644
  if (contentMethod) {
1648
- content = formatText(contentMethod(params));
1645
+ const customContnet = contentMethod(params);
1646
+ if (!XEUtils.eqNull(customContnet)) {
1647
+ content = `${customContnet}`;
1648
+ }
1649
1649
  }
1650
1650
  handleTargetEnterEvent(barTipStore.row !== row);
1651
1651
  const tipContent = formatText(content);
package/es/ui/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { errLog } from './src/log';
3
3
  const { setConfig, setIcon, checkVersion } = VxeUI;
4
- VxeUI.ganttVersion = "4.1.1";
4
+ VxeUI.ganttVersion = "4.1.3";
5
+ const ymdFormat = 'yyyy-MM-dd';
6
+ const ymdhmsFormat = 'yyyy-MM-dd HH:mm:ss';
5
7
  setConfig({
6
8
  gantt: {
7
9
  // size: null,
@@ -44,8 +46,33 @@ setConfig({
44
46
  enterable: true
45
47
  },
46
48
  taskViewScaleConfig: {
49
+ year: {
50
+ valueFormat: ymdFormat
51
+ },
52
+ quarter: {
53
+ valueFormat: ymdFormat
54
+ },
55
+ month: {
56
+ valueFormat: ymdFormat
57
+ },
47
58
  week: {
48
- startDay: 1
59
+ startDay: 1,
60
+ valueFormat: ymdFormat
61
+ },
62
+ day: {
63
+ valueFormat: ymdFormat
64
+ },
65
+ date: {
66
+ valueFormat: ymdFormat
67
+ },
68
+ hour: {
69
+ valueFormat: ymdhmsFormat
70
+ },
71
+ minute: {
72
+ valueFormat: ymdhmsFormat
73
+ },
74
+ second: {
75
+ valueFormat: ymdhmsFormat
49
76
  }
50
77
  },
51
78
  taskViewConfig: {
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `gantt v${"4.1.1"}`;
3
+ const version = `gantt v${"4.1.3"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -19,7 +19,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
19
19
  const $xeGantt = (0, _vue.inject)('$xeGantt', {});
20
20
  const $xeGanttView = (0, _vue.inject)('$xeGanttView', {});
21
21
  const {
22
- computeTaskViewOpts
22
+ computeTaskViewOpts,
23
+ computeScaleUnit
23
24
  } = $xeGantt.getComputeMaps();
24
25
  const {
25
26
  reactData,
@@ -64,6 +65,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
64
65
  showNowLine,
65
66
  viewStyle
66
67
  } = taskViewOpts;
68
+ const scaleUnit = computeScaleUnit.value;
67
69
  const {
68
70
  scaleItem
69
71
  } = headerGroups[headerGroups.length - 1] || {};
@@ -114,8 +116,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
114
116
  }));
115
117
  }
116
118
  const ctParams = {
119
+ $gantt: $xeGantt,
117
120
  source: sourceType,
118
121
  type: viewType,
122
+ scaleType: scaleUnit,
119
123
  dateObj,
120
124
  row,
121
125
  column,
@@ -186,6 +190,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
186
190
  transform
187
191
  } = treeOpts;
188
192
  const childrenField = treeOpts.children || treeOpts.childrenField;
193
+ const scaleUnit = computeScaleUnit.value;
189
194
  const taskViewOpts = computeTaskViewOpts.value;
190
195
  const {
191
196
  viewStyle
@@ -233,8 +238,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
233
238
  trOns.onDragover = $xeTable.handleRowDragDragoverEvent;
234
239
  }
235
240
  const rowParams = {
241
+ $gantt: $xeGantt,
236
242
  source: sourceType,
237
243
  type: viewType,
244
+ scaleType: scaleUnit,
238
245
  row,
239
246
  rowIndex,
240
247
  $rowIndex,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let sourceType="gantt",viewType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let D=(0,_vue.inject)("$xeGantt",{}),o=(0,_vue.inject)("$xeGanttView",{}),S=D.getComputeMaps().computeTaskViewOpts,{reactData:q,internalData:R}=o,r=(0,_vue.ref)(),n=(0,_vue.ref)(),i=(0,_vue.ref)(),u=(0,_vue.ref)(),s=(0,_vue.ref)(),$=(l,a,e,o,r,n,t,i)=>{var u=l.reactData.resizeHeightFlag,{fullAllDataRowIdData:s,visibleColumn:d}=l.internalData,{computeCellOpts:v,computeRowOpts:c,computeDefaultRowHeight:p,computeResizableOpts:w}=l.getComputeMaps(),v=v.value,c=c.value,p=p.value,w=w.value.isAllRowDrag,g=q.headerGroups,h=R.todayDateMaps,{showNowLine:x,viewStyle:_}=S.value,g=(g[g.length-1]||{}).scaleItem,{field:y,dateObj:m}=t,{cellClassName:_,cellStyle:b}=_||{},h=x&&g?h[g.type]:null,g=s[e]||{},s=0<(u?g.resizeHeight:0),u=(0,_util.getCellRestHeight)(g,v,c,p),g=[];if(w&&c.resizable){let t={$table:l,$grid:null,$gantt:D,seq:-1,rowid:e,row:a,rowIndex:o,$rowIndex:r,_rowIndex:n,column:d[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]};g.push((0,_vue.h)("div",{class:"vxe-gantt-view-cell--row-resizable",onMousedown:e=>l.handleRowResizeMousedownEvent(e,t),onDblclick:e=>l.handleRowResizeDblclickEvent(e,t)}))}let f={source:sourceType,type:viewType,dateObj:m,row:a,column:t,$rowIndex:r,rowIndex:o,_rowIndex:n};return(0,_vue.h)("td",{key:i,class:["vxe-gantt-view--body-column",{"is--now":x&&h===y,"col--rs-height":s},(0,_utils.getClass)(_,f)],style:b?Object.assign({},_xeUtils.default.isFunction(b)?b(f):b,{height:u+"px"}):{height:u+"px"},onClick(e){D.handleTaskCellClickEvent(e,{row:a,column:t})},onDblclick(e){D.handleTaskCellDblclickEvent(e,{row:a,column:t})},onContextmenu(e){D.handleTaskBodyContextmenuEvent(e,f)}},g)},H=(d,e)=>{let{treeConfig:v,stripe:c,highlightHoverRow:p,editConfig:w}=d.props,{treeExpandedFlag:g,selectRadioRow:h,pendingRowFlag:x,isRowGroupStatus:_}=d.reactData,{fullAllDataRowIdData:y,treeExpandedMaps:m,pendingRowMaps:b}=d.internalData;var{computeRadioOpts:t,computeCheckboxOpts:l,computeTreeOpts:a,computeRowOpts:o}=d.getComputeMaps();let f=t.value,D=l.value,R=o.value;t=a.value;let C=t.transform,I=t.children||t.childrenField;l=S.value.viewStyle;let{rowClassName:k,rowStyle:T}=l||{},{tableColumn:E,scrollYLoad:M}=q,O=[];return e.forEach((l,a)=>{let o=d.getRowid(l);var e=y[o]||{},t={};let r=a,n=-1,i=(e&&(r=e.index,n=e._index),!1);w&&(i=d.isInsertByRow(l)),(R.isHover||p)&&(t.onMouseenter=e=>{d.triggerHoverEvent(e,{row:l,rowIndex:r})},t.onMouseleave=()=>{d.clearHoverRow()}),!R.drag||_||v&&!C||(t.onDragstart=d.handleRowDragDragstartEvent,t.onDragend=d.handleRowDragDragendEvent,t.onDragover=d.handleRowDragDragoverEvent);e={source:sourceType,type:viewType,row:l,rowIndex:r,$rowIndex:a,_rowIndex:n};O.push((0,_vue.h)("tr",Object.assign({key:v?o:a,class:["vxe-gantt-view--body-row",{"row--stripe":c&&(n+1)%2==0,"is--new":i,"row--radio":f.highlight&&d.eqRow(h,l),"row--checked":D.highlight&&d.isCheckedByCheckboxRow(l),"row--pending":!!x&&!!b[o]},(0,_utils.getClass)(k,e)],rowid:o,style:T?_xeUtils.default.isFunction(T)?T(e):T:void 0},t),E.map((e,t)=>$(d,l,o,r,a,n,e,t))));let u=!1,s=[];!v||M||C||(s=l[I],u=!!g&&s&&0<s.length&&!!m[o]),u&&O.push(...H(d,s))}),O};return(0,_vue.onMounted)(()=>{var e=R.elemStore,t="main-body-";e[t+"wrapper"]=r,e[t+"scroll"]=n,e[t+"table"]=i,e[t+"xSpace"]=u,e[t+"ySpace"]=s}),(0,_vue.onUnmounted)(()=>{var e=R.elemStore,t="main-body-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null,e[t+"ySpace"]=null}),()=>{var e=o.internalData.xeTable;let{tableData:t,tableColumn:l,viewCellWidth:a}=q;return(0,_vue.h)("div",{ref:r,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--body-inner-wrapper",onScroll:o.triggerBodyScrollEvent,onContextmenu(e){D.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}},[(0,_vue.h)("div",{ref:u,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:s,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:i,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},l.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:a+"px"}}))),(0,_vue.h)("tbody",{},e?H(e,t):[])]),(0,_vue.h)(_ganttChart.default)])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let sourceType="gantt",viewType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let $=(0,_vue.inject)("$xeGantt",{}),o=(0,_vue.inject)("$xeGanttView",{}),{computeTaskViewOpts:q,computeScaleUnit:H}=$.getComputeMaps(),{reactData:j,internalData:R}=o,r=(0,_vue.ref)(),n=(0,_vue.ref)(),i=(0,_vue.ref)(),u=(0,_vue.ref)(),s=(0,_vue.ref)(),z=(l,a,e,o,r,n,t,i)=>{var u=l.reactData.resizeHeightFlag,{fullAllDataRowIdData:s,visibleColumn:d}=l.internalData,{computeCellOpts:v,computeRowOpts:c,computeDefaultRowHeight:p,computeResizableOpts:w}=l.getComputeMaps(),v=v.value,c=c.value,p=p.value,w=w.value.isAllRowDrag,g=j.headerGroups,h=R.todayDateMaps,{showNowLine:x,viewStyle:y}=q.value,_=H.value,g=(g[g.length-1]||{}).scaleItem,{field:m,dateObj:b}=t,{cellClassName:y,cellStyle:f}=y||{},h=x&&g?h[g.type]:null,g=s[e]||{},s=0<(u?g.resizeHeight:0),u=(0,_util.getCellRestHeight)(g,v,c,p),g=[];if(w&&c.resizable){let t={$table:l,$grid:null,$gantt:$,seq:-1,rowid:e,row:a,rowIndex:o,$rowIndex:r,_rowIndex:n,column:d[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]};g.push((0,_vue.h)("div",{class:"vxe-gantt-view-cell--row-resizable",onMousedown:e=>l.handleRowResizeMousedownEvent(e,t),onDblclick:e=>l.handleRowResizeDblclickEvent(e,t)}))}let D={$gantt:$,source:sourceType,type:viewType,scaleType:_,dateObj:b,row:a,column:t,$rowIndex:r,rowIndex:o,_rowIndex:n};return(0,_vue.h)("td",{key:i,class:["vxe-gantt-view--body-column",{"is--now":x&&h===m,"col--rs-height":s},(0,_utils.getClass)(y,D)],style:f?Object.assign({},_xeUtils.default.isFunction(f)?f(D):f,{height:u+"px"}):{height:u+"px"},onClick(e){$.handleTaskCellClickEvent(e,{row:a,column:t})},onDblclick(e){$.handleTaskCellDblclickEvent(e,{row:a,column:t})},onContextmenu(e){$.handleTaskBodyContextmenuEvent(e,D)}},g)},B=(d,e)=>{let{treeConfig:v,stripe:c,highlightHoverRow:p,editConfig:w}=d.props,{treeExpandedFlag:g,selectRadioRow:h,pendingRowFlag:x,isRowGroupStatus:y}=d.reactData,{fullAllDataRowIdData:_,treeExpandedMaps:m,pendingRowMaps:b}=d.internalData;var{computeRadioOpts:t,computeCheckboxOpts:l,computeTreeOpts:a,computeRowOpts:o}=d.getComputeMaps();let f=t.value,D=l.value,R=o.value;t=a.value;let C=t.transform,I=t.children||t.childrenField,T=H.value;l=q.value.viewStyle;let{rowClassName:k,rowStyle:E}=l||{},{tableColumn:S,scrollYLoad:M}=j,O=[];return e.forEach((l,a)=>{let o=d.getRowid(l);var e=_[o]||{},t={};let r=a,n=-1,i=(e&&(r=e.index,n=e._index),!1);w&&(i=d.isInsertByRow(l)),(R.isHover||p)&&(t.onMouseenter=e=>{d.triggerHoverEvent(e,{row:l,rowIndex:r})},t.onMouseleave=()=>{d.clearHoverRow()}),!R.drag||y||v&&!C||(t.onDragstart=d.handleRowDragDragstartEvent,t.onDragend=d.handleRowDragDragendEvent,t.onDragover=d.handleRowDragDragoverEvent);e={$gantt:$,source:sourceType,type:viewType,scaleType:T,row:l,rowIndex:r,$rowIndex:a,_rowIndex:n};O.push((0,_vue.h)("tr",Object.assign({key:v?o:a,class:["vxe-gantt-view--body-row",{"row--stripe":c&&(n+1)%2==0,"is--new":i,"row--radio":f.highlight&&d.eqRow(h,l),"row--checked":D.highlight&&d.isCheckedByCheckboxRow(l),"row--pending":!!x&&!!b[o]},(0,_utils.getClass)(k,e)],rowid:o,style:E?_xeUtils.default.isFunction(E)?E(e):E:void 0},t),S.map((e,t)=>z(d,l,o,r,a,n,e,t))));let u=!1,s=[];!v||M||C||(s=l[I],u=!!g&&s&&0<s.length&&!!m[o]),u&&O.push(...B(d,s))}),O};return(0,_vue.onMounted)(()=>{var e=R.elemStore,t="main-body-";e[t+"wrapper"]=r,e[t+"scroll"]=n,e[t+"table"]=i,e[t+"xSpace"]=u,e[t+"ySpace"]=s}),(0,_vue.onUnmounted)(()=>{var e=R.elemStore,t="main-body-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null,e[t+"ySpace"]=null}),()=>{var e=o.internalData.xeTable;let{tableData:t,tableColumn:l,viewCellWidth:a}=j;return(0,_vue.h)("div",{ref:r,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--body-inner-wrapper",onScroll:o.triggerBodyScrollEvent,onContextmenu(e){$.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}},[(0,_vue.h)("div",{ref:u,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:s,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:i,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},l.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:a+"px"}}))),(0,_vue.h)("tbody",{},e?B(e,t):[])]),(0,_vue.h)(_ganttChart.default)])])}}});
@@ -28,7 +28,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
28
28
  const {
29
29
  computeProgressField,
30
30
  computeTitleField,
31
- computeTaskBarOpts
31
+ computeTaskBarOpts,
32
+ computeScaleUnit
32
33
  } = $xeGantt.getComputeMaps();
33
34
  const refElem = (0, _vue.ref)();
34
35
  const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) => {
@@ -57,9 +58,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
57
58
  const titleField = computeTitleField.value;
58
59
  const progressField = computeProgressField.value;
59
60
  const taskBarOpts = computeTaskBarOpts.value;
61
+ const scaleUnit = computeScaleUnit.value;
60
62
  const barParams = {
61
63
  $gantt: $xeGantt,
62
- row
64
+ row,
65
+ scaleType: scaleUnit
63
66
  };
64
67
  const {
65
68
  showProgress,
@@ -99,17 +102,19 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
99
102
  if (contentMethod) {
100
103
  title = (0, _utils.getStringValue)(contentMethod({
101
104
  row,
102
- title
105
+ title,
106
+ scaleType: scaleUnit
103
107
  }));
104
108
  }
105
109
  const ctParams = {
110
+ $gantt: $xeGantt,
106
111
  source: sourceType,
107
112
  type: viewType,
113
+ scaleType: scaleUnit,
108
114
  row,
109
115
  $rowIndex,
110
116
  rowIndex,
111
- _rowIndex,
112
- $gantt: $xeGantt
117
+ _rowIndex
113
118
  };
114
119
  const ons = {
115
120
  onClick(evnt) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let T=(0,_vue.inject)("$xeGantt",{}),a=(0,_vue.inject)("$xeGanttView",{}),{reactData:r,internalData:t}=a,{computeProgressField:D,computeTitleField:y,computeTaskBarOpts:M}=T.getComputeMaps(),l=(0,_vue.ref)(),w=(e,t,a,r,l,n)=>{var o=e.props.treeConfig,u=e.reactData.resizeHeightFlag,i=e.internalData.fullAllDataRowIdData,{computeCellOpts:e,computeRowOpts:s,computeDefaultRowHeight:v}=e.getComputeMaps(),e=e.value,s=s.value,v=v.value,c=T.context.slots,c=c.taskBar||c["task-bar"],d=y.value,p=D.value,g=M.value;let h={$gantt:T,row:t};var{showProgress:g,showContent:m,contentMethod:w,barStyle:x,drag:_,showTooltip:f}=g,E=_xeUtils.default.isFunction(x),x=(x?E?x(h):x:{})||{},k=x.round,i=i[a]||{},u=0<(u?i.resizeHeight:0),i=(0,_util.getCellRestHeight)(i,e,s,v);let b=(0,_utils.getStringValue)(_xeUtils.default.get(t,d));e={},s={width:`${(g?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,p)))):0)||0}%`};E&&({bgColor:v,completedBgColor:d}=x,v&&(e.backgroundColor=v),d)&&(s.backgroundColor=d),w&&(b=(0,_utils.getStringValue)(w({row:t,title:b})));let C={source:sourceType,type:viewType,row:t,$rowIndex:l,rowIndex:r,_rowIndex:n,$gantt:T};p={onClick(e){T.handleTaskBarClickEvent(e,h)},onDblclick(e){T.handleTaskBarDblclickEvent(e,h)},onMousedown(e){T.handleTaskBarMousedownEvent&&T.handleTaskBarMousedownEvent(e,h)}};return f&&(p.onMouseover=e=>{var t=Object.assign({$event:e},C);T.triggerTaskBarTooltipEvent(e,t),T.dispatchEvent("task-bar-mouseenter",t,e)},p.onMouseleave=e=>{var t=Object.assign({$event:e},C);T.handleTaskBarTooltipLeaveEvent(e,t),T.dispatchEvent("task-bar-mouseleave",t,e)}),(0,_vue.h)("div",{key:o?a:l,rowid:a,class:["vxe-gantt-view--chart-row",{"is--round":k,"is--drag":_,"col--rs-height":u}],style:{height:i+"px"},onContextmenu(e){T.handleTaskBarContextmenuEvent(e,C)}},[(0,_vue.h)("div",Object.assign({class:c?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:e,rowid:a},p),c?T.callSlot(c,h):[g?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(T),m?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},b):renderEmptyElement(T)])])},x=(i,e)=>{let s=i.props.treeConfig,v=i.reactData.treeExpandedFlag,{fullAllDataRowIdData:c,treeExpandedMaps:d}=i.internalData;var t=i.getComputeMaps().computeTreeOpts,t=t.value;let p=t.transform,g=t.children||t.childrenField,h=r.scrollYLoad,m=[];return e.forEach((e,t)=>{var a=i?i.getRowid(e):"",r=c[a]||{};let l=t,n=-1,o=(r&&(l=r.index,n=r._index),m.push(w(i,e,a,l,t,n)),!1),u=[];!s||h||p||(u=e[g],o=!!v&&u&&0<u.length&&!!d[a]),o&&m.push(...x(i,u))}),m};return(0,_vue.onMounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=l}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=null}),()=>{var e=a.internalData.xeTable,t=r.tableData;return(0,_vue.h)("div",{ref:l,class:"vxe-gantt-view--chart-wrapper"},e?x(e,t):[])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let C=(0,_vue.inject)("$xeGantt",{}),a=(0,_vue.inject)("$xeGanttView",{}),{reactData:r,internalData:t}=a,{computeProgressField:D,computeTitleField:M,computeTaskBarOpts:B,computeScaleUnit:q}=C.getComputeMaps(),l=(0,_vue.ref)(),w=(e,t,a,r,l,n)=>{var o=e.props.treeConfig,u=e.reactData.resizeHeightFlag,i=e.internalData.fullAllDataRowIdData,{computeCellOpts:e,computeRowOpts:s,computeDefaultRowHeight:c}=e.getComputeMaps(),e=e.value,s=s.value,c=c.value,v=C.context.slots,v=v.taskBar||v["task-bar"],d=M.value,p=D.value,g=B.value,h=q.value;let m={$gantt:C,row:t,scaleType:h};var{showProgress:g,showContent:w,contentMethod:x,barStyle:_,drag:f,showTooltip:T}=g,E=_xeUtils.default.isFunction(_),_=(_?E?_(m):_:{})||{},k=_.round,i=i[a]||{},u=0<(u?i.resizeHeight:0),i=(0,_util.getCellRestHeight)(i,e,s,c);let b=(0,_utils.getStringValue)(_xeUtils.default.get(t,d));e={},s={width:`${(g?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,p)))):0)||0}%`};E&&({bgColor:c,completedBgColor:d}=_,c&&(e.backgroundColor=c),d)&&(s.backgroundColor=d),x&&(b=(0,_utils.getStringValue)(x({row:t,title:b,scaleType:h})));let y={$gantt:C,source:sourceType,type:viewType,scaleType:h,row:t,$rowIndex:l,rowIndex:r,_rowIndex:n};p={onClick(e){C.handleTaskBarClickEvent(e,m)},onDblclick(e){C.handleTaskBarDblclickEvent(e,m)},onMousedown(e){C.handleTaskBarMousedownEvent&&C.handleTaskBarMousedownEvent(e,m)}};return T&&(p.onMouseover=e=>{var t=Object.assign({$event:e},y);C.triggerTaskBarTooltipEvent(e,t),C.dispatchEvent("task-bar-mouseenter",t,e)},p.onMouseleave=e=>{var t=Object.assign({$event:e},y);C.handleTaskBarTooltipLeaveEvent(e,t),C.dispatchEvent("task-bar-mouseleave",t,e)}),(0,_vue.h)("div",{key:o?a:l,rowid:a,class:["vxe-gantt-view--chart-row",{"is--round":k,"is--drag":f,"col--rs-height":u}],style:{height:i+"px"},onContextmenu(e){C.handleTaskBarContextmenuEvent(e,y)}},[(0,_vue.h)("div",Object.assign({class:v?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:e,rowid:a},p),v?C.callSlot(v,m):[g?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:s}):renderEmptyElement(C),w?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},b):renderEmptyElement(C)])])},x=(i,e)=>{let s=i.props.treeConfig,c=i.reactData.treeExpandedFlag,{fullAllDataRowIdData:v,treeExpandedMaps:d}=i.internalData;var t=i.getComputeMaps().computeTreeOpts,t=t.value;let p=t.transform,g=t.children||t.childrenField,h=r.scrollYLoad,m=[];return e.forEach((e,t)=>{var a=i?i.getRowid(e):"",r=v[a]||{};let l=t,n=-1,o=(r&&(l=r.index,n=r._index),m.push(w(i,e,a,l,t,n)),!1),u=[];!s||h||p||(u=e[g],o=!!c&&u&&0<u.length&&!!d[a]),o&&m.push(...x(i,u))}),m};return(0,_vue.onMounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=l}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=null}),()=>{var e=a.internalData.xeTable,t=r.tableData;return(0,_vue.h)("div",{ref:l,class:"vxe-gantt-view--chart-wrapper"},e?x(e,t):[])}}});
@@ -466,6 +466,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
466
466
  refForm,
467
467
  refToolbar,
468
468
  refPager,
469
+ refGanttView,
469
470
  refGanttContainerElem,
470
471
  refClassifyWrapperElem,
471
472
  refPopupContainerElem
@@ -510,38 +511,28 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
510
511
  const taskScaleConfs = computeTaskViewScales.value;
511
512
  const taskViewScaleOpts = computeTaskViewScaleOpts.value;
512
513
  const scaleConfs = [];
513
- if (taskScaleConfs) {
514
- const keyMaps = {};
515
- taskScaleConfs.forEach(conf => {
516
- const sConf = !conf || _xeUtils.default.isString(conf) ? {
517
- type: conf
518
- } : conf;
519
- const {
520
- type
521
- } = sConf;
522
- if (!type || !viewTypeLevelMaps[type]) {
523
- (0, _log.errLog)('vxe.error.errProp', [`type=${type}`, _xeUtils.default.keys(viewTypeLevelMaps).join(',')]);
524
- return;
525
- }
526
- if (keyMaps[type]) {
527
- (0, _log.errLog)('vxe.error.repeatProp', ['type', type]);
528
- return;
529
- }
530
- keyMaps[type] = true;
531
- scaleConfs.push(Object.assign({}, type ? taskViewScaleOpts[type] || {} : {}, sConf, {
532
- level: getViewTypeLevel(type)
533
- }));
534
- });
535
- }
536
- if (!scaleConfs.length) {
537
- scaleConfs.push({
538
- type: 'month',
539
- level: viewTypeLevelMaps.month
540
- }, {
541
- type: 'date',
542
- level: viewTypeLevelMaps.date
543
- });
544
- }
514
+ const keyMaps = {};
515
+ const scaleList = taskScaleConfs && taskScaleConfs.length ? taskScaleConfs : ['month', 'date'];
516
+ scaleList.forEach(conf => {
517
+ const sConf = !conf || _xeUtils.default.isString(conf) ? {
518
+ type: conf
519
+ } : conf;
520
+ const {
521
+ type
522
+ } = sConf;
523
+ if (!type || !viewTypeLevelMaps[type]) {
524
+ (0, _log.errLog)('vxe.error.errProp', [`type=${type}`, _xeUtils.default.keys(viewTypeLevelMaps).join(',')]);
525
+ return;
526
+ }
527
+ if (keyMaps[type]) {
528
+ (0, _log.errLog)('vxe.error.repeatProp', ['type', type]);
529
+ return;
530
+ }
531
+ keyMaps[type] = true;
532
+ scaleConfs.push(Object.assign({}, type ? taskViewScaleOpts[type] || {} : {}, sConf, {
533
+ level: getViewTypeLevel(type)
534
+ }));
535
+ });
545
536
  reactData.taskScaleList = _xeUtils.default.orderBy(scaleConfs, {
546
537
  field: 'level',
547
538
  order: 'desc'
@@ -1956,7 +1947,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1956
1947
  } = params;
1957
1948
  let content = (0, _utils.formatText)(_xeUtils.default.get(row, titleField));
1958
1949
  if (contentMethod) {
1959
- content = (0, _utils.formatText)(contentMethod(params));
1950
+ const customContnet = contentMethod(params);
1951
+ if (!_xeUtils.default.eqNull(customContnet)) {
1952
+ content = `${customContnet}`;
1953
+ }
1960
1954
  }
1961
1955
  handleTargetEnterEvent(barTipStore.row !== row);
1962
1956
  const tipContent = (0, _utils.formatText)(content);