vxe-table 4.12.0-beta.22 → 4.12.0-beta.23
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/es/style.css +1 -1
- package/es/table/module/keyboard/hook.js +53 -31
- package/es/table/src/table.js +4 -13
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +60 -37
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/keyboard/hook.js +54 -29
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/table.js +4 -14
- package/lib/table/src/table.min.js +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/package.json +2 -2
- package/packages/table/module/keyboard/hook.ts +51 -28
- package/packages/table/src/table.ts +4 -13
- /package/es/{iconfont.1742525007622.ttf → iconfont.1742535213785.ttf} +0 -0
- /package/es/{iconfont.1742525007622.woff → iconfont.1742535213785.woff} +0 -0
- /package/es/{iconfont.1742525007622.woff2 → iconfont.1742535213785.woff2} +0 -0
- /package/lib/{iconfont.1742525007622.ttf → iconfont.1742535213785.ttf} +0 -0
- /package/lib/{iconfont.1742525007622.woff → iconfont.1742535213785.woff} +0 -0
- /package/lib/{iconfont.1742525007622.woff2 → iconfont.1742535213785.woff2} +0 -0
|
@@ -326,6 +326,38 @@ hooks.add('tableKeyboardModule', {
|
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
328
|
};
|
|
329
|
+
const handleMoveSelected = (evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow) => {
|
|
330
|
+
const {
|
|
331
|
+
afterFullData,
|
|
332
|
+
visibleColumn
|
|
333
|
+
} = internalData;
|
|
334
|
+
const params = Object.assign({}, args);
|
|
335
|
+
const _rowIndex = $xeTable.getVTRowIndex(params.row);
|
|
336
|
+
const _columnIndex = $xeTable.getVTColumnIndex(params.column);
|
|
337
|
+
evnt.preventDefault();
|
|
338
|
+
if (isUpArrow && _rowIndex > 0) {
|
|
339
|
+
// 移动到上一行
|
|
340
|
+
params.rowIndex = _rowIndex - 1;
|
|
341
|
+
params.row = afterFullData[params.rowIndex];
|
|
342
|
+
} else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
|
|
343
|
+
// 移动到下一行
|
|
344
|
+
params.rowIndex = _rowIndex + 1;
|
|
345
|
+
params.row = afterFullData[params.rowIndex];
|
|
346
|
+
} else if (isLeftArrow && _columnIndex) {
|
|
347
|
+
// 移动到左侧单元格
|
|
348
|
+
params.columnIndex = _columnIndex - 1;
|
|
349
|
+
params.column = visibleColumn[params.columnIndex];
|
|
350
|
+
} else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
|
|
351
|
+
// 移动到右侧单元格
|
|
352
|
+
params.columnIndex = _columnIndex + 1;
|
|
353
|
+
params.column = visibleColumn[params.columnIndex];
|
|
354
|
+
}
|
|
355
|
+
$xeTable.scrollToRow(params.row, params.column).then(() => {
|
|
356
|
+
params.cell = $xeTable.getCellElement(params.row, params.column);
|
|
357
|
+
$xeTable.handleSelected(params, evnt);
|
|
358
|
+
});
|
|
359
|
+
return params;
|
|
360
|
+
};
|
|
329
361
|
const keyboardMethods = {
|
|
330
362
|
// 处理 Tab 键移动
|
|
331
363
|
moveTabSelected(args, isLeft, evnt) {
|
|
@@ -486,46 +518,39 @@ hooks.add('tableKeyboardModule', {
|
|
|
486
518
|
}
|
|
487
519
|
},
|
|
488
520
|
// 处理可编辑方向键移动
|
|
489
|
-
|
|
521
|
+
moveArrowSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
|
|
490
522
|
const {
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
} =
|
|
523
|
+
highlightCurrentRow,
|
|
524
|
+
highlightCurrentColumn
|
|
525
|
+
} = props;
|
|
526
|
+
const rowOpts = computeRowOpts.value;
|
|
527
|
+
const columnOpts = computeColumnOpts.value;
|
|
528
|
+
handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
|
|
529
|
+
// 当前行按键上下移动
|
|
530
|
+
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
531
|
+
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
532
|
+
}
|
|
533
|
+
// 当前行按键左右移动
|
|
534
|
+
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
535
|
+
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
moveEnterSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
|
|
494
539
|
const rowOpts = computeRowOpts.value;
|
|
495
540
|
const currentRowOpts = computeCurrentRowOpts.value;
|
|
496
541
|
const columnOpts = computeColumnOpts.value;
|
|
497
542
|
const currentColumnOpts = computeCurrentColumnOpts.value;
|
|
498
|
-
const params =
|
|
499
|
-
const _rowIndex = $xeTable.getVTRowIndex(params.row);
|
|
500
|
-
const _columnIndex = $xeTable.getVTColumnIndex(params.column);
|
|
501
|
-
evnt.preventDefault();
|
|
502
|
-
if (isUpArrow && _rowIndex > 0) {
|
|
503
|
-
// 移动到上一行
|
|
504
|
-
params.rowIndex = _rowIndex - 1;
|
|
505
|
-
params.row = afterFullData[params.rowIndex];
|
|
506
|
-
} else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
|
|
507
|
-
// 移动到下一行
|
|
508
|
-
params.rowIndex = _rowIndex + 1;
|
|
509
|
-
params.row = afterFullData[params.rowIndex];
|
|
510
|
-
} else if (isLeftArrow && _columnIndex) {
|
|
511
|
-
// 移动到左侧单元格
|
|
512
|
-
params.columnIndex = _columnIndex - 1;
|
|
513
|
-
params.column = visibleColumn[params.columnIndex];
|
|
514
|
-
} else if (isRightArrow && _columnIndex < visibleColumn.length - 1) {
|
|
515
|
-
// 移动到右侧单元格
|
|
516
|
-
params.columnIndex = _columnIndex + 1;
|
|
517
|
-
params.column = visibleColumn[params.columnIndex];
|
|
518
|
-
}
|
|
543
|
+
const params = handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
|
|
519
544
|
if (rowOpts.isCurrent && currentRowOpts.isFollowSelected) {
|
|
520
545
|
$xeTable.triggerCurrentRowEvent(evnt, params);
|
|
521
546
|
}
|
|
522
547
|
if (columnOpts.isCurrent && currentColumnOpts.isFollowSelected) {
|
|
523
548
|
$xeTable.triggerCurrentColumnEvent(evnt, params);
|
|
524
549
|
}
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
550
|
+
},
|
|
551
|
+
// 已废弃,待删除
|
|
552
|
+
moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
|
|
553
|
+
handleMoveSelected(evnt, args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow);
|
|
529
554
|
},
|
|
530
555
|
handleCellMousedownEvent
|
|
531
556
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let hooks=_ui.VxeUI.hooks;function getTargetOffset(e,t){let l=0,o=0;var r,n,u=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(u&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,u&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}hooks.add("tableKeyboardModule",{setupTable(M){let{props:
|
|
1
|
+
var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let hooks=_ui.VxeUI.hooks;function getTargetOffset(e,t){let l=0,o=0;var r,n,u=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(u&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,u&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}hooks.add("tableKeyboardModule",{setupTable(M){let{props:S,reactData:y,internalData:D}=M,O=M.getRefMaps().refElem,{computeEditOpts:v,computeCheckboxOpts:a,computeMouseOpts:s,computeTreeOpts:c,computeRowOpts:H,computeColumnOpts:p,computeCellOpts:V,computeDefaultRowHeight:F,computeCurrentRowOpts:C,computeCurrentColumnOpts:w}=M.getComputeMaps();let d=(e,k)=>{var t=D.elemStore,l=(0,_util.getRefElem)(t["main-body-scroll"]),o=(0,_util.getRefElem)(t["left-body-scroll"]),t=(0,_util.getRefElem)(t["right-body-scroll"]),{column:r,cell:n}=k;if("checkbox"===r.type){let _=l;if(o&&"left"===r.fixed?_=o:t&&"right"===r.fixed&&(_=t),_){let t=O.value,i=e.clientX,a=e.clientY,s=_.querySelector(".vxe-table--checkbox-range"),c=n.parentElement,d=M.getCheckboxRecords(),g=[],h=1;l=getTargetOffset(e.target,_);let m=l.offsetTop+e.offsetY,f=l.offsetLeft+e.offsetX,v=_.scrollTop,u=c.offsetHeight,p=c.getBoundingClientRect(),C=a-p.y,w=null,x=!1,b=1,R=(e,t)=>{M.dispatchEvent("checkbox-range-"+e,{records:M.getCheckboxRecords(),reserves:M.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-a+(_.scrollTop-v);let o=Math.abs(l),r=Math.abs(t),n=m,u=f;l<h?(n+=l)<h&&(n=h,o=m):o=Math.min(o,_.scrollHeight-m-h),t<h?(u+=t,r>f&&(u=h,r=f)):r=Math.min(r,_.clientWidth-f-h),s.style.height=o+"px",s.style.width=r+"px",s.style.left=u+"px",s.style.top=n+"px",s.style.display="block";t=((e,t,l,o,r)=>{var n=S.showOverflow,{fullAllDataRowIdData:u,isResizeCellHeight:i}=D,a=H.value,s=V.value,c=F.value,e=e.row;let d=0,g=[],h=0;var m=0<r,f=y.scrollYLoad,v=D.afterFullData;if(h=m?o+r:l.height-o+Math.abs(r),f){l=M.getVTRowIndex(e);if(!(i||s.height||a.height)&&n)g=m?v.slice(l,l+Math.ceil(h/c)):v.slice(l-Math.floor(h/c),l+1);else if(m)for(let e=l;e<v.length;e++){var p=v[e],C=u[M.getRowid(p)]||{};if(d+=C.resizeHeight||s.height||a.height||C.height||c,g.push(p),d>h)return g}else for(let e=l;0<=e;e--){var w=v[e],x=u[M.getRowid(w)]||{};if(d+=x.resizeHeight||s.height||a.height||x.height||c,g.push(w),d>h)return g}}else for(var b=m?"next":"previous";t&&d<h;){var R=M.getRowNode(t);R&&(g.push(R.item),d+=t.offsetHeight,t=t[b+"ElementSibling"])}return g})(k,c,p,C,l<h?-o:o);10<o&&t.length!==g.length&&(g=t,e.ctrlKey?t.forEach(e=>{M.handleBatchSelectRows([e],-1===d.indexOf(e))}):(M.setAllCheckboxRow(!1),M.handleCheckedCheckboxRow(t,!0,!1)),R("change",e))},I=()=>{clearTimeout(w),w=null},E=n=>{I(),w=setTimeout(()=>{var e,t,l,o,r;w&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=_,r=Math.ceil(50*b/u),x?t+l<o?(M.scrollTo(e,t+r),E(n),T(n)):I():t?(M.scrollTo(e,t-r),E(n),T(n)):I())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(_).boundingTop;t<l?(x=!1,b=l-t,w||E(e)):t>l+_.clientHeight?(x=!0,b=t-l-_.clientHeight,w||E(e)):w&&I(),T(e)},document.onmouseup=e=>{I(),(0,_dom.removeClass)(t,"drag--range"),s.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,R("end",e)},R("start",e)}}};let g=(e,t,l,o,r,n)=>{var{afterFullData:u,visibleColumn:i}=D;let a=Object.assign({},t);var t=M.getVTRowIndex(a.row),s=M.getVTColumnIndex(a.column);return e.preventDefault(),o&&0<t?(a.rowIndex=t-1,a.row=u[a.rowIndex]):n&&t<u.length-1?(a.rowIndex=t+1,a.row=u[a.rowIndex]):l&&s?(a.columnIndex=s-1,a.column=i[a.columnIndex]):r&&s<i.length-1&&(a.columnIndex=s+1,a.column=i[a.columnIndex]),M.scrollToRow(a.row,a.column).then(()=>{a.cell=M.getCellElement(a.row,a.column),M.handleSelected(a,e)}),a};return{moveTabSelected(e,t,l){var o=S.editConfig,{afterFullData:r,visibleColumn:n}=D,u=v.value,i=H.value,a=C.value,s=p.value,c=w.value;let d,g,h,m=Object.assign({},e);var e=M.getVTRowIndex(m.row),f=M.getVTColumnIndex(m.column),t=(l.preventDefault(),t?f<=0?0<e&&(g=e-1,d=r[g],h=n.length-1):h=f-1:f>=n.length-1?e<r.length-1&&(g=e+1,d=r[g],h=0):h=f+1,n[h]);t&&(d?(m.rowIndex=g,m.row=d):m.rowIndex=e,m.columnIndex=h,m.column=t,m.cell=M.getCellElement(m.row,m.column),i.isCurrent&&a.isFollowSelected&&M.triggerCurrentRowEvent(l,m),s.isCurrent&&c.isFollowSelected&&M.triggerCurrentColumnEvent(l,m),o?"click"!==u.trigger&&"dblclick"!==u.trigger||("row"===u.mode?M.handleEdit(m,l):M.scrollToRow(m.row,m.column).then(()=>{M.handleSelected(m,l)})):M.scrollToRow(m.row,m.column).then(()=>{M.handleSelected(m,l)}))},moveCurrentRow(e,t,l){var o=S.treeConfig;let r=y.currentRow;var n=D.afterFullData,u=c.value,u=u.children||u.childrenField;let i;if(r?o?({index:o,items:u}=_xeUtils.default.findTree(n,e=>e===r,{children:u}),e&&0<o?i=u[o-1]:t&&o<u.length-1&&(i=u[o+1])):(u=M.getVTRowIndex(r),e&&0<u?i=n[u-1]:t&&u<n.length-1&&(i=n[u+1])):i=n[0],i){l.preventDefault();let e={$table:M,row:i,rowIndex:M.getRowIndex(i),$rowIndex:M.getVMRowIndex(i)};M.scrollToRow(i).then(()=>M.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){var o=y.currentColumn,r=D.visibleColumn;let n=null;if(o?(o=M.getVTColumnIndex(o),e&&0<o?n=r[o-1]:t&&o<r.length-1&&(n=r[o+1])):n=r[0],n){l.preventDefault();let e={$table:M,column:n,columnIndex:M.getColumnIndex(n),$columnIndex:M.getVMColumnIndex(n)};M.scrollToColumn(n).then(()=>M.triggerCurrentColumnEvent(l,e))}},moveArrowSelected(e,t,l,o,r,n){var{highlightCurrentRow:u,highlightCurrentColumn:i}=S,a=H.value,s=p.value;g(n,e,t,l,o,r),(l||r)&&(a.isCurrent||u)&&M.moveCurrentRow(l,r,n),(t||o)&&(s.isCurrent||i)&&M.moveCurrentColumn(t,o,n)},moveEnterSelected(e,t,l,o,r,n){var u=H.value,i=C.value,a=p.value,s=w.value,e=g(n,e,t,l,o,r);u.isCurrent&&i.isFollowSelected&&M.triggerCurrentRowEvent(n,e),a.isCurrent&&s.isFollowSelected&&M.triggerCurrentColumnEvent(n,e)},moveSelected(e,t,l,o,r,n){g(n,e,t,l,o,r)},handleCellMousedownEvent:(e,t)=>{var{editConfig:l,checkboxConfig:o,mouseConfig:r}=S,n=a.value,u=s.value,i=v.value;if(r&&u.area&&M.handleCellAreaMousedownEvent)return M.handleCellAreaMousedownEvent(e,t);o&&n.range&&d(e,t),r&&u.selected&&(l&&"cell"!==i.mode||M.handleSelected(t,e))}}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -7175,8 +7175,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7175
7175
|
keyboardConfig,
|
|
7176
7176
|
treeConfig,
|
|
7177
7177
|
editConfig,
|
|
7178
|
-
highlightCurrentRow
|
|
7179
|
-
highlightCurrentColumn
|
|
7178
|
+
highlightCurrentRow
|
|
7180
7179
|
} = props;
|
|
7181
7180
|
const {
|
|
7182
7181
|
ctxMenuStore,
|
|
@@ -7194,7 +7193,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7194
7193
|
const treeOpts = computeTreeOpts.value;
|
|
7195
7194
|
const menuList = computeMenuList.value;
|
|
7196
7195
|
const rowOpts = computeRowOpts.value;
|
|
7197
|
-
const columnOpts = computeColumnOpts.value;
|
|
7198
7196
|
const {
|
|
7199
7197
|
selected,
|
|
7200
7198
|
actived
|
|
@@ -7298,7 +7296,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7298
7296
|
if (keyboardOpts.enterToTab) {
|
|
7299
7297
|
$xeTable.moveTabSelected(activeParams, hasShiftKey, evnt);
|
|
7300
7298
|
} else {
|
|
7301
|
-
$xeTable.
|
|
7299
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, true, isRightArrow, false, evnt);
|
|
7302
7300
|
}
|
|
7303
7301
|
} else {
|
|
7304
7302
|
if (keyboardOpts.enterToTab) {
|
|
@@ -7334,7 +7332,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7334
7332
|
return;
|
|
7335
7333
|
}
|
|
7336
7334
|
}
|
|
7337
|
-
$xeTable.
|
|
7335
|
+
$xeTable.moveEnterSelected(activeParams, isLeftArrow, false, isRightArrow, true, evnt);
|
|
7338
7336
|
if (enterMethod) {
|
|
7339
7337
|
enterMethod(etrParams);
|
|
7340
7338
|
}
|
|
@@ -7361,15 +7359,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7361
7359
|
if (!isEditStatus) {
|
|
7362
7360
|
// 如果按下了方向键
|
|
7363
7361
|
if (selected.row && selected.column) {
|
|
7364
|
-
$xeTable.
|
|
7365
|
-
}
|
|
7366
|
-
// 当前行按键上下移动
|
|
7367
|
-
if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
7368
|
-
$xeTable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
7369
|
-
}
|
|
7370
|
-
// 当前行按键左右移动
|
|
7371
|
-
if ((isLeftArrow || isRightArrow) && (columnOpts.isCurrent || highlightCurrentColumn)) {
|
|
7372
|
-
$xeTable.moveCurrentColumn(isLeftArrow, isRightArrow, evnt);
|
|
7362
|
+
$xeTable.moveArrowSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
|
|
7373
7363
|
}
|
|
7374
7364
|
}
|
|
7375
7365
|
} else if (isTab && keyboardConfig && keyboardOpts.isTab) {
|