vxe-table 4.13.0-beta.1 → 4.13.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/grid/src/grid.js +1 -1
- package/es/style.css +1 -1
- package/es/table/module/filter/hook.js +11 -38
- package/es/table/src/cell.js +7 -7
- package/es/table/src/table.js +3 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +4 -2
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +22 -47
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/filter/hook.js +10 -39
- package/lib/table/module/filter/hook.min.js +1 -1
- package/lib/table/src/cell.js +4 -4
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/table.js +3 -0
- 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/grid/src/grid.ts +2 -1
- package/packages/table/module/filter/hook.ts +10 -34
- package/packages/table/src/cell.ts +7 -7
- package/packages/table/src/table.ts +3 -0
- /package/es/{iconfont.1743583449887.ttf → iconfont.1744078815150.ttf} +0 -0
- /package/es/{iconfont.1743583449887.woff → iconfont.1744078815150.woff} +0 -0
- /package/es/{iconfont.1743583449887.woff2 → iconfont.1744078815150.woff2} +0 -0
- /package/lib/{iconfont.1743583449887.ttf → iconfont.1744078815150.ttf} +0 -0
- /package/lib/{iconfont.1743583449887.woff → iconfont.1744078815150.woff} +0 -0
- /package/lib/{iconfont.1743583449887.woff2 → iconfont.1744078815150.woff2} +0 -0
|
@@ -2,7 +2,7 @@ import { nextTick } from 'vue';
|
|
|
2
2
|
import XEUtils from 'xe-utils';
|
|
3
3
|
import { VxeUI } from '../../../ui';
|
|
4
4
|
import { toFilters, handleFieldOrColumn, getRefElem } from '../../src/util';
|
|
5
|
-
import {
|
|
5
|
+
import { toCssUnit, triggerEvent } from '../../../ui/src/dom';
|
|
6
6
|
import { isEnableConf } from '../../../ui/src/utils';
|
|
7
7
|
const { renderer, hooks } = VxeUI;
|
|
8
8
|
const tableFilterMethodKeys = ['openFilter', 'setFilter', 'clearFilter', 'saveFilterPanel', 'resetFilterPanel', 'getCheckedFilters', 'updateFilterOptionStatus'];
|
|
@@ -66,11 +66,9 @@ hooks.add('tableFilterModule', {
|
|
|
66
66
|
filterStore.visible = false;
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
|
-
const { clientY, pageX } = evnt;
|
|
70
69
|
const el = refElem.value;
|
|
71
70
|
const tableRect = el.getBoundingClientRect();
|
|
72
|
-
const
|
|
73
|
-
const { visibleWidth } = getDomNode();
|
|
71
|
+
const btnElem = evnt.currentTarget;
|
|
74
72
|
const { filters, filterMultiple, filterRender } = column;
|
|
75
73
|
const compConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
|
|
76
74
|
const frMethod = column.filterRecoverMethod || (compConf ? (compConf.tableFilterRecoverMethod || compConf.filterRecoverMethod) : null);
|
|
@@ -104,44 +102,19 @@ hooks.add('tableFilterModule', {
|
|
|
104
102
|
if (!filterWrapperElem) {
|
|
105
103
|
return;
|
|
106
104
|
}
|
|
105
|
+
const btnRect = btnElem.getBoundingClientRect();
|
|
107
106
|
const filterWidth = filterWrapperElem.offsetWidth;
|
|
108
107
|
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
109
108
|
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
110
109
|
const centerWidth = filterWidth / 2;
|
|
111
|
-
const
|
|
112
|
-
const
|
|
113
|
-
let left, right;
|
|
114
|
-
const thEl = targetElem.offsetParent;
|
|
115
|
-
const trEl = thEl.offsetParent;
|
|
116
|
-
const style = {
|
|
117
|
-
top: `${targetElem.offsetTop + thEl.offsetTop + targetElem.offsetHeight}px`
|
|
118
|
-
};
|
|
110
|
+
const left = btnRect.left - tableRect.left - centerWidth;
|
|
111
|
+
const top = btnRect.top - tableRect.top + btnElem.clientHeight;
|
|
119
112
|
// 判断面板不能大于表格高度
|
|
120
|
-
const maxHeight = Math.max(40, el.clientHeight -
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
right = (thEl.offsetWidth - targetElem.offsetLeft) + (trEl.offsetWidth - trEl.offsetLeft) - column.renderWidth - centerWidth;
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth - headerScrollElem.scrollLeft;
|
|
129
|
-
}
|
|
130
|
-
if (left) {
|
|
131
|
-
const overflowWidth = (pageX + filterWidth - centerWidth + minMargin) - visibleWidth;
|
|
132
|
-
if (overflowWidth > 0) {
|
|
133
|
-
left -= overflowWidth;
|
|
134
|
-
}
|
|
135
|
-
style.left = `${Math.min(maxLeft, Math.max(minMargin, left))}px`;
|
|
136
|
-
}
|
|
137
|
-
else if (right) {
|
|
138
|
-
const overflowWidth = (pageX + filterWidth - centerWidth + minMargin) - visibleWidth;
|
|
139
|
-
if (overflowWidth > 0) {
|
|
140
|
-
right += overflowWidth;
|
|
141
|
-
}
|
|
142
|
-
style.right = `${Math.max(minMargin, right)}px`;
|
|
143
|
-
}
|
|
144
|
-
filterStore.style = style;
|
|
113
|
+
const maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
114
|
+
filterStore.style = {
|
|
115
|
+
top: toCssUnit(top),
|
|
116
|
+
left: toCssUnit(left)
|
|
117
|
+
};
|
|
145
118
|
filterStore.maxHeight = maxHeight;
|
|
146
119
|
});
|
|
147
120
|
}
|
|
@@ -251,7 +224,7 @@ hooks.add('tableFilterModule', {
|
|
|
251
224
|
return $xeTable.scrollToColumn(column).then(() => {
|
|
252
225
|
const headerWrapperElem = getRefElem(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
|
|
253
226
|
if (headerWrapperElem) {
|
|
254
|
-
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter
|
|
227
|
+
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`);
|
|
255
228
|
triggerEvent(filterBtnElem, 'click');
|
|
256
229
|
}
|
|
257
230
|
});
|
package/es/table/src/cell.js
CHANGED
|
@@ -882,16 +882,16 @@ export const Cell = {
|
|
|
882
882
|
h('span', {
|
|
883
883
|
class: ['vxe-cell--filter', {
|
|
884
884
|
'is--active': filterStore.visible && filterStore.column === column
|
|
885
|
-
}]
|
|
885
|
+
}],
|
|
886
|
+
onClick(evnt) {
|
|
887
|
+
if ($table.triggerFilterEvent) {
|
|
888
|
+
$table.triggerFilterEvent(evnt, params.column, params);
|
|
889
|
+
}
|
|
890
|
+
}
|
|
886
891
|
}, [
|
|
887
892
|
h('i', {
|
|
888
893
|
class: ['vxe-filter--btn', hasFilter ? (iconMatch || getIcon().TABLE_FILTER_MATCH) : (iconNone || getIcon().TABLE_FILTER_NONE)],
|
|
889
|
-
title: getI18n('vxe.table.filter')
|
|
890
|
-
onClick(evnt) {
|
|
891
|
-
if ($table.triggerFilterEvent) {
|
|
892
|
-
$table.triggerFilterEvent(evnt, params.column, params);
|
|
893
|
-
}
|
|
894
|
-
}
|
|
894
|
+
title: getI18n('vxe.table.filter')
|
|
895
895
|
})
|
|
896
896
|
])
|
|
897
897
|
];
|
package/es/table/src/table.js
CHANGED
|
@@ -6813,6 +6813,9 @@ export default defineComponent({
|
|
|
6813
6813
|
if ($xeGrid) {
|
|
6814
6814
|
return $xeGrid.callSlot(slotFunc, params);
|
|
6815
6815
|
}
|
|
6816
|
+
// if (XEUtils.isString(slotFunc)) {
|
|
6817
|
+
// slotFunc = slots[slotFunc] || null
|
|
6818
|
+
// }
|
|
6816
6819
|
if (XEUtils.isFunction(slotFunc)) {
|
|
6817
6820
|
return getSlotVNs(slotFunc(params));
|
|
6818
6821
|
}
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
package/lib/grid/src/grid.js
CHANGED
|
@@ -613,9 +613,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
613
613
|
toolbarSlots.tools = toolsSlot;
|
|
614
614
|
}
|
|
615
615
|
}
|
|
616
|
-
slotVNs.push((0, _vue.h)(_toolbar.default, Object.assign({
|
|
616
|
+
slotVNs.push((0, _vue.h)(_toolbar.default, Object.assign(Object.assign({
|
|
617
617
|
ref: refToolbar
|
|
618
|
-
}, toolbarOpts),
|
|
618
|
+
}, toolbarOpts), {
|
|
619
|
+
slots: undefined
|
|
620
|
+
}), toolbarSlots));
|
|
619
621
|
}
|
|
620
622
|
return (0, _vue.h)('div', {
|
|
621
623
|
ref: refToolbarWrapper,
|
package/lib/grid/src/grid.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(T,e){let t,{slots:s,emit:o}=e;var E=_xeUtils.default.uniqueId();let i=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),R=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],w=useFns.useSize(T).computeSize,j=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var r=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=S.value;if(t&&t[r])return t[r](...e)}}),t};let D=r(tableComponentMethodKeys),M=(tableComponentMethodKeys.forEach(r=>{D[r]=(...e)=>{var t=S.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),K=(0,_vue.computed)(()=>{var e=M.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),q=(0,_vue.computed)(()=>M.value.showActiveMsg),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),O=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:r,tZindex:o}=j,a={};return r?a.zIndex=o:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),I=(0,_vue.computed)(()=>{let t={},r=T;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:r,editConfig:o,proxyConfig:a}=T,{isZMax:l,tableLoading:i,tablePage:n}=j,s=I.value,u=M.value,d=F.value,g=Object.assign({},s);return l&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=r||i,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),o&&(g.editConfig=Object.assign({},o)),g}),P=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||R).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var U=(0,_vue.computed)(()=>{var e=F.value;return""+e.currentPage+e.pageSize});let A={refElem:u,refTable:S,refForm:n,refToolbar:d,refPager:g},H={computeProxyOpts:M,computePagerOpts:F,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:E,props:T,context:e,reactData:j,getRefMaps:()=>A,getComputeMaps:()=>H},b=()=>{var e=L.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,r=M.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},_=()=>{var e=j.tablePage,t=T.pagerConfig,r=F.value,{currentPage:o,pageSize:a}=r;t&&(0,_utils.isEnableConf)(r)&&(o&&(e.currentPage=o),a)&&(e.pageSize=a)},$=(e,t)=>{var r=M.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):o)||getI18n(t)},B=(e,t,r)=>{var o=q.value,a=D.getCheckboxRecords();if(o)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},N=e=>{var t=T.proxyConfig,r=j.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var i=M.value;r.currentPage=a,r.pageSize=l,V.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(i)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,o)})},G=t=>{var e=S.value,r=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=M.value;e.value.remote&&(j.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("sort-change",t,t.$event)},Q=t=>{var e=S.value,r=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=M.value;e.value.remote&&(j.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("filter-change",t,t.$event)},W=t=>{var e=T.proxyConfig,r=M.value;j.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),Z.dispatchEvent("form-submit",t,t.$event))},Y=e=>{var t=T.proxyConfig;let r=e.$event;var o=M.value,a=S.value;t&&(0,_utils.isEnableConf)(o)&&(a.clearScroll(),Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),r)})),Z.dispatchEvent("form-reset",e,r)},J=e=>{Z.dispatchEvent("form-submit-invalid",e,e.$event)},X=e=>{var t=e.$event;(0,_vue.nextTick)(()=>D.recalculate(!0)),Z.dispatchEvent("form-toggle-collapse",e,t),Z.dispatchEvent("form-collapse",e,t)},ee=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),j.isZMax))},te=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},re=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?s[e]?r[t]=s[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},oe=()=>{var{formConfig:e,proxyConfig:r}=T,o=j.formData,a=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||s.form){let e=[];if(s.form)e=s.form({$grid:V});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:V,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),i&&e.push((0,_vue.h)(i,Object.assign(Object.assign({ref:n},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:W,onReset:Y,onSubmitInvalid:J,onCollapse:X}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},ae=()=>{var t,r,o=T.toolbarConfig,a=L.value;if(o&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:V}):(o={},(r=a.slots)&&(t=te(r,"buttons"),r=te(r,"tools"),t&&(o.buttons=t),r)&&(o.tools=r),e.push((0,_vue.h)(_toolbar.default,Object.assign({ref:d},a),o))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},le=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:V})):renderEmptyElement(V),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},ne=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},se=()=>{var e=T.proxyConfig,t=k.value,r=M.value,o=Object.assign({},ge),a=s.empty,l=s.loading,i=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=G),r.filter)&&(o.onFilterChange=Q),{});return a&&(e.empty=a),l&&(e.loading=l),i&&(e.rowDragIcon=i),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:S},t),o),e)])},ue=()=>s.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:V})):renderEmptyElement(V),de=()=>{var{proxyConfig:e,pagerConfig:t}=T,r=M.value,o=F.value,a=s.pager;return t&&(0,_utils.isEnableConf)(o)||s.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?j.tablePage:{}),{onPageChange:N}),re(o.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},h=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(ae());break;case"Top":t.push(le());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),se(),ne()]));break;case"Bottom":t.push(ue());break;case"Pager":t.push(de());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},ge={},ce=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);ge[e]=(...e)=>o(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=T,r=j.proxyInited,o=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(o)){if(t&&(0,_utils.isEnableConf)(l)&&o.form&&l.items){let a={};l.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),j.formData=a}r||!(j.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>Z.commitProxy("_init")).then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ve=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&C.triggerZoomEvent(e)};let Z={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:V},t))},getEl(){return u.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:i,editRules:g,validConfig:c}=T,n=j.tablePage,v=q.value,m=K.value;var r=M.value;let s=F.value;var o=L.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=r,C=r.response||r.props||{},y=S.value;var E=z();let R=null,w=null;w=_xeUtils.default.isString(t)?(r=o.buttons,o=e&&(0,_utils.isEnableConf)(o)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,R=o?o.item:null,t):(R=t).code;var a=R?R.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,P=q.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return B(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let l=h.querySuccess,o=h.queryError;if(O){var I,k="_init"===w,P="reload"===w;if(!k&&j.tableLoading)return(0,_vue.nextTick)();let t=[],r=[],e={};if(i&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(r=y.getCheckedFilters())}else y&&(P?y.clearAll():(t=y.getSortColumns(),r=y.getCheckedFilters()));let a={code:w,button:R,isInited:k,isReload:P,$grid:V,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:E,options:O};return j.sortData=t,j.filterData=r,j.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var r,o;return j.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),r=C.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>r&&(n.currentPage=r)):(o=C.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),p&&p(a,...d),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,o&&o(Object.assign(Object.assign({},a),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=h.delete,a=h.deleteSuccess,l=h.deleteError;if(o){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let r={$grid:V,code:w,button:R,body:U,form:E,options:o};if(e.length)return B(w,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((f||o)(r,...d)).then(e=>(j.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),x?x(r,...d):Z.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,i={$grid:V,code:w,button:R,body:t,form:E,options:n},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===y.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===y.findRowIndexOf(l,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((b||n)(i,...d)).then(e=>(j.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(i,...d):Z.commitProxy("query"),s&&s(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:R,$grid:V,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?Z.revert():Z.maximize()},isMaximized(){return j.isZMax},maximize(){return ee(!0)},revert(){return ee()},getFormData:z,getFormItems(e){var t=x.value,r=T.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=S.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},C=("development"===process.env.NODE_ENV&&(Z.loadColumn=e=>{var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},Z.reloadColumn=e=>(D.clearAll(),Z.loadColumn(e))),{extendTableMethods:r,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,r,o,a,l,i=j.isZMax,n=u.value;return n?(e=c.value,t=v.value,r=m.value,o=p.value,a=f.value,l=n.parentElement,(!i&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=u.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-C.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return Z.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&Z.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){Z.zoom(),Z.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}}),y=(Object.assign(V,D,Z,C),(0,_vue.ref)(0));(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>T.columns,()=>{y.value++}),(0,_vue.watch)(y,()=>{(0,_vue.nextTick)(()=>V.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{b()}),(0,_vue.watch)(U,()=>{_()}),(0,_vue.watch)(()=>T.proxyConfig,()=>{ce()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns;T.formConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&V.loadColumn(e),b(),ce()}),globalEvents.on(V,"keydown",ve)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")});return V.renderVN=()=>{var e=w.value,t=O.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":T.loading||j.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=P.value,o=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},h(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},h(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(V)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},h(r))]})())},(0,_vue.provide)("$xeGrid",V),V},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_ui=require("../../ui"),_table=_interopRequireDefault(require("../../table/src/table")),_toolbar=_interopRequireDefault(require("../../toolbar/src/toolbar")),_props=_interopRequireDefault(require("../../table/src/props")),_emits=_interopRequireDefault(require("../../table/src/emits")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_ui.VxeUI,tableComponentPropKeys=Object.keys(_props.default),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","sort","setSort","clearSort","isSort","getSortColumns","closeFilter","isFilter","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],gridComponentEmits=[..._emits.default,"page-change","form-submit","form-submit-invalid","form-reset","form-collapse","form-toggle-collapse","proxy-query","proxy-delete","proxy-save","toolbar-button-click","toolbar-tool-click","zoom"];var _default=exports.default=(0,_vue.defineComponent)({name:"VxeGrid",props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),emits:gridComponentEmits,setup(T,e){let t,{slots:s,emit:o}=e;var E=_xeUtils.default.uniqueId();let i=_ui.VxeUI.getComponent("VxeForm"),l=_ui.VxeUI.getComponent("VxePager"),R=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]],w=useFns.useSize(T).computeSize,j=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1}}),u=(0,_vue.ref)(),S=(0,_vue.ref)(),n=(0,_vue.ref)(),d=(0,_vue.ref)(),g=(0,_vue.ref)(),c=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),p=(0,_vue.ref)(),f=(0,_vue.ref)();var r=e=>{let t={};return e.forEach(r=>{t[r]=(...e)=>{var t=S.value;if(t&&t[r])return t[r](...e)}}),t};let D=r(tableComponentMethodKeys),M=(tableComponentMethodKeys.forEach(r=>{D[r]=(...e)=>{var t=S.value;if(t&&t[r])return t&&t[r](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),T.proxyConfig))),K=(0,_vue.computed)(()=>{var e=M.value;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg}),q=(0,_vue.computed)(()=>M.value.showActiveMsg),F=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.pagerConfig,T.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.formConfig,T.formConfig)),L=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.toolbarConfig,T.toolbarConfig)),a=(0,_vue.computed)(()=>Object.assign({},getConfig().grid.zoomConfig,T.zoomConfig)),O=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=T,{isZMax:r,tZindex:o}=j,a={};return r?a.zIndex=o:(e&&(a.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(a.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),a}),I=(0,_vue.computed)(()=>{let t={},r=T;return tableComponentPropKeys.forEach(e=>{t[e]=r[e]}),t}),k=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,loading:r,editConfig:o,proxyConfig:a}=T,{isZMax:l,tableLoading:i,tablePage:n}=j,s=I.value,u=M.value,d=F.value,g=Object.assign({},s);return l&&(s.maxHeight?g.maxHeight="100%":g.height="100%"),a&&(0,_utils.isEnableConf)(u)&&(g.loading=r||i,t)&&u.seq&&(0,_utils.isEnableConf)(d)&&(g.seqConfig=Object.assign({},e,{startIndex:(n.currentPage-1)*n.pageSize})),o&&(g.editConfig=Object.assign({},o)),g}),P=(0,_vue.computed)(()=>{var e=T.layouts;let t=[],r=[],o=[],a=[];return(t=e&&e.length?e:getConfig().grid.layouts||R).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],a=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:a}});var U=(0,_vue.computed)(()=>{var e=F.value;return""+e.currentPage+e.pageSize});let A={refElem:u,refTable:S,refForm:n,refToolbar:d,refPager:g},H={computeProxyOpts:M,computePagerOpts:F,computeFormOpts:x,computeToolbarOpts:L,computeZoomOpts:a},V={xID:E,props:T,context:e,reactData:j,getRefMaps:()=>A,getComputeMaps:()=>H},b=()=>{var e=L.value;T.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=S.value,t=d.value;e&&t&&e.connect(t)})},z=()=>{var e=T.proxyConfig,t=j.formData,r=M.value,o=x.value;return e&&(0,_utils.isEnableConf)(r)&&r.form?t:o.data},_=()=>{var e=j.tablePage,t=T.pagerConfig,r=F.value,{currentPage:o,pageSize:a}=r;t&&(0,_utils.isEnableConf)(r)&&(o&&(e.currentPage=o),a)&&(e.pageSize=a)},$=(e,t)=>{var r=M.value,r=(r.response||r.props||{}).message;let o;return(o=e&&r?_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r):o)||getI18n(t)},B=(e,t,r)=>{var o=q.value,a=D.getCheckboxRecords();if(o)if(a.length){if(_ui.VxeUI.modal)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()})}else _ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else a.length&&r();return Promise.resolve()},N=e=>{var t=T.proxyConfig,r=j.tablePage;let{$event:o,currentPage:a,pageSize:l}=e;var i=M.value;r.currentPage=a,r.pageSize=l,V.dispatchEvent("page-change",e,o),t&&(0,_utils.isEnableConf)(i)&&V.commitProxy("query").then(e=>{V.dispatchEvent("proxy-query",e,o)})},G=t=>{var e=S.value,r=T.proxyConfig,e=e.getComputeMaps().computeSortOpts,o=M.value;e.value.remote&&(j.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("sort-change",t,t.$event)},Q=t=>{var e=S.value,r=T.proxyConfig,e=e.getComputeMaps().computeFilterOpts,o=M.value;e.value.remote&&(j.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(o)&&(j.tablePage.currentPage=1,Z.commitProxy("query").then(e=>{Z.dispatchEvent("proxy-query",e,t.$event)})),Z.dispatchEvent("filter-change",t,t.$event)},W=t=>{var e=T.proxyConfig,r=M.value;j.tableLoading||(e&&(0,_utils.isEnableConf)(r)&&Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),Z.dispatchEvent("form-submit",t,t.$event))},Y=e=>{var t=T.proxyConfig;let r=e.$event;var o=M.value,a=S.value;t&&(0,_utils.isEnableConf)(o)&&(a.clearScroll(),Z.commitProxy("reload").then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),r)})),Z.dispatchEvent("form-reset",e,r)},J=e=>{Z.dispatchEvent("form-submit-invalid",e,e.$event)},X=e=>{var t=e.$event;(0,_vue.nextTick)(()=>D.recalculate(!0)),Z.dispatchEvent("form-toggle-collapse",e,t),Z.dispatchEvent("form-collapse",e,t)},ee=e=>{var t=j.isZMax;return(e?!t:t)&&(j.isZMax=!t,j.tZindex<(0,_utils.getLastZIndex)())&&(j.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>D.recalculate(!0)).then(()=>(setTimeout(()=>D.recalculate(!0),15),j.isZMax))},te=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(s[e])return s[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},re=e=>{let r={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?s[e]?r[t]=s[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):r[t]=e)}),r},oe=()=>{var{formConfig:e,proxyConfig:r}=T,o=j.formData,a=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||s.form){let e=[];if(s.form)e=s.form({$grid:V});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t({$grid:V,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),i&&e.push((0,_vue.h)(i,Object.assign(Object.assign({ref:n},Object.assign({},l,{data:r&&(0,_utils.isEnableConf)(a)&&a.form?o:l.data})),{onSubmit:W,onReset:Y,onSubmitInvalid:J,onCollapse:X}),t))}return(0,_vue.h)("div",{ref:c,key:"form",class:"vxe-grid--form-wrapper"},e)}return renderEmptyElement(V)},ae=()=>{var t,r,o=T.toolbarConfig,a=L.value;if(o&&(0,_utils.isEnableConf)(a)||s.toolbar){let e=[];return s.toolbar?e=s.toolbar({$grid:V}):(o={},(r=a.slots)&&(t=te(r,"buttons"),r=te(r,"tools"),t&&(o.buttons=t),r)&&(o.tools=r),e.push((0,_vue.h)(_toolbar.default,Object.assign(Object.assign({ref:d},a),{slots:void 0}),o))),(0,_vue.h)("div",{ref:v,key:"toolbar",class:"vxe-grid--toolbar-wrapper"},e)}return renderEmptyElement(V)},le=()=>s.top?(0,_vue.h)("div",{ref:m,key:"top",class:"vxe-grid--top-wrapper"},s.top({$grid:V})):renderEmptyElement(V),ie=()=>{var e=s.left;return e?(0,_vue.h)("div",{class:"vxe-grid--left-wrapper"},e({$grid:V})):renderEmptyElement(V)},ne=()=>{var e=s.right;return e?(0,_vue.h)("div",{class:"vxe-grid--right-wrapper"},e({$grid:V})):renderEmptyElement(V)},se=()=>{var e=T.proxyConfig,t=k.value,r=M.value,o=Object.assign({},ge),a=s.empty,l=s.loading,i=s.rowDragIcon||s["row-drag-icon"],n=s.columnDragIcon||s["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(r)&&(r.sort&&(o.onSortChange=G),r.filter)&&(o.onFilterChange=Q),{});return a&&(e.empty=a),l&&(e.loading=l),i&&(e.rowDragIcon=i),n&&(e.columnDragIcon=n),(0,_vue.h)("div",{class:"vxe-grid--table-wrapper"},[(0,_vue.h)(_table.default,Object.assign(Object.assign({ref:S},t),o),e)])},ue=()=>s.bottom?(0,_vue.h)("div",{ref:p,key:"bottom",class:"vxe-grid--bottom-wrapper"},s.bottom({$grid:V})):renderEmptyElement(V),de=()=>{var{proxyConfig:e,pagerConfig:t}=T,r=M.value,o=F.value,a=s.pager;return t&&(0,_utils.isEnableConf)(o)||s.pager?(0,_vue.h)("div",{ref:f,key:"pager",class:"vxe-grid--pager-wrapper"},a?a({$grid:V}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:g},o),e&&(0,_utils.isEnableConf)(r)?j.tablePage:{}),{onPageChange:N}),re(o.slots)):renderEmptyElement(V)]):renderEmptyElement(V)},h=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(oe());break;case"Toolbar":t.push(ae());break;case"Top":t.push(le());break;case"Table":t.push((0,_vue.h)("div",{key:"table",class:"vxe-grid--table-container"},[ie(),se(),ne()]));break;case"Bottom":t.push(ue());break;case"Pager":t.push(de());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t},ge={},ce=(_emits.default.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);ge[e]=(...e)=>o(t,...e)}),()=>{var{proxyConfig:e,formConfig:t}=T,r=j.proxyInited,o=M.value,l=x.value;if(e&&(0,_utils.isEnableConf)(o)){if(t&&(0,_utils.isEnableConf)(l)&&o.form&&l.items){let a={};l.items.forEach(t=>{var{field:r,itemRender:o}=t;if(r){let e=null;o&&(o=o.defaultValue,_xeUtils.default.isFunction(o)?e=o({item:t}):_xeUtils.default.isUndefined(o)||(e=o)),a[r]=e}}),j.formData=a}r||!(j.proxyInited=!0)!==o.autoLoad&&(0,_vue.nextTick)().then(()=>Z.commitProxy("_init")).then(e=>{Z.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("init"))})}}),ve=e=>{var t=a.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&j.isZMax&&!1!==t.escRestore&&C.triggerZoomEvent(e)};let Z={dispatchEvent:(e,t,r)=>{o(e,createEvent(r,{$grid:V},t))},getEl(){return u.value},commitProxy(t,...d){let{toolbarConfig:e,pagerConfig:i,editRules:g,validConfig:c}=T,n=j.tablePage,v=q.value,m=K.value;var r=M.value;let s=F.value;var o=L.value;let{beforeQuery:u,afterQuery:p,beforeDelete:f,afterDelete:x,beforeSave:b,afterSave:_,ajax:h={}}=r,C=r.response||r.props||{},y=S.value;var E=z();let R=null,w=null;w=_xeUtils.default.isString(t)?(r=o.buttons,o=e&&(0,_utils.isEnableConf)(o)&&r?_xeUtils.default.findTree(r,e=>e.code===t,{children:"dropdowns"}):null,R=o?o.item:null,t):(R=t).code;var a=R?R.params:null;switch(w){case"insert":return y.insert({});case"insert_edit":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"insert_actived":return y.insert({}).then(({row:e})=>y.setEditRow(e));case"mark_cancel":I=w,P=q.value,O=S.value,(k=O.getCheckboxRecords()).length?(O.togglePendingRow(k),D.clearCheckboxRow()):P&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:I,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return B(w,"vxe.grid.removeSelectRecord",()=>y.removeCheckboxRow());case"import":y.importData(a);break;case"open_import":y.openImport(a);break;case"export":y.exportData(a);break;case"open_export":y.openExport(a);break;case"reset_custom":return y.resetCustom(!0);case"_init":case"reload":case"query":{var O=h.query;let l=h.querySuccess,o=h.queryError;if(O){var I,k="_init"===w,P="reload"===w;if(!k&&j.tableLoading)return(0,_vue.nextTick)();let t=[],r=[],e={};if(i&&((k||P)&&(n.currentPage=1),(0,_utils.isEnableConf)(s))&&(e=Object.assign({},n)),k){let e=null;y&&(I=y.getComputeMaps().computeSortOpts,U=I.value,e=U.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),y&&(r=y.getCheckedFilters())}else y&&(P?y.clearAll():(t=y.getSortColumns(),r=y.getCheckedFilters()));let a={code:w,button:R,isInited:k,isReload:P,$grid:V,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:E,options:O};return j.sortData=t,j.filterData=r,j.tableLoading=!0,Promise.resolve((u||O)(a,...d)).then(e=>{let t=[];var r,o;return j.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(s)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o||"page.total"))||0,n.total=_xeUtils.default.toNumber(o),r=C.result,t=(_xeUtils.default.isFunction(r)?r({data:e,$grid:V}):_xeUtils.default.get(e,r||"result"))||[],r=Math.max(Math.ceil(o/n.pageSize),1),n.currentPage>r&&(n.currentPage=r)):(o=C.list,t=(o?_xeUtils.default.isFunction(o)?o({data:e,$grid:V}):_xeUtils.default.get(e,o):e)||[])),y?y.loadData(t):(0,_vue.nextTick)(()=>{y&&y.loadData(t)}),p&&p(a,...d),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!0}}).catch(e=>(j.tableLoading=!1,o&&o(Object.assign(Object.assign({},a),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let o=h.delete,a=h.deleteSuccess,l=h.deleteError;if(o){let e=D.getCheckboxRecords(),t=e.filter(e=>!y.isInsertByRow(e));var U={removeRecords:t};let r={$grid:V,code:w,button:R,body:U,form:E,options:o};if(e.length)return B(w,"vxe.grid.deleteSelectRecord",()=>t.length?(j.tableLoading=!0,Promise.resolve((f||o)(r,...d)).then(e=>(j.tableLoading=!1,y.setPendingRow(t,!1),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.delSuccess"),status:"success"}),x?x(r,...d):Z.commitProxy("query"),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):y.remove(e));v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let n=h.save,s=h.saveSuccess,u=h.saveError;if(n){let t=y.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:a,pendingRecords:l}=t,i={$grid:V,code:w,button:R,body:t,form:E,options:n},e=(r.length&&(t.pendingRecords=l.filter(e=>-1===y.findRowIndexOf(r,e))),l.length&&(t.insertRecords=r.filter(e=>-1===y.findRowIndexOf(l,e))),Promise.resolve());return(e=g?y[c&&"full"===c.msgMode?"fullValidate":"validate"](t.insertRecords.concat(a)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||a.length||t.pendingRecords.length?(j.tableLoading=!0,Promise.resolve((b||n)(i,...d)).then(e=>(j.tableLoading=!1,y.clearPendingRow(),m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:$(e,"vxe.grid.saveSuccess"),status:"success"}),_?_(i,...d):Z.commitProxy("query"),s&&s(Object.assign(Object.assign({},i),{response:e})),{status:!0})).catch(e=>(j.tableLoading=!1,m&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:$(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},i),{response:e})),{status:!1}))):void(v&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({id:w,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var U=commands.get(w);U&&((U=U.tableCommandMethod||U.commandMethod)?U({code:w,button:R,$grid:V,$table:y},...d):(0,_log.errLog)("vxe.error.notCommands",[w]))}return(0,_vue.nextTick)()},zoom(){return j.isZMax?Z.revert():Z.maximize()},isMaximized(){return j.isZMax},maximize(){return ee(!0)},revert(){return ee()},getFormData:z,getFormItems(e){var t=x.value,r=T.formConfig,o=t.items;let a=[];return _xeUtils.default.eachTree(r&&(0,_utils.isEnableConf)(t)&&o?o:[],e=>{a.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?a:a[e]},getProxyInfo(){var e,t=S.value;return T.proxyConfig?(e=j.sortData,{data:t?t.getFullData():[],filter:j.filterData,form:z(),sort:e.length?e[0]:{},sorts:e,pager:j.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null}},C=("development"===process.env.NODE_ENV&&(Z.loadColumn=e=>{var t=S.value;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),t?t.loadColumn(e):(0,_vue.nextTick)()},Z.reloadColumn=e=>(D.clearAll(),Z.loadColumn(e))),{extendTableMethods:r,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,r,o,a,l,i=j.isZMax,n=u.value;return n?(e=c.value,t=v.value,r=m.value,o=p.value,a=f.value,l=n.parentElement,(!i&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(a)):0},getParentHeight(){var e=u.value;return e?(e=e.parentElement,(j.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-C.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let r=e.code;return Z.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&Z.dispatchEvent("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r}),t)})},triggerToolbarBtnEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){C.triggerToolbarCommitEvent(e,t),Z.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){Z.zoom(),Z.dispatchEvent("zoom",{type:j.isZMax?"max":"revert"},e)}}),y=(Object.assign(V,D,Z,C),(0,_vue.ref)(0));(0,_vue.watch)(()=>T.columns?T.columns.length:-1,()=>{y.value++}),(0,_vue.watch)(()=>T.columns,()=>{y.value++}),(0,_vue.watch)(y,()=>{(0,_vue.nextTick)(()=>V.loadColumn(T.columns||[]))}),(0,_vue.watch)(()=>T.toolbarConfig,()=>{b()}),(0,_vue.watch)(U,()=>{_()}),(0,_vue.watch)(()=>T.proxyConfig,()=>{ce()}),hooks.forEach(e=>{var e=e.setupGrid;e&&(e=e(V))&&_xeUtils.default.isObject(e)&&Object.assign(V,e)}),_(),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=T.columns;T.formConfig&&!i&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),T.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),e&&e.length&&V.loadColumn(e),b(),ce()}),globalEvents.on(V,"keydown",ve)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(V,"keydown")});return V.renderVN=()=>{var e=w.value,t=O.value;return(0,_vue.h)("div",{ref:u,class:["vxe-grid",{["size--"+e]:e,"is--animat":!!T.animat,"is--round":T.round,"is--maximize":j.isZMax,"is--loading":T.loading||j.tableLoading}],style:t},(()=>{var{headKeys:e,bodyKeys:t,footKeys:r}=P.value,o=s.asideLeft||s["aside-left"],a=s.asideRight||s["aside-right"];return[(0,_vue.h)("div",{class:"vxe-grid--layout-header-wrapper"},h(e)),(0,_vue.h)("div",{class:"vxe-grid--layout-body-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-left-wrapper"},o({})):renderEmptyElement(V),(0,_vue.h)("div",{class:"vxe-grid--layout-body-content-wrapper"},h(t)),a?(0,_vue.h)("div",{class:"vxe-grid--layout-aside-right-wrapper"},a({})):renderEmptyElement(V)]),(0,_vue.h)("div",{class:"vxe-grid--layout-footer-wrapper"},h(r))]})())},(0,_vue.provide)("$xeGrid",V),V},render(){return this.renderVN()}});
|
package/lib/index.umd.js
CHANGED
|
@@ -3138,7 +3138,7 @@ function eqEmptyValue(cellValue) {
|
|
|
3138
3138
|
;// ./packages/ui/index.ts
|
|
3139
3139
|
|
|
3140
3140
|
|
|
3141
|
-
const version = "4.13.0-beta.
|
|
3141
|
+
const version = "4.13.0-beta.3";
|
|
3142
3142
|
core_.VxeUI.version = version;
|
|
3143
3143
|
core_.VxeUI.tableVersion = version;
|
|
3144
3144
|
core_.VxeUI.setConfig({
|
|
@@ -3587,7 +3587,7 @@ var esnext_iterator_some = __webpack_require__(7550);
|
|
|
3587
3587
|
const {
|
|
3588
3588
|
log: log_log
|
|
3589
3589
|
} = core_.VxeUI;
|
|
3590
|
-
const log_version = `table v${"4.13.0-beta.
|
|
3590
|
+
const log_version = `table v${"4.13.0-beta.3"}`;
|
|
3591
3591
|
const warnLog = log_log.create('warn', log_version);
|
|
3592
3592
|
const errLog = log_log.create('error', log_version);
|
|
3593
3593
|
;// ./packages/table/src/columnInfo.ts
|
|
@@ -5806,15 +5806,15 @@ const Cell = {
|
|
|
5806
5806
|
return [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('span', {
|
|
5807
5807
|
class: ['vxe-cell--filter', {
|
|
5808
5808
|
'is--active': filterStore.visible && filterStore.column === column
|
|
5809
|
-
}]
|
|
5810
|
-
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
|
|
5811
|
-
class: ['vxe-filter--btn', hasFilter ? iconMatch || cell_getIcon().TABLE_FILTER_MATCH : iconNone || cell_getIcon().TABLE_FILTER_NONE],
|
|
5812
|
-
title: cell_getI18n('vxe.table.filter'),
|
|
5809
|
+
}],
|
|
5813
5810
|
onClick(evnt) {
|
|
5814
5811
|
if ($table.triggerFilterEvent) {
|
|
5815
5812
|
$table.triggerFilterEvent(evnt, params.column, params);
|
|
5816
5813
|
}
|
|
5817
5814
|
}
|
|
5815
|
+
}, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
|
|
5816
|
+
class: ['vxe-filter--btn', hasFilter ? iconMatch || cell_getIcon().TABLE_FILTER_MATCH : iconNone || cell_getIcon().TABLE_FILTER_NONE],
|
|
5817
|
+
title: cell_getI18n('vxe.table.filter')
|
|
5818
5818
|
})])];
|
|
5819
5819
|
}
|
|
5820
5820
|
return [];
|
|
@@ -11048,7 +11048,10 @@ if(editMode!=='insert'){setCellValue(selected.row,selected.column,null);}$xeTabl
|
|
|
11048
11048
|
* 处理显示 tooltip
|
|
11049
11049
|
* @param {Event} evnt 事件
|
|
11050
11050
|
* @param {Row} row 行对象
|
|
11051
|
-
*/const handleTooltip=(evnt,tdEl,overflowElem,tipElem,params)=>{const tipOverEl=overflowElem||tdEl;if(!tipOverEl){return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();}params.cell=tdEl;const{tooltipStore}=reactData;const tooltipOpts=computeTooltipOpts.value;const{column,row}=params;const{showAll,contentMethod}=tooltipOpts;const customContent=contentMethod?contentMethod(params):null;const useCustom=contentMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent);const content=useCustom?customContent:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type==='html'?tipOverEl.innerText:tipOverEl.textContent).trim();const isOver=tipOverEl.scrollWidth>tipOverEl.clientWidth;if(content&&(showAll||useCustom||isOver)){Object.assign(tooltipStore,{row,column,visible:true,currOpts:{}});(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(()=>{const $tooltip=refTooltip.value;if($tooltip&&$tooltip.open){$tooltip.open(isOver?tipOverEl:tipElem,formatText(content));}});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();};const callSlot=(slotFunc,params)=>{if(slotFunc){if($xeGrid){return $xeGrid.callSlot(slotFunc,params);}if(
|
|
11051
|
+
*/const handleTooltip=(evnt,tdEl,overflowElem,tipElem,params)=>{const tipOverEl=overflowElem||tdEl;if(!tipOverEl){return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();}params.cell=tdEl;const{tooltipStore}=reactData;const tooltipOpts=computeTooltipOpts.value;const{column,row}=params;const{showAll,contentMethod}=tooltipOpts;const customContent=contentMethod?contentMethod(params):null;const useCustom=contentMethod&&!external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().eqNull(customContent);const content=useCustom?customContent:external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toString(column.type==='html'?tipOverEl.innerText:tipOverEl.textContent).trim();const isOver=tipOverEl.scrollWidth>tipOverEl.clientWidth;if(content&&(showAll||useCustom||isOver)){Object.assign(tooltipStore,{row,column,visible:true,currOpts:{}});(0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(()=>{const $tooltip=refTooltip.value;if($tooltip&&$tooltip.open){$tooltip.open(isOver?tipOverEl:tipElem,formatText(content));}});}return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();};const callSlot=(slotFunc,params)=>{if(slotFunc){if($xeGrid){return $xeGrid.callSlot(slotFunc,params);}// if (XEUtils.isString(slotFunc)) {
|
|
11052
|
+
// slotFunc = slots[slotFunc] || null
|
|
11053
|
+
// }
|
|
11054
|
+
if(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isFunction(slotFunc)){return getSlotVNs(slotFunc(params));}}return[];};/**
|
|
11052
11055
|
* 内部方法
|
|
11053
11056
|
*/tablePrivateMethods={getSetupOptions(){return table_getConfig();},updateAfterDataIndex,callSlot,/**
|
|
11054
11057
|
* 获取父容器元素
|
|
@@ -12539,7 +12542,8 @@ const gridComponentEmits = [...emits, 'page-change', 'form-submit', 'form-submit
|
|
|
12539
12542
|
}
|
|
12540
12543
|
slotVNs.push((0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(toolbar, {
|
|
12541
12544
|
ref: refToolbar,
|
|
12542
|
-
...toolbarOpts
|
|
12545
|
+
...toolbarOpts,
|
|
12546
|
+
slots: undefined
|
|
12543
12547
|
}, toolbarSlots));
|
|
12544
12548
|
}
|
|
12545
12549
|
return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
|
|
@@ -13660,16 +13664,9 @@ hook_hooks.add('tableFilterModule', {
|
|
|
13660
13664
|
if (filterStore.column === column && filterStore.visible) {
|
|
13661
13665
|
filterStore.visible = false;
|
|
13662
13666
|
} else {
|
|
13663
|
-
const {
|
|
13664
|
-
clientY,
|
|
13665
|
-
pageX
|
|
13666
|
-
} = evnt;
|
|
13667
13667
|
const el = refElem.value;
|
|
13668
13668
|
const tableRect = el.getBoundingClientRect();
|
|
13669
|
-
const
|
|
13670
|
-
const {
|
|
13671
|
-
visibleWidth
|
|
13672
|
-
} = getDomNode();
|
|
13669
|
+
const btnElem = evnt.currentTarget;
|
|
13673
13670
|
const {
|
|
13674
13671
|
filters,
|
|
13675
13672
|
filterMultiple,
|
|
@@ -13714,41 +13711,19 @@ hook_hooks.add('tableFilterModule', {
|
|
|
13714
13711
|
if (!filterWrapperElem) {
|
|
13715
13712
|
return;
|
|
13716
13713
|
}
|
|
13714
|
+
const btnRect = btnElem.getBoundingClientRect();
|
|
13717
13715
|
const filterWidth = filterWrapperElem.offsetWidth;
|
|
13718
13716
|
const filterHeadElem = filterWrapperElem.querySelector('.vxe-table--filter-header');
|
|
13719
13717
|
const filterFootElem = filterWrapperElem.querySelector('.vxe-table--filter-footer');
|
|
13720
13718
|
const centerWidth = filterWidth / 2;
|
|
13721
|
-
const
|
|
13722
|
-
const
|
|
13723
|
-
let left, right;
|
|
13724
|
-
const thEl = targetElem.offsetParent;
|
|
13725
|
-
const trEl = thEl.offsetParent;
|
|
13726
|
-
const style = {
|
|
13727
|
-
top: `${targetElem.offsetTop + thEl.offsetTop + targetElem.offsetHeight}px`
|
|
13728
|
-
};
|
|
13719
|
+
const left = btnRect.left - tableRect.left - centerWidth;
|
|
13720
|
+
const top = btnRect.top - tableRect.top + btnElem.clientHeight;
|
|
13729
13721
|
// 判断面板不能大于表格高度
|
|
13730
|
-
const maxHeight = Math.max(40, el.clientHeight -
|
|
13731
|
-
|
|
13732
|
-
|
|
13733
|
-
|
|
13734
|
-
|
|
13735
|
-
} else {
|
|
13736
|
-
left = targetElem.offsetLeft + thEl.offsetLeft - centerWidth - headerScrollElem.scrollLeft;
|
|
13737
|
-
}
|
|
13738
|
-
if (left) {
|
|
13739
|
-
const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
|
|
13740
|
-
if (overflowWidth > 0) {
|
|
13741
|
-
left -= overflowWidth;
|
|
13742
|
-
}
|
|
13743
|
-
style.left = `${Math.min(maxLeft, Math.max(minMargin, left))}px`;
|
|
13744
|
-
} else if (right) {
|
|
13745
|
-
const overflowWidth = pageX + filterWidth - centerWidth + minMargin - visibleWidth;
|
|
13746
|
-
if (overflowWidth > 0) {
|
|
13747
|
-
right += overflowWidth;
|
|
13748
|
-
}
|
|
13749
|
-
style.right = `${Math.max(minMargin, right)}px`;
|
|
13750
|
-
}
|
|
13751
|
-
filterStore.style = style;
|
|
13722
|
+
const maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
|
|
13723
|
+
filterStore.style = {
|
|
13724
|
+
top: toCssUnit(top),
|
|
13725
|
+
left: toCssUnit(left)
|
|
13726
|
+
};
|
|
13752
13727
|
filterStore.maxHeight = maxHeight;
|
|
13753
13728
|
});
|
|
13754
13729
|
}
|
|
@@ -13900,7 +13875,7 @@ hook_hooks.add('tableFilterModule', {
|
|
|
13900
13875
|
return $xeTable.scrollToColumn(column).then(() => {
|
|
13901
13876
|
const headerWrapperElem = getRefElem(elemStore[`${fixed || 'main'}-header-wrapper`] || elemStore['main-header-wrapper']);
|
|
13902
13877
|
if (headerWrapperElem) {
|
|
13903
|
-
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-filter
|
|
13878
|
+
const filterBtnElem = headerWrapperElem.querySelector(`.vxe-header--column.${column.id} .vxe-cell--filter`);
|
|
13904
13879
|
triggerEvent(filterBtnElem, 'click');
|
|
13905
13880
|
}
|
|
13906
13881
|
});
|