vxe-table 3.15.0-beta.3 → 3.15.0-beta.4

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.
@@ -6411,8 +6411,10 @@ const Methods = {
6411
6411
  */
6412
6412
  triggerRadioRowEvent(evnt, params) {
6413
6413
  const $xeTable = this;
6414
- const { selectRadioRow: oldValue, radioOpts } = this;
6414
+ const reactData = $xeTable;
6415
+ const { selectRadioRow: oldValue } = reactData;
6415
6416
  const { row } = params;
6417
+ const radioOpts = $xeTable.computeRadioOpts;
6416
6418
  const { trigger } = radioOpts;
6417
6419
  if (trigger === 'manual') {
6418
6420
  return;
@@ -6427,20 +6429,30 @@ const Methods = {
6427
6429
  isChange = oldValue === newValue;
6428
6430
  if (isChange) {
6429
6431
  newValue = null;
6430
- this.clearRadioRow();
6432
+ $xeTable.clearRadioRow();
6431
6433
  }
6432
6434
  }
6433
6435
  if (isChange) {
6434
- this.emitEvent('radio-change', Object.assign({ oldValue, newValue }, params), evnt);
6436
+ $xeTable.dispatchEvent('radio-change', Object.assign({ oldValue, newValue }, params), evnt);
6435
6437
  }
6436
6438
  },
6437
6439
  triggerCurrentColumnEvent(evnt, params) {
6438
6440
  const $xeTable = this;
6441
+ const reactData = $xeTable;
6442
+ const { currentColumn: oldValue } = reactData;
6439
6443
  const columnOpts = $xeTable.computeColumnOpts;
6440
- const { currentMethod } = columnOpts;
6441
- const { column } = params;
6442
- if (!currentMethod || currentMethod({ column })) {
6443
- $xeTable.setCurrentColumn(column);
6444
+ const currentColumnOpts = $xeTable.computeCurrentColumnOpts;
6445
+ const beforeRowMethod = currentColumnOpts.beforeSelectMethod || columnOpts.currentMethod;
6446
+ const { column: newValue } = params;
6447
+ const isChange = oldValue !== newValue;
6448
+ if (!beforeRowMethod || beforeRowMethod({ column: newValue, $table: $xeTable })) {
6449
+ $xeTable.setCurrentColumn(newValue);
6450
+ if (isChange) {
6451
+ $xeTable.dispatchEvent('current-column-change', Object.assign({ oldValue, newValue }, params), evnt);
6452
+ }
6453
+ }
6454
+ else {
6455
+ $xeTable.dispatchEvent('current-column-disabled', params, evnt);
6444
6456
  }
6445
6457
  },
6446
6458
  triggerCurrentRowEvent(evnt, params) {
@@ -6448,15 +6460,21 @@ const Methods = {
6448
6460
  const reactData = $xeTable;
6449
6461
  const { currentRow: oldValue } = reactData;
6450
6462
  const rowOpts = $xeTable.computeRowOpts;
6451
- const { currentMethod } = rowOpts;
6463
+ const currentRowOpts = $xeTable.computeCurrentRowOpts;
6464
+ const beforeRowMethod = currentRowOpts.beforeSelectMethod || rowOpts.currentMethod;
6452
6465
  const { row: newValue } = params;
6453
6466
  const isChange = oldValue !== newValue;
6454
- if (!currentMethod || currentMethod({ row: newValue })) {
6467
+ if (!beforeRowMethod || beforeRowMethod({ row: newValue, $table: $xeTable })) {
6455
6468
  $xeTable.setCurrentRow(newValue);
6456
6469
  if (isChange) {
6470
+ $xeTable.dispatchEvent('current-row-change', Object.assign({ oldValue, newValue }, params), evnt);
6471
+ // 已废弃
6457
6472
  $xeTable.dispatchEvent('current-change', Object.assign({ oldValue, newValue }, params), evnt);
6458
6473
  }
6459
6474
  }
6475
+ else {
6476
+ $xeTable.dispatchEvent('current-row-disabled', params, evnt);
6477
+ }
6460
6478
  },
6461
6479
  /**
6462
6480
  * 用于当前行,设置某一行为高亮状态
@@ -1503,6 +1503,12 @@ export default {
1503
1503
  if (props.emptyRender && !XEUtils.isObject(props.emptyRender)) {
1504
1504
  warnLog('vxe.error.errProp', [`table.empty-render=${props.emptyRender}`, 'table.empty-render={}']);
1505
1505
  }
1506
+ if (rowOpts.currentMethod) {
1507
+ warnLog('vxe.error.delProp', ['row-config.currentMethod', 'current-row-config.beforeSelectMethod']);
1508
+ }
1509
+ if (columnOpts.currentMethod) {
1510
+ warnLog('vxe.error.delProp', ['row-config.currentMethod', 'current-column-config.beforeSelectMethod']);
1511
+ }
1506
1512
  if ((rowOpts.isCurrent || highlightCurrentRow) && props.keyboardConfig && keyboardOpts.isArrow && !XEUtils.isBoolean(currentRowOpts.isFollowSelected)) {
1507
1513
  warnLog('vxe.error.notConflictProp', ['row-config.isCurrent', 'current-row-config.isFollowSelected']);
1508
1514
  }
package/es/ui/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { getFuncText } from './src/utils';
3
- export const version = "3.15.0-beta.3";
3
+ export const version = "3.15.0-beta.4";
4
4
  VxeUI.version = version;
5
5
  VxeUI.tableVersion = version;
6
6
  VxeUI.setConfig({
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `table v${"3.15.0-beta.3"}`;
3
+ const version = `table v${"3.15.0-beta.4"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -865,16 +865,16 @@ var _default = exports.default = {
865
865
  const btnParams = button ? button.params : null;
866
866
  switch (code) {
867
867
  case 'insert':
868
- return this.insert();
868
+ return $xeTable.insert({});
869
869
  case 'insert_edit':
870
- return this.insert().then(({
870
+ return $xeTable.insert({}).then(({
871
871
  row
872
- }) => this.setEditRow(row));
872
+ }) => $xeTable.setEditRow(row));
873
873
  // 已废弃
874
874
  case 'insert_actived':
875
- return this.insert().then(({
875
+ return $xeTable.insert({}).then(({
876
876
  row
877
- }) => this.setEditRow(row));
877
+ }) => $xeTable.setEditRow(row));
878
878
  // 已废弃
879
879
  case 'mark_cancel':
880
880
  this.triggerPendingEvent(code);
@@ -882,19 +882,19 @@ var _default = exports.default = {
882
882
  case 'remove':
883
883
  return this.handleDeleteRow(code, 'vxe.grid.removeSelectRecord', () => this.removeCheckboxRow());
884
884
  case 'import':
885
- this.importData(btnParams);
885
+ $xeTable.importData(btnParams);
886
886
  break;
887
887
  case 'open_import':
888
- this.openImport(btnParams);
888
+ $xeTable.openImport(btnParams);
889
889
  break;
890
890
  case 'export':
891
- this.exportData(btnParams);
891
+ $xeTable.exportData(btnParams);
892
892
  break;
893
893
  case 'open_export':
894
- this.openExport(btnParams);
894
+ $xeTable.openExport(btnParams);
895
895
  break;
896
896
  case 'reset_custom':
897
- this.resetCustom(true);
897
+ $xeTable.resetCustom(true);
898
898
  break;
899
899
  case '_init':
900
900
  case 'reload':
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _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")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,globalEvents,globalMixins,renderEmptyElement}=_ui.VxeUI,methods={},propKeys=Object.keys(_props.default),defaultLayouts=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]];function renderDefaultForm(e,r){var o=_ui.VxeUI.getComponent("VxeForm");let s=r.$scopedSlots;var{proxyConfig:i,formConfig:t}=r,{proxyOpts:a,formData:n,formOpts:l}=r;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t.call(r,{$grid:r,item:e})})}return l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),[o?e(o,{props:Object.assign({},l,{data:i&&a.form?n:l.data}),on:{submit:r.submitEvent,reset:r.resetEvent,collapse:r.collapseEvent,"submit-invalid":r.submitInvalidEvent},scopedSlots:t}):renderEmptyElement(r)]}return[]}function getFuncSlot(e,t,r){e=e.$scopedSlots,t=t[r];if(t){if(!_xeUtils.default.isString(t))return t;if(e[t])return e[t];(0,_log.errLog)("vxe.error.notSlot",[t])}return null}let getConfigSlot=(e,t)=>{let r=e.$scopedSlots,o={};return _xeUtils.default.objectMap(t,(e,t)=>{e&&(_xeUtils.default.isString(e)?r[e]?o[t]=r[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o};function getToolbarSlots(e){var{$scopedSlots:t,toolbarOpts:r}=e,r=r.slots,o={};return"development"===process.env.NODE_ENV&&(!t.buttons||r&&"buttons"===r.buttons||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.buttons"]),!t.tools||r&&"tools"===r.tools||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.tools"])),r&&(t=getFuncSlot(e,r,"buttons"),e=getFuncSlot(e,r,"tools"),t&&(o.buttons=t),e)&&(o.tools=e),o}function getTableOns(r){var{$listeners:e,proxyConfig:t,proxyOpts:o}=r;let s={};return _xeUtils.default.each(e,(e,t)=>{s[t]=(...e)=>{r.$emit(t,...e)}}),t&&(o.sort&&(s["sort-change"]=r.sortChangeEvent),o.filter)&&(s["filter-change"]=r.filterChangeEvent),s}function pageChangeEvent(t,e){var r=t.proxyConfig,o=t.tablePage;let{$event:s,currentPage:i,pageSize:a}=e;var n=t.computeProxyOpts;o.currentPage=i,o.pageSize=a,t.dispatchEvent("page-change",e,s),r&&(0,_utils.isEnableConf)(n)&&t.commitProxy("query").then(e=>{t.dispatchEvent("proxy-query",e,s)})}function renderForm(e,t){var{_e:r,$scopedSlots:o,formConfig:s}=t,o=o.form;return!o&&!(0,_utils.isEnableConf)(s)?r():e("div",{key:"form",ref:"refFormWrapper",class:"vxe-grid--form-wrapper"},o?o.call(t,{$grid:t},e):renderDefaultForm(e,t))}function renderToolbar(e,t){var{_e:r,$scopedSlots:o,toolbarConfig:s,toolbar:i}=t,o=o.toolbar;return!(o||(0,_utils.isEnableConf)(s)||i)?r():e("div",{key:"toolbar",ref:"refToolbarWrapper",class:"vxe-grid--toolbar-wrapper"},o?o.call(t,{$grid:t},e):[e(_toolbar.default,{props:Object.assign({},t.toolbarOpts,{slots:void 0}),ref:"xToolbar",scopedSlots:getToolbarSlots(t)})])}function renderTop(e,t){var{_e:r,$scopedSlots:o}=t,o=o.top;return o?e("div",{key:"top",ref:"refTopWrapper",class:"vxe-grid--top-wrapper"},o.call(t,{$grid:t},e)):r()}function renderTableLeft(e,t){var{_e:r,$scopedSlots:o}=t,o=o.left;return o?e("div",{class:"vxe-grid--left-wrapper"},o({$grid:t})):r()}function renderTableRight(e,t){var{_e:r,$scopedSlots:o}=t,o=o.right;return o?e("div",{class:"vxe-grid--right-wrapper"},o({$grid:t})):r()}function renderTable(e,t){var{$scopedSlots:r,tableProps:o}=t;return e("div",{class:"vxe-grid--table-wrapper"},[e("vxe-table",{key:"table",props:o,on:getTableOns(t),scopedSlots:r,ref:"xTable"})])}function renderBottom(e,t){var{_e:r,$scopedSlots:o}=t,o=o.bottom;return o?e("div",{key:"bottom",ref:"refBottomWrapper",class:"vxe-grid--bottom-wrapper"},o.call(t,{$grid:t},e)):r()}function renderPager(e,t){var r=_ui.VxeUI.getComponent("VxePager"),o=t.$scopedSlots,s=t,{proxyConfig:i,pagerConfig:a}=t,n=t.computeProxyOpts,l=t.computePagerOpts,g=o.pager;return a&&(0,_utils.isEnableConf)(l)||o.pager?e("div",{ref:"refPagerWrapper",key:"pager",class:"vxe-grid--pager-wrapper"},g?g.call(t,{$grid:t}):[r?e(r,{ref:"refPager",props:Object.assign(Object.assign({},l),i&&(0,_utils.isEnableConf)(n)?s.tablePage:{}),on:{"page-change"(e){pageChangeEvent(t,e)}},scopedSlots:getConfigSlot(t,l.slots)}):renderEmptyElement(t)]):renderEmptyElement(t)}function renderChildLayout(t,r,e){let o=[];return e.forEach(e=>{switch(e){case"Form":o.push(renderForm(t,r));break;case"Toolbar":o.push(renderToolbar(t,r));break;case"Top":o.push(renderTop(t,r));break;case"Table":o.push(t("div",{key:"table",class:"vxe-grid--table-container"},[renderTableLeft(t,r),renderTable(t,r),renderTableRight(t,r)]));break;case"Bottom":o.push(renderBottom(t,r));break;case"Pager":o.push(renderPager(t,r));break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),o}function renderLayout(e,t){var r=t.$scopedSlots,{headKeys:o,bodyKeys:s,footKeys:i}=t.computeCurrLayoutConf,a=r.asideLeft||r["aside-left"],r=r.asideRight||r["aside-right"];return[e("div",{class:"vxe-grid--layout-header-wrapper"},renderChildLayout(e,t,o)),e("div",{class:"vxe-grid--layout-body-wrapper"},[a?e("div",{class:"vxe-grid--layout-aside-left-wrapper"},a({})):renderEmptyElement(t),e("div",{class:"vxe-grid--layout-body-content-wrapper"},renderChildLayout(e,t,s)),r?e("div",{class:"vxe-grid--layout-aside-right-wrapper"},r({})):renderEmptyElement(t)]),e("div",{class:"vxe-grid--layout-footer-wrapper"},renderChildLayout(e,t,i))]}Object.keys(_table.default.methods).forEach(t=>{methods[t]=function(...e){return this.$refs.xTable&&this.$refs.xTable[t](...e)}});var _default=exports.default={name:"VxeGrid",mixins:[globalMixins.sizeMixin],props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:[Boolean,Object],proxyConfig:Object,toolbar:[Boolean,Object],toolbarConfig:[Boolean,Object],formConfig:[Boolean,Object],zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),provide(){return{$xeGrid:this}},data(){var e;return{tableLoading:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(e=getConfig().pager)?void 0:e.pageSize)||10,currentPage:1}}},computed:{isRespMsg(){var e=this.proxyOpts;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg},isActiveMsg(){return this.proxyOpts.showActiveMsg},proxyOpts(){return this.computeProxyOpts},computeProxyOpts(){return _xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),this.proxyConfig)},pagerOpts(){return this.computePagerOpts},computePagerOpts(){return Object.assign({},getConfig().grid.pagerConfig,this.pagerConfig)},formOpts(){return this.computeFormOpts},computeFormOpts(){return Object.assign({},getConfig().grid.formConfig,this.formConfig)},toolbarOpts(){return this.computeToolbarOpts},computeToolbarOpts(){return Object.assign({},getConfig().grid.toolbarConfig,this.toolbarConfig||this.toolbar)},zoomOpts(){return this.computeZoomOpts},computeZoomOpts(){return Object.assign({},getConfig().grid.zoomConfig,this.zoomConfig)},computeStyles(){var{height:e,maxHeight:t}=this,{isZMax:r,tZindex:o}=this,s={};return r?s.zIndex=o:(e&&(s.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(s.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),s},tableExtendProps(){let t={};return propKeys.forEach(e=>{t[e]=this[e]}),t},computeTableProps(){var{isZMax:e,seqConfig:t,pagerConfig:r,loading:o,editConfig:s,proxyConfig:i,proxyOpts:a,tableExtendProps:n,tableLoading:l,tablePage:g}=this,d=Object.assign({},n);return e&&(n.maxHeight?d.maxHeight="100%":d.height="100%"),i&&(d.loading=o||l,a.seq)&&(0,_utils.isEnableConf)(r)&&(d.seqConfig=Object.assign({},t,{startIndex:(g.currentPage-1)*g.pageSize})),s&&(d.editConfig=Object.assign({},s)),d},tableProps(){return this.computeTableProps},computeCurrLayoutConf(){var e=this.layouts;let t=[],r=[],o=[],s=[];return(t=e&&e.length?e:getConfig().grid.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],s=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:s}},computePageConfFlag(){var e=this.computePagerOpts;return""+e.currentPage+e.pageSize}},watch:{columns(e){this.$nextTick(()=>this.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computePageConfFlag(){this.initPages()}},created(){let e=this,t=("development"===process.env.NODE_ENV&&(this.toolbar&&(0,_log.warnLog)("vxe.error.delProp",["grid.toolbar","grid.toolbar-config"]),this.toolbarConfig)&&!_xeUtils.default.isObject(this.toolbarConfig)&&(0,_log.warnLog)("vxe.error.errProp",["grid.toolbar-config="+this.toolbarConfig,"grid.toolbar-config={}"]),_ui.VxeUI.getComponent("VxeForm")),r=_ui.VxeUI.getComponent("VxePager");this.$nextTick(()=>{e.formConfig&&!t&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),e.pagerConfig&&!r&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),this.initPages(),globalEvents.on(this,"keydown",this.handleGlobalKeydownEvent)},mounted(){this.columns&&this.columns.length&&this.loadColumn(this.columns),this.initToolbar(),this.initProxy()},destroyed(){globalEvents.off(this,"keydown")},render(e){var t=this,r=t.computeSize;return e("div",{ref:"refElem",class:["vxe-grid",{["size--"+r]:r,"is--animat":!!this.animat,"is--round":this.round,"is--maximize":t.isZMax,"is--loading":t.loading||t.tableLoading}],style:t.computeStyles},renderLayout(e,t))},methods:Object.assign(Object.assign(Object.assign({},methods),{callSlot(e,t,r,o){var s=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,r,o)):[]},getEl(){return this.$refs.refElem},getExcludeHeight(){var e,t,r,o,s,i=this,a=i.isZMax,n=i.$refs.refElem;return n?(e=i.$refs.refFormWrapper,t=i.$refs.refToolbarWrapper,r=i.$refs.refTopWrapper,o=i.$refs.refBottomWrapper,i=i.$refs.refPagerWrapper,s=n.parentElement,(!a&&s?(0,_dom.getPaddingTopBottomSize)(s):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(i)):0},getParentHeight(){var e=this.$refs.refElem;return e?(e=e.parentElement,(this.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-this.getExcludeHeight()):0},initToolbar(){this.$nextTick(()=>{var{xTable:e,xToolbar:t}=this.$refs;e&&t&&e.connect(t)})},initPages(){var{tablePage:e,pagerConfig:t,pagerOpts:r}=this,{currentPage:r,pageSize:o}=r;t&&(r&&(e.currentPage=r),o)&&(e.pageSize=o)},initProxy(){var{proxyInited:e,proxyConfig:t,proxyOpts:r,formConfig:o,formOpts:i}=this;if(t){if((0,_utils.isEnableConf)(o)&&r.form&&i.items){let s={};i.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)),s[r]=e}}),this.formData=s}e||!1===r.autoLoad||(this.proxyInited=!0,this.$nextTick().then(()=>this.commitProxy("_init")).then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isInited:!0,$grid:this,$event:new Event("init")}))}))}},handleGlobalKeydownEvent(e){27===e.keyCode&&this.isZMax&&!1!==this.zoomOpts.escRestore&&this.triggerZoomEvent(e)},commitProxy(t,...u){let{$refs:e,toolbar:r,toolbarConfig:o,toolbarOpts:s,proxyOpts:i,tablePage:n,pagerConfig:l,editRules:c,isRespMsg:p,isActiveMsg:h,validConfig:f,pagerOpts:g}=this,{beforeQuery:d,afterQuery:m,beforeDelete:b,afterDelete:x,beforeSave:v,afterSave:y,ajax:_={}}=i,C=i.response||i.props||{},O=e.xTable;var a,$=this.getFormData();let E,P;_xeUtils.default.isString(t)?(a=o||r?_xeUtils.default.findTree(s.buttons,e=>e.code===t,{children:"dropdowns"}):null,P=t,E=a?a.item:null):(E=t,P=E.code);var S=E?E.params:null;switch(P){case"insert":return this.insert();case"insert_edit":return this.insert().then(({row:e})=>this.setEditRow(e));case"insert_actived":return this.insert().then(({row:e})=>this.setEditRow(e));case"mark_cancel":this.triggerPendingEvent(P);break;case"remove":return this.handleDeleteRow(P,"vxe.grid.removeSelectRecord",()=>this.removeCheckboxRow());case"import":this.importData(S);break;case"open_import":this.openImport(S);break;case"export":this.exportData(S);break;case"open_export":this.openExport(S);break;case"reset_custom":this.resetCustom(!0);break;case"_init":case"reload":case"query":{var j=_.query;let a=_.querySuccess,o=_.queryError;if(j){var T="_init"===P,U="reload"===P;if(!T&&this.tableLoading)return this.$nextTick();let t=[],r=[],e={};if(l&&((T||U)&&(n.currentPage=1),(0,_utils.isEnableConf)(l))&&(e=Object.assign({},n)),T){let e=null;O&&(R=O.sortOpts,e=R.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),O&&(r=O.getCheckedFilters())}else O&&(U?O.clearAll():(t=O.getSortColumns(),r=O.getCheckedFilters()));let s={code:P,button:E,isInited:T,isReload:U,$grid:this,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:$,options:j},i=(this.sortData=t,this.filterData=r,this.tableLoading=!0,[s].concat(u));return Promise.resolve((d||j)(...i)).then(e=>{let t=[];var r,o;return this.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(g)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:this}):_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:this}):_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:this}):_xeUtils.default.get(e,o):e)||[])),O?O.loadData(t):O.$nextTick(()=>{O&&O.loadData(t)}),m&&m(...i),a&&a(Object.assign(Object.assign({},s),{response:e})),{status:!0}}).catch(e=>(this.tableLoading=!1,o&&o(Object.assign(Object.assign({},s),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let s=_.delete,i=_.deleteSuccess,a=_.deleteError;if(s){let e=O.getCheckboxRecords(),t=e.filter(e=>!O.isInsertByRow(e));var R={removeRecords:t};let r={$grid:this,code:P,button:E,body:R,form:$,options:s},o=[r].concat(u);if(e.length)return this.handleDeleteRow(P,"vxe.grid.deleteSelectRecord",()=>t.length?(this.tableLoading=!0,Promise.resolve((b||s)(...o)).then(e=>(this.tableLoading=!1,O.setPendingRow(t,!1),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.delSuccess"),status:"success"})),x?x(...o):this.commitProxy("query"),i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):O.remove(e));h&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let l=_.save,g=_.saveSuccess,d=_.saveError;if(l){let t=this.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:s,pendingRecords:i}=t,a={$grid:this,code:P,button:E,body:t,form:$,options:l},n=[a].concat(u),e=(r.length&&(t.pendingRecords=i.filter(e=>-1===r.indexOf(e))),i.length&&(t.insertRecords=r.filter(e=>-1===i.indexOf(e))),Promise.resolve());return(e=c?this[f&&"full"===f.msgMode?"fullValidate":"validate"](t.insertRecords.concat(s)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||s.length||t.pendingRecords.length?(this.tableLoading=!0,Promise.resolve((v||l)(...n)).then(e=>(this.tableLoading=!1,O.clearPendingRow(),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"})),y?y(...n):this.commitProxy("query"),g&&g(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),d&&d(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):void(h&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:T=commands.get(P);T&&(T.commandMethod?T.commandMethod({code:P,button:E,$grid:this,$table:O},...u):(0,_log.errLog)("vxe.error.notCommands",[P]))}return this.$nextTick()},getRespMsg(e,t){var r=this.proxyOpts,r=r.response||r.props||{};let o;return(o=e&&r.message?_xeUtils.default.get(e,r.message):o)||getI18n(t)},handleDeleteRow(e,t,r){var o=this.getCheckboxRecords();if(this.isActiveMsg){if(o.length)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()});_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else o.length&&r();return Promise.resolve()},getFormData(){var{proxyConfig:e,proxyOpts:t,formOpts:r,formData:o}=this;return e&&(0,_utils.isEnableConf)(t)&&t.form?o:r.data},getFormItems(e){var{formConfig:t,formOpts:r}=this;let o=[];return _xeUtils.default.eachTree((0,_utils.isEnableConf)(t)&&r.items?r.items:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},triggerToolbarCommitEvent(e,t){let r=e.code;return this.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&this.$emit("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r,$grid:this,$event:t}))})},triggerToolbarBtnEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-button-click",{code:e.code,button:e,$grid:this,$event:t})},triggerToolbarTolEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-tool-click",{code:e.code,tool:e,$grid:this,$event:t})},triggerPendingEvent(e){var t=this.isActiveMsg,r=this.getCheckboxRecords();r.length?(this.togglePendingRow(r),this.clearCheckboxRow()):t&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))},sortChangeEvent(t){var{$table:e,column:r,sortList:o}=t;(_xeUtils.default.isBoolean(r.remoteSort)?r.remoteSort:e.sortOpts.remote)&&(this.sortData=o,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("sort-change",Object.assign({$grid:this},t))},filterChangeEvent(t){var{$table:e,filterList:r}=t;e.filterOpts.remote&&(this.filterData=r,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("filter-change",Object.assign({$grid:this},t))},submitEvent(t){var e=this.proxyConfig;this.tableLoading||(e&&this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))}),this.$emit("form-submit",Object.assign({$grid:this},t)))},resetEvent(t){var e=this.proxyConfig,r=this.$refs.xTable;e&&(r.clearScroll(),this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))})),this.$emit("form-reset",Object.assign({$grid:this},t))},submitInvalidEvent(e){this.$emit("form-submit-invalid",Object.assign({$grid:this},e))},collapseEvent(e){this.$nextTick(()=>this.recalculate(!0)),this.$emit("form-toggle-collapse",Object.assign({$grid:this},e)),this.$emit("form-collapse",Object.assign({$grid:this},e))},triggerZoomEvent(e){this.zoom(),this.$emit("zoom",{$grid:this,type:this.isZMax?"max":"revert",$event:e})},zoom(){return this[this.isZMax?"revert":"maximize"]()},isMaximized(){return this.isZMax},maximize(){return this.handleZoom(!0)},revert(){return this.handleZoom()},handleZoom(e){var t=this.isZMax;return(e?!t:t)&&(this.isZMax=!t,this.tZindex<(0,_utils.getLastZIndex)())&&(this.tZindex=(0,_utils.nextZIndex)()),this.$nextTick().then(()=>this.recalculate(!0)).then(()=>(setTimeout(()=>this.recalculate(!0),15),this.isZMax))},getProxyInfo(){var{$refs:e,sortData:t,proxyConfig:r}=this,e=e.xTable;return r?{data:e?e.getFullData():[],filter:this.filterData,form:this.getFormData(),sort:t.length?t[0]:{},sorts:t,pager:this.tablePage,pendingRecords:e?e.getPendingRecords():[]}:null}}),"development"===process.env.NODE_ENV?{loadColumn(e){let t=this.$scopedSlots;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||t[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),this.$refs.xTable.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)}}:null)};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _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")),_vn=require("../../ui/src/vn"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getI18n,commands,globalEvents,globalMixins,renderEmptyElement}=_ui.VxeUI,methods={},propKeys=Object.keys(_props.default),defaultLayouts=[["Form"],["Toolbar","Top","Table","Bottom","Pager"]];function renderDefaultForm(e,r){var o=_ui.VxeUI.getComponent("VxeForm");let s=r.$scopedSlots;var{proxyConfig:i,formConfig:t}=r,{proxyOpts:a,formData:n,formOpts:l}=r;if((0,_utils.isEnableConf)(t)&&l.items&&l.items.length){let t={};if(!l.inited){l.inited=!0;let t=a.beforeItem;a&&t&&l.items.forEach(e=>{t.call(r,{$grid:r,item:e})})}return l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||s[e]&&(t[e]=s[e])})}),[o?e(o,{props:Object.assign({},l,{data:i&&a.form?n:l.data}),on:{submit:r.submitEvent,reset:r.resetEvent,collapse:r.collapseEvent,"submit-invalid":r.submitInvalidEvent},scopedSlots:t}):renderEmptyElement(r)]}return[]}function getFuncSlot(e,t,r){e=e.$scopedSlots,t=t[r];if(t){if(!_xeUtils.default.isString(t))return t;if(e[t])return e[t];(0,_log.errLog)("vxe.error.notSlot",[t])}return null}let getConfigSlot=(e,t)=>{let r=e.$scopedSlots,o={};return _xeUtils.default.objectMap(t,(e,t)=>{e&&(_xeUtils.default.isString(e)?r[e]?o[t]=r[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):o[t]=e)}),o};function getToolbarSlots(e){var{$scopedSlots:t,toolbarOpts:r}=e,r=r.slots,o={};return"development"===process.env.NODE_ENV&&(!t.buttons||r&&"buttons"===r.buttons||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.buttons"]),!t.tools||r&&"tools"===r.tools||(0,_log.warnLog)("vxe.error.reqProp",["toolbar-config.slots.tools"])),r&&(t=getFuncSlot(e,r,"buttons"),e=getFuncSlot(e,r,"tools"),t&&(o.buttons=t),e)&&(o.tools=e),o}function getTableOns(r){var{$listeners:e,proxyConfig:t,proxyOpts:o}=r;let s={};return _xeUtils.default.each(e,(e,t)=>{s[t]=(...e)=>{r.$emit(t,...e)}}),t&&(o.sort&&(s["sort-change"]=r.sortChangeEvent),o.filter)&&(s["filter-change"]=r.filterChangeEvent),s}function pageChangeEvent(t,e){var r=t.proxyConfig,o=t.tablePage;let{$event:s,currentPage:i,pageSize:a}=e;var n=t.computeProxyOpts;o.currentPage=i,o.pageSize=a,t.dispatchEvent("page-change",e,s),r&&(0,_utils.isEnableConf)(n)&&t.commitProxy("query").then(e=>{t.dispatchEvent("proxy-query",e,s)})}function renderForm(e,t){var{_e:r,$scopedSlots:o,formConfig:s}=t,o=o.form;return!o&&!(0,_utils.isEnableConf)(s)?r():e("div",{key:"form",ref:"refFormWrapper",class:"vxe-grid--form-wrapper"},o?o.call(t,{$grid:t},e):renderDefaultForm(e,t))}function renderToolbar(e,t){var{_e:r,$scopedSlots:o,toolbarConfig:s,toolbar:i}=t,o=o.toolbar;return!(o||(0,_utils.isEnableConf)(s)||i)?r():e("div",{key:"toolbar",ref:"refToolbarWrapper",class:"vxe-grid--toolbar-wrapper"},o?o.call(t,{$grid:t},e):[e(_toolbar.default,{props:Object.assign({},t.toolbarOpts,{slots:void 0}),ref:"xToolbar",scopedSlots:getToolbarSlots(t)})])}function renderTop(e,t){var{_e:r,$scopedSlots:o}=t,o=o.top;return o?e("div",{key:"top",ref:"refTopWrapper",class:"vxe-grid--top-wrapper"},o.call(t,{$grid:t},e)):r()}function renderTableLeft(e,t){var{_e:r,$scopedSlots:o}=t,o=o.left;return o?e("div",{class:"vxe-grid--left-wrapper"},o({$grid:t})):r()}function renderTableRight(e,t){var{_e:r,$scopedSlots:o}=t,o=o.right;return o?e("div",{class:"vxe-grid--right-wrapper"},o({$grid:t})):r()}function renderTable(e,t){var{$scopedSlots:r,tableProps:o}=t;return e("div",{class:"vxe-grid--table-wrapper"},[e("vxe-table",{key:"table",props:o,on:getTableOns(t),scopedSlots:r,ref:"xTable"})])}function renderBottom(e,t){var{_e:r,$scopedSlots:o}=t,o=o.bottom;return o?e("div",{key:"bottom",ref:"refBottomWrapper",class:"vxe-grid--bottom-wrapper"},o.call(t,{$grid:t},e)):r()}function renderPager(e,t){var r=_ui.VxeUI.getComponent("VxePager"),o=t.$scopedSlots,s=t,{proxyConfig:i,pagerConfig:a}=t,n=t.computeProxyOpts,l=t.computePagerOpts,g=o.pager;return a&&(0,_utils.isEnableConf)(l)||o.pager?e("div",{ref:"refPagerWrapper",key:"pager",class:"vxe-grid--pager-wrapper"},g?g.call(t,{$grid:t}):[r?e(r,{ref:"refPager",props:Object.assign(Object.assign({},l),i&&(0,_utils.isEnableConf)(n)?s.tablePage:{}),on:{"page-change"(e){pageChangeEvent(t,e)}},scopedSlots:getConfigSlot(t,l.slots)}):renderEmptyElement(t)]):renderEmptyElement(t)}function renderChildLayout(t,r,e){let o=[];return e.forEach(e=>{switch(e){case"Form":o.push(renderForm(t,r));break;case"Toolbar":o.push(renderToolbar(t,r));break;case"Top":o.push(renderTop(t,r));break;case"Table":o.push(t("div",{key:"table",class:"vxe-grid--table-container"},[renderTableLeft(t,r),renderTable(t,r),renderTableRight(t,r)]));break;case"Bottom":o.push(renderBottom(t,r));break;case"Pager":o.push(renderPager(t,r));break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),o}function renderLayout(e,t){var r=t.$scopedSlots,{headKeys:o,bodyKeys:s,footKeys:i}=t.computeCurrLayoutConf,a=r.asideLeft||r["aside-left"],r=r.asideRight||r["aside-right"];return[e("div",{class:"vxe-grid--layout-header-wrapper"},renderChildLayout(e,t,o)),e("div",{class:"vxe-grid--layout-body-wrapper"},[a?e("div",{class:"vxe-grid--layout-aside-left-wrapper"},a({})):renderEmptyElement(t),e("div",{class:"vxe-grid--layout-body-content-wrapper"},renderChildLayout(e,t,s)),r?e("div",{class:"vxe-grid--layout-aside-right-wrapper"},r({})):renderEmptyElement(t)]),e("div",{class:"vxe-grid--layout-footer-wrapper"},renderChildLayout(e,t,i))]}Object.keys(_table.default.methods).forEach(t=>{methods[t]=function(...e){return this.$refs.xTable&&this.$refs.xTable[t](...e)}});var _default=exports.default={name:"VxeGrid",mixins:[globalMixins.sizeMixin],props:Object.assign(Object.assign({},_props.default),{layouts:Array,columns:Array,pagerConfig:[Boolean,Object],proxyConfig:Object,toolbar:[Boolean,Object],toolbarConfig:[Boolean,Object],formConfig:[Boolean,Object],zoomConfig:Object,size:{type:String,default:()=>getConfig().grid.size||getConfig().size}}),provide(){return{$xeGrid:this}},data(){var e;return{tableLoading:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(e=getConfig().pager)?void 0:e.pageSize)||10,currentPage:1}}},computed:{isRespMsg(){var e=this.proxyOpts;return _xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg},isActiveMsg(){return this.proxyOpts.showActiveMsg},proxyOpts(){return this.computeProxyOpts},computeProxyOpts(){return _xeUtils.default.merge({},_xeUtils.default.clone(getConfig().grid.proxyConfig,!0),this.proxyConfig)},pagerOpts(){return this.computePagerOpts},computePagerOpts(){return Object.assign({},getConfig().grid.pagerConfig,this.pagerConfig)},formOpts(){return this.computeFormOpts},computeFormOpts(){return Object.assign({},getConfig().grid.formConfig,this.formConfig)},toolbarOpts(){return this.computeToolbarOpts},computeToolbarOpts(){return Object.assign({},getConfig().grid.toolbarConfig,this.toolbarConfig||this.toolbar)},zoomOpts(){return this.computeZoomOpts},computeZoomOpts(){return Object.assign({},getConfig().grid.zoomConfig,this.zoomConfig)},computeStyles(){var{height:e,maxHeight:t}=this,{isZMax:r,tZindex:o}=this,s={};return r?s.zIndex=o:(e&&(s.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(s.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),s},tableExtendProps(){let t={};return propKeys.forEach(e=>{t[e]=this[e]}),t},computeTableProps(){var{isZMax:e,seqConfig:t,pagerConfig:r,loading:o,editConfig:s,proxyConfig:i,proxyOpts:a,tableExtendProps:n,tableLoading:l,tablePage:g}=this,d=Object.assign({},n);return e&&(n.maxHeight?d.maxHeight="100%":d.height="100%"),i&&(d.loading=o||l,a.seq)&&(0,_utils.isEnableConf)(r)&&(d.seqConfig=Object.assign({},t,{startIndex:(g.currentPage-1)*g.pageSize})),s&&(d.editConfig=Object.assign({},s)),d},tableProps(){return this.computeTableProps},computeCurrLayoutConf(){var e=this.layouts;let t=[],r=[],o=[],s=[];return(t=e&&e.length?e:getConfig().grid.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(r=t[0],o=t[1]||[],s=t[2]||[]):o=t),{headKeys:r,bodyKeys:o,footKeys:s}},computePageConfFlag(){var e=this.computePagerOpts;return""+e.currentPage+e.pageSize}},watch:{columns(e){this.$nextTick(()=>this.loadColumn(e))},toolbar(e){e&&this.initToolbar()},toolbarConfig(e){e&&this.initToolbar()},proxyConfig(){this.initProxy()},computePageConfFlag(){this.initPages()}},created(){let e=this,t=("development"===process.env.NODE_ENV&&(this.toolbar&&(0,_log.warnLog)("vxe.error.delProp",["grid.toolbar","grid.toolbar-config"]),this.toolbarConfig)&&!_xeUtils.default.isObject(this.toolbarConfig)&&(0,_log.warnLog)("vxe.error.errProp",["grid.toolbar-config="+this.toolbarConfig,"grid.toolbar-config={}"]),_ui.VxeUI.getComponent("VxeForm")),r=_ui.VxeUI.getComponent("VxePager");this.$nextTick(()=>{e.formConfig&&!t&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),e.pagerConfig&&!r&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"])}),this.initPages(),globalEvents.on(this,"keydown",this.handleGlobalKeydownEvent)},mounted(){this.columns&&this.columns.length&&this.loadColumn(this.columns),this.initToolbar(),this.initProxy()},destroyed(){globalEvents.off(this,"keydown")},render(e){var t=this,r=t.computeSize;return e("div",{ref:"refElem",class:["vxe-grid",{["size--"+r]:r,"is--animat":!!this.animat,"is--round":this.round,"is--maximize":t.isZMax,"is--loading":t.loading||t.tableLoading}],style:t.computeStyles},renderLayout(e,t))},methods:Object.assign(Object.assign(Object.assign({},methods),{callSlot(e,t,r,o){var s=this.$scopedSlots;return e&&(_xeUtils.default.isString(e)&&(e=s[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e.call(this,t,r,o)):[]},getEl(){return this.$refs.refElem},getExcludeHeight(){var e,t,r,o,s,i=this,a=i.isZMax,n=i.$refs.refElem;return n?(e=i.$refs.refFormWrapper,t=i.$refs.refToolbarWrapper,r=i.$refs.refTopWrapper,o=i.$refs.refBottomWrapper,i=i.$refs.refPagerWrapper,s=n.parentElement,(!a&&s?(0,_dom.getPaddingTopBottomSize)(s):0)+(0,_dom.getPaddingTopBottomSize)(n)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)+(0,_dom.getOffsetHeight)(i)):0},getParentHeight(){var e=this.$refs.refElem;return e?(e=e.parentElement,(this.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-this.getExcludeHeight()):0},initToolbar(){this.$nextTick(()=>{var{xTable:e,xToolbar:t}=this.$refs;e&&t&&e.connect(t)})},initPages(){var{tablePage:e,pagerConfig:t,pagerOpts:r}=this,{currentPage:r,pageSize:o}=r;t&&(r&&(e.currentPage=r),o)&&(e.pageSize=o)},initProxy(){var{proxyInited:e,proxyConfig:t,proxyOpts:r,formConfig:o,formOpts:i}=this;if(t){if((0,_utils.isEnableConf)(o)&&r.form&&i.items){let s={};i.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)),s[r]=e}}),this.formData=s}e||!1===r.autoLoad||(this.proxyInited=!0,this.$nextTick().then(()=>this.commitProxy("_init")).then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isInited:!0,$grid:this,$event:new Event("init")}))}))}},handleGlobalKeydownEvent(e){27===e.keyCode&&this.isZMax&&!1!==this.zoomOpts.escRestore&&this.triggerZoomEvent(e)},commitProxy(t,...u){let{$refs:e,toolbar:r,toolbarConfig:o,toolbarOpts:s,proxyOpts:i,tablePage:n,pagerConfig:l,editRules:c,isRespMsg:p,isActiveMsg:h,validConfig:f,pagerOpts:g}=this,{beforeQuery:d,afterQuery:m,beforeDelete:b,afterDelete:x,beforeSave:v,afterSave:y,ajax:_={}}=i,C=i.response||i.props||{},O=e.xTable;var a,$=this.getFormData();let E,P;_xeUtils.default.isString(t)?(a=o||r?_xeUtils.default.findTree(s.buttons,e=>e.code===t,{children:"dropdowns"}):null,P=t,E=a?a.item:null):(E=t,P=E.code);var S=E?E.params:null;switch(P){case"insert":return O.insert({});case"insert_edit":return O.insert({}).then(({row:e})=>O.setEditRow(e));case"insert_actived":return O.insert({}).then(({row:e})=>O.setEditRow(e));case"mark_cancel":this.triggerPendingEvent(P);break;case"remove":return this.handleDeleteRow(P,"vxe.grid.removeSelectRecord",()=>this.removeCheckboxRow());case"import":O.importData(S);break;case"open_import":O.openImport(S);break;case"export":O.exportData(S);break;case"open_export":O.openExport(S);break;case"reset_custom":O.resetCustom(!0);break;case"_init":case"reload":case"query":{var j=_.query;let a=_.querySuccess,o=_.queryError;if(j){var T="_init"===P,U="reload"===P;if(!T&&this.tableLoading)return this.$nextTick();let t=[],r=[],e={};if(l&&((T||U)&&(n.currentPage=1),(0,_utils.isEnableConf)(l))&&(e=Object.assign({},n)),T){let e=null;O&&(R=O.sortOpts,e=R.defaultSort),e&&(_xeUtils.default.isArray(e)||(e=[e]),t=e.map(e=>({field:e.field,property:e.field,order:e.order}))),O&&(r=O.getCheckedFilters())}else O&&(U?O.clearAll():(t=O.getSortColumns(),r=O.getCheckedFilters()));let s={code:P,button:E,isInited:T,isReload:U,$grid:this,page:e,sort:t.length?t[0]:{},sorts:t,filters:r,form:$,options:j},i=(this.sortData=t,this.filterData=r,this.tableLoading=!0,[s].concat(u));return Promise.resolve((d||j)(...i)).then(e=>{let t=[];var r,o;return this.tableLoading=!1,e&&(l&&(0,_utils.isEnableConf)(g)?(o=C.total,o=(_xeUtils.default.isFunction(o)?o({data:e,$grid:this}):_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:this}):_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:this}):_xeUtils.default.get(e,o):e)||[])),O?O.loadData(t):O.$nextTick(()=>{O&&O.loadData(t)}),m&&m(...i),a&&a(Object.assign(Object.assign({},s),{response:e})),{status:!0}}).catch(e=>(this.tableLoading=!1,o&&o(Object.assign(Object.assign({},s),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let s=_.delete,i=_.deleteSuccess,a=_.deleteError;if(s){let e=O.getCheckboxRecords(),t=e.filter(e=>!O.isInsertByRow(e));var R={removeRecords:t};let r={$grid:this,code:P,button:E,body:R,form:$,options:s},o=[r].concat(u);if(e.length)return this.handleDeleteRow(P,"vxe.grid.deleteSelectRecord",()=>t.length?(this.tableLoading=!0,Promise.resolve((b||s)(...o)).then(e=>(this.tableLoading=!1,O.setPendingRow(t,!1),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.delSuccess"),status:"success"})),x?x(...o):this.commitProxy("query"),i&&i(Object.assign(Object.assign({},r),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),a&&a(Object.assign(Object.assign({},r),{response:e})),{status:!1}))):O.remove(e));h&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let l=_.save,g=_.saveSuccess,d=_.saveError;if(l){let t=this.getRecordset(),{insertRecords:r,removeRecords:o,updateRecords:s,pendingRecords:i}=t,a={$grid:this,code:P,button:E,body:t,form:$,options:l},n=[a].concat(u),e=(r.length&&(t.pendingRecords=i.filter(e=>-1===r.indexOf(e))),i.length&&(t.insertRecords=r.filter(e=>-1===i.indexOf(e))),Promise.resolve());return(e=c?this[f&&"full"===f.msgMode?"fullValidate":"validate"](t.insertRecords.concat(s)):e).then(e=>{if(!e)return t.insertRecords.length||o.length||s.length||t.pendingRecords.length?(this.tableLoading=!0,Promise.resolve((v||l)(...n)).then(e=>(this.tableLoading=!1,O.clearPendingRow(),p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({content:this.getRespMsg(e,"vxe.grid.saveSuccess"),status:"success"})),y?y(...n):this.commitProxy("query"),g&&g(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(this.tableLoading=!1,p&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:this.getRespMsg(e,"vxe.grid.operError"),status:"error"})),d&&d(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):void(h&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:P,content:getI18n("vxe.grid.dataUnchanged"),status:"info"})))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:T=commands.get(P);T&&(T.commandMethod?T.commandMethod({code:P,button:E,$grid:this,$table:O},...u):(0,_log.errLog)("vxe.error.notCommands",[P]))}return this.$nextTick()},getRespMsg(e,t){var r=this.proxyOpts,r=r.response||r.props||{};let o;return(o=e&&r.message?_xeUtils.default.get(e,r.message):o)||getI18n(t)},handleDeleteRow(e,t,r){var o=this.getCheckboxRecords();if(this.isActiveMsg){if(o.length)return _ui.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return r()});_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else o.length&&r();return Promise.resolve()},getFormData(){var{proxyConfig:e,proxyOpts:t,formOpts:r,formData:o}=this;return e&&(0,_utils.isEnableConf)(t)&&t.form?o:r.data},getFormItems(e){var{formConfig:t,formOpts:r}=this;let o=[];return _xeUtils.default.eachTree((0,_utils.isEnableConf)(t)&&r.items?r.items:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},triggerToolbarCommitEvent(e,t){let r=e.code;return this.commitProxy(e,t).then(e=>{r&&e&&e.status&&["query","reload","delete","save"].includes(r)&&this.$emit("delete"===r||"save"===r?"proxy-"+r:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===r,$grid:this,$event:t}))})},triggerToolbarBtnEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-button-click",{code:e.code,button:e,$grid:this,$event:t})},triggerToolbarTolEvent(e,t){this.triggerToolbarCommitEvent(e,t),this.$emit("toolbar-tool-click",{code:e.code,tool:e,$grid:this,$event:t})},triggerPendingEvent(e){var t=this.isActiveMsg,r=this.getCheckboxRecords();r.length?(this.togglePendingRow(r),this.clearCheckboxRow()):t&&(_ui.VxeUI.modal||(0,_log.errLog)("vxe.error.reqModule",["Modal"]),_ui.VxeUI.modal.message({id:e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"}))},sortChangeEvent(t){var{$table:e,column:r,sortList:o}=t;(_xeUtils.default.isBoolean(r.remoteSort)?r.remoteSort:e.sortOpts.remote)&&(this.sortData=o,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("sort-change",Object.assign({$grid:this},t))},filterChangeEvent(t){var{$table:e,filterList:r}=t;e.filterOpts.remote&&(this.filterData=r,this.proxyConfig)&&(this.tablePage.currentPage=1,this.commitProxy("query").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{$grid:this,$event:t.$event}))})),this.$emit("filter-change",Object.assign({$grid:this},t))},submitEvent(t){var e=this.proxyConfig;this.tableLoading||(e&&this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))}),this.$emit("form-submit",Object.assign({$grid:this},t)))},resetEvent(t){var e=this.proxyConfig,r=this.$refs.xTable;e&&(r.clearScroll(),this.commitProxy("reload").then(e=>{this.$emit("proxy-query",Object.assign(Object.assign({},e),{isReload:!0,$grid:this,$event:t.$event}))})),this.$emit("form-reset",Object.assign({$grid:this},t))},submitInvalidEvent(e){this.$emit("form-submit-invalid",Object.assign({$grid:this},e))},collapseEvent(e){this.$nextTick(()=>this.recalculate(!0)),this.$emit("form-toggle-collapse",Object.assign({$grid:this},e)),this.$emit("form-collapse",Object.assign({$grid:this},e))},triggerZoomEvent(e){this.zoom(),this.$emit("zoom",{$grid:this,type:this.isZMax?"max":"revert",$event:e})},zoom(){return this[this.isZMax?"revert":"maximize"]()},isMaximized(){return this.isZMax},maximize(){return this.handleZoom(!0)},revert(){return this.handleZoom()},handleZoom(e){var t=this.isZMax;return(e?!t:t)&&(this.isZMax=!t,this.tZindex<(0,_utils.getLastZIndex)())&&(this.tZindex=(0,_utils.nextZIndex)()),this.$nextTick().then(()=>this.recalculate(!0)).then(()=>(setTimeout(()=>this.recalculate(!0),15),this.isZMax))},getProxyInfo(){var{$refs:e,sortData:t,proxyConfig:r}=this,e=e.xTable;return r?{data:e?e.getFullData():[],filter:this.filterData,form:this.getFormData(),sort:t.length?t[0]:{},sorts:t,pager:this.tablePage,pendingRecords:e?e.getPendingRecords():[]}:null}}),"development"===process.env.NODE_ENV?{loadColumn(e){let t=this.$scopedSlots;return _xeUtils.default.eachTree(e,e=>{e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||t[e]||(0,_log.errLog)("vxe.error.notSlot",[e])})}),this.$refs.xTable.loadColumn(e)},reloadColumn(e){return this.clearAll(),this.loadColumn(e)}}:null)};
package/lib/index.umd.js CHANGED
@@ -2220,7 +2220,7 @@ function getClass(property, params) {
2220
2220
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
2221
2221
 
2222
2222
 
2223
- const version = "3.15.0-beta.3";
2223
+ const version = "3.15.0-beta.4";
2224
2224
  core_.VxeUI.version = version;
2225
2225
  core_.VxeUI.tableVersion = version;
2226
2226
  core_.VxeUI.setConfig({
@@ -2843,7 +2843,7 @@ function isNodeElement(elem) {
2843
2843
  const {
2844
2844
  log: log_log
2845
2845
  } = core_.VxeUI;
2846
- const log_version = `table v${"3.15.0-beta.3"}`;
2846
+ const log_version = `table v${"3.15.0-beta.4"}`;
2847
2847
  const warnLog = log_log.create('warn', log_version);
2848
2848
  const errLog = log_log.create('error', log_version);
2849
2849
  ;// CONCATENATED MODULE: ./packages/table/src/columnInfo.ts
@@ -12578,13 +12578,14 @@ const Methods = {
12578
12578
  */
12579
12579
  triggerRadioRowEvent(evnt, params) {
12580
12580
  const $xeTable = this;
12581
+ const reactData = $xeTable;
12581
12582
  const {
12582
- selectRadioRow: oldValue,
12583
- radioOpts
12584
- } = this;
12583
+ selectRadioRow: oldValue
12584
+ } = reactData;
12585
12585
  const {
12586
12586
  row
12587
12587
  } = params;
12588
+ const radioOpts = $xeTable.computeRadioOpts;
12588
12589
  const {
12589
12590
  trigger
12590
12591
  } = radioOpts;
@@ -12600,11 +12601,11 @@ const Methods = {
12600
12601
  isChange = oldValue === newValue;
12601
12602
  if (isChange) {
12602
12603
  newValue = null;
12603
- this.clearRadioRow();
12604
+ $xeTable.clearRadioRow();
12604
12605
  }
12605
12606
  }
12606
12607
  if (isChange) {
12607
- this.emitEvent('radio-change', {
12608
+ $xeTable.dispatchEvent('radio-change', {
12608
12609
  oldValue,
12609
12610
  newValue,
12610
12611
  ...params
@@ -12613,17 +12614,31 @@ const Methods = {
12613
12614
  },
12614
12615
  triggerCurrentColumnEvent(evnt, params) {
12615
12616
  const $xeTable = this;
12616
- const columnOpts = $xeTable.computeColumnOpts;
12617
+ const reactData = $xeTable;
12617
12618
  const {
12618
- currentMethod
12619
- } = columnOpts;
12619
+ currentColumn: oldValue
12620
+ } = reactData;
12621
+ const columnOpts = $xeTable.computeColumnOpts;
12622
+ const currentColumnOpts = $xeTable.computeCurrentColumnOpts;
12623
+ const beforeRowMethod = currentColumnOpts.beforeSelectMethod || columnOpts.currentMethod;
12620
12624
  const {
12621
- column
12625
+ column: newValue
12622
12626
  } = params;
12623
- if (!currentMethod || currentMethod({
12624
- column
12627
+ const isChange = oldValue !== newValue;
12628
+ if (!beforeRowMethod || beforeRowMethod({
12629
+ column: newValue,
12630
+ $table: $xeTable
12625
12631
  })) {
12626
- $xeTable.setCurrentColumn(column);
12632
+ $xeTable.setCurrentColumn(newValue);
12633
+ if (isChange) {
12634
+ $xeTable.dispatchEvent('current-column-change', {
12635
+ oldValue,
12636
+ newValue,
12637
+ ...params
12638
+ }, evnt);
12639
+ }
12640
+ } else {
12641
+ $xeTable.dispatchEvent('current-column-disabled', params, evnt);
12627
12642
  }
12628
12643
  },
12629
12644
  triggerCurrentRowEvent(evnt, params) {
@@ -12633,24 +12648,32 @@ const Methods = {
12633
12648
  currentRow: oldValue
12634
12649
  } = reactData;
12635
12650
  const rowOpts = $xeTable.computeRowOpts;
12636
- const {
12637
- currentMethod
12638
- } = rowOpts;
12651
+ const currentRowOpts = $xeTable.computeCurrentRowOpts;
12652
+ const beforeRowMethod = currentRowOpts.beforeSelectMethod || rowOpts.currentMethod;
12639
12653
  const {
12640
12654
  row: newValue
12641
12655
  } = params;
12642
12656
  const isChange = oldValue !== newValue;
12643
- if (!currentMethod || currentMethod({
12644
- row: newValue
12657
+ if (!beforeRowMethod || beforeRowMethod({
12658
+ row: newValue,
12659
+ $table: $xeTable
12645
12660
  })) {
12646
12661
  $xeTable.setCurrentRow(newValue);
12647
12662
  if (isChange) {
12663
+ $xeTable.dispatchEvent('current-row-change', {
12664
+ oldValue,
12665
+ newValue,
12666
+ ...params
12667
+ }, evnt);
12668
+ // 已废弃
12648
12669
  $xeTable.dispatchEvent('current-change', {
12649
12670
  oldValue,
12650
12671
  newValue,
12651
12672
  ...params
12652
12673
  }, evnt);
12653
12674
  }
12675
+ } else {
12676
+ $xeTable.dispatchEvent('current-row-disabled', params, evnt);
12654
12677
  }
12655
12678
  },
12656
12679
  /**
@@ -27556,6 +27579,12 @@ function renderBody(h, $xeTable) {
27556
27579
  if (props.emptyRender && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isObject(props.emptyRender)) {
27557
27580
  warnLog('vxe.error.errProp', [`table.empty-render=${props.emptyRender}`, 'table.empty-render={}']);
27558
27581
  }
27582
+ if (rowOpts.currentMethod) {
27583
+ warnLog('vxe.error.delProp', ['row-config.currentMethod', 'current-row-config.beforeSelectMethod']);
27584
+ }
27585
+ if (columnOpts.currentMethod) {
27586
+ warnLog('vxe.error.delProp', ['row-config.currentMethod', 'current-column-config.beforeSelectMethod']);
27587
+ }
27559
27588
  if ((rowOpts.isCurrent || highlightCurrentRow) && props.keyboardConfig && keyboardOpts.isArrow && !external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(currentRowOpts.isFollowSelected)) {
27560
27589
  warnLog('vxe.error.notConflictProp', ['row-config.isCurrent', 'current-row-config.isFollowSelected']);
27561
27590
  }
@@ -29650,16 +29679,16 @@ Object.keys(table.methods).forEach(name => {
29650
29679
  const btnParams = button ? button.params : null;
29651
29680
  switch (code) {
29652
29681
  case 'insert':
29653
- return this.insert();
29682
+ return $xeTable.insert({});
29654
29683
  case 'insert_edit':
29655
- return this.insert().then(({
29684
+ return $xeTable.insert({}).then(({
29656
29685
  row
29657
- }) => this.setEditRow(row));
29686
+ }) => $xeTable.setEditRow(row));
29658
29687
  // 已废弃
29659
29688
  case 'insert_actived':
29660
- return this.insert().then(({
29689
+ return $xeTable.insert({}).then(({
29661
29690
  row
29662
- }) => this.setEditRow(row));
29691
+ }) => $xeTable.setEditRow(row));
29663
29692
  // 已废弃
29664
29693
  case 'mark_cancel':
29665
29694
  this.triggerPendingEvent(code);
@@ -29667,19 +29696,19 @@ Object.keys(table.methods).forEach(name => {
29667
29696
  case 'remove':
29668
29697
  return this.handleDeleteRow(code, 'vxe.grid.removeSelectRecord', () => this.removeCheckboxRow());
29669
29698
  case 'import':
29670
- this.importData(btnParams);
29699
+ $xeTable.importData(btnParams);
29671
29700
  break;
29672
29701
  case 'open_import':
29673
- this.openImport(btnParams);
29702
+ $xeTable.openImport(btnParams);
29674
29703
  break;
29675
29704
  case 'export':
29676
- this.exportData(btnParams);
29705
+ $xeTable.exportData(btnParams);
29677
29706
  break;
29678
29707
  case 'open_export':
29679
- this.openExport(btnParams);
29708
+ $xeTable.openExport(btnParams);
29680
29709
  break;
29681
29710
  case 'reset_custom':
29682
- this.resetCustom(true);
29711
+ $xeTable.resetCustom(true);
29683
29712
  break;
29684
29713
  case '_init':
29685
29714
  case 'reload':