vxe-pc-ui 4.20.8 → 4.20.10

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 (144) hide show
  1. package/dist/all.esm.js +2041 -2125
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/card/src/card.js +8 -6
  5. package/es/date-panel/src/date-panel.js +58 -36
  6. package/es/date-panel/style.css +22 -20
  7. package/es/date-panel/style.min.css +1 -1
  8. package/es/drawer/src/drawer.js +7 -5
  9. package/es/icon/style.css +1 -1
  10. package/es/icon-picker/src/icon-picker.js +74 -38
  11. package/es/icon-picker/style.css +9 -3
  12. package/es/icon-picker/style.min.css +1 -1
  13. package/es/layout-aside/src/layout-aside.js +6 -4
  14. package/es/layout-body/src/layout-body.js +6 -4
  15. package/es/layout-container/src/layout-container.js +11 -3
  16. package/es/list/src/list.js +81 -208
  17. package/es/menu/src/menu.js +7 -5
  18. package/es/modal/src/modal.js +7 -5
  19. package/es/scrollbar/src/scrollbar.js +28 -173
  20. package/es/select/src/select.js +243 -8
  21. package/es/select/style.css +44 -0
  22. package/es/select/style.min.css +1 -1
  23. package/es/style.css +1 -1
  24. package/es/style.min.css +1 -1
  25. package/es/tabs/src/tabs.js +5 -4
  26. package/es/tooltip/src/tooltip.js +7 -5
  27. package/es/tooltip/style.css +2 -0
  28. package/es/tooltip/style.min.css +1 -1
  29. package/es/tree/src/tree.js +86 -212
  30. package/es/ui/index.js +1 -1
  31. package/es/ui/src/log.js +1 -1
  32. package/es/vxe-date-panel/style.css +22 -20
  33. package/es/vxe-date-panel/style.min.css +1 -1
  34. package/es/vxe-icon-picker/style.css +9 -3
  35. package/es/vxe-icon-picker/style.min.css +1 -1
  36. package/es/vxe-select/style.css +44 -0
  37. package/es/vxe-select/style.min.css +1 -1
  38. package/es/vxe-tooltip/style.css +2 -0
  39. package/es/vxe-tooltip/style.min.css +1 -1
  40. package/lib/card/src/card.js +9 -6
  41. package/lib/card/src/card.min.js +1 -1
  42. package/lib/date-panel/src/date-panel.js +56 -34
  43. package/lib/date-panel/src/date-panel.min.js +1 -1
  44. package/lib/date-panel/style/style.css +22 -20
  45. package/lib/date-panel/style/style.min.css +1 -1
  46. package/lib/drawer/src/drawer.js +7 -4
  47. package/lib/drawer/src/drawer.min.js +1 -1
  48. package/lib/icon/style/style.css +1 -1
  49. package/lib/icon/style/style.min.css +1 -1
  50. package/lib/icon-picker/src/icon-picker.js +101 -45
  51. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  52. package/lib/icon-picker/style/style.css +9 -3
  53. package/lib/icon-picker/style/style.min.css +1 -1
  54. package/lib/index.umd.js +1049 -859
  55. package/lib/index.umd.min.js +1 -1
  56. package/lib/layout-aside/src/layout-aside.js +7 -4
  57. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  58. package/lib/layout-body/src/layout-body.js +7 -4
  59. package/lib/layout-body/src/layout-body.min.js +1 -1
  60. package/lib/layout-container/src/layout-container.js +20 -4
  61. package/lib/layout-container/src/layout-container.min.js +1 -1
  62. package/lib/list/src/list.js +95 -232
  63. package/lib/list/src/list.min.js +1 -1
  64. package/lib/menu/src/menu.js +8 -4
  65. package/lib/menu/src/menu.min.js +1 -1
  66. package/lib/modal/src/modal.js +7 -4
  67. package/lib/modal/src/modal.min.js +1 -1
  68. package/lib/scrollbar/src/scrollbar.js +42 -199
  69. package/lib/scrollbar/src/scrollbar.min.js +1 -1
  70. package/lib/select/src/select.js +315 -68
  71. package/lib/select/src/select.min.js +1 -1
  72. package/lib/select/style/style.css +44 -0
  73. package/lib/select/style/style.min.css +1 -1
  74. package/lib/style.css +1 -1
  75. package/lib/style.min.css +1 -1
  76. package/lib/tabs/src/tabs.js +6 -5
  77. package/lib/tabs/src/tabs.min.js +1 -1
  78. package/lib/tooltip/src/tooltip.js +7 -4
  79. package/lib/tooltip/src/tooltip.min.js +1 -1
  80. package/lib/tooltip/style/style.css +2 -0
  81. package/lib/tooltip/style/style.min.css +1 -1
  82. package/lib/tree/src/tree.js +101 -235
  83. package/lib/tree/src/tree.min.js +1 -1
  84. package/lib/ui/index.js +1 -1
  85. package/lib/ui/index.min.js +1 -1
  86. package/lib/ui/src/log.js +1 -1
  87. package/lib/ui/src/log.min.js +1 -1
  88. package/lib/vxe-date-panel/style/style.css +22 -20
  89. package/lib/vxe-date-panel/style/style.min.css +1 -1
  90. package/lib/vxe-icon-picker/style/style.css +9 -3
  91. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  92. package/lib/vxe-select/style/style.css +44 -0
  93. package/lib/vxe-select/style/style.min.css +1 -1
  94. package/lib/vxe-tooltip/style/style.css +2 -0
  95. package/lib/vxe-tooltip/style/style.min.css +1 -1
  96. package/package.json +2 -2
  97. package/packages/card/src/card.ts +8 -6
  98. package/packages/date-panel/src/date-panel.ts +58 -36
  99. package/packages/drawer/src/drawer.ts +7 -5
  100. package/packages/icon-picker/src/icon-picker.ts +80 -38
  101. package/packages/layout-aside/src/layout-aside.ts +6 -4
  102. package/packages/layout-body/src/layout-body.ts +6 -4
  103. package/packages/layout-container/src/layout-container.ts +13 -3
  104. package/packages/list/src/list.ts +98 -224
  105. package/packages/menu/src/menu.ts +7 -5
  106. package/packages/modal/src/modal.ts +7 -5
  107. package/packages/scrollbar/src/scrollbar.ts +44 -189
  108. package/packages/select/src/select.ts +278 -8
  109. package/packages/tabs/src/tabs.ts +5 -4
  110. package/packages/tooltip/src/tooltip.ts +7 -5
  111. package/packages/tree/src/tree.ts +103 -228
  112. package/styles/components/date-panel.scss +31 -29
  113. package/styles/components/icon-picker.scss +9 -3
  114. package/styles/components/select.scss +77 -0
  115. package/styles/components/tooltip.scss +1 -0
  116. package/types/components/card.d.ts +2 -2
  117. package/types/components/drawer.d.ts +2 -2
  118. package/types/components/gantt-module/gantt-view.d.ts +7 -16
  119. package/types/components/grid.d.ts +3 -1
  120. package/types/components/icon-picker.d.ts +21 -1
  121. package/types/components/layout-aside.d.ts +2 -2
  122. package/types/components/layout-body.d.ts +2 -2
  123. package/types/components/layout-container.d.ts +3 -1
  124. package/types/components/list.d.ts +6 -2
  125. package/types/components/menu.d.ts +2 -2
  126. package/types/components/modal.d.ts +2 -2
  127. package/types/components/scrollbar.d.ts +17 -14
  128. package/types/components/select.d.ts +28 -3
  129. package/types/components/table.d.ts +28 -22
  130. package/types/components/tabs.d.ts +2 -2
  131. package/types/components/tooltip.d.ts +2 -2
  132. package/types/components/tree.d.ts +8 -17
  133. /package/es/icon/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  134. /package/es/icon/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  135. /package/es/icon/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
  136. /package/es/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  137. /package/es/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  138. /package/es/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
  139. /package/lib/icon/style/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  140. /package/lib/icon/style/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  141. /package/lib/icon/style/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
  142. /package/lib/{iconfont.1792115566662.ttf → iconfont.1792219842406.ttf} +0 -0
  143. /package/lib/{iconfont.1792115566662.woff → iconfont.1792219842406.woff} +0 -0
  144. /package/lib/{iconfont.1792115566662.woff2 → iconfont.1792219842406.woff2} +0 -0
@@ -42,7 +42,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
42
42
  const refElem = (0, _vue.ref)();
43
43
  const {
44
44
  computeSize
45
- } = (0, _ui.useSize)(props);
45
+ } = _ui.useFns.useSize(props);
46
+ const {
47
+ computeIsVScrollbar
48
+ } = _ui.useFns.useVScrollbar(props);
46
49
  const reactData = (0, _vue.reactive)({});
47
50
  const refMaps = {
48
51
  refElem
@@ -93,11 +96,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
93
96
  const {
94
97
  collapsed,
95
98
  loading,
96
- padding,
97
- useScrollbar
99
+ padding
98
100
  } = props;
99
101
  const varStyle = computeVarStyle.value;
100
102
  const vSize = computeSize.value;
103
+ const isVScrollbar = computeIsVScrollbar.value;
101
104
  const collapseOpts = computeCollapseOpts.value;
102
105
  const scrollbarOpts = computeScrollbarOpts.value;
103
106
  const {
@@ -116,7 +119,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
116
119
  'is--loading': loading
117
120
  }],
118
121
  style: varStyle
119
- }, [useScrollbar ? (0, _vue.h)(_scrollbar.default, {
122
+ }, [isVScrollbar ? (0, _vue.h)(_scrollbar.default, {
120
123
  width: scrollbarOpts.width,
121
124
  height: scrollbarOpts.height,
122
125
  autoHide: scrollbarOpts.autoHide,
@@ -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"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutAside",props:{width:[String,Number],collapsed:Boolean,collapseWidth:[String,Number],loading:Boolean,padding:Boolean,collapseConfig:Object,useScrollbar:{type:Boolean,default:()=>(0,_utils.getDefaultConfig)((0,_ui.getConfig)().layoutAside.useScrollbar,(0,_ui.getConfig)().useScrollbar)},scrollbarConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().layoutAside.size||(0,_ui.getConfig)().size}},emits:[],setup(v,e){let{slots:g,emit:t}=e;var i=_xeUtils.default.uniqueId();let p=(0,_vue.ref)(),_=(0,_ui.useSize)(v).computeSize;var a=(0,_vue.reactive)({});let l={refElem:p},f=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutAside.collapseConfig,v.collapseConfig)),m=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutAside.scrollbarConfig,v.scrollbarConfig)),b=(0,_vue.computed)(()=>{var{width:e,collapseWidth:i}=v,a={};return i&&(a["--vxe-ui-layout-aside-collapse-width"]=(0,_dom.toCssUnit)(i)),e&&(a["--vxe-ui-layout-aside-default-width"]=(0,_dom.toCssUnit)(e)),a}),u={computeSize:_,computeVarStyle:b},o={xID:i,props:v,context:e,reactData:a,getRefMaps:()=>l,getComputeMaps:()=>u};Object.assign(o,{dispatchEvent:(e,i,a)=>{t(e,(0,_ui.createEvent)(a,{$layoutAside:o},i))}},{});return(0,_vue.provide)("$xeLayoutAside",o),o.renderVN=()=>{var{collapsed:e,loading:i,padding:a,useScrollbar:t}=v,l=b.value,u=_.value,o=f.value,s=m.value,{className:r,viewClassName:d,viewInnerClassName:n}=s;let c=g.default;return(0,_vue.h)("aside",{ref:p,class:["vxe-layout-aside",{["size--"+u]:u,"is--animat":!1!==o.animation,"is--padding":a,"is--collapse":e,"is--loading":i}],style:l},[t?(0,_vue.h)(_scrollbar.default,{width:s.width,height:s.height,autoHide:s.autoHide,visible:s.visible,xConfig:{visible:!1},yConfig:s.yConfig,className:"vxe-layout-aside--scrollbar"+(r?" "+r:""),viewAttrs:s.viewAttrs,viewClassName:"vxe-layout-aside--scrollbar-view"+(d?" "+d:""),viewInnerClassName:"vxe-layout-aside--scrollbar-inner"+(n?" "+n:"")},{default:()=>c?c({}):[]}):(0,_vue.h)("div",{class:"vxe-layout-aside--inner"},c?c({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-layout-aside-view--loading",modelValue:i})])},o},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"),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutAside",props:{width:[String,Number],collapsed:Boolean,collapseWidth:[String,Number],loading:Boolean,padding:Boolean,collapseConfig:Object,useScrollbar:{type:Boolean,default:()=>(0,_utils.getDefaultConfig)((0,_ui.getConfig)().layoutAside.useScrollbar,(0,_ui.getConfig)().useScrollbar)},scrollbarConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().layoutAside.size||(0,_ui.getConfig)().size}},emits:[],setup(v,e){let{slots:g,emit:l}=e;var i=_xeUtils.default.uniqueId();let p=(0,_vue.ref)(),_=_ui.useFns.useSize(v).computeSize,f=_ui.useFns.useVScrollbar(v).computeIsVScrollbar;var a=(0,_vue.reactive)({});let t={refElem:p},m=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutAside.collapseConfig,v.collapseConfig)),b=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutAside.scrollbarConfig,v.scrollbarConfig)),C=(0,_vue.computed)(()=>{var{width:e,collapseWidth:i}=v,a={};return i&&(a["--vxe-ui-layout-aside-collapse-width"]=(0,_dom.toCssUnit)(i)),e&&(a["--vxe-ui-layout-aside-default-width"]=(0,_dom.toCssUnit)(e)),a}),u={computeSize:_,computeVarStyle:C},s={xID:i,props:v,context:e,reactData:a,getRefMaps:()=>t,getComputeMaps:()=>u};Object.assign(s,{dispatchEvent:(e,i,a)=>{l(e,(0,_ui.createEvent)(a,{$layoutAside:s},i))}},{});return(0,_vue.provide)("$xeLayoutAside",s),s.renderVN=()=>{var{collapsed:e,loading:i,padding:a}=v,l=C.value,t=_.value,u=f.value,s=m.value,o=b.value,{className:r,viewClassName:n,viewInnerClassName:d}=o;let c=g.default;return(0,_vue.h)("aside",{ref:p,class:["vxe-layout-aside",{["size--"+t]:t,"is--animat":!1!==s.animation,"is--padding":a,"is--collapse":e,"is--loading":i}],style:l},[u?(0,_vue.h)(_scrollbar.default,{width:o.width,height:o.height,autoHide:o.autoHide,visible:o.visible,xConfig:{visible:!1},yConfig:o.yConfig,className:"vxe-layout-aside--scrollbar"+(r?" "+r:""),viewAttrs:o.viewAttrs,viewClassName:"vxe-layout-aside--scrollbar-view"+(n?" "+n:""),viewInnerClassName:"vxe-layout-aside--scrollbar-inner"+(d?" "+d:"")},{default:()=>c?c({}):[]}):(0,_vue.h)("div",{class:"vxe-layout-aside--inner"},c?c({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-layout-aside-view--loading",modelValue:i})])},s},render(){return this.renderVN()}});
@@ -50,7 +50,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
50
50
  const refElem = (0, _vue.ref)();
51
51
  const {
52
52
  computeSize
53
- } = (0, _ui.useSize)(props);
53
+ } = _ui.useFns.useSize(props);
54
+ const {
55
+ computeIsVScrollbar
56
+ } = _ui.useFns.useVScrollbar(props);
54
57
  const internalData = createInternalData();
55
58
  const reactData = (0, _vue.reactive)(createReactData());
56
59
  const refMaps = {
@@ -115,9 +118,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
115
118
  const {
116
119
  loading,
117
120
  padding,
118
- showBacktop,
119
- useScrollbar
121
+ showBacktop
120
122
  } = props;
123
+ const isVScrollbar = computeIsVScrollbar.value;
121
124
  const backtopOpts = computeBacktopOpts.value;
122
125
  const scrollbarProps = computeScrollbarProps.value;
123
126
  const vSize = computeSize.value;
@@ -142,7 +145,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
142
145
  'is--loading': loading,
143
146
  'is--padding': padding
144
147
  }]
145
- }, [useScrollbar ? (0, _vue.h)(_scrollbar.default, scrollbarProps, {
148
+ }, [isVScrollbar ? (0, _vue.h)(_scrollbar.default, scrollbarProps, {
146
149
  default: () => defaultSlot ? defaultSlot({}) : []
147
150
  }) : (0, _vue.h)('div', {
148
151
  id: showBacktop ? backtopId : '',
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar")),_backtop=_interopRequireDefault(require("../../backtop"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{}}function createReactData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutBody",props:{loading:Boolean,padding:Boolean,showBacktop:{type:Boolean,default:()=>(0,_ui.getConfig)().layoutBody.showBacktop},backtopConfig:Object,useScrollbar:{type:Boolean,default:()=>(0,_utils.getDefaultConfig)((0,_ui.getConfig)().layoutBody.useScrollbar,(0,_ui.getConfig)().useScrollbar)},scrollbarConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().layoutBody.size||(0,_ui.getConfig)().size}},emits:[],setup(p,e){let{slots:_,emit:o}=e;var t=_xeUtils.default.uniqueId();let f="vxe_layout_body_backtop_"+t,g=(0,_vue.ref)(),v=(0,_ui.useSize)(p).computeSize;var a=createInternalData(),i=(0,_vue.reactive)(createReactData());let u={refElem:g},b=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutBody.backtopConfig,p.backtopConfig,{target:"#"+f})),r=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutBody.scrollbarConfig,p.scrollbarConfig)),y=(0,_vue.computed)(()=>{var e=p.showBacktop,t=r.value,{className:a,viewClassName:o,viewInnerClassName:i}=t;return{width:t.width,height:t.height,autoHide:t.autoHide,visible:t.visible,xConfig:t.xConfig,yConfig:t.yConfig,className:"vxe-layout-body--scrollbar"+(a?" "+a:""),viewAttrs:Object.assign(Object.assign({},t.viewAttrs),{id:e&&f||null}),viewClassName:"vxe-layout-body--scrollbar-view"+(o?" "+o:""),viewInnerClassName:"vxe-layout-body--scrollbar-inner"+(i?" "+i:"")}}),l={computeSize:v},m={xID:t,props:p,context:e,internalData:a,reactData:i,getRefMaps:()=>u,getComputeMaps:()=>l};Object.assign(m,{dispatchEvent:(e,t,a)=>{o(e,(0,_ui.createEvent)(a,{$layoutBody:m},t))}},{});return m.renderVN=()=>{var{loading:e,padding:t,showBacktop:a,useScrollbar:o}=p,i=b.value,u=y.value,r=v.value;let l=_.default;var n=_.backtop,s=_.backtopTop||_["backtop-top"],c=_.backtopBottom||_["backtop-bottom"],d={};return n&&(d.default=n),s&&(d.top=s),c&&(d.bottom=c),(0,_vue.h)("div",{ref:g,class:["vxe-layout-body",{["size--"+r]:r,"is--loading":e,"is--padding":t}]},[o?(0,_vue.h)(_scrollbar.default,u,{default:()=>l?l({}):[]}):(0,_vue.h)("div",{id:a?f:"",class:"vxe-layout-body--inner"},l?l({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-layout-body-view--loading",modelValue:e}),a?(0,_vue.h)(_backtop.default,i,d):(0,_ui.renderEmptyElement)(m)])},m},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_loading=_interopRequireDefault(require("../../loading")),_scrollbar=_interopRequireDefault(require("../../scrollbar")),_backtop=_interopRequireDefault(require("../../backtop"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createInternalData(){return{}}function createReactData(){return{}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutBody",props:{loading:Boolean,padding:Boolean,showBacktop:{type:Boolean,default:()=>(0,_ui.getConfig)().layoutBody.showBacktop},backtopConfig:Object,useScrollbar:{type:Boolean,default:()=>(0,_utils.getDefaultConfig)((0,_ui.getConfig)().layoutBody.useScrollbar,(0,_ui.getConfig)().useScrollbar)},scrollbarConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().layoutBody.size||(0,_ui.getConfig)().size}},emits:[],setup(p,e){let{slots:_,emit:o}=e;var t=_xeUtils.default.uniqueId();let v="vxe_layout_body_backtop_"+t,f=(0,_vue.ref)(),g=_ui.useFns.useSize(p).computeSize,b=_ui.useFns.useVScrollbar(p).computeIsVScrollbar;var a=createInternalData(),i=(0,_vue.reactive)(createReactData());let u={refElem:f},y=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutBody.backtopConfig,p.backtopConfig,{target:"#"+v})),r=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().layoutBody.scrollbarConfig,p.scrollbarConfig)),m=(0,_vue.computed)(()=>{var e=p.showBacktop,t=r.value,{className:a,viewClassName:o,viewInnerClassName:i}=t;return{width:t.width,height:t.height,autoHide:t.autoHide,visible:t.visible,xConfig:t.xConfig,yConfig:t.yConfig,className:"vxe-layout-body--scrollbar"+(a?" "+a:""),viewAttrs:Object.assign(Object.assign({},t.viewAttrs),{id:e&&v||null}),viewClassName:"vxe-layout-body--scrollbar-view"+(o?" "+o:""),viewInnerClassName:"vxe-layout-body--scrollbar-inner"+(i?" "+i:"")}}),l={computeSize:g},C={xID:t,props:p,context:e,internalData:a,reactData:i,getRefMaps:()=>u,getComputeMaps:()=>l};Object.assign(C,{dispatchEvent:(e,t,a)=>{o(e,(0,_ui.createEvent)(a,{$layoutBody:C},t))}},{});return C.renderVN=()=>{var{loading:e,padding:t,showBacktop:a}=p,o=b.value,i=y.value,u=m.value,r=g.value;let l=_.default;var n=_.backtop,s=_.backtopTop||_["backtop-top"],c=_.backtopBottom||_["backtop-bottom"],d={};return n&&(d.default=n),s&&(d.top=s),c&&(d.bottom=c),(0,_vue.h)("div",{ref:f,class:["vxe-layout-body",{["size--"+r]:r,"is--loading":e,"is--padding":t}]},[o?(0,_vue.h)(_scrollbar.default,u,{default:()=>l?l({}):[]}):(0,_vue.h)("div",{id:a?v:"",class:"vxe-layout-body--inner"},l?l({}):[]),(0,_vue.h)(_loading.default,{class:"vxe-layout-body-view--loading",modelValue:e}),a?(0,_vue.h)(_backtop.default,i,d):(0,_ui.renderEmptyElement)(C)])},C},render(){return this.renderVN()}});
@@ -9,13 +9,25 @@ var _comp = require("../../ui/src/comp");
9
9
  var _ui = require("../../ui");
10
10
  var _xeUtils = _interopRequireDefault(require("xe-utils"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const {
13
+ getConfig,
14
+ baseUtils,
15
+ createEvent
16
+ } = _ui.VxeUI;
17
+ const {
18
+ getDefVal
19
+ } = baseUtils;
12
20
  var _default = exports.default = (0, _comp.defineVxeComponent)({
13
21
  name: 'VxeLayoutContainer',
14
22
  props: {
15
23
  vertical: Boolean,
24
+ useScrollbar: {
25
+ type: Boolean,
26
+ default: () => getDefVal(getConfig().layoutContainer.useScrollbar, getConfig().useScrollbar)
27
+ },
16
28
  size: {
17
29
  type: String,
18
- default: () => (0, _ui.getConfig)().layoutContainer.size || (0, _ui.getConfig)().size
30
+ default: () => getConfig().layoutContainer.size || getConfig().size
19
31
  }
20
32
  },
21
33
  emits: [],
@@ -28,13 +40,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
28
40
  const refElem = (0, _vue.ref)();
29
41
  const {
30
42
  computeSize
31
- } = (0, _ui.useSize)(props);
43
+ } = _ui.useFns.useSize(props);
44
+ const {
45
+ computeIsVScrollbar
46
+ } = _ui.useFns.useVScrollbar(props);
32
47
  const reactData = (0, _vue.reactive)({});
33
48
  const refMaps = {
34
49
  refElem
35
50
  };
36
51
  const computeMaps = {
37
- computeSize
52
+ computeSize,
53
+ computeIsVScrollbar
38
54
  };
39
55
  const $xeLayoutContainer = {
40
56
  xID,
@@ -45,7 +61,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
45
61
  getComputeMaps: () => computeMaps
46
62
  };
47
63
  const dispatchEvent = (type, params, evnt) => {
48
- emit(type, (0, _ui.createEvent)(evnt, {
64
+ emit(type, createEvent(evnt, {
49
65
  $layoutContainer: $xeLayoutContainer
50
66
  }, params));
51
67
  };
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutContainer",props:{vertical:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().layoutContainer.size||(0,_ui.getConfig)().size}},emits:[],setup(i,e){let{slots:u,emit:a}=e;var t=_xeUtils.default.uniqueId();let o=(0,_vue.ref)(),n=(0,_ui.useSize)(i).computeSize;var r=(0,_vue.reactive)({});let l={refElem:o},s={computeSize:n},p={xID:t,props:i,context:e,reactData:r,getRefMaps:()=>l,getComputeMaps:()=>s};Object.assign(p,{dispatchEvent:(e,t,r)=>{a(e,(0,_ui.createEvent)(r,{$layoutContainer:p},t))}},{});return p.renderVN=()=>{var e=i.vertical,t=n.value,r=u.default;return(0,_vue.h)("div",{ref:o,class:["vxe-layout-container",{["size--"+t]:t,"is--vertical":e}]},r?r({}):[])},p},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,baseUtils,createEvent}=_ui.VxeUI,getDefVal=baseUtils.getDefVal;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeLayoutContainer",props:{vertical:Boolean,useScrollbar:{type:Boolean,default:()=>getDefVal(getConfig().layoutContainer.useScrollbar,getConfig().useScrollbar)},size:{type:String,default:()=>getConfig().layoutContainer.size||getConfig().size}},emits:[],setup(u,e){let{slots:a,emit:i}=e;var t=_xeUtils.default.uniqueId();let l=(0,_vue.ref)(),o=_ui.useFns.useSize(u).computeSize;var r=_ui.useFns.useVScrollbar(u).computeIsVScrollbar,s=(0,_vue.reactive)({});let n={refElem:l},c={computeSize:o,computeIsVScrollbar:r},f={xID:t,props:u,context:e,reactData:s,getRefMaps:()=>n,getComputeMaps:()=>c};Object.assign(f,{dispatchEvent:(e,t,r)=>{i(e,createEvent(r,{$layoutContainer:f},t))}},{});return f.renderVN=()=>{var e=u.vertical,t=o.value,r=a.default;return(0,_vue.h)("div",{ref:l,class:["vxe-layout-container",{["size--"+t]:t,"is--vertical":e}]},r?r({}):[])},f},render(){return this.renderVN()}});
@@ -21,17 +21,11 @@ const {
21
21
  getIcon,
22
22
  getI18n,
23
23
  domUtils,
24
- scrollbarUtils,
24
+ useFns,
25
25
  menus,
26
26
  globalEvents,
27
27
  globalResize
28
28
  } = _ui.VxeUI;
29
- const {
30
- getThumbOffsetSize,
31
- getThumbSize,
32
- getScrollFromClick,
33
- getScrollFromDrag
34
- } = scrollbarUtils;
35
29
  const {
36
30
  warnLog,
37
31
  errLog
@@ -155,9 +149,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
155
149
  } = context;
156
150
  const xID = _xeUtils.default.uniqueId();
157
151
  const browseObj = _xeUtils.default.browse();
158
- const {
159
- computeSize
160
- } = (0, _ui.useSize)(props);
161
152
  const reactData = (0, _vue.reactive)(createReactData());
162
153
  const internalData = createInternalData();
163
154
  const crossListDragRowInfo = (0, _store.getCrossListDragRowInfo)();
@@ -165,13 +156,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
165
156
  const refHeaderElem = (0, _vue.ref)();
166
157
  const refFooterElem = (0, _vue.ref)();
167
158
  const refVirtualWrapper = (0, _vue.ref)();
159
+ const refVirtualSpaceElem = (0, _vue.ref)();
168
160
  const refVirtualBody = (0, _vue.ref)();
169
- const refTrackXElem = (0, _vue.ref)();
170
- const refTrackYElem = (0, _vue.ref)();
171
- const refThumbXElem = (0, _vue.ref)();
172
- const refThumbYElem = (0, _vue.ref)();
173
161
  const refDragRowLineElem = (0, _vue.ref)();
174
162
  const refDragTipElem = (0, _vue.ref)();
163
+ const {
164
+ computeSize
165
+ } = useFns.useSize(props);
166
+ const {
167
+ computeIsVScrollbar
168
+ } = useFns.useVScrollbar(props);
175
169
  const refMaps = {
176
170
  refElem
177
171
  };
@@ -183,6 +177,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
183
177
  internalData,
184
178
  getRefMaps: () => refMaps
185
179
  };
180
+ const {
181
+ refTrackXElem,
182
+ refTrackYElem,
183
+ refThumbXElem,
184
+ refThumbYElem,
185
+ updateThumbSize,
186
+ updateThumbOffset,
187
+ clickTrackXEvent,
188
+ clickTrackYEvent,
189
+ pointerdownThumbXEvent,
190
+ pointermoveThumbXEvent,
191
+ cleatPointerThumbEvent,
192
+ pointerdownThumbYEvent,
193
+ pointermoveThumbYEvent
194
+ } = useFns.useInitVScrollbar($xeList);
186
195
  const computeRowOpts = (0, _vue.computed)(() => {
187
196
  return Object.assign({}, getConfig().list.rowConfig, props.rowConfig);
188
197
  });
@@ -504,7 +513,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
504
513
  lastScrollLeft,
505
514
  lastScrollTop
506
515
  } = internalData;
507
- updateScrollbar();
508
516
  return clearScroll().then(() => {
509
517
  if (lastScrollLeft || lastScrollTop) {
510
518
  internalData.lastScrollLeft = 0;
@@ -514,8 +522,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
514
522
  });
515
523
  };
516
524
  const updateScrollbar = () => {
517
- updateThumbSize();
518
- updateThumbOffset();
525
+ const isVScrollbar = computeIsVScrollbar.value;
526
+ if (isVScrollbar) {
527
+ return (0, _vue.nextTick)().then(() => {
528
+ updateThumbSize();
529
+ updateThumbOffset();
530
+ });
531
+ }
532
+ return Promise.resolve();
519
533
  };
520
534
  /**
521
535
  * 重新计算列表
@@ -534,10 +548,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
534
548
  parentHeight = parentEl.clientHeight - Math.ceil(_xeUtils.default.toNumber(parentStyle.paddingLeft) + _xeUtils.default.toNumber(parentStyle.paddingRight));
535
549
  }
536
550
  reactData.parentHeight = parentHeight;
537
- updateScrollbar();
538
551
  updateHeight();
539
552
  if (el.clientWidth && el.clientHeight) {
540
- return computeScrollLoad();
553
+ return computeScrollLoad().then(() => {
554
+ updateScrollbar();
555
+ });
541
556
  }
542
557
  }
543
558
  return (0, _vue.nextTick)();
@@ -553,7 +568,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
553
568
  offsetSize,
554
569
  rowHeight
555
570
  } = scrollYStore;
556
- const scrollBodyElem = evnt.target;
571
+ const scrollBodyElem = evnt.currentTarget;
557
572
  const scrollTop = scrollBodyElem.scrollTop;
558
573
  const toVisibleIndex = Math.floor(scrollTop / rowHeight);
559
574
  const offsetStartIndex = Math.max(0, toVisibleIndex - 1 - offsetSize);
@@ -567,7 +582,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
567
582
  }
568
583
  };
569
584
  const scrollEvent = evnt => {
570
- const scrollBodyElem = evnt.target;
585
+ const scrollBodyElem = evnt.currentTarget;
571
586
  const scrollTop = scrollBodyElem.scrollTop;
572
587
  const scrollLeft = scrollBodyElem.scrollLeft;
573
588
  const isX = scrollLeft !== internalData.lastScrollLeft;
@@ -1706,6 +1721,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1706
1721
  };
1707
1722
  const listMethods = {
1708
1723
  dispatchEvent,
1724
+ getScrollViewElem() {
1725
+ const viewEl = refVirtualWrapper.value;
1726
+ return viewEl || null;
1727
+ },
1709
1728
  loadData,
1710
1729
  /**
1711
1730
  * 重新加载数据
@@ -2079,181 +2098,26 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2079
2098
  hideDropTip();
2080
2099
  }
2081
2100
  };
2082
- const updateThumbSize = () => {
2083
- const viewEl = refVirtualWrapper.value;
2084
- if (!viewEl) {
2085
- return;
2086
- }
2087
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
2088
- return;
2089
- }
2090
- const trackXEl = refTrackXElem.value;
2091
- const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
2092
- const thumbXElem = refThumbXElem.value;
2093
- if (thumbXElem) {
2094
- thumbXElem.style.width = xThumbWidth + 'px';
2095
- }
2096
- reactData.xThumbWidth = xThumbWidth;
2097
- const trackYEl = refTrackYElem.value;
2098
- const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
2099
- const thumbYElem = refThumbYElem.value;
2100
- if (thumbYElem) {
2101
- thumbYElem.style.height = yThumbHeight + 'px';
2102
- }
2103
- reactData.yThumbHeight = yThumbHeight;
2104
- };
2105
- const updateThumbOffset = () => {
2106
- const viewEl = refVirtualWrapper.value;
2107
- if (!viewEl) {
2108
- return;
2109
- }
2110
- if (!viewEl.clientHeight || !viewEl.clientHeight) {
2111
- return;
2112
- }
2113
- const {
2114
- xThumbWidth,
2115
- yThumbHeight
2116
- } = reactData;
2117
- const trackXEl = refTrackXElem.value;
2118
- const thumbXElem = refThumbXElem.value;
2119
- const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
2120
- internalData.xThumbLeft = xThumbLeft;
2121
- if (thumbXElem && xThumbWidth) {
2122
- thumbXElem.style.width = xThumbWidth + 'px';
2123
- thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
2124
- }
2125
- const trackYEl = refTrackYElem.value;
2126
- const thumbYElem = refThumbYElem.value;
2127
- const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
2128
- internalData.yThumbTop = yThumbTop;
2129
- if (thumbYElem && yThumbHeight) {
2130
- thumbYElem.style.height = yThumbHeight + 'px';
2131
- thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
2132
- }
2133
- };
2134
- const clickTrackXEvent = evnt => {
2135
- const trackEl = evnt.currentTarget;
2136
- if (trackEl !== evnt.target) {
2137
- return;
2138
- }
2139
- const viewEl = refVirtualWrapper.value;
2140
- if (!viewEl) {
2141
- return;
2142
- }
2143
- const {
2144
- xThumbWidth
2145
- } = reactData;
2146
- const trackRect = trackEl.getBoundingClientRect();
2147
- viewEl.scrollTo({
2148
- left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
2149
- behavior: 'auto'
2150
- });
2151
- };
2152
- const clickTrackYEvent = evnt => {
2153
- const trackEl = evnt.currentTarget;
2154
- if (trackEl !== evnt.target) {
2155
- return;
2156
- }
2157
- const viewEl = refVirtualWrapper.value;
2158
- if (!viewEl) {
2159
- return;
2160
- }
2161
- const {
2162
- yThumbHeight
2163
- } = reactData;
2164
- const trackRect = trackEl.getBoundingClientRect();
2165
- viewEl.scrollTo({
2166
- top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
2167
- behavior: 'auto'
2168
- });
2169
- };
2170
- const pointerdownThumbXEvent = evnt => {
2171
- const thumbEl = evnt.currentTarget;
2172
- internalData.isThumbDrag = true;
2173
- thumbEl.setPointerCapture(evnt.pointerId);
2174
- const viewEl = refVirtualWrapper.value;
2175
- if (!viewEl) {
2176
- return;
2177
- }
2178
- const {
2179
- xThumbWidth
2180
- } = reactData;
2181
- const trackEl = thumbEl.parentElement;
2182
- const trackRect = trackEl.getBoundingClientRect();
2183
- const pointerPosition = evnt.clientX - trackRect.left;
2184
- // 记录 thumb 的偏移
2185
- const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2186
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
2187
- };
2188
- const pointermoveThumbXEvent = evnt => {
2189
- const thumbEl = evnt.currentTarget;
2190
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2191
- return;
2192
- }
2101
+ const bindScrollbarResize = () => {
2193
2102
  const {
2194
- isThumbDrag,
2195
- thumbDragOffset
2103
+ scrollObserver
2196
2104
  } = internalData;
2197
- if (isThumbDrag) {
2198
- const viewEl = refVirtualWrapper.value;
2199
- if (!viewEl) {
2200
- return;
2201
- }
2202
- const {
2203
- xThumbWidth
2204
- } = reactData;
2205
- const thumbEl = evnt.currentTarget;
2206
- const trackEl = thumbEl.parentElement;
2207
- const trackRect = trackEl.getBoundingClientRect();
2208
- // 更新偏移
2209
- viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
2210
- }
2211
- };
2212
- const cleatPointerThumbEvent = evnt => {
2213
- const thumbEl = evnt.currentTarget;
2214
- thumbEl.releasePointerCapture(evnt.pointerId);
2215
- internalData.isThumbDrag = false;
2216
- };
2217
- const pointerdownThumbYEvent = evnt => {
2218
- const thumbEl = evnt.currentTarget;
2219
- internalData.isThumbDrag = true;
2220
- thumbEl.setPointerCapture(evnt.pointerId);
2221
- const viewEl = refVirtualWrapper.value;
2222
- if (!viewEl) {
2223
- return;
2224
- }
2225
- const {
2226
- yThumbHeight
2227
- } = reactData;
2228
- const trackEl = thumbEl.parentElement;
2229
- const trackRect = trackEl.getBoundingClientRect();
2230
- const pointerPosition = evnt.clientY - trackRect.top;
2231
- // 记录 thumb 的偏移
2232
- const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2233
- internalData.thumbDragOffset = pointerPosition - thumbOffset;
2234
- };
2235
- const pointermoveThumbYEvent = evnt => {
2236
- const thumbEl = evnt.currentTarget;
2237
- if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
2238
- return;
2239
- }
2240
- const {
2241
- isThumbDrag,
2242
- thumbDragOffset
2243
- } = internalData;
2244
- if (isThumbDrag) {
2245
- const viewEl = refVirtualWrapper.value;
2246
- if (!viewEl) {
2247
- return;
2105
+ const isVScrollbar = computeIsVScrollbar.value;
2106
+ if (isVScrollbar) {
2107
+ if (!scrollObserver) {
2108
+ const el = refElem.value;
2109
+ const viewInnerEl = refVirtualSpaceElem.value;
2110
+ const scrollObserver = globalResize.create(() => {
2111
+ reScrollFlag.value++;
2112
+ });
2113
+ if (el) {
2114
+ scrollObserver.observe(el);
2115
+ }
2116
+ if (viewInnerEl) {
2117
+ scrollObserver.observe(viewInnerEl);
2118
+ }
2119
+ internalData.scrollObserver = scrollObserver;
2248
2120
  }
2249
- const {
2250
- yThumbHeight
2251
- } = reactData;
2252
- const thumbEl = evnt.currentTarget;
2253
- const trackEl = thumbEl.parentElement;
2254
- const trackRect = trackEl.getBoundingClientRect();
2255
- // 更新偏移
2256
- viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
2257
2121
  }
2258
2122
  };
2259
2123
  Object.assign($xeList, listMethods, listPrivateMethods);
@@ -2488,8 +2352,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2488
2352
  const {
2489
2353
  showCheckbox,
2490
2354
  className,
2491
- loading,
2492
- useScrollbar
2355
+ loading
2493
2356
  } = props;
2494
2357
  const {
2495
2358
  bodyHeight,
@@ -2504,6 +2367,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2504
2367
  const headerSlot = slots.header;
2505
2368
  const footerSlot = slots.footer;
2506
2369
  const vSize = computeSize.value;
2370
+ const isVScrollbar = computeIsVScrollbar.value;
2507
2371
  const wrapperStyles = computeWrapperStyles.value;
2508
2372
  const virtualStyles = computeVirtualStyles.value;
2509
2373
  const radioOpts = computeRadioOpts.value;
@@ -2538,14 +2402,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2538
2402
  }
2539
2403
  return (0, _vue.h)('div', Object.assign({
2540
2404
  ref: refElem,
2541
- class: ['vxe-list', useScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '', useScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '', useScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '', useScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '', className ? _xeUtils.default.isFunction(className) ? className({
2405
+ class: ['vxe-list', isVScrollbar ? `ov-x--${scrollXVisible === false ? 'hidden' : 'visible'}` : '', isVScrollbar ? `ov-y--${scrollYVisible === false ? 'hidden' : 'visible'}` : '', isVScrollbar ? `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}` : '', isVScrollbar ? `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}` : '', className ? _xeUtils.default.isFunction(className) ? className({
2542
2406
  $list: $xeList
2543
2407
  }) : className : '', {
2544
2408
  [`size--${vSize}`]: vSize,
2545
- 'is--virtual-scrollbar': useScrollbar,
2546
- 'ov-padding': useScrollbar && scrollbarOpts.padding,
2547
- 'ov-x--auto-hide': useScrollbar && scrollXAutoHide,
2548
- 'ov-y--auto-hide': useScrollbar && scrollYAutoHide,
2409
+ 'is--virtual-scrollbar': isVScrollbar,
2410
+ 'ov-padding': isVScrollbar && scrollbarOpts.padding,
2411
+ 'ov-x--auto-hide': isVScrollbar && scrollXAutoHide,
2412
+ 'ov-y--auto-hide': isVScrollbar && scrollYAutoHide,
2549
2413
  'overflow-y': yThumbHeight,
2550
2414
  'overflow-x': xThumbWidth,
2551
2415
  'is--drag': isDrag,
@@ -2578,6 +2442,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2578
2442
  style: virtualStyles,
2579
2443
  onScroll: scrollEvent
2580
2444
  }, [(0, _vue.h)('div', {
2445
+ ref: refVirtualSpaceElem,
2581
2446
  class: 'vxe-list--y-space',
2582
2447
  style: {
2583
2448
  height: bodyHeight ? `${bodyHeight}px` : ''
@@ -2607,7 +2472,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2607
2472
  /**
2608
2473
  * 滚动条
2609
2474
  */
2610
- useScrollbar ? (0, _vue.h)('div', {
2475
+ isVScrollbar ? (0, _vue.h)('div', {
2611
2476
  class: scrollbarWrapperClss
2612
2477
  }, [scrollXVisible === false ? (0, _ui.renderEmptyElement)($xeList) : (0, _vue.h)('div', {
2613
2478
  ref: refTrackXElem,
@@ -2656,43 +2521,54 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2656
2521
  (0, _vue.watch)(dataFlag, () => {
2657
2522
  loadData(props.data || []);
2658
2523
  });
2659
- const reFlag = (0, _vue.ref)(0);
2524
+ const reScrollFlag = (0, _vue.ref)(0);
2525
+ const reLayoutFlag = (0, _vue.ref)(0);
2660
2526
  (0, _vue.watch)(() => props.height, () => {
2661
- reFlag.value++;
2527
+ reLayoutFlag.value++;
2662
2528
  });
2663
2529
  (0, _vue.watch)(() => props.maxHeight, () => {
2664
- reFlag.value++;
2530
+ reLayoutFlag.value++;
2665
2531
  });
2666
2532
  (0, _vue.watch)(() => props.syncResize, () => {
2667
- reFlag.value++;
2533
+ reLayoutFlag.value++;
2668
2534
  });
2669
- (0, _vue.watch)(() => props.useScrollbar, () => {
2670
- reFlag.value++;
2535
+ (0, _vue.watch)(computeIsVScrollbar, () => {
2536
+ (0, _vue.nextTick)(() => {
2537
+ bindScrollbarResize();
2538
+ (0, _vue.nextTick)(() => {
2539
+ reLayoutFlag.value++;
2540
+ });
2541
+ });
2671
2542
  });
2672
2543
  (0, _vue.watch)(computeRowHeight, () => {
2673
- reFlag.value++;
2544
+ reLayoutFlag.value++;
2674
2545
  });
2675
2546
  (0, _vue.watch)(computeScrollYWidth, () => {
2676
- reFlag.value++;
2547
+ reLayoutFlag.value++;
2677
2548
  });
2678
2549
  (0, _vue.watch)(computeScrollXHeight, () => {
2679
- reFlag.value++;
2550
+ reLayoutFlag.value++;
2680
2551
  });
2681
2552
  (0, _vue.watch)(computeScrollXVisible, () => {
2682
2553
  (0, _vue.nextTick)(() => {
2683
- reFlag.value++;
2554
+ reLayoutFlag.value++;
2684
2555
  });
2685
2556
  });
2686
2557
  (0, _vue.watch)(computeScrollYVisible, () => {
2687
2558
  (0, _vue.nextTick)(() => {
2688
- reFlag.value++;
2559
+ reLayoutFlag.value++;
2689
2560
  });
2690
2561
  });
2691
- (0, _vue.watch)(reFlag, () => {
2562
+ (0, _vue.watch)(reLayoutFlag, () => {
2692
2563
  recalculate().then(() => {
2693
2564
  recalculate();
2694
2565
  });
2695
2566
  });
2567
+ (0, _vue.watch)(reScrollFlag, () => {
2568
+ updateScrollbar().then(() => {
2569
+ updateScrollbar();
2570
+ });
2571
+ });
2696
2572
  (0, _vue.watch)(() => props.checkRowKey, () => {
2697
2573
  updateRadioModeValue();
2698
2574
  });
@@ -2719,8 +2595,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2719
2595
  showSeq,
2720
2596
  showRadio,
2721
2597
  showCheckbox,
2722
- autoResize,
2723
- useScrollbar
2598
+ autoResize
2724
2599
  } = props;
2725
2600
  const rowOpts = computeRowOpts.value;
2726
2601
  const {
@@ -2745,25 +2620,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2745
2620
  if (useKey && !keyField) {
2746
2621
  errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
2747
2622
  }
2748
- const el = refElem.value;
2749
- if (useScrollbar) {
2750
- const viewInnerEl = refVirtualBody.value;
2751
- const scrollObserver = globalResize.create(() => {
2752
- reFlag.value++;
2753
- });
2754
- if (el) {
2755
- scrollObserver.observe(el);
2756
- }
2757
- if (viewInnerEl) {
2758
- scrollObserver.observe(viewInnerEl);
2759
- }
2760
- internalData.scrollObserver = scrollObserver;
2761
- }
2762
2623
  if (autoResize) {
2624
+ const el = refElem.value;
2763
2625
  const parentEl = getParentElem();
2764
2626
  const resizeObserver = globalResize.create(() => {
2765
2627
  if (props.autoResize) {
2766
- reFlag.value++;
2628
+ reLayoutFlag.value++;
2767
2629
  }
2768
2630
  });
2769
2631
  if (el) {
@@ -2774,9 +2636,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2774
2636
  }
2775
2637
  internalData.resizeObserver = resizeObserver;
2776
2638
  }
2777
- reFlag.value++;
2639
+ reLayoutFlag.value++;
2640
+ bindScrollbarResize();
2778
2641
  globalEvents.on($xeList, 'resize', () => {
2779
- reFlag.value++;
2642
+ reLayoutFlag.value++;
2780
2643
  });
2781
2644
  });
2782
2645
  (0, _vue.onBeforeUnmount)(() => {