vxe-pc-ui 4.19.8 → 4.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.esm.js +318 -19
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/list/src/list.js +317 -17
- package/es/list/style.css +26 -0
- package/es/list/style.min.css +1 -1
- package/es/scrollbar/style.css +1 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/utils.js +9 -0
- package/es/vxe-list/style.css +26 -0
- package/es/vxe-list/style.min.css +1 -1
- package/es/vxe-scrollbar/style.css +1 -0
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +336 -18
- package/lib/index.umd.min.js +1 -1
- package/lib/list/src/list.js +328 -19
- package/lib/list/src/list.min.js +1 -1
- package/lib/list/style/style.css +26 -0
- package/lib/list/style/style.min.css +1 -1
- package/lib/scrollbar/style/style.css +1 -0
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/ui/src/utils.js +10 -0
- package/lib/ui/src/utils.min.js +1 -1
- package/lib/vxe-list/style/style.css +26 -0
- package/lib/vxe-list/style/style.min.css +1 -1
- package/lib/vxe-scrollbar/style/style.css +1 -0
- package/package.json +1 -1
- package/packages/list/src/list.ts +345 -17
- package/packages/ui/src/utils.ts +10 -0
- package/styles/components/list.scss +51 -0
- package/styles/components/scrollbar.scss +3 -0
- package/types/components/card.d.ts +1 -1
- package/types/components/layout-aside.d.ts +1 -1
- package/types/components/layout-body.d.ts +1 -1
- package/types/components/list.d.ts +24 -2
- package/types/components/table-plugins/extend-cell-area.d.ts +1 -1
- package/types/components/table.d.ts +24 -0
- package/types/components/tabs.d.ts +1 -1
- /package/es/icon/{iconfont.1791862962954.ttf → iconfont.1791880413927.ttf} +0 -0
- /package/es/icon/{iconfont.1791862962954.woff → iconfont.1791880413927.woff} +0 -0
- /package/es/icon/{iconfont.1791862962954.woff2 → iconfont.1791880413927.woff2} +0 -0
- /package/es/{iconfont.1791862962954.ttf → iconfont.1791880413927.ttf} +0 -0
- /package/es/{iconfont.1791862962954.woff → iconfont.1791880413927.woff} +0 -0
- /package/es/{iconfont.1791862962954.woff2 → iconfont.1791880413927.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1791862962954.ttf → iconfont.1791880413927.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1791862962954.woff → iconfont.1791880413927.woff} +0 -0
- /package/lib/icon/style/{iconfont.1791862962954.woff2 → iconfont.1791880413927.woff2} +0 -0
- /package/lib/{iconfont.1791862962954.ttf → iconfont.1791880413927.ttf} +0 -0
- /package/lib/{iconfont.1791862962954.woff → iconfont.1791880413927.woff} +0 -0
- /package/lib/{iconfont.1791862962954.woff2 → iconfont.1791880413927.woff2} +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -4745,7 +4745,7 @@ function checkDynamic() {
|
|
|
4745
4745
|
const {
|
|
4746
4746
|
log: log_log
|
|
4747
4747
|
} = VxeUI;
|
|
4748
|
-
const uiVersion = `ui v${"4.
|
|
4748
|
+
const uiVersion = `ui v${"4.20.0"}`;
|
|
4749
4749
|
function createComponentLog(name) {
|
|
4750
4750
|
const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
|
|
4751
4751
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
@@ -4763,7 +4763,7 @@ const errLog = log_log.create('error', uiVersion);
|
|
|
4763
4763
|
|
|
4764
4764
|
|
|
4765
4765
|
|
|
4766
|
-
const ui_version = "4.
|
|
4766
|
+
const ui_version = "4.20.0";
|
|
4767
4767
|
VxeUI.uiVersion = ui_version;
|
|
4768
4768
|
VxeUI.dynamicApp = dynamicApp;
|
|
4769
4769
|
function config(options) {
|
|
@@ -7412,6 +7412,15 @@ const Avatar = VxeAvatar;
|
|
|
7412
7412
|
function isEnableConf(conf) {
|
|
7413
7413
|
return conf && conf.enabled !== false;
|
|
7414
7414
|
}
|
|
7415
|
+
/**
|
|
7416
|
+
* 用于开关类型的配置项
|
|
7417
|
+
* 局部启用规则:conf={}
|
|
7418
|
+
* 局部禁用规则:conf={enabled:false}
|
|
7419
|
+
* 全局默认启用规则:conf.enabled=true
|
|
7420
|
+
*/
|
|
7421
|
+
function hasEnableConf(conf, opts) {
|
|
7422
|
+
return opts && (conf ? opts.enabled !== false : opts.enabled);
|
|
7423
|
+
}
|
|
7415
7424
|
function nextZIndex() {
|
|
7416
7425
|
return index_esm.getNext();
|
|
7417
7426
|
}
|
|
@@ -13153,6 +13162,7 @@ function getItemCacheObj(item) {
|
|
|
13153
13162
|
|
|
13154
13163
|
|
|
13155
13164
|
|
|
13165
|
+
|
|
13156
13166
|
const {
|
|
13157
13167
|
warnLog: list_warnLog,
|
|
13158
13168
|
errLog: list_errLog
|
|
@@ -13183,6 +13193,9 @@ function list_createReactData() {
|
|
|
13183
13193
|
updateCheckboxFlag: 1,
|
|
13184
13194
|
isAllChecked: false,
|
|
13185
13195
|
isAllIndeterminate: false,
|
|
13196
|
+
// 滚动条
|
|
13197
|
+
yThumbHeight: 0,
|
|
13198
|
+
xThumbWidth: 0,
|
|
13186
13199
|
insertRowFlag: 1,
|
|
13187
13200
|
removeRowFlag: 1,
|
|
13188
13201
|
dragRow: null,
|
|
@@ -13192,13 +13205,18 @@ function list_createReactData() {
|
|
|
13192
13205
|
}
|
|
13193
13206
|
function list_createInternalData() {
|
|
13194
13207
|
return {
|
|
13195
|
-
resizeObserver: undefined,
|
|
13196
13208
|
fullData: [],
|
|
13197
13209
|
afterList: [],
|
|
13198
13210
|
fullKeyMaps: {},
|
|
13199
13211
|
rowMaps: {},
|
|
13200
|
-
|
|
13212
|
+
// 滚动条
|
|
13213
|
+
// resizeObserver: undefined,
|
|
13214
|
+
// isThumbDrag: false,
|
|
13215
|
+
thumbDragOffset: 0,
|
|
13216
|
+
yThumbTop: 0,
|
|
13217
|
+
xThumbLeft: 0,
|
|
13201
13218
|
lastScrollTop: 0,
|
|
13219
|
+
lastScrollLeft: 0,
|
|
13202
13220
|
scrollYStore: {
|
|
13203
13221
|
startIndex: 0,
|
|
13204
13222
|
endIndex: 0,
|
|
@@ -13252,7 +13270,12 @@ let crossListDragRowObj = null;
|
|
|
13252
13270
|
dragConfig: Object,
|
|
13253
13271
|
menuConfig: Object,
|
|
13254
13272
|
virtualYConfig: Object,
|
|
13255
|
-
scrollY: Object
|
|
13273
|
+
scrollY: Object,
|
|
13274
|
+
useScrollbar: {
|
|
13275
|
+
type: Boolean,
|
|
13276
|
+
default: () => getConfig().list.useScrollbar
|
|
13277
|
+
},
|
|
13278
|
+
scrollbarConfig: Object
|
|
13256
13279
|
},
|
|
13257
13280
|
emits: ['update:checkRowKey', 'update:checkRowKeys', 'row-click', 'row-dblclick', 'current-change', 'radio-change', 'checkbox-change', 'checkbox-all', 'scroll', 'row-dragstart', 'row-dragover', 'row-dragend', 'row-remove-dragend', 'row-insert-dragend', 'row-menu', 'menu-click'],
|
|
13258
13281
|
setup(props, context) {
|
|
@@ -13273,6 +13296,11 @@ let crossListDragRowObj = null;
|
|
|
13273
13296
|
const refFooterElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13274
13297
|
const refVirtualWrapper = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13275
13298
|
const refVirtualBody = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13299
|
+
const refViewInnerElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13300
|
+
const refTrackXElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13301
|
+
const refTrackYElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13302
|
+
const refThumbXElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13303
|
+
const refThumbYElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13276
13304
|
const refDragRowLineElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13277
13305
|
const refDragTipElem = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)();
|
|
13278
13306
|
const refMaps = {
|
|
@@ -13331,11 +13359,19 @@ let crossListDragRowObj = null;
|
|
|
13331
13359
|
});
|
|
13332
13360
|
const computeWrapperStyles = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13333
13361
|
const rowHeight = computeRowHeight.value;
|
|
13334
|
-
const
|
|
13362
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
13363
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
13364
|
+
const stys = {};
|
|
13335
13365
|
if (rowHeight) {
|
|
13336
|
-
|
|
13366
|
+
stys['--vxe-ui-list-row-height'] = toCssUnit(rowHeight);
|
|
13337
13367
|
}
|
|
13338
|
-
|
|
13368
|
+
if (scrollbarYOpts.width) {
|
|
13369
|
+
stys['--vxe-ui-scrollbar-y-width'] = toCssUnit(scrollbarYOpts.width);
|
|
13370
|
+
}
|
|
13371
|
+
if (scrollbarXOpts.height) {
|
|
13372
|
+
stys['--vxe-ui-scrollbar-x-height'] = toCssUnit(scrollbarXOpts.height);
|
|
13373
|
+
}
|
|
13374
|
+
return stys;
|
|
13339
13375
|
});
|
|
13340
13376
|
const computeVirtualStyles = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13341
13377
|
const {
|
|
@@ -13357,6 +13393,46 @@ let crossListDragRowObj = null;
|
|
|
13357
13393
|
}
|
|
13358
13394
|
return style;
|
|
13359
13395
|
});
|
|
13396
|
+
const computeScrollbarOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13397
|
+
return Object.assign({}, getConfig().list.scrollbarConfig, props.scrollbarConfig);
|
|
13398
|
+
});
|
|
13399
|
+
const computeScrollbarXOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13400
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
13401
|
+
return Object.assign({}, getConfig().scrollbar.xConfig, scrollbarOpts.xConfig);
|
|
13402
|
+
});
|
|
13403
|
+
const computeScrollbarYOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13404
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
13405
|
+
return Object.assign({}, getConfig().scrollbar.yConfig, scrollbarOpts.yConfig);
|
|
13406
|
+
});
|
|
13407
|
+
const computeScrollbarWrapperClss = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13408
|
+
const scrollbarOpts = computeScrollbarOpts.value;
|
|
13409
|
+
const {
|
|
13410
|
+
padding
|
|
13411
|
+
} = scrollbarOpts;
|
|
13412
|
+
const {
|
|
13413
|
+
yThumbHeight,
|
|
13414
|
+
xThumbWidth
|
|
13415
|
+
} = reactData;
|
|
13416
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
13417
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
13418
|
+
const scrollbarXToTop = computeScrollbarXToTop.value;
|
|
13419
|
+
const scrollbarYToLeft = computeScrollbarYToLeft.value;
|
|
13420
|
+
return domUtils.buildClass(['vxe-scrollbar is--virtual', `ov-x--${scrollbarXOpts.visible || 'visible'}`, `ov-y--${scrollbarYOpts.visible || 'visible'}`, `sx-pos--${scrollbarXToTop ? 'top' : 'bottom'}`, `sy-pos--${scrollbarYToLeft ? 'left' : 'right'}`], {
|
|
13421
|
+
'is--padding': padding,
|
|
13422
|
+
'ov-x--auto-hide': scrollbarXOpts.autoHide,
|
|
13423
|
+
'ov-y--auto-hide': scrollbarYOpts.autoHide,
|
|
13424
|
+
'overflow-y': yThumbHeight,
|
|
13425
|
+
'overflow-x': xThumbWidth
|
|
13426
|
+
});
|
|
13427
|
+
});
|
|
13428
|
+
const computeScrollbarXToTop = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13429
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
13430
|
+
return scrollbarXOpts.position === 'top';
|
|
13431
|
+
});
|
|
13432
|
+
const computeScrollbarYToLeft = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
|
|
13433
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
13434
|
+
return scrollbarYOpts.position === 'left';
|
|
13435
|
+
});
|
|
13360
13436
|
const dispatchEvent = (type, params, evnt) => {
|
|
13361
13437
|
emit(type, createEvent(evnt, {
|
|
13362
13438
|
$list: $xeList
|
|
@@ -13534,6 +13610,7 @@ let crossListDragRowObj = null;
|
|
|
13534
13610
|
lastScrollLeft,
|
|
13535
13611
|
lastScrollTop
|
|
13536
13612
|
} = internalData;
|
|
13613
|
+
updateScrollbar();
|
|
13537
13614
|
return clearScroll().then(() => {
|
|
13538
13615
|
if (lastScrollLeft || lastScrollTop) {
|
|
13539
13616
|
internalData.lastScrollLeft = 0;
|
|
@@ -13542,6 +13619,10 @@ let crossListDragRowObj = null;
|
|
|
13542
13619
|
}
|
|
13543
13620
|
});
|
|
13544
13621
|
};
|
|
13622
|
+
const updateScrollbar = () => {
|
|
13623
|
+
updateThumbSize();
|
|
13624
|
+
updateThumbOffset();
|
|
13625
|
+
};
|
|
13545
13626
|
/**
|
|
13546
13627
|
* 重新计算列表
|
|
13547
13628
|
*/
|
|
@@ -13559,6 +13640,7 @@ let crossListDragRowObj = null;
|
|
|
13559
13640
|
parentHeight = parentEl.clientHeight - Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(parentStyle.paddingLeft) + external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(parentStyle.paddingRight));
|
|
13560
13641
|
}
|
|
13561
13642
|
reactData.parentHeight = parentHeight;
|
|
13643
|
+
updateScrollbar();
|
|
13562
13644
|
updateHeight();
|
|
13563
13645
|
if (el.clientWidth && el.clientHeight) {
|
|
13564
13646
|
return computeScrollLoad();
|
|
@@ -13596,6 +13678,7 @@ let crossListDragRowObj = null;
|
|
|
13596
13678
|
const scrollLeft = scrollBodyElem.scrollLeft;
|
|
13597
13679
|
const isX = scrollLeft !== internalData.lastScrollLeft;
|
|
13598
13680
|
const isY = scrollTop !== internalData.lastScrollTop;
|
|
13681
|
+
updateThumbOffset();
|
|
13599
13682
|
internalData.lastScrollTop = scrollTop;
|
|
13600
13683
|
internalData.lastScrollLeft = scrollLeft;
|
|
13601
13684
|
if (reactData.scrollYLoad) {
|
|
@@ -15102,6 +15185,183 @@ let crossListDragRowObj = null;
|
|
|
15102
15185
|
hideDropTip();
|
|
15103
15186
|
}
|
|
15104
15187
|
};
|
|
15188
|
+
const updateThumbSize = () => {
|
|
15189
|
+
const viewEl = refVirtualWrapper.value;
|
|
15190
|
+
if (!viewEl) {
|
|
15191
|
+
return;
|
|
15192
|
+
}
|
|
15193
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
15194
|
+
return;
|
|
15195
|
+
}
|
|
15196
|
+
const trackXEl = refTrackXElem.value;
|
|
15197
|
+
const xThumbWidth = trackXEl ? getThumbSize(viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth) : 0;
|
|
15198
|
+
const thumbXElem = refThumbXElem.value;
|
|
15199
|
+
if (thumbXElem) {
|
|
15200
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
15201
|
+
}
|
|
15202
|
+
reactData.xThumbWidth = xThumbWidth;
|
|
15203
|
+
const trackYEl = refTrackYElem.value;
|
|
15204
|
+
const yThumbHeight = trackYEl ? getThumbSize(viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight) : 0;
|
|
15205
|
+
const thumbYElem = refThumbYElem.value;
|
|
15206
|
+
if (thumbYElem) {
|
|
15207
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
15208
|
+
}
|
|
15209
|
+
reactData.yThumbHeight = yThumbHeight;
|
|
15210
|
+
};
|
|
15211
|
+
const updateThumbOffset = () => {
|
|
15212
|
+
const viewEl = refVirtualWrapper.value;
|
|
15213
|
+
if (!viewEl) {
|
|
15214
|
+
return;
|
|
15215
|
+
}
|
|
15216
|
+
if (!viewEl.clientHeight || !viewEl.clientHeight) {
|
|
15217
|
+
return;
|
|
15218
|
+
}
|
|
15219
|
+
const {
|
|
15220
|
+
xThumbWidth,
|
|
15221
|
+
yThumbHeight
|
|
15222
|
+
} = reactData;
|
|
15223
|
+
const trackXEl = refTrackXElem.value;
|
|
15224
|
+
const thumbXElem = refThumbXElem.value;
|
|
15225
|
+
const xThumbLeft = trackXEl && xThumbWidth ? getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackXEl.clientWidth, xThumbWidth) : 0;
|
|
15226
|
+
internalData.xThumbLeft = xThumbLeft;
|
|
15227
|
+
if (thumbXElem && xThumbWidth) {
|
|
15228
|
+
thumbXElem.style.width = xThumbWidth + 'px';
|
|
15229
|
+
thumbXElem.style.transform = `translateX(${xThumbLeft}px)`;
|
|
15230
|
+
}
|
|
15231
|
+
const trackYEl = refTrackYElem.value;
|
|
15232
|
+
const thumbYElem = refThumbYElem.value;
|
|
15233
|
+
const yThumbTop = trackYEl && yThumbHeight ? getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackYEl.clientHeight, yThumbHeight) : 0;
|
|
15234
|
+
internalData.yThumbTop = yThumbTop;
|
|
15235
|
+
if (thumbYElem && yThumbHeight) {
|
|
15236
|
+
thumbYElem.style.height = yThumbHeight + 'px';
|
|
15237
|
+
thumbYElem.style.transform = `translateY(${yThumbTop}px)`;
|
|
15238
|
+
}
|
|
15239
|
+
};
|
|
15240
|
+
const clickTrackXEvent = evnt => {
|
|
15241
|
+
const trackEl = evnt.currentTarget;
|
|
15242
|
+
if (trackEl !== evnt.target) {
|
|
15243
|
+
return;
|
|
15244
|
+
}
|
|
15245
|
+
const viewEl = refVirtualWrapper.value;
|
|
15246
|
+
if (!viewEl) {
|
|
15247
|
+
return;
|
|
15248
|
+
}
|
|
15249
|
+
const {
|
|
15250
|
+
xThumbWidth
|
|
15251
|
+
} = reactData;
|
|
15252
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
15253
|
+
viewEl.scrollTo({
|
|
15254
|
+
left: getScrollFromClick(evnt.clientX - trackRect.left, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth),
|
|
15255
|
+
behavior: 'auto'
|
|
15256
|
+
});
|
|
15257
|
+
};
|
|
15258
|
+
const clickTrackYEvent = evnt => {
|
|
15259
|
+
const trackEl = evnt.currentTarget;
|
|
15260
|
+
if (trackEl !== evnt.target) {
|
|
15261
|
+
return;
|
|
15262
|
+
}
|
|
15263
|
+
const viewEl = refVirtualWrapper.value;
|
|
15264
|
+
if (!viewEl) {
|
|
15265
|
+
return;
|
|
15266
|
+
}
|
|
15267
|
+
const {
|
|
15268
|
+
yThumbHeight
|
|
15269
|
+
} = reactData;
|
|
15270
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
15271
|
+
viewEl.scrollTo({
|
|
15272
|
+
top: getScrollFromClick(evnt.clientY - trackRect.top, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight),
|
|
15273
|
+
behavior: 'auto'
|
|
15274
|
+
});
|
|
15275
|
+
};
|
|
15276
|
+
const pointerdownThumbXEvent = evnt => {
|
|
15277
|
+
const thumbEl = evnt.currentTarget;
|
|
15278
|
+
internalData.isThumbDrag = true;
|
|
15279
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
15280
|
+
const viewEl = refVirtualWrapper.value;
|
|
15281
|
+
if (!viewEl) {
|
|
15282
|
+
return;
|
|
15283
|
+
}
|
|
15284
|
+
const {
|
|
15285
|
+
xThumbWidth
|
|
15286
|
+
} = reactData;
|
|
15287
|
+
const trackEl = thumbEl.parentElement;
|
|
15288
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
15289
|
+
const pointerPosition = evnt.clientX - trackRect.left;
|
|
15290
|
+
// 记录 thumb 的偏移
|
|
15291
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollLeft, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
15292
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
15293
|
+
};
|
|
15294
|
+
const pointermoveThumbXEvent = evnt => {
|
|
15295
|
+
const thumbEl = evnt.currentTarget;
|
|
15296
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
15297
|
+
return;
|
|
15298
|
+
}
|
|
15299
|
+
const {
|
|
15300
|
+
isThumbDrag,
|
|
15301
|
+
thumbDragOffset
|
|
15302
|
+
} = internalData;
|
|
15303
|
+
if (isThumbDrag) {
|
|
15304
|
+
const viewEl = refVirtualWrapper.value;
|
|
15305
|
+
if (!viewEl) {
|
|
15306
|
+
return;
|
|
15307
|
+
}
|
|
15308
|
+
const {
|
|
15309
|
+
xThumbWidth
|
|
15310
|
+
} = reactData;
|
|
15311
|
+
const thumbEl = evnt.currentTarget;
|
|
15312
|
+
const trackEl = thumbEl.parentElement;
|
|
15313
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
15314
|
+
// 更新偏移
|
|
15315
|
+
viewEl.scrollLeft = getScrollFromDrag(evnt.clientX - trackRect.left, thumbDragOffset, viewEl.clientWidth, viewEl.scrollWidth, trackEl.clientWidth, xThumbWidth);
|
|
15316
|
+
}
|
|
15317
|
+
};
|
|
15318
|
+
const cleatPointerThumbEvent = evnt => {
|
|
15319
|
+
const thumbEl = evnt.currentTarget;
|
|
15320
|
+
thumbEl.releasePointerCapture(evnt.pointerId);
|
|
15321
|
+
internalData.isThumbDrag = false;
|
|
15322
|
+
};
|
|
15323
|
+
const pointerdownThumbYEvent = evnt => {
|
|
15324
|
+
const thumbEl = evnt.currentTarget;
|
|
15325
|
+
internalData.isThumbDrag = true;
|
|
15326
|
+
thumbEl.setPointerCapture(evnt.pointerId);
|
|
15327
|
+
const viewEl = refVirtualWrapper.value;
|
|
15328
|
+
if (!viewEl) {
|
|
15329
|
+
return;
|
|
15330
|
+
}
|
|
15331
|
+
const {
|
|
15332
|
+
yThumbHeight
|
|
15333
|
+
} = reactData;
|
|
15334
|
+
const trackEl = thumbEl.parentElement;
|
|
15335
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
15336
|
+
const pointerPosition = evnt.clientY - trackRect.top;
|
|
15337
|
+
// 记录 thumb 的偏移
|
|
15338
|
+
const thumbOffset = getThumbOffsetSize(viewEl.scrollTop, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
15339
|
+
internalData.thumbDragOffset = pointerPosition - thumbOffset;
|
|
15340
|
+
};
|
|
15341
|
+
const pointermoveThumbYEvent = evnt => {
|
|
15342
|
+
const thumbEl = evnt.currentTarget;
|
|
15343
|
+
if (!thumbEl.hasPointerCapture(evnt.pointerId)) {
|
|
15344
|
+
return;
|
|
15345
|
+
}
|
|
15346
|
+
const {
|
|
15347
|
+
isThumbDrag,
|
|
15348
|
+
thumbDragOffset
|
|
15349
|
+
} = internalData;
|
|
15350
|
+
if (isThumbDrag) {
|
|
15351
|
+
const viewEl = refVirtualWrapper.value;
|
|
15352
|
+
if (!viewEl) {
|
|
15353
|
+
return;
|
|
15354
|
+
}
|
|
15355
|
+
const {
|
|
15356
|
+
yThumbHeight
|
|
15357
|
+
} = reactData;
|
|
15358
|
+
const thumbEl = evnt.currentTarget;
|
|
15359
|
+
const trackEl = thumbEl.parentElement;
|
|
15360
|
+
const trackRect = trackEl.getBoundingClientRect();
|
|
15361
|
+
// 更新偏移
|
|
15362
|
+
viewEl.scrollTop = getScrollFromDrag(evnt.clientY - trackRect.top, thumbDragOffset, viewEl.clientHeight, viewEl.scrollHeight, trackEl.clientHeight, yThumbHeight);
|
|
15363
|
+
}
|
|
15364
|
+
};
|
|
15105
15365
|
Object.assign($xeList, listMethods, listPrivateMethods);
|
|
15106
15366
|
const renderDragTip = () => {
|
|
15107
15367
|
const {
|
|
@@ -15336,7 +15596,8 @@ let crossListDragRowObj = null;
|
|
|
15336
15596
|
const {
|
|
15337
15597
|
showCheckbox,
|
|
15338
15598
|
className,
|
|
15339
|
-
loading
|
|
15599
|
+
loading,
|
|
15600
|
+
useScrollbar
|
|
15340
15601
|
} = props;
|
|
15341
15602
|
const {
|
|
15342
15603
|
bodyHeight,
|
|
@@ -15368,6 +15629,9 @@ let crossListDragRowObj = null;
|
|
|
15368
15629
|
padding
|
|
15369
15630
|
} = rowOpts;
|
|
15370
15631
|
const isDrag = computeIsDrag.value;
|
|
15632
|
+
const scrollbarXOpts = computeScrollbarXOpts.value;
|
|
15633
|
+
const scrollbarYOpts = computeScrollbarYOpts.value;
|
|
15634
|
+
const scrollbarWrapperClss = computeScrollbarWrapperClss.value;
|
|
15371
15635
|
const showDefChekboxHead = showCheckbox && showHeader !== false;
|
|
15372
15636
|
const leOns = {};
|
|
15373
15637
|
if (isCrossListDrag && !rowList.length) {
|
|
@@ -15379,6 +15643,9 @@ let crossListDragRowObj = null;
|
|
|
15379
15643
|
$list: $xeList
|
|
15380
15644
|
}) : className : '', {
|
|
15381
15645
|
[`size--${vSize}`]: vSize,
|
|
15646
|
+
'is--virtual-scrollbar': useScrollbar,
|
|
15647
|
+
'ov-x--auto-hide': useScrollbar && scrollbarXOpts.autoHide,
|
|
15648
|
+
'ov-y--auto-hide': useScrollbar && scrollbarYOpts.autoHide,
|
|
15382
15649
|
'is--drag': isDrag,
|
|
15383
15650
|
'is--loading': loading
|
|
15384
15651
|
}],
|
|
@@ -15426,16 +15693,53 @@ let crossListDragRowObj = null;
|
|
|
15426
15693
|
style: {
|
|
15427
15694
|
marginTop: topSpaceHeight ? `${topSpaceHeight}px` : ''
|
|
15428
15695
|
}
|
|
15696
|
+
}, useScrollbar ? defaultSlot ? defaultSlot({
|
|
15697
|
+
items: rowList,
|
|
15698
|
+
$list: $xeList
|
|
15699
|
+
}) : rowList.map((row, i) => renderRow(row, i)) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15700
|
+
key: 'vi',
|
|
15701
|
+
ref: refViewInnerElem,
|
|
15702
|
+
class: 'vxe-scrollbar--view-inner'
|
|
15429
15703
|
}, defaultSlot ? defaultSlot({
|
|
15430
15704
|
items: rowList,
|
|
15431
15705
|
$list: $xeList
|
|
15432
|
-
}) : rowList.map((row, i) => renderRow(row, i)))]), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15706
|
+
}) : rowList.map((row, i) => renderRow(row, i)))])]), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15433
15707
|
ref: refFooterElem,
|
|
15434
15708
|
class: 'vxe-list--footer-wrapper'
|
|
15435
15709
|
}, footerSlot({
|
|
15436
15710
|
items: rowList,
|
|
15437
15711
|
$list: $xeList
|
|
15438
15712
|
})) : renderEmptyElement($xeList),
|
|
15713
|
+
/**
|
|
15714
|
+
* 滚动条
|
|
15715
|
+
*/
|
|
15716
|
+
useScrollbar ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15717
|
+
class: scrollbarWrapperClss
|
|
15718
|
+
}, [scrollbarXOpts.visible === 'hidden' ? renderEmptyElement($xeList) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15719
|
+
ref: refTrackXElem,
|
|
15720
|
+
class: 'vxe-scrollbar--track-x',
|
|
15721
|
+
onClick: clickTrackXEvent
|
|
15722
|
+
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15723
|
+
ref: refThumbXElem,
|
|
15724
|
+
class: 'vxe-scrollbar--thumb-x',
|
|
15725
|
+
onPointerdown: pointerdownThumbXEvent,
|
|
15726
|
+
onPointermove: pointermoveThumbXEvent,
|
|
15727
|
+
onPointerup: cleatPointerThumbEvent,
|
|
15728
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
15729
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
15730
|
+
})]), scrollbarYOpts.visible === 'hidden' ? renderEmptyElement($xeList) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15731
|
+
ref: refTrackYElem,
|
|
15732
|
+
class: 'vxe-scrollbar--track-y',
|
|
15733
|
+
onClick: clickTrackYEvent
|
|
15734
|
+
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
15735
|
+
ref: refThumbYElem,
|
|
15736
|
+
class: 'vxe-scrollbar--thumb-y',
|
|
15737
|
+
onPointerdown: pointerdownThumbYEvent,
|
|
15738
|
+
onPointermove: pointermoveThumbYEvent,
|
|
15739
|
+
onPointerup: cleatPointerThumbEvent,
|
|
15740
|
+
onPointercancel: cleatPointerThumbEvent,
|
|
15741
|
+
onLostpointercapture: cleatPointerThumbEvent
|
|
15742
|
+
})])]) : renderEmptyElement($xeList),
|
|
15439
15743
|
/**
|
|
15440
15744
|
* 拖拽提示
|
|
15441
15745
|
*/
|
|
@@ -15490,7 +15794,9 @@ let crossListDragRowObj = null;
|
|
|
15490
15794
|
updateCheckboxModeValue();
|
|
15491
15795
|
});
|
|
15492
15796
|
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.onActivated)(() => {
|
|
15493
|
-
recalculate().then(() =>
|
|
15797
|
+
recalculate().then(() => {
|
|
15798
|
+
refreshScroll();
|
|
15799
|
+
});
|
|
15494
15800
|
});
|
|
15495
15801
|
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
|
|
15496
15802
|
loadData(props.data || []);
|
|
@@ -15499,7 +15805,9 @@ let crossListDragRowObj = null;
|
|
|
15499
15805
|
const {
|
|
15500
15806
|
showSeq,
|
|
15501
15807
|
showRadio,
|
|
15502
|
-
showCheckbox
|
|
15808
|
+
showCheckbox,
|
|
15809
|
+
autoResize,
|
|
15810
|
+
useScrollbar
|
|
15503
15811
|
} = props;
|
|
15504
15812
|
const rowOpts = computeRowOpts.value;
|
|
15505
15813
|
const {
|
|
@@ -15524,17 +15832,27 @@ let crossListDragRowObj = null;
|
|
|
15524
15832
|
if (useKey && !keyField) {
|
|
15525
15833
|
list_errLog('vxe.error.reqSupportProp', ['row-config.useKey', 'row-config.keyField']);
|
|
15526
15834
|
}
|
|
15527
|
-
if (
|
|
15835
|
+
if (useScrollbar || autoResize) {
|
|
15528
15836
|
const el = refElem.value;
|
|
15529
|
-
const
|
|
15837
|
+
const viewInnerEl = refViewInnerElem.value;
|
|
15838
|
+
const resizeObserver = globalResize.create(() => {
|
|
15839
|
+
reFlag.value++;
|
|
15840
|
+
});
|
|
15530
15841
|
resizeObserver.observe(el);
|
|
15531
|
-
if (
|
|
15532
|
-
|
|
15842
|
+
if (autoResize) {
|
|
15843
|
+
if (el) {
|
|
15844
|
+
resizeObserver.observe(el.parentElement);
|
|
15845
|
+
}
|
|
15846
|
+
}
|
|
15847
|
+
if (viewInnerEl) {
|
|
15848
|
+
resizeObserver.observe(viewInnerEl);
|
|
15533
15849
|
}
|
|
15534
15850
|
internalData.resizeObserver = resizeObserver;
|
|
15535
15851
|
}
|
|
15536
|
-
|
|
15537
|
-
globalEvents.on($xeList, 'resize',
|
|
15852
|
+
reFlag.value++;
|
|
15853
|
+
globalEvents.on($xeList, 'resize', () => {
|
|
15854
|
+
reFlag.value++;
|
|
15855
|
+
});
|
|
15538
15856
|
});
|
|
15539
15857
|
(0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(() => {
|
|
15540
15858
|
const {
|