vxe-gantt 4.0.0-beta.0 → 4.0.0-beta.1

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 (69) hide show
  1. package/README.md +1 -1
  2. package/es/gantt/src/emits.js +5 -1
  3. package/es/gantt/src/gantt-body.js +11 -2
  4. package/es/gantt/src/gantt-chart.js +35 -14
  5. package/es/gantt/src/gantt-header.js +5 -2
  6. package/es/gantt/src/gantt-view.js +5 -1
  7. package/es/gantt/src/gantt.js +84 -32
  8. package/es/gantt/src/grid-props.js +1 -1
  9. package/es/gantt/src/props.js +1 -1
  10. package/es/gantt/src/table-props.js +1 -1
  11. package/es/gantt/style.css +36 -17
  12. package/es/gantt/style.min.css +1 -1
  13. package/es/style.css +1 -1
  14. package/es/style.min.css +1 -1
  15. package/es/ui/index.js +9 -2
  16. package/es/ui/src/log.js +3 -2
  17. package/es/ui/src/utils.js +3 -0
  18. package/es/vxe-gantt/style.css +36 -17
  19. package/es/vxe-gantt/style.min.css +1 -1
  20. package/helper/vetur/attributes.json +1 -1
  21. package/helper/vetur/tags.json +1 -1
  22. package/lib/gantt/src/emits.js +1 -1
  23. package/lib/gantt/src/emits.min.js +1 -1
  24. package/lib/gantt/src/gantt-body.js +16 -2
  25. package/lib/gantt/src/gantt-body.min.js +1 -1
  26. package/lib/gantt/src/gantt-chart.js +47 -10
  27. package/lib/gantt/src/gantt-chart.min.js +1 -1
  28. package/lib/gantt/src/gantt-header.js +6 -2
  29. package/lib/gantt/src/gantt-header.min.js +1 -1
  30. package/lib/gantt/src/gantt-view.js +6 -2
  31. package/lib/gantt/src/gantt-view.min.js +1 -1
  32. package/lib/gantt/src/gantt.js +101 -35
  33. package/lib/gantt/src/gantt.min.js +1 -1
  34. package/lib/gantt/src/grid-props.js +2 -2
  35. package/lib/gantt/src/grid-props.min.js +1 -1
  36. package/lib/gantt/src/props.js +2 -1
  37. package/lib/gantt/src/props.min.js +1 -1
  38. package/lib/gantt/src/table-props.js +2 -2
  39. package/lib/gantt/src/table-props.min.js +1 -1
  40. package/lib/gantt/style/style.css +36 -17
  41. package/lib/gantt/style/style.min.css +1 -1
  42. package/lib/index.umd.js +214 -73
  43. package/lib/index.umd.min.js +1 -1
  44. package/lib/style.css +1 -1
  45. package/lib/style.min.css +1 -1
  46. package/lib/ui/index.js +13 -3
  47. package/lib/ui/index.min.js +1 -1
  48. package/lib/ui/src/log.js +6 -3
  49. package/lib/ui/src/log.min.js +1 -1
  50. package/lib/ui/src/utils.js +4 -0
  51. package/lib/ui/src/utils.min.js +1 -1
  52. package/lib/vxe-gantt/style/style.css +36 -17
  53. package/lib/vxe-gantt/style/style.min.css +1 -1
  54. package/package.json +4 -4
  55. package/packages/gantt/src/emits.ts +6 -1
  56. package/packages/gantt/src/gantt-body.ts +11 -2
  57. package/packages/gantt/src/gantt-chart.ts +26 -9
  58. package/packages/gantt/src/gantt-header.ts +5 -2
  59. package/packages/gantt/src/gantt-view.ts +5 -1
  60. package/packages/gantt/src/gantt.ts +88 -30
  61. package/packages/gantt/src/grid-props.ts +1 -1
  62. package/packages/gantt/src/props.ts +2 -1
  63. package/packages/gantt/src/table-props.ts +1 -1
  64. package/packages/ui/index.ts +9 -1
  65. package/packages/ui/src/log.ts +3 -1
  66. package/packages/ui/src/utils.ts +4 -0
  67. package/styles/components/gantt-module/gantt-chart.scss +28 -9
  68. package/styles/components/gantt.scss +12 -7
  69. package/styles/theme/base.scss +5 -1
@@ -1 +1 @@
1
- {"vxe-alert":{"attributes":["title","content","status","show-icon","show-close","icon"],"description":"vxe-alert"},"vxe-anchor":{"attributes":["model-value","options","container","show-marker"],"description":"vxe-anchor"},"vxe-anchor-link":{"attributes":["content","title","href"],"description":"vxe-anchor-link"},"vxe-avatar":{"attributes":["content","icon","count","dot","src","circle","status","width","height","size"],"description":"vxe-avatar"},"vxe-badge":{"attributes":["content","count","dot","size"],"description":"vxe-badge"},"vxe-breadcrumb":{"attributes":["separator","options"],"description":"vxe-breadcrumb"},"vxe-breadcrumb-item":{"attributes":["title","router-link"],"description":"vxe-breadcrumb-item"},"vxe-button":{"attributes":["content","mode","title","type","size","name","icon","round","circle","status","disabled","permission-code","router-link","class-name","popup-class-name","loading","placement","destroy-on-close","trigger","transfer"],"description":"vxe-button"},"vxe-button-group":{"attributes":["mode","size","status","round","circle","vertical","disabled","permission-code","class-name","options"],"description":"vxe-button-group"},"vxe-calendar":{"attributes":["model-value","height","width","type","class-name","size","multiple"],"description":"vxe-calendar"},"vxe-card":{"attributes":["title","show-title-overflow","width","height","border","shadow","padding"],"description":"vxe-card"},"vxe-carousel":{"attributes":["model-value","options","height","width","show-indicators","auto-play","vertical","loop"],"description":"vxe-carousel"},"vxe-carousel-item":{"attributes":["name","url","class-name"],"description":"vxe-carousel-item"},"vxe-checkbox":{"attributes":["model-value","label","content","size","disabled","title","indeterminate","checked-value","unchecked-value"],"description":"vxe-checkbox"},"vxe-checkbox-group":{"attributes":["model-value","max","size","disabled","readonly","options","option-props"],"description":"vxe-checkbox-group"},"vxe-col":{"attributes":["span","align","width","fill","ellipsis"],"description":"vxe-col"},"vxe-collapse":{"attributes":["model-value","size","padding","options"],"description":"vxe-collapse"},"vxe-collapse-pane":{"attributes":["title","name","icon","permission-code"],"description":"vxe-collapse-pane"},"vxe-color-picker":{"attributes":["model-value","clearable","type","size","class-name","popup-class-name","colors","show-alpha","show-eye-dropper","show-color-extractor","show-quick","readonly","disabled","click-to-copy","placement","transfer"],"description":"vxe-color-picker"},"vxe-countdown":{"attributes":["model-value","format","size"],"description":"vxe-countdown"},"vxe-date-picker":{"attributes":["model-value","type","clearable","placeholder","multiple","limit-count","disabled","readonly","label-format","value-format","show-clear-button","show-confirm-button","shortcut-config"],"description":"vxe-date-picker"},"vxe-date-range-picker":{"attributes":["model-value","start-value","end-value","type","clearable","placeholder","disabled","readonly","label-format","value-format","auto-aclose","show-clear-button","show-confirm-button","shortcut-config"],"description":"vxe-date-range-picker"},"vxe-drawer":{"attributes":["model-value","size","loading","title","class-name","content","show-cancel-button","cancel-button-text","show-confirm-button","confirm-button-text","show-header","show-footer","lock-view","lock-scroll","mask","mask-closable","resize","esc-closable","confirm-closable","cancel-closable","show-close","width","height","position","z-index","show-title-overflow","transfer","destroy-on-close","before-hide-method"],"description":"vxe-drawer"},"vxe-empty":{"attributes":["image-url","image-style","icon","content"],"description":"vxe-empty"},"vxe-flow-design":{"attributes":[],"description":"vxe-flow-design"},"vxe-flow-view":{"attributes":[],"description":"vxe-flow-view"},"vxe-form":{"attributes":["data","loading","span","align","vertical-align","border","size","title-background","title-align","title-width","title-colon","title-asterisk","title-overflow","padding","vertical","class-name","readonly","disabled","collapse-status","custom-layout","items","rules","prevent-submit","valid-config","collapse-config"],"description":"vxe-form"},"vxe-form-design":{"attributes":["size","height","widgets","show-pc","show-mobile","form-render"],"description":"vxe-form-design"},"vxe-form-group":{"attributes":["field","title","span","align","vertical-align","title-background","title-align","title-width","title-colon","title-asterisk","title-overflow","show-title","padding","vertical","class-name","content-class-name","content-style","visible","visible-method","folding","collapse-node","title-prefix","title-suffix","reset-value","item-render"],"description":"vxe-form-group"},"vxe-form-item":{"attributes":["field","title","span","align","vertical-align","title-background","title-align","title-width","title-colon","title-asterisk","title-overflow","show-title","padding","vertical","class-name","content-class-name","content-style","visible","visible-method","folding","collapse-node","title-prefix","title-suffix","reset-value","item-render"],"description":"vxe-form-item"},"vxe-form-view":{"attributes":["model-value","config","readonly","disabled","view-render","create-form-config"],"description":"vxe-form-view"},"vxe-icon":{"attributes":["size","name","status","roll"],"description":"vxe-icon"},"vxe-icon-picker":{"attributes":["model-value","clearable","size","icons","class-name","popup-class-name","show-icon-title","readonly","disabled","placement","transfer"],"description":"vxe-icon-picker"},"vxe-image":{"attributes":["src","alt","loading","title","width","height","circle","show-preview","mask-closable","size"],"description":"vxe-image"},"vxe-image-group":{"attributes":["url-list","show-preview","image-style","size","show-download-button"],"description":"vxe-image-group"},"vxe-image-preview":{"attributes":["model-value","url-list","url-field","mask-closable","esc-closable","margin-size","show-print-button","show-download-button","before-download-method","download-method","size"],"description":"vxe-image-preview"},"vxe-input":{"attributes":["model-value","size","type","name","form","trim","clearable","placeholder","autocomplete","maxlength","max-length","multiple","readonly","disabled","class-name","prefix-icon","suffix-icon","min","max","step","digits","align","exponential","controls","show-word-count","count-method","start-date","end-date","start-week","start-day","select-day","label-format","value-format","editable","disabled-method","festival-method","transfer"],"description":"vxe-input"},"vxe-layout-aside":{"attributes":["width","collapsed","collapse-width","loading","padding","size"],"description":"vxe-layout-aside"},"vxe-layout-body":{"attributes":["padding","loading","size"],"description":"vxe-layout-body"},"vxe-layout-container":{"attributes":["vertical","size"],"description":"vxe-layout-container"},"vxe-layout-footer":{"attributes":["fixed","align"],"description":"vxe-layout-footer"},"vxe-layout-header":{"attributes":["fixed"],"description":"vxe-layout-header"},"vxe-link":{"attributes":["size","href","target","status","title","icon","router-link","underline","content","permission-code"],"description":"vxe-link"},"vxe-list-design":{"attributes":["size","height","config","show-pc","show-mobile","action-codes"],"description":"vxe-list-design"},"vxe-list-view":{"attributes":["config","loading","height","action-buttons","grid-options","grid-events","view-render"],"description":"vxe-list-view"},"vxe-list":{"attributes":["data","size","loading","height","class-name","auto-resize","sync-resize","scroll-y"],"description":"vxe-list"},"vxe-loading":{"attributes":["model-value","icon","text","status"],"description":"vxe-loading"},"vxe-menu":{"attributes":["model-value","expand-all","options","collapsed","loading"],"description":"vxe-menu"},"vxe-modal":{"attributes":["model-value","size","loading","id","title","type","status","class-name","icon-status","content","message","show-cancel-button","cancel-button-text","show-confirm-button","confirm-button-text","show-header","show-footer","lock-view","lock-scroll","mask","mask-closable","esc-closable","confirm-closable","cancel-closable","show-maximize","show-minimize","show-zoom","zoom-config","show-close","resize","margin-size","duration","width","height","min-width","min-height","top","position","z-index","show-title-overflow","transfer","fullscreen","draggable","dblclick-zoom","remember","destroy-on-close","storage","before-hide-method"],"description":"vxe-modal"},"vxe-notice-bar":{"attributes":["size","vertical","direction","loop","speed","duration"],"description":"vxe-notice-bar"},"vxe-number-input":{"attributes":["model-value","type","align","clearable","placeholder","editable","readonly","disabled","min","max","step","digits","auto-fill","exponential","controls","control-config","show-currency","currency-symbol","plus-icon","minus-icon","prefix-icon","suffix-icon"],"description":"vxe-number-input"},"vxe-optgroup":{"attributes":["label","visible","class-name","disabled"],"description":"vxe-optgroup"},"vxe-option":{"attributes":["value","label","visible","class-name","disabled"],"description":"vxe-option"},"vxe-pager":{"attributes":["size","loading","layouts","current-page","page-size","total","pager-count","page-sizes","page-size-placement","align","border","background","class-name","auto-hidden","icon-prev-page","icon-jump-prev","icon-jump-next","icon-next-page","icon-jump-more"],"description":"vxe-pager"},"vxe-password-input":{"attributes":["model-value","clearable","placeholder","readonly","disabled","controls"],"description":"vxe-password-input"},"vxe-print-page-break":{"attributes":[],"description":"vxe-print-page-break"},"vxe-print":{"attributes":["align","title","header-align","footer-align","show-page-number","custom-layout","page-breaks","html","header-html","footer-html","left-html","right-html","show-all-page-title","page-style","custom-style","before-method"],"description":"vxe-print"},"vxe-pulldown":{"attributes":["model-value","size","options","trigger","class-name","popup-class-name","show-popup-shadow","disabled","placement","destroy-on-close","transfer"],"description":"vxe-pulldown"},"vxe-radio":{"attributes":["model-value","label","content","size","disabled","strict","name"],"description":"vxe-radio"},"vxe-radio-button":{"attributes":["model-value","label","content","disabled","strict"],"description":"vxe-radio-button"},"vxe-radio-group":{"attributes":["model-value","type","size","type","disabled","readonly","strict","options","option-props"],"description":"vxe-radio-group"},"vxe-rate":{"attributes":["model-value","disabled","size"],"description":"vxe-rate"},"vxe-result":{"attributes":["image-url","image-style","icon","type","status","title","content"],"description":"vxe-result"},"vxe-row":{"attributes":["gutter","wrap","vertical"],"description":"vxe-row"},"vxe-select":{"attributes":["model-value","max","size","multiple","multi-char-overflow","clearable","placeholder","class-name","popup-class-name","disabled","prefix-icon","placement","default-config","options","option-props","option-groups","option-group-props","option-config","option-id","option-key","filterable","filter-method","remote","remote-method","remote-config","allow-create","transfer","scroll-y","virtual-y-config"],"description":"vxe-select"},"vxe-split":{"attributes":["vertical","border","width","padding","resize","height","items","item-config","bar-config","action-config"],"description":"vxe-split"},"vxe-split-pane":{"attributes":["name","width","height","min-width","min-height","show-action"],"description":"vxe-split-pane"},"vxe-slider":{"attributes":["model-value","range","vertical","min","max","disabled","readonly","size"],"description":"vxe-slider"},"vxe-steps":{"attributes":[],"description":"vxe-steps"},"vxe-switch":{"attributes":["model-value","disabled","readonly","size","open-label","close-label","open-value","close-value","open-icon","close-icon","open-active-icon","close-active-icon"],"description":"vxe-switch"},"vxe-tab-pane":{"attributes":["title","name","icon","title-width","title-align","preload","permission-code"],"description":"vxe-tab-pane"},"vxe-table-select":{"attributes":["model-value","size","multiple","clearable","placeholder","class-name","popup-class-name","disabled","prefix-icon","placement","options","option-props","popup-config","grid-config","transfer"],"description":"vxe-table-select"},"vxe-tabs":{"attributes":["model-value","options","height","destroy-on-close","title-width","title-align","type","padding","trigger","options","before-change-method","show-close","before-close-method","close-config","refresh-config"],"description":"vxe-tabs"},"vxe-tag":{"attributes":["size","status","title","icon","content"],"description":"vxe-tag"},"vxe-text-ellipsis":{"attributes":["size","line-clamp","status","title","content","offset-length","href","target","router-link","underline","permission-code"],"description":"vxe-text-ellipsis"},"vxe-text":{"attributes":["size","status","title","icon","content","click-to-copy"],"description":"vxe-text"},"vxe-textarea":{"attributes":["model-value","size","name","form","placeholder","class-name","rows","maxlength","max-length","readonly","disabled","resize","autosize","show-word-count","count-method"],"description":"vxe-textarea"},"vxe-tip":{"attributes":["title","size","content","status","icon","permission-code"],"description":"vxe-tip"},"vxe-tooltip":{"attributes":["model-value","content","trigger","theme","popup-class-name","z-index","is-arrow","enterable","enter-delay","leave-delay"],"description":"vxe-tooltip"},"vxe-tree":{"attributes":["data","size","title-field","value-field","key-field","children-field","parent-field","has-child-field","transform","is-current","is-hover","show-line","accordion","trigger","indent","expand-all","show-radio","check-node-key","node-config","radio-config","show-checkbox","check-node-keys","checkbox-config","lazy","toggle-method","load-method","show-icon","icon-open","icon-close","icon-loaded"],"description":"vxe-tree"},"vxe-tree-select":{"attributes":["model-value","size","multiple","clearable","placeholder","class-name","popup-class-name","disabled","prefix-icon","placement","options","option-props","popup-config","tree-config","transfer"],"description":"vxe-tree-select"},"vxe-upload":{"attributes":["model-value","size","key-field","show-list","readonly","disabled","drag-to-upload","paste-to-upload","image-types","image-style","image-config","more-config","file-types","multiple","single-mode","url-mode","limit-size","show-limit-size","limit-size-text","limit-count","show-limit-count","limit-count-text","name-field","type-field","url-field","size-field","show-error-status","auto-hidden-button","show-upload-button","button-text","button-icon","show-button-text","show-button-icon","show-remove-button","show-download-button","show-preview","show-progress","progress-text","show-tip","tip-text","upload-method","before-remove-method","remove-method","before-download-method","download-method","preview-method","get-url-method","get-thumbnail-url-method"],"description":"vxe-upload"},"vxe-watermark":{"attributes":["width","height","content","rotate","gap","font","z-index"],"description":"vxe-watermark"}}
1
+ {"vxe-gantt":{"attributes":[],"description":"甘特图"}}
@@ -5,4 +5,4 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ganttEmits = void 0;
7
7
  var _gridEmits = require("./grid-emits");
8
- const ganttEmits = exports.ganttEmits = [..._gridEmits.gridEmits];
8
+ const ganttEmits = exports.ganttEmits = [..._gridEmits.gridEmits, 'task-cell-click', 'task-cell-dblclick', 'task-bar-click', 'task-bar-dblclick'];
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.ganttEmits=void 0;var _gridEmits=require("./grid-emits");let ganttEmits=exports.ganttEmits=[..._gridEmits.gridEmits];
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.ganttEmits=void 0;var _gridEmits=require("./grid-emits");let ganttEmits=exports.ganttEmits=[..._gridEmits.gridEmits,"task-cell-click","task-cell-dblclick","task-bar-click","task-bar-dblclick"];
@@ -59,6 +59,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
59
59
  class: 'vxe-gantt-view--body-column',
60
60
  style: {
61
61
  height: `${cellHeight}px`
62
+ },
63
+ onClick(evnt) {
64
+ $xeGantt.handleTaskCellClickEvent(evnt, {
65
+ row
66
+ });
67
+ },
68
+ onDblclick(evnt) {
69
+ $xeGantt.handleTaskCellDblclickEvent(evnt, {
70
+ row
71
+ });
62
72
  }
63
73
  });
64
74
  })));
@@ -67,7 +77,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
67
77
  };
68
78
  const renderVN = () => {
69
79
  const {
70
- tableColumn
80
+ tableColumn,
81
+ viewCellWidth
71
82
  } = reactData;
72
83
  return (0, _vue.h)('div', {
73
84
  ref: refElem,
@@ -87,7 +98,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
87
98
  class: 'vxe-gantt-view--body-table'
88
99
  }, [(0, _vue.h)('colgroup', {}, tableColumn.map((column, cIndex) => {
89
100
  return (0, _vue.h)('col', {
90
- key: cIndex
101
+ key: cIndex,
102
+ style: {
103
+ width: `${viewCellWidth}px`
104
+ }
91
105
  });
92
106
  })), (0, _vue.h)('tbody', {}, renderRows())]), (0, _vue.h)(_ganttChart.default)])]);
93
107
  };
@@ -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"),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){var e=(0,_vue.inject)("$xeGantt",{});let t=(0,_vue.inject)("$xeGanttView",{}),{reactData:_,internalData:a}=t,c=e.getRefMaps().refTable,l=(0,_vue.ref)(),r=(0,_vue.ref)(),u=(0,_vue.ref)(),o=(0,_vue.ref)(),v=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=a.elemStore,t="main-body-";e[t+"wrapper"]=l,e[t+"scroll"]=r,e[t+"table"]=u,e[t+"xSpace"]=o,e[t+"ySpace"]=v}),(0,_vue.onUnmounted)(()=>{var e=a.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=_.tableColumn;return(0,_vue.h)("div",{ref:l,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:r,class:"vxe-gantt-view--body-inner-wrapper",onScroll:t.triggerBodyScrollEvent},[(0,_vue.h)("div",{ref:o,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:v,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:u,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},e.map((e,t)=>(0,_vue.h)("col",{key:t}))),(0,_vue.h)("tbody",{},(()=>{let l=c.value,r=l?l.internalData.fullAllDataRowIdData:{},u={},o={},v=0;var e,t,a;l&&({computeCellOpts:e,computeRowOpts:t,computeDefaultRowHeight:a}=l.getComputeMaps(),u=e.value,o=t.value,v=a.value);let{tableData:n,tableColumn:i}=_,p=[];return n.forEach((e,t)=>{e=l?l.getRowid(e):"",e=r[e]||{};let a=(0,_util.getCellRestHeight)(e,u,o,v);p.push((0,_vue.h)("tr",{key:t},i.map((e,t)=>(0,_vue.h)("td",{key:t,class:"vxe-gantt-view--body-column",style:{height:a+"px"}}))))}),p})())]),(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"),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let p=(0,_vue.inject)("$xeGantt",{}),t=(0,_vue.inject)("$xeGanttView",{}),{reactData:d,internalData:l}=t,_=p.getRefMaps().refTable,a=(0,_vue.ref)(),r=(0,_vue.ref)(),u=(0,_vue.ref)(),o=(0,_vue.ref)(),n=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=l.elemStore,t="main-body-";e[t+"wrapper"]=a,e[t+"scroll"]=r,e[t+"table"]=u,e[t+"xSpace"]=o,e[t+"ySpace"]=n}),(0,_vue.onUnmounted)(()=>{var e=l.elemStore,t="main-body-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null,e[t+"ySpace"]=null}),()=>{let{tableColumn:e,viewCellWidth:l}=d;return(0,_vue.h)("div",{ref:a,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:r,class:"vxe-gantt-view--body-inner-wrapper",onScroll:t.triggerBodyScrollEvent},[(0,_vue.h)("div",{ref:o,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:n,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:u,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},e.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:l+"px"}}))),(0,_vue.h)("tbody",{},(()=>{let r=_.value,u=r?r.internalData.fullAllDataRowIdData:{},o={},n={},v=0;var e,t,l;r&&({computeCellOpts:e,computeRowOpts:t,computeDefaultRowHeight:l}=r.getComputeMaps(),o=e.value,n=t.value,v=l.value);let{tableData:a,tableColumn:i}=d,c=[];return a.forEach((l,e)=>{var t=r?r.getRowid(l):"",t=u[t]||{};let a=(0,_util.getCellRestHeight)(t,o,n,v);c.push((0,_vue.h)("tr",{key:e},i.map((e,t)=>(0,_vue.h)("td",{key:t,class:"vxe-gantt-view--body-column",style:{height:a+"px"},onClick(e){p.handleTaskCellClickEvent(e,{row:l})},onDblclick(e){p.handleTaskCellDblclickEvent(e,{row:l})}}))))}),c})())]),(0,_vue.h)(_ganttChart.default)])])}}});
@@ -6,9 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _vue = require("vue");
8
8
  var _comp = require("../../ui/src/comp");
9
+ var _core = require("@vxe-ui/core");
9
10
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
10
11
  var _util = require("./util");
12
+ var _utils = require("../../ui/src/utils");
11
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ const {
15
+ renderEmptyElement
16
+ } = _core.VxeUI;
12
17
  var _default = exports.default = (0, _comp.defineVxeComponent)({
13
18
  name: 'VxeGanttViewChart',
14
19
  setup() {
@@ -22,7 +27,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
22
27
  refTable
23
28
  } = $xeGantt.getRefMaps();
24
29
  const {
25
- computeProgressField
30
+ computeProgressField,
31
+ computeTitleField,
32
+ computeTaskBarOpts
26
33
  } = $xeGantt.getComputeMaps();
27
34
  const refElem = (0, _vue.ref)();
28
35
  const renderVN = () => {
@@ -44,31 +51,61 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
44
51
  const {
45
52
  tableData
46
53
  } = reactData;
54
+ const titleField = computeTitleField.value;
47
55
  const progressField = computeProgressField.value;
56
+ const taskBarOpts = computeTaskBarOpts.value;
57
+ const {
58
+ showProgress,
59
+ showContent,
60
+ contentMethod,
61
+ barStyle
62
+ } = taskBarOpts;
63
+ const {
64
+ round
65
+ } = barStyle || {};
48
66
  const trVNs = [];
49
67
  tableData.forEach((row, rIndex) => {
50
68
  const rowid = $xeTable ? $xeTable.getRowid(row) : '';
51
69
  const rowRest = fullAllDataRowIdData[rowid] || {};
52
70
  const cellHeight = (0, _util.getCellRestHeight)(rowRest, cellOpts, rowOpts, defaultRowHeight);
53
- const progressValue = _xeUtils.default.get(row, progressField);
71
+ let title = (0, _utils.getStringValue)(_xeUtils.default.get(row, titleField));
72
+ const progressValue = showProgress ? Math.min(100, Math.max(0, _xeUtils.default.toNumber(_xeUtils.default.get(row, progressField)))) : 0;
73
+ if (contentMethod) {
74
+ title = (0, _utils.getStringValue)(contentMethod({
75
+ row,
76
+ title
77
+ }));
78
+ }
54
79
  trVNs.push((0, _vue.h)('div', {
55
80
  key: rIndex,
56
81
  rowid,
57
- class: 'vxe-gantt-view--chart-row',
82
+ class: ['vxe-gantt-view--chart-row', {
83
+ 'is--round': round
84
+ }],
58
85
  style: {
59
86
  height: `${cellHeight}px`
60
87
  }
61
88
  }, [(0, _vue.h)('div', {
62
89
  class: 'vxe-gantt-view--chart-bar',
63
- rowid
64
- }, [(0, _vue.h)('div', {
90
+ rowid,
91
+ onClick(evnt) {
92
+ $xeGantt.handleTaskBarClickEvent(evnt, {
93
+ row
94
+ });
95
+ },
96
+ onDblclick(evnt) {
97
+ $xeGantt.handleTaskBarDblclickEvent(evnt, {
98
+ row
99
+ });
100
+ }
101
+ }, [showProgress ? (0, _vue.h)('div', {
65
102
  class: 'vxe-gantt-view--chart-progress',
66
- style: progressValue ? {
67
- width: `${progressValue}%`
68
- } : undefined
69
- }), (0, _vue.h)('div', {
103
+ style: {
104
+ width: `${progressValue || 0}%`
105
+ }
106
+ }) : renderEmptyElement($xeGantt), showContent ? (0, _vue.h)('div', {
70
107
  class: 'vxe-gantt-view--chart-content'
71
- })])]));
108
+ }, title) : renderEmptyElement($xeGantt)])]));
72
109
  });
73
110
  return (0, _vue.h)('div', {
74
111
  ref: refElem,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){var e=(0,_vue.inject)("$xeGantt",{});let{reactData:r,internalData:t}=(0,_vue.inject)("$xeGanttView",{}),p=e.getRefMaps().refTable,c=e.getComputeMaps().computeProgressField,d=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=d}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=null}),()=>{let u=p.value,l=u?u.internalData.fullAllDataRowIdData:{},i={},v={},o=0;var e,t,a=(u&&({computeCellOpts:a,computeRowOpts:e,computeDefaultRowHeight:t}=u.getComputeMaps(),i=a.value,v=e.value,o=t.value),r).tableData;let n=c.value,s=[];return a.forEach((e,t)=>{var a=u?u.getRowid(e):"",r=l[a]||{},r=(0,_util.getCellRestHeight)(r,i,v,o),e=_xeUtils.default.get(e,n);s.push((0,_vue.h)("div",{key:t,rowid:a,class:"vxe-gantt-view--chart-row",style:{height:r+"px"}},[(0,_vue.h)("div",{class:"vxe-gantt-view--chart-bar",rowid:a},[(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:e?{width:e+"%"}:void 0}),(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"})])]))}),(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--chart-wrapper"},s)}}});
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;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let g=(0,_vue.inject)("$xeGantt",{});let{reactData:l,internalData:t}=(0,_vue.inject)("$xeGanttView",{}),u=g.getRefMaps().refTable,{computeProgressField:x,computeTitleField:f,computeTaskBarOpts:D}=g.getComputeMaps(),E=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=E}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore;e["main-chart-wrapper"]=null}),()=>{let i=u.value,n=i?i.internalData.fullAllDataRowIdData:{},o={},s={},v=0;var e,t,r=(i&&({computeCellOpts:r,computeRowOpts:e,computeDefaultRowHeight:t}=i.getComputeMaps(),o=r.value,s=e.value,v=t.value),l).tableData;let c=f.value,p=x.value,{showProgress:d,showContent:_,contentMethod:m,barStyle:a}=D.value,h=(a||{}).round,w=[];return r.forEach((t,e)=>{var r=i?i.getRowid(t):"",a=n[r]||{},a=(0,_util.getCellRestHeight)(a,o,s,v);let l=(0,_utils.getStringValue)(_xeUtils.default.get(t,c));var u=d?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,p)))):0;m&&(l=(0,_utils.getStringValue)(m({row:t,title:l}))),w.push((0,_vue.h)("div",{key:e,rowid:r,class:["vxe-gantt-view--chart-row",{"is--round":h}],style:{height:a+"px"}},[(0,_vue.h)("div",{class:"vxe-gantt-view--chart-bar",rowid:r,onClick(e){g.handleTaskBarClickEvent(e,{row:t})},onDblclick(e){g.handleTaskBarDblclickEvent(e,{row:t})}},[d?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:{width:`${u||0}%`}}):renderEmptyElement(g),_?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},l):renderEmptyElement(g)])]))}),(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--chart-wrapper"},w)}}});
@@ -21,7 +21,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
21
21
  const renderVN = () => {
22
22
  const {
23
23
  tableColumn,
24
- headerGroups
24
+ headerGroups,
25
+ viewCellWidth
25
26
  } = reactData;
26
27
  return (0, _vue.h)('div', {
27
28
  ref: refElem,
@@ -38,7 +39,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
38
39
  class: 'vxe-gantt-view--header-table'
39
40
  }, [(0, _vue.h)('colgroup', {}, tableColumn.map((column, cIndex) => {
40
41
  return (0, _vue.h)('col', {
41
- key: cIndex
42
+ key: cIndex,
43
+ style: {
44
+ width: `${viewCellWidth}px`
45
+ }
42
46
  });
43
47
  })), (0, _vue.h)('thead', {}, headerGroups.map((cols, rIndex) => {
44
48
  return (0, _vue.h)('tr', {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(){let a=(0,_vue.inject)("$xeGanttView",{}),{reactData:t,internalData:l}=a,u=(0,_vue.ref)(),n=(0,_vue.ref)(),v=(0,_vue.ref)(),o=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=l.elemStore,r="main-header-";e[r+"wrapper"]=u,e[r+"scroll"]=n,e[r+"table"]=v,e[r+"xSpace"]=o}),(0,_vue.onUnmounted)(()=>{var e=l.elemStore,r="main-header-";e[r+"wrapper"]=null,e[r+"scroll"]=null,e[r+"table"]=null,e[r+"xSpace"]=null}),()=>{var{tableColumn:e,headerGroups:r}=t;return(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--header-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--header-inner-wrapper",onScroll:a.triggerHeaderScrollEvent},[(0,_vue.h)("div",{ref:o,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:v,class:"vxe-gantt-view--header-table"},[(0,_vue.h)("colgroup",{},e.map((e,r)=>(0,_vue.h)("col",{key:r}))),(0,_vue.h)("thead",{},r.map((e,r)=>(0,_vue.h)("tr",{key:r},e.map((e,r)=>(0,_vue.h)("th",{key:r,class:"vxe-gantt-view--header-column",colspan:e.children?e.children.length:null,title:""+e.field},e.title)))))])])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(){let a=(0,_vue.inject)("$xeGanttView",{}),{reactData:l,internalData:t}=a,u=(0,_vue.ref)(),n=(0,_vue.ref)(),v=(0,_vue.ref)(),o=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=t.elemStore,r="main-header-";e[r+"wrapper"]=u,e[r+"scroll"]=n,e[r+"table"]=v,e[r+"xSpace"]=o}),(0,_vue.onUnmounted)(()=>{var e=t.elemStore,r="main-header-";e[r+"wrapper"]=null,e[r+"scroll"]=null,e[r+"table"]=null,e[r+"xSpace"]=null}),()=>{let{tableColumn:e,headerGroups:r,viewCellWidth:t}=l;return(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--header-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--header-inner-wrapper",onScroll:a.triggerHeaderScrollEvent},[(0,_vue.h)("div",{ref:o,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:v,class:"vxe-gantt-view--header-table"},[(0,_vue.h)("colgroup",{},e.map((e,r)=>(0,_vue.h)("col",{key:r,style:{width:t+"px"}}))),(0,_vue.h)("thead",{},r.map((e,r)=>(0,_vue.h)("tr",{key:r},e.map((e,r)=>(0,_vue.h)("th",{key:r,class:"vxe-gantt-view--header-column",colspan:e.children?e.children.length:null,title:""+e.field},e.title)))))])])])}}});
@@ -7,7 +7,7 @@ exports.default = void 0;
7
7
  var _vue = require("vue");
8
8
  var _comp = require("../../ui/src/comp");
9
9
  var _dom = require("../../ui/src/dom");
10
- var _ui = require("../../ui");
10
+ var _core = require("@vxe-ui/core");
11
11
  var _util = require("./util");
12
12
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
13
13
  var _ganttHeader = _interopRequireDefault(require("./gantt-header"));
@@ -15,7 +15,7 @@ var _ganttBody = _interopRequireDefault(require("./gantt-body"));
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  const {
17
17
  globalEvents
18
- } = _ui.VxeUI;
18
+ } = _core.VxeUI;
19
19
  function createInternalData() {
20
20
  return {
21
21
  xeTable: null,
@@ -536,6 +536,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
536
536
  checkLastSyncScroll(isRollX, isRollY);
537
537
  };
538
538
  const ganttViewMethods = {
539
+ refreshData() {
540
+ handleUpdateData();
541
+ return handleLazyRecalculate();
542
+ },
539
543
  updateViewData() {
540
544
  const $xeTable = internalData.xeTable;
541
545
  if ($xeTable) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_ui.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}let maxYHeight=5e6,maxXWidth=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(e,l){var t=_xeUtils.default.uniqueId();let{computeTaskViewOpts:c,computeStartField:h,computeEndField:g,computeScrollbarOpts:o,computeScrollbarXToTop:f,computeScrollbarYToLeft:r}=(0,_vue.inject)("$xeGantt",{}).getComputeMaps(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),x=(0,_vue.ref)(),s=(0,_vue.ref)(),_=(0,_vue.ref)(),S=(0,_vue.ref)(),n=(0,_vue.ref)(),y=(0,_vue.ref)(),w=(0,_vue.ref)(),b=(0,_vue.ref)(),T=(0,_vue.ref)(),u=(0,_vue.ref)(),d=(0,_vue.ref)(),E=(0,_vue.ref)(),D=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!1,overflowX:!1,scrollbarWidth:0,scrollbarHeight:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}}),H=createInternalData(),k={refElem:m},z={},a={xID:t,props:e,context:l,reactData:D,internalData:H,getRefMaps:()=>k,getComputeMaps:()=>z},B=()=>{var e=H.xeTable;let a=null,i=null;if(e){let t=h.value,r=g.value;e=e.internalData.afterFullData;e.forEach(e=>{var l=_xeUtils.default.get(e,t),e=_xeUtils.default.get(e,r);l&&e&&(l=_xeUtils.default.toStringDate(l),(!a||a.getTime()>l.getTime())&&(a=l),l=_xeUtils.default.toStringDate(e),!i||i.getTime()<l.getTime())&&(i=l)})}D.minViewDate=a,D.maxViewDate=i,H.startMaps={},H.endMaps={},(()=>{let{minViewDate:n,maxViewDate:e}=D;var t=[],l=[];switch(c.value.mode){case"year":case"quarter":case"month":case"week":break;default:if(n&&e){var r=n.getTime(),a=e.getTime()-n.getTime(),i=Math.max(6,Math.floor(a/864e5)+1),o=[],s=[],u={};for(let l=0;l<i;l++){var v=new Date(r+864e5*l),d=v.getFullYear()+"-"+(v.getMonth()+1),v=""+v.getDate();let e=u[d];v={field:d+"-"+v,title:v};e?(e.children.push(v),t.push(e)):(e={field:d,title:d,children:[v]},o.push(e),t.push(e),u[d]=e),s.push(v)}l.push(o,s);let c=H.xeTable;if(c){let i=h.value,o=g.value;a=c.internalData.afterFullData;let s={};a.forEach(e=>{var l,t=c.getRowid(e),r=_xeUtils.default.get(e,i),a=_xeUtils.default.get(e,o);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),l=Math.floor((r.getTime()-n.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a})}),H.chartMaps=s}}}D.tableColumn=t,D.headerGroups=l})()},W=()=>{var{scrollXWidth:e,scrollYHeight:l}=D,t=H.elemStore,r=o.value,t=(0,_util.getRefElem)(t["main-body-wrapper"]),a=s.value,i=n.value;t&&(l=l>t.clientHeight,i&&(D.scrollbarWidth=r.width||i.offsetWidth-i.clientWidth||14),D.overflowY=l,i=e>t.clientWidth,a&&(D.scrollbarHeight=r.height||a.offsetHeight-a.clientHeight||14),D.overflowX=i)},L=()=>{var{scrollbarWidth:a,scrollbarHeight:i,tableColumn:o}=D,s=H.elemStore,c=H.xeTable,n=m.value;if(n&&n.clientHeight){var u=f.value,v=_.value,d=S.value,h=p.value;let e=0,l=0,t=0;c&&(c=c.internalData,e=c.tBodyHeight,l=c.tHeaderHeight,t=c.tFooterHeight);c=(0,_util.getRefElem)(s["main-header-scroll"]),c=(c&&(c.style.height=l+"px"),(0,_util.getRefElem)(s["main-body-scroll"])),h=(c&&(c.style.height=e+"px"),h&&(h.style.height=i+"px",h.style.visibility="visible"),w.value),h=(h&&(h.style.left=u?a+"px":"",h.style.width=n.clientWidth-a+"px"),v&&(v.style.width=u?a+"px":"",v.style.display=u&&i?"block":""),d&&(d.style.width=u?"":a+"px",d.style.display=!u&&i?"block":""),x.value),n=(h&&(h.style.width=a+"px",h.style.height=e+l+t+"px",h.style.visibility="visible"),y.value),v=(n&&(n.style.height=l+"px",n.style.display=l?"block":""),b.value),d=(v&&(v.style.height=e+"px",v.style.top=l+"px"),T.value),u=(d&&(d.style.height=t+"px",d.style.top=l+e+"px",d.style.display=t?"block":""),E.value);u&&(D.viewCellWidth=u.clientWidth||40);let r=D.viewCellWidth*o.length;c&&0<(a=(i=c.clientWidth)-r)&&(D.viewCellWidth+=Math.floor(a/o.length),r=i);h=(0,_util.getRefElem)(s["main-header-table"]),n=(0,_util.getRefElem)(s["main-body-table"]);return h&&(h.style.width=r+"px"),n&&(n.style.width=r+"px"),D.scrollXWidth=r,(()=>{let t=D.viewCellWidth,{elemStore:e,chartMaps:r}=H;var l=(0,_util.getRefElem)(e["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,e=>{var l=e.children[0];l&&(e=(e=e.getAttribute("rowid"))?r[e]:null)&&(l.style.left=t*e.oLeftSize+"px",l.style.width=t*e.oWidthSize+"px")}),(0,_vue.nextTick)()})()}},i=()=>(W(),L(),(0,_vue.nextTick)());let v=(e,l,t,r,a)=>{var i;i=H.lcsTimeout,D.lazScrollLoading=!0,i&&clearTimeout(i),H.lcsTimeout=setTimeout(()=>{H.lcsRunTime=Date.now(),H.lcsTimeout=void 0,H.intoRunScroll=!1,H.inVirtualScroll=!1,H.inWheelScroll=!1,H.inHeaderScroll=!1,H.inBodyScroll=!1,H.inFooterScroll=!1,D.lazScrollLoading=!1},200)},Y=e=>{var l=H.xeTable;l&&(l=l.internalData.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]))&&(l.scrollTop=e)};t={handleUpdateStyle:L,handleLazyRecalculate:i,triggerHeaderScrollEvent(e){var{elemStore:l,inVirtualScroll:t,inBodyScroll:r,inFooterScroll:a}=H;t||r||a||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),a=s.value,r&&t&&(e=t.scrollLeft,H.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,e),(0,_dom.setScrollLeft)(r,e),v(0,0,0,t.scrollTop)))},triggerBodyScrollEvent(e){var l,{elemStore:t,inVirtualScroll:r,inHeaderScroll:a,inFooterScroll:i}=H;r||a||i||(r=e.currentTarget,a=(0,_util.getRefElem)(t["main-header-scroll"]),i=s.value,e=n.value,a&&r&&(t=r.scrollLeft,l=r.scrollTop,H.inBodyScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),(0,_dom.setScrollTop)(e,l),Y(l),v(0,0,0,r.scrollTop)))},triggerFooterScrollEvent(e){var{inVirtualScroll:l,inHeaderScroll:t,inBodyScroll:r}=H;l||t||r||(l=e.currentTarget)&&(l.scrollLeft,v(0,0,0,l.scrollTop))},triggerVirtualScrollXEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=H;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-header-scroll"]),e=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(l=t.scrollLeft,H.inVirtualScroll=!0,(0,_dom.setScrollLeft)(r,l),(0,_dom.setScrollLeft)(e,l),v(0,0,0,t.scrollTop)))},triggerVirtualScrollYEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=H;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(e=t.scrollTop,H.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,e),Y(e),v(0,0,0,0,t.scrollLeft)))},updateScrollXSpace:()=>{let{scrollXLoad:l,scrollXWidth:e}=D,t=H.elemStore;var r=(0,_util.getRefElem)(t["main-body-scroll"]),a=(0,_util.getRefElem)(t["main-body-table"]);let i=0,o=0,s=(r&&(o=r.clientWidth),!1),c=e;e>maxXWidth&&(i=r&&a&&r.scrollLeft+o>=maxXWidth?maxXWidth-a.clientWidth:(maxXWidth-o)*(i/(e-o)),c=maxXWidth,s=!0),a&&(a.style.transform=`translate(${i}px, ${D.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(t[`main-${e}-xSpace`]);e&&(e.style.width=l?c+"px":"")}),D.scrollXLeft=i,D.scrollXWidth=c,D.isScrollXBig=s;r=u.value;return r&&(r.style.width=c+"px"),W(),(0,_vue.nextTick)().then(()=>{L()})},updateScrollYSpace:()=>{var{scrollYLoad:e,overflowY:l}=D;let t=H.elemStore;var r=H.xeTable,a=(0,_util.getRefElem)(t["main-body-scroll"]),i=(0,_util.getRefElem)(t["main-body-table"]);let o=0,s=0,c=!1,n=(r&&(r=r.reactData,o=r.scrollYTop,s=r.scrollYHeight,c=r.isScrollYBig),s),u=o,v=0;a&&(v=a.clientHeight),c&&(u=a&&i&&a.scrollTop+v>=maxYHeight?maxYHeight-i.clientHeight:(maxYHeight-v)*(o/(s-v)),n=maxYHeight),e&&l||(u=0),i&&(i.style.transform=`translate(${D.scrollXLeft||0}px, ${u}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(t[`main-${e}-ySpace`]);e&&(e.style.height=n?n+"px":"")});r=d.value;return r&&(r.style.height=n?n+"px":""),D.scrollYTop=u,D.scrollYHeight=s,D.isScrollYBig=c,W(),(0,_vue.nextTick)().then(()=>{L()})}};let q=()=>{i()},R=(Object.assign(a,{updateViewData(){var e=H.xeTable;return e&&(e=e.reactData.tableData,D.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(H.xeTable=e),(0,_vue.nextTick)()}},t),()=>(0,_vue.h)("div",{key:"vsx",ref:p,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:_,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:w,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:s,class:"vxe-gantt-view--scroll-x-handle",onScroll:a.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--scroll-x-space"})])]),(0,_vue.h)("div",{ref:S,class:"vxe-gantt-view--scroll-x-right-corner"})])),X=()=>(0,_vue.h)("div",{ref:x,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:y,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:b,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-handle",onScroll:a.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--scroll-y-space"})])]),(0,_vue.h)("div",{ref:T,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),V=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default)]),M=()=>{var e=r.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[X(),V()]:[V(),X()])};let U=(0,_vue.ref)(0);return(0,_vue.watch)(()=>D.tableData,()=>{U.value++}),(0,_vue.watch)(()=>D.tableData.length,()=>{U.value++}),(0,_vue.watch)(U,()=>{B()}),(0,_vue.onMounted)(()=>{globalEvents.on(a,"resize",q)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(a,"keydown"),_xeUtils.default.assign(H,createInternalData())}),a.renderVN=()=>{var{overflowX:e,overflowY:l,scrollXLoad:t,scrollYLoad:r}=D,a=c.value,i=f.value;return(0,_vue.h)("div",{ref:m,class:["vxe-gantt-view","mode--"+(a.mode||"day"),{"is--scroll-y":l,"is--scroll-x":e,"is--virtual-x":t,"is--virtual-y":r}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},i?[R(),M()]:[M(),R()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",a),a},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},scrollYStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0}}}let maxYHeight=5e6,maxXWidth=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(e,l){var t=_xeUtils.default.uniqueId();let{computeTaskViewOpts:c,computeStartField:h,computeEndField:g,computeScrollbarOpts:o,computeScrollbarXToTop:f,computeScrollbarYToLeft:k}=(0,_vue.inject)("$xeGantt",{}).getComputeMaps(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),x=(0,_vue.ref)(),s=(0,_vue.ref)(),_=(0,_vue.ref)(),S=(0,_vue.ref)(),n=(0,_vue.ref)(),y=(0,_vue.ref)(),w=(0,_vue.ref)(),b=(0,_vue.ref)(),T=(0,_vue.ref)(),u=(0,_vue.ref)(),d=(0,_vue.ref)(),D=(0,_vue.ref)(),E=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!1,overflowX:!1,scrollbarWidth:0,scrollbarHeight:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36}}),H=createInternalData(),z={refElem:m},B={},r={xID:t,props:e,context:l,reactData:E,internalData:H,getRefMaps:()=>z,getComputeMaps:()=>B},a=()=>{var e=H.xeTable;let a=null,i=null;if(e){let t=h.value,r=g.value;e=e.internalData.afterFullData;e.forEach(e=>{var l=_xeUtils.default.get(e,t),e=_xeUtils.default.get(e,r);l&&e&&(l=_xeUtils.default.toStringDate(l),(!a||a.getTime()>l.getTime())&&(a=l),l=_xeUtils.default.toStringDate(e),!i||i.getTime()<l.getTime())&&(i=l)})}E.minViewDate=a,E.maxViewDate=i,H.startMaps={},H.endMaps={},(()=>{let{minViewDate:n,maxViewDate:e}=E;var t=[],l=[];switch(c.value.mode){case"year":case"quarter":case"month":case"week":break;default:if(n&&e){var r=n.getTime(),a=e.getTime()-n.getTime(),i=Math.max(6,Math.floor(a/864e5)+1),o=[],s=[],u={};for(let l=0;l<i;l++){var v=new Date(r+864e5*l),d=v.getFullYear()+"-"+(v.getMonth()+1),v=""+v.getDate();let e=u[d];v={field:d+"-"+v,title:v};e?(e.children.push(v),t.push(e)):(e={field:d,title:d,children:[v]},o.push(e),t.push(e),u[d]=e),s.push(v)}l.push(o,s);let c=H.xeTable;if(c){let i=h.value,o=g.value;a=c.internalData.afterFullData;let s={};a.forEach(e=>{var l,t=c.getRowid(e),r=_xeUtils.default.get(e,i),a=_xeUtils.default.get(e,o);r&&a&&(r=_xeUtils.default.toStringDate(r),a=_xeUtils.default.toStringDate(a),l=Math.floor((r.getTime()-n.getTime())/864e5),a=Math.floor((a.getTime()-r.getTime())/864e5)+1,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a})}),H.chartMaps=s}}}E.tableColumn=t,E.headerGroups=l})()},W=()=>{var{scrollXWidth:e,scrollYHeight:l}=E,t=H.elemStore,r=o.value,t=(0,_util.getRefElem)(t["main-body-wrapper"]),a=s.value,i=n.value;t&&(l=l>t.clientHeight,i&&(E.scrollbarWidth=r.width||i.offsetWidth-i.clientWidth||14),E.overflowY=l,i=e>t.clientWidth,a&&(E.scrollbarHeight=r.height||a.offsetHeight-a.clientHeight||14),E.overflowX=i)},q=()=>{let t=E.viewCellWidth,{elemStore:e,chartMaps:r}=H;var l=(0,_util.getRefElem)(e["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,e=>{var l=e.children[0];l&&(e=(e=e.getAttribute("rowid"))?r[e]:null)&&(l.style.left=t*e.oLeftSize+"px",l.style.width=t*e.oWidthSize+"px")}),(0,_vue.nextTick)()},L=()=>{var{scrollbarWidth:a,scrollbarHeight:i,tableColumn:o}=E,s=H.elemStore,c=H.xeTable,n=m.value;if(n&&n.clientHeight){var u=f.value,v=_.value,d=S.value,h=p.value;let e=0,l=0,t=0;c&&(c=c.internalData,e=c.tBodyHeight,l=c.tHeaderHeight,t=c.tFooterHeight);c=(0,_util.getRefElem)(s["main-header-scroll"]),c=(c&&(c.style.height=l+"px"),(0,_util.getRefElem)(s["main-body-scroll"])),h=(c&&(c.style.height=e+"px"),h&&(h.style.height=i+"px",h.style.visibility="visible"),w.value),h=(h&&(h.style.left=u?a+"px":"",h.style.width=n.clientWidth-a+"px"),v&&(v.style.width=u?a+"px":"",v.style.display=u&&i?"block":""),d&&(d.style.width=u?"":a+"px",d.style.display=!u&&i?"block":""),x.value),n=(h&&(h.style.width=a+"px",h.style.height=e+l+t+"px",h.style.visibility="visible"),y.value),v=(n&&(n.style.height=l+"px",n.style.display=l?"block":""),b.value),d=(v&&(v.style.height=e+"px",v.style.top=l+"px"),T.value),u=(d&&(d.style.height=t+"px",d.style.top=l+e+"px",d.style.display=t?"block":""),D.value);u&&(E.viewCellWidth=u.clientWidth||40);let r=E.viewCellWidth*o.length;c&&0<(a=(i=c.clientWidth)-r)&&(E.viewCellWidth+=Math.floor(a/o.length),r=i);h=(0,_util.getRefElem)(s["main-header-table"]),n=(0,_util.getRefElem)(s["main-body-table"]);return h&&(h.style.width=r+"px"),n&&(n.style.width=r+"px"),E.scrollXWidth=r,q()}},i=()=>(W(),L(),(0,_vue.nextTick)());let v=(e,l,t,r,a)=>{var i;i=H.lcsTimeout,E.lazScrollLoading=!0,i&&clearTimeout(i),H.lcsTimeout=setTimeout(()=>{H.lcsRunTime=Date.now(),H.lcsTimeout=void 0,H.intoRunScroll=!1,H.inVirtualScroll=!1,H.inWheelScroll=!1,H.inHeaderScroll=!1,H.inBodyScroll=!1,H.inFooterScroll=!1,E.lazScrollLoading=!1},200)},Y=e=>{var l=H.xeTable;l&&(l=l.internalData.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]))&&(l.scrollTop=e)};t={handleUpdateStyle:L,handleLazyRecalculate:i,triggerHeaderScrollEvent(e){var{elemStore:l,inVirtualScroll:t,inBodyScroll:r,inFooterScroll:a}=H;t||r||a||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),a=s.value,r&&t&&(e=t.scrollLeft,H.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,e),(0,_dom.setScrollLeft)(r,e),v(0,0,0,t.scrollTop)))},triggerBodyScrollEvent(e){var l,{elemStore:t,inVirtualScroll:r,inHeaderScroll:a,inFooterScroll:i}=H;r||a||i||(r=e.currentTarget,a=(0,_util.getRefElem)(t["main-header-scroll"]),i=s.value,e=n.value,a&&r&&(t=r.scrollLeft,l=r.scrollTop,H.inBodyScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),(0,_dom.setScrollTop)(e,l),Y(l),v(0,0,0,r.scrollTop)))},triggerFooterScrollEvent(e){var{inVirtualScroll:l,inHeaderScroll:t,inBodyScroll:r}=H;l||t||r||(l=e.currentTarget)&&(l.scrollLeft,v(0,0,0,l.scrollTop))},triggerVirtualScrollXEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=H;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-header-scroll"]),e=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(l=t.scrollLeft,H.inVirtualScroll=!0,(0,_dom.setScrollLeft)(r,l),(0,_dom.setScrollLeft)(e,l),v(0,0,0,t.scrollTop)))},triggerVirtualScrollYEvent(e){var{elemStore:l,inHeaderScroll:t,inBodyScroll:r}=H;t||r||(t=e.currentTarget,r=(0,_util.getRefElem)(l["main-body-scroll"]),t&&(e=t.scrollTop,H.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,e),Y(e),v(0,0,0,0,t.scrollLeft)))},updateScrollXSpace:()=>{let{scrollXLoad:l,scrollXWidth:e}=E,t=H.elemStore;var r=(0,_util.getRefElem)(t["main-body-scroll"]),a=(0,_util.getRefElem)(t["main-body-table"]);let i=0,o=0,s=(r&&(o=r.clientWidth),!1),c=e;e>maxXWidth&&(i=r&&a&&r.scrollLeft+o>=maxXWidth?maxXWidth-a.clientWidth:(maxXWidth-o)*(i/(e-o)),c=maxXWidth,s=!0),a&&(a.style.transform=`translate(${i}px, ${E.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(t[`main-${e}-xSpace`]);e&&(e.style.width=l?c+"px":"")}),E.scrollXLeft=i,E.scrollXWidth=c,E.isScrollXBig=s;r=u.value;return r&&(r.style.width=c+"px"),W(),(0,_vue.nextTick)().then(()=>{L()})},updateScrollYSpace:()=>{var{scrollYLoad:e,overflowY:l}=E;let t=H.elemStore;var r=H.xeTable,a=(0,_util.getRefElem)(t["main-body-scroll"]),i=(0,_util.getRefElem)(t["main-body-table"]);let o=0,s=0,c=!1,n=(r&&(r=r.reactData,o=r.scrollYTop,s=r.scrollYHeight,c=r.isScrollYBig),s),u=o,v=0;a&&(v=a.clientHeight),c&&(u=a&&i&&a.scrollTop+v>=maxYHeight?maxYHeight-i.clientHeight:(maxYHeight-v)*(o/(s-v)),n=maxYHeight),e&&l||(u=0),i&&(i.style.transform=`translate(${E.scrollXLeft||0}px, ${u}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(t[`main-${e}-ySpace`]);e&&(e.style.height=n?n+"px":"")});r=d.value;return r&&(r.style.height=n?n+"px":""),E.scrollYTop=u,E.scrollYHeight=s,E.isScrollYBig=c,W(),(0,_vue.nextTick)().then(()=>{L()})}};let I=()=>{i()},R=(Object.assign(r,{refreshData(){return a(),i()},updateViewData(){var e=H.xeTable;return e&&(e=e.reactData.tableData,E.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(H.xeTable=e),(0,_vue.nextTick)()}},t),()=>(0,_vue.h)("div",{key:"vsx",ref:p,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:_,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:w,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:s,class:"vxe-gantt-view--scroll-x-handle",onScroll:r.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--scroll-x-space"})])]),(0,_vue.h)("div",{ref:S,class:"vxe-gantt-view--scroll-x-right-corner"})])),X=()=>(0,_vue.h)("div",{ref:x,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:y,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:b,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-handle",onScroll:r.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--scroll-y-space"})])]),(0,_vue.h)("div",{ref:T,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),V=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default)]),M=()=>{var e=k.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[X(),V()]:[V(),X()])};let U=(0,_vue.ref)(0);return(0,_vue.watch)(()=>E.tableData,()=>{U.value++}),(0,_vue.watch)(()=>E.tableData.length,()=>{U.value++}),(0,_vue.watch)(U,()=>{a()}),(0,_vue.onMounted)(()=>{globalEvents.on(r,"resize",I)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(r,"keydown"),_xeUtils.default.assign(H,createInternalData())}),r.renderVN=()=>{var{overflowX:e,overflowY:l,scrollXLoad:t,scrollYLoad:r}=E,a=c.value,i=f.value;return(0,_vue.h)("div",{ref:m,class:["vxe-gantt-view","mode--"+(a.mode||"day"),{"is--scroll-y":l,"is--scroll-x":e,"is--virtual-x":t,"is--virtual-y":r}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},i?[R(),M()]:[M(),R()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:D,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",r),r},render(){return this.renderVN()}});