vxe-table 4.23.11 → 4.23.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/all.esm.js +15834 -15806
  2. package/dist/all.esm.min.js +3 -0
  3. package/es/grid/src/grid.js +1665 -1662
  4. package/es/table/src/column.js +39 -36
  5. package/es/table/src/group.js +49 -46
  6. package/es/table/src/table.js +13721 -13706
  7. package/es/toolbar/src/toolbar.js +595 -592
  8. package/es/ui/index.js +2 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/lib/grid/src/grid.js +1665 -1662
  11. package/lib/index.umd.js +15834 -15806
  12. package/lib/index.umd.min.js +3 -3
  13. package/lib/locale/ar-EG.umd.min.js +1 -0
  14. package/lib/locale/de-DE.umd.min.js +1 -0
  15. package/lib/locale/en-US.umd.min.js +1 -0
  16. package/lib/locale/es-ES.umd.min.js +1 -0
  17. package/lib/locale/fr-FR.umd.min.js +1 -0
  18. package/lib/locale/hu-HU.umd.min.js +1 -0
  19. package/lib/locale/hy-AM.umd.min.js +1 -0
  20. package/lib/locale/id-ID.umd.min.js +1 -0
  21. package/lib/locale/it-IT.umd.min.js +1 -0
  22. package/lib/locale/ja-JP.umd.min.js +1 -0
  23. package/lib/locale/ko-KR.umd.min.js +1 -0
  24. package/lib/locale/lang/ar-EG.umd.min.js +1 -0
  25. package/lib/locale/lang/de-DE.umd.min.js +1 -0
  26. package/lib/locale/lang/en-US.umd.min.js +1 -0
  27. package/lib/locale/lang/es-ES.umd.min.js +1 -0
  28. package/lib/locale/lang/fr-FR.umd.min.js +1 -0
  29. package/lib/locale/lang/hu-HU.umd.min.js +1 -0
  30. package/lib/locale/lang/hy-AM.umd.min.js +1 -0
  31. package/lib/locale/lang/id-ID.umd.min.js +1 -0
  32. package/lib/locale/lang/it-IT.umd.min.js +1 -0
  33. package/lib/locale/lang/ja-JP.umd.min.js +1 -0
  34. package/lib/locale/lang/ko-KR.umd.min.js +1 -0
  35. package/lib/locale/lang/ms-MY.umd.min.js +1 -0
  36. package/lib/locale/lang/nb-NO.umd.min.js +1 -0
  37. package/lib/locale/lang/pt-BR.umd.min.js +1 -0
  38. package/lib/locale/lang/ru-RU.umd.min.js +1 -0
  39. package/lib/locale/lang/th-TH.umd.min.js +1 -0
  40. package/lib/locale/lang/ug-CN.umd.min.js +1 -0
  41. package/lib/locale/lang/uk-UA.umd.min.js +1 -0
  42. package/lib/locale/lang/uz-UZ.umd.min.js +1 -0
  43. package/lib/locale/lang/vi-VN.umd.min.js +1 -0
  44. package/lib/locale/lang/zh-CHT.umd.min.js +1 -0
  45. package/lib/locale/lang/zh-CN.umd.min.js +1 -0
  46. package/lib/locale/lang/zh-HK.umd.min.js +1 -0
  47. package/lib/locale/lang/zh-MO.umd.min.js +1 -0
  48. package/lib/locale/lang/zh-TC.umd.min.js +1 -0
  49. package/lib/locale/lang/zh-TW.umd.min.js +1 -0
  50. package/lib/locale/ms-MY.umd.min.js +1 -0
  51. package/lib/locale/nb-NO.umd.min.js +1 -0
  52. package/lib/locale/pt-BR.umd.min.js +1 -0
  53. package/lib/locale/ru-RU.umd.min.js +1 -0
  54. package/lib/locale/th-TH.umd.min.js +1 -0
  55. package/lib/locale/ug-CN.umd.min.js +1 -0
  56. package/lib/locale/uk-UA.umd.min.js +1 -0
  57. package/lib/locale/uz-UZ.umd.min.js +1 -0
  58. package/lib/locale/vi-VN.umd.min.js +1 -0
  59. package/lib/locale/zh-CHT.umd.min.js +1 -0
  60. package/lib/locale/zh-CN.umd.min.js +1 -0
  61. package/lib/locale/zh-HK.umd.min.js +1 -0
  62. package/lib/locale/zh-MO.umd.min.js +1 -0
  63. package/lib/locale/zh-TC.umd.min.js +1 -0
  64. package/lib/locale/zh-TW.umd.min.js +1 -0
  65. package/lib/table/src/column.js +39 -36
  66. package/lib/table/src/group.js +49 -46
  67. package/lib/table/src/table.js +13721 -13706
  68. package/lib/toolbar/src/toolbar.js +595 -592
  69. package/lib/ui/index.js +2 -1
  70. package/lib/ui/src/log.js +1 -1
  71. package/package.json +9 -2
  72. package/packages/grid/src/grid.ts +2 -2
  73. package/packages/table/src/column.ts +2 -2
  74. package/packages/table/src/group.ts +2 -2
  75. package/packages/table/src/table.ts +55 -26
  76. package/packages/toolbar/src/toolbar.ts +2 -2
  77. package/packages/ui/index.ts +1 -0
  78. /package/dist/{iconfont.1793016957545.ttf → iconfont.1793090564415.ttf} +0 -0
  79. /package/dist/{iconfont.1793016957545.woff → iconfont.1793090564415.woff} +0 -0
  80. /package/dist/{iconfont.1793016957545.woff2 → iconfont.1793090564415.woff2} +0 -0
  81. /package/es/{iconfont.1793016957545.ttf → iconfont.1793090564415.ttf} +0 -0
  82. /package/es/{iconfont.1793016957545.woff → iconfont.1793090564415.woff} +0 -0
  83. /package/es/{iconfont.1793016957545.woff2 → iconfont.1793090564415.woff2} +0 -0
  84. /package/lib/{iconfont.1793016957545.ttf → iconfont.1793090564415.ttf} +0 -0
  85. /package/lib/{iconfont.1793016957545.woff → iconfont.1793090564415.woff} +0 -0
  86. /package/lib/{iconfont.1793016957545.woff2 → iconfont.1793090564415.woff2} +0 -0
@@ -224,1810 +224,1813 @@ function createInternalData() {
224
224
  uFoot: false
225
225
  };
226
226
  }
227
- var grid_default = defineVxeComponent({
228
- name: "VxeGrid",
229
- props: gridProps,
230
- emits: gridEmits,
231
- setup(props, context) {
232
- const { slots, emit } = context;
233
- const xID = XEUtils.uniqueId();
234
- const VxeUIFormComponent = VxeUI.getComponent("VxeForm");
235
- const VxeUIPagerComponent = VxeUI.getComponent("VxePager");
236
- const defaultLayouts = [["Form"], ["Toolbar", "Top", "Table", "Bottom", "Pager"]];
237
- const { computeSize } = useFns.useSize(props);
238
- const { computeIsVScrollbar } = useFns.useVScrollbar(props);
239
- const reactData = reactive(createReactData());
240
- const internalData = createInternalData();
241
- const refElem = ref();
242
- const refTable = ref();
243
- const refForm = ref();
244
- const refToolbar = ref();
245
- const refPager = ref();
246
- const refPopupContainerElem = ref();
247
- const refFormWrapper = ref();
248
- const refToolbarWrapper = ref();
249
- const refTopWrapper = ref();
250
- const refBottomWrapper = ref();
251
- const refPagerWrapper = ref();
252
- const extendTableMethods = (methodKeys) => {
253
- const funcs = {};
254
- methodKeys.forEach((name) => {
255
- funcs[name] = (...args) => {
227
+ var grid_default = (
228
+ /* define-vxe-component start */
229
+ defineVxeComponent({
230
+ name: "VxeGrid",
231
+ props: gridProps,
232
+ emits: gridEmits,
233
+ setup(props, context) {
234
+ const { slots, emit } = context;
235
+ const xID = XEUtils.uniqueId();
236
+ const VxeUIFormComponent = VxeUI.getComponent("VxeForm");
237
+ const VxeUIPagerComponent = VxeUI.getComponent("VxePager");
238
+ const defaultLayouts = [["Form"], ["Toolbar", "Top", "Table", "Bottom", "Pager"]];
239
+ const { computeSize } = useFns.useSize(props);
240
+ const { computeIsVScrollbar } = useFns.useVScrollbar(props);
241
+ const reactData = reactive(createReactData());
242
+ const internalData = createInternalData();
243
+ const refElem = ref();
244
+ const refTable = ref();
245
+ const refForm = ref();
246
+ const refToolbar = ref();
247
+ const refPager = ref();
248
+ const refPopupContainerElem = ref();
249
+ const refFormWrapper = ref();
250
+ const refToolbarWrapper = ref();
251
+ const refTopWrapper = ref();
252
+ const refBottomWrapper = ref();
253
+ const refPagerWrapper = ref();
254
+ const extendTableMethods = (methodKeys) => {
255
+ const funcs = {};
256
+ methodKeys.forEach((name) => {
257
+ funcs[name] = (...args) => {
258
+ const $xeTable = refTable.value;
259
+ if ($xeTable && $xeTable[name]) {
260
+ return $xeTable[name](...args);
261
+ }
262
+ };
263
+ });
264
+ return funcs;
265
+ };
266
+ const gridExtendTableMethods = extendTableMethods(tableComponentMethodKeys);
267
+ tableComponentMethodKeys.forEach((name) => {
268
+ gridExtendTableMethods[name] = (...args) => {
256
269
  const $xeTable = refTable.value;
257
270
  if ($xeTable && $xeTable[name]) {
258
- return $xeTable[name](...args);
271
+ return $xeTable && $xeTable[name](...args);
259
272
  }
260
273
  };
261
274
  });
262
- return funcs;
263
- };
264
- const gridExtendTableMethods = extendTableMethods(tableComponentMethodKeys);
265
- tableComponentMethodKeys.forEach((name) => {
266
- gridExtendTableMethods[name] = (...args) => {
267
- const $xeTable = refTable.value;
268
- if ($xeTable && $xeTable[name]) {
269
- return $xeTable && $xeTable[name](...args);
275
+ const computeProxyOpts = computed(() => {
276
+ return XEUtils.merge({}, XEUtils.clone(getConfig().grid.proxyConfig, true), props.proxyConfig);
277
+ });
278
+ const computeIsRespMsg = computed(() => {
279
+ const proxyOpts = computeProxyOpts.value;
280
+ return !!(XEUtils.isBoolean(proxyOpts.message) ? proxyOpts.message : proxyOpts.showResponseMsg);
281
+ });
282
+ const computeIsActiveMsg = computed(() => {
283
+ const proxyOpts = computeProxyOpts.value;
284
+ return XEUtils.isBoolean(proxyOpts.showActionMsg) ? proxyOpts.showActionMsg : !!proxyOpts.showActiveMsg;
285
+ });
286
+ const computePagerOpts = computed(() => {
287
+ return Object.assign({}, getConfig().grid.pagerConfig, props.pagerConfig);
288
+ });
289
+ const computePagerProps = computed(() => {
290
+ const pagerOpts = computePagerOpts.value;
291
+ return Object.assign({}, pagerOpts, { enabled: void 0, slots: void 0 });
292
+ });
293
+ const computeFormOpts = computed(() => {
294
+ return Object.assign({}, getConfig().grid.formConfig, props.formConfig);
295
+ });
296
+ const computeToolbarOpts = computed(() => {
297
+ return Object.assign({}, getConfig().grid.toolbarConfig, props.toolbarConfig);
298
+ });
299
+ const computeZoomOpts = computed(() => {
300
+ return Object.assign({}, getConfig().grid.zoomConfig, props.zoomConfig);
301
+ });
302
+ const computeStyles = computed(() => {
303
+ const { height, maxHeight } = props;
304
+ const { isZMax, tZindex } = reactData;
305
+ const stys = {};
306
+ if (isZMax) {
307
+ stys.zIndex = tZindex;
308
+ } else {
309
+ if (height) {
310
+ stys.height = height === "auto" || height === "100%" ? "100%" : toCssUnit(height);
311
+ }
312
+ if (maxHeight) {
313
+ stys.maxHeight = maxHeight === "auto" || maxHeight === "100%" ? "100%" : toCssUnit(maxHeight);
314
+ }
270
315
  }
271
- };
272
- });
273
- const computeProxyOpts = computed(() => {
274
- return XEUtils.merge({}, XEUtils.clone(getConfig().grid.proxyConfig, true), props.proxyConfig);
275
- });
276
- const computeIsRespMsg = computed(() => {
277
- const proxyOpts = computeProxyOpts.value;
278
- return !!(XEUtils.isBoolean(proxyOpts.message) ? proxyOpts.message : proxyOpts.showResponseMsg);
279
- });
280
- const computeIsActiveMsg = computed(() => {
281
- const proxyOpts = computeProxyOpts.value;
282
- return XEUtils.isBoolean(proxyOpts.showActionMsg) ? proxyOpts.showActionMsg : !!proxyOpts.showActiveMsg;
283
- });
284
- const computePagerOpts = computed(() => {
285
- return Object.assign({}, getConfig().grid.pagerConfig, props.pagerConfig);
286
- });
287
- const computePagerProps = computed(() => {
288
- const pagerOpts = computePagerOpts.value;
289
- return Object.assign({}, pagerOpts, { enabled: void 0, slots: void 0 });
290
- });
291
- const computeFormOpts = computed(() => {
292
- return Object.assign({}, getConfig().grid.formConfig, props.formConfig);
293
- });
294
- const computeToolbarOpts = computed(() => {
295
- return Object.assign({}, getConfig().grid.toolbarConfig, props.toolbarConfig);
296
- });
297
- const computeZoomOpts = computed(() => {
298
- return Object.assign({}, getConfig().grid.zoomConfig, props.zoomConfig);
299
- });
300
- const computeStyles = computed(() => {
301
- const { height, maxHeight } = props;
302
- const { isZMax, tZindex } = reactData;
303
- const stys = {};
304
- if (isZMax) {
305
- stys.zIndex = tZindex;
306
- } else {
307
- if (height) {
308
- stys.height = height === "auto" || height === "100%" ? "100%" : toCssUnit(height);
316
+ return stys;
317
+ });
318
+ const computeTableExtendProps = computed(() => {
319
+ const rest = {};
320
+ tableComponentPropKeys.forEach((key) => {
321
+ if (props[key] !== void 0) {
322
+ rest[key] = props[key];
323
+ }
324
+ });
325
+ return rest;
326
+ });
327
+ const computeTableProps = computed(() => {
328
+ const { showFooter, seqConfig, pagerConfig, editConfig, proxyConfig } = props;
329
+ const { isZMax, tablePage, footerData } = reactData;
330
+ const tableExtendProps = computeTableExtendProps.value;
331
+ const proxyOpts = computeProxyOpts.value;
332
+ const pagerOpts = computePagerOpts.value;
333
+ const isLoading = computeIsLoading.value;
334
+ const tProps = Object.assign({}, tableExtendProps);
335
+ if (showFooter && !tProps.footerData) {
336
+ tProps.footerData = footerData;
337
+ } else if (proxyOpts.footer && footerData.length) {
338
+ tProps.footerData = footerData;
339
+ }
340
+ if (isZMax) {
341
+ if (tProps.maxHeight) {
342
+ tProps.maxHeight = "100%";
343
+ } else {
344
+ tProps.height = "100%";
345
+ }
309
346
  }
310
- if (maxHeight) {
311
- stys.maxHeight = maxHeight === "auto" || maxHeight === "100%" ? "100%" : toCssUnit(maxHeight);
347
+ if (proxyConfig && isEnableConf(proxyOpts)) {
348
+ tProps.loading = isLoading;
349
+ if (pagerConfig && proxyOpts.seq && isEnableConf(pagerOpts)) {
350
+ tProps.seqConfig = Object.assign({}, seqConfig, { startIndex: (tablePage.currentPage - 1) * tablePage.pageSize });
351
+ }
312
352
  }
313
- }
314
- return stys;
315
- });
316
- const computeTableExtendProps = computed(() => {
317
- const rest = {};
318
- tableComponentPropKeys.forEach((key) => {
319
- if (props[key] !== void 0) {
320
- rest[key] = props[key];
353
+ if (editConfig) {
354
+ tProps.editConfig = Object.assign({}, editConfig);
321
355
  }
356
+ return tProps;
322
357
  });
323
- return rest;
324
- });
325
- const computeTableProps = computed(() => {
326
- const { showFooter, seqConfig, pagerConfig, editConfig, proxyConfig } = props;
327
- const { isZMax, tablePage, footerData } = reactData;
328
- const tableExtendProps = computeTableExtendProps.value;
329
- const proxyOpts = computeProxyOpts.value;
330
- const pagerOpts = computePagerOpts.value;
331
- const isLoading = computeIsLoading.value;
332
- const tProps = Object.assign({}, tableExtendProps);
333
- if (showFooter && !tProps.footerData) {
334
- tProps.footerData = footerData;
335
- } else if (proxyOpts.footer && footerData.length) {
336
- tProps.footerData = footerData;
337
- }
338
- if (isZMax) {
339
- if (tProps.maxHeight) {
340
- tProps.maxHeight = "100%";
358
+ const computeCurrLayoutConf = computed(() => {
359
+ const { layouts } = props;
360
+ let confs = [];
361
+ if (layouts && layouts.length) {
362
+ confs = layouts;
341
363
  } else {
342
- tProps.height = "100%";
364
+ confs = getConfig().grid.layouts || defaultLayouts;
343
365
  }
344
- }
345
- if (proxyConfig && isEnableConf(proxyOpts)) {
346
- tProps.loading = isLoading;
347
- if (pagerConfig && proxyOpts.seq && isEnableConf(pagerOpts)) {
348
- tProps.seqConfig = Object.assign({}, seqConfig, { startIndex: (tablePage.currentPage - 1) * tablePage.pageSize });
366
+ let headKeys = [];
367
+ let bodyKeys = [];
368
+ let footKeys = [];
369
+ if (confs.length) {
370
+ if (XEUtils.isArray(confs[0])) {
371
+ headKeys = confs[0];
372
+ bodyKeys = confs[1] || [];
373
+ footKeys = confs[2] || [];
374
+ } else {
375
+ bodyKeys = confs;
376
+ }
349
377
  }
350
- }
351
- if (editConfig) {
352
- tProps.editConfig = Object.assign({}, editConfig);
353
- }
354
- return tProps;
355
- });
356
- const computeCurrLayoutConf = computed(() => {
357
- const { layouts } = props;
358
- let confs = [];
359
- if (layouts && layouts.length) {
360
- confs = layouts;
361
- } else {
362
- confs = getConfig().grid.layouts || defaultLayouts;
363
- }
364
- let headKeys = [];
365
- let bodyKeys = [];
366
- let footKeys = [];
367
- if (confs.length) {
368
- if (XEUtils.isArray(confs[0])) {
369
- headKeys = confs[0];
370
- bodyKeys = confs[1] || [];
371
- footKeys = confs[2] || [];
372
- } else {
373
- bodyKeys = confs;
378
+ return {
379
+ headKeys,
380
+ bodyKeys,
381
+ footKeys
382
+ };
383
+ });
384
+ const computeCustomCurrentPageFlag = computed(() => {
385
+ const pagerOpts = computePagerOpts.value;
386
+ return pagerOpts.currentPage;
387
+ });
388
+ const computeCustomPageSizeFlag = computed(() => {
389
+ const pagerOpts = computePagerOpts.value;
390
+ return pagerOpts.pageSize;
391
+ });
392
+ const computeCustomTotalFlag = computed(() => {
393
+ const pagerOpts = computePagerOpts.value;
394
+ return pagerOpts.total;
395
+ });
396
+ const computePageCount = computed(() => {
397
+ const { tablePage } = reactData;
398
+ return Math.max(Math.ceil(tablePage.total / tablePage.pageSize), 1);
399
+ });
400
+ const computeIsLoading = computed(() => {
401
+ const { loading, proxyConfig } = props;
402
+ const { tableLoading } = reactData;
403
+ const proxyOpts = computeProxyOpts.value;
404
+ const { showLoading } = proxyOpts;
405
+ return loading || tableLoading && showLoading && proxyConfig && isEnableConf(proxyOpts);
406
+ });
407
+ const refMaps = {
408
+ refElem,
409
+ refTable,
410
+ refForm,
411
+ refToolbar,
412
+ refPager,
413
+ refPopupContainerElem
414
+ };
415
+ const computeMaps = {
416
+ computeSize,
417
+ computeIsVScrollbar,
418
+ computeProxyOpts,
419
+ computePagerOpts,
420
+ computeFormOpts,
421
+ computeToolbarOpts,
422
+ computeZoomOpts
423
+ };
424
+ const $xeGrid = {
425
+ xID,
426
+ props,
427
+ context,
428
+ reactData,
429
+ internalData,
430
+ getRefMaps: () => refMaps,
431
+ getComputeMaps: () => computeMaps
432
+ };
433
+ const initToolbar = () => {
434
+ const toolbarOpts = computeToolbarOpts.value;
435
+ if (props.toolbarConfig && isEnableConf(toolbarOpts)) {
436
+ nextTick(() => {
437
+ const $xeTable = refTable.value;
438
+ const $xeToolbar = refToolbar.value;
439
+ if ($xeTable && $xeToolbar) {
440
+ $xeTable.connectToolbar($xeToolbar);
441
+ }
442
+ });
374
443
  }
375
- }
376
- return {
377
- headKeys,
378
- bodyKeys,
379
- footKeys
380
444
  };
381
- });
382
- const computeCustomCurrentPageFlag = computed(() => {
383
- const pagerOpts = computePagerOpts.value;
384
- return pagerOpts.currentPage;
385
- });
386
- const computeCustomPageSizeFlag = computed(() => {
387
- const pagerOpts = computePagerOpts.value;
388
- return pagerOpts.pageSize;
389
- });
390
- const computeCustomTotalFlag = computed(() => {
391
- const pagerOpts = computePagerOpts.value;
392
- return pagerOpts.total;
393
- });
394
- const computePageCount = computed(() => {
395
- const { tablePage } = reactData;
396
- return Math.max(Math.ceil(tablePage.total / tablePage.pageSize), 1);
397
- });
398
- const computeIsLoading = computed(() => {
399
- const { loading, proxyConfig } = props;
400
- const { tableLoading } = reactData;
401
- const proxyOpts = computeProxyOpts.value;
402
- const { showLoading } = proxyOpts;
403
- return loading || tableLoading && showLoading && proxyConfig && isEnableConf(proxyOpts);
404
- });
405
- const refMaps = {
406
- refElem,
407
- refTable,
408
- refForm,
409
- refToolbar,
410
- refPager,
411
- refPopupContainerElem
412
- };
413
- const computeMaps = {
414
- computeSize,
415
- computeIsVScrollbar,
416
- computeProxyOpts,
417
- computePagerOpts,
418
- computeFormOpts,
419
- computeToolbarOpts,
420
- computeZoomOpts
421
- };
422
- const $xeGrid = {
423
- xID,
424
- props,
425
- context,
426
- reactData,
427
- internalData,
428
- getRefMaps: () => refMaps,
429
- getComputeMaps: () => computeMaps
430
- };
431
- const initToolbar = () => {
432
- const toolbarOpts = computeToolbarOpts.value;
433
- if (props.toolbarConfig && isEnableConf(toolbarOpts)) {
434
- nextTick(() => {
435
- const $xeTable = refTable.value;
436
- const $xeToolbar = refToolbar.value;
437
- if ($xeTable && $xeToolbar) {
438
- $xeTable.connectToolbar($xeToolbar);
445
+ const getFormData = () => {
446
+ const { proxyConfig } = props;
447
+ const { formData } = reactData;
448
+ const proxyOpts = computeProxyOpts.value;
449
+ const formOpts = computeFormOpts.value;
450
+ return proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form ? formData : formOpts.data;
451
+ };
452
+ const initPages = (propKey) => {
453
+ const { tablePage } = reactData;
454
+ const { pagerConfig } = props;
455
+ const pagerOpts = computePagerOpts.value;
456
+ if (pagerConfig && isEnableConf(pagerOpts)) {
457
+ if (propKey) {
458
+ if (pagerOpts[propKey]) {
459
+ tablePage[propKey] = XEUtils.toNumber(pagerOpts[propKey]);
460
+ }
461
+ } else {
462
+ const { currentPage, pageSize, total } = pagerOpts;
463
+ if (currentPage) {
464
+ tablePage.currentPage = currentPage;
465
+ }
466
+ if (pageSize) {
467
+ tablePage.pageSize = pageSize;
468
+ }
469
+ if (total) {
470
+ tablePage.total = total;
471
+ }
439
472
  }
440
- });
441
- }
442
- };
443
- const getFormData = () => {
444
- const { proxyConfig } = props;
445
- const { formData } = reactData;
446
- const proxyOpts = computeProxyOpts.value;
447
- const formOpts = computeFormOpts.value;
448
- return proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form ? formData : formOpts.data;
449
- };
450
- const initPages = (propKey) => {
451
- const { tablePage } = reactData;
452
- const { pagerConfig } = props;
453
- const pagerOpts = computePagerOpts.value;
454
- if (pagerConfig && isEnableConf(pagerOpts)) {
455
- if (propKey) {
456
- if (pagerOpts[propKey]) {
457
- tablePage[propKey] = XEUtils.toNumber(pagerOpts[propKey]);
473
+ }
474
+ };
475
+ const triggerPendingEvent = (code) => {
476
+ const isActiveMsg = computeIsActiveMsg.value;
477
+ const $xeTable = refTable.value;
478
+ const selectRecords = $xeTable ? $xeTable.getCheckboxRecords() : [];
479
+ if (selectRecords.length) {
480
+ if ($xeTable) {
481
+ $xeTable.togglePendingRow(selectRecords);
458
482
  }
483
+ $xeGrid.clearCheckboxRow();
459
484
  } else {
460
- const { currentPage, pageSize, total } = pagerOpts;
461
- if (currentPage) {
462
- tablePage.currentPage = currentPage;
463
- }
464
- if (pageSize) {
465
- tablePage.pageSize = pageSize;
466
- }
467
- if (total) {
468
- tablePage.total = total;
485
+ if (isActiveMsg) {
486
+ if (VxeUI.modal) {
487
+ VxeUI.modal.message({ id: code, content: getI18n("vxe.grid.selectOneRecord"), status: "warning" });
488
+ }
469
489
  }
470
490
  }
471
- }
472
- };
473
- const triggerPendingEvent = (code) => {
474
- const isActiveMsg = computeIsActiveMsg.value;
475
- const $xeTable = refTable.value;
476
- const selectRecords = $xeTable ? $xeTable.getCheckboxRecords() : [];
477
- if (selectRecords.length) {
478
- if ($xeTable) {
479
- $xeTable.togglePendingRow(selectRecords);
491
+ };
492
+ const getRespMsg = (rest, defaultMsg) => {
493
+ const proxyOpts = computeProxyOpts.value;
494
+ const resConfigs = proxyOpts.response || proxyOpts.props || {};
495
+ const messageProp = resConfigs.message;
496
+ const $xeTable = refTable.value;
497
+ let msg;
498
+ if (rest && messageProp) {
499
+ msg = XEUtils.isFunction(messageProp) ? messageProp({ data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null }) : XEUtils.get(rest, messageProp);
480
500
  }
481
- $xeGrid.clearCheckboxRow();
482
- } else {
501
+ return msg || getI18n(defaultMsg);
502
+ };
503
+ const handleDeleteRow = (code, alertKey, callback) => {
504
+ const isActiveMsg = computeIsActiveMsg.value;
505
+ const selectRecords = $xeGrid.getCheckboxRecords();
483
506
  if (isActiveMsg) {
484
- if (VxeUI.modal) {
485
- VxeUI.modal.message({ id: code, content: getI18n("vxe.grid.selectOneRecord"), status: "warning" });
507
+ if (selectRecords.length) {
508
+ if (VxeUI.modal) {
509
+ return VxeUI.modal.confirm({ id: `cfm_${code}`, content: getI18n(alertKey), escClosable: true }).then((type) => {
510
+ if (type === "confirm") {
511
+ return callback();
512
+ }
513
+ });
514
+ }
515
+ } else {
516
+ if (VxeUI.modal) {
517
+ VxeUI.modal.message({ id: `msg_${code}`, content: getI18n("vxe.grid.selectOneRecord"), status: "warning" });
518
+ }
519
+ }
520
+ } else {
521
+ if (selectRecords.length) {
522
+ callback();
486
523
  }
487
524
  }
488
- }
489
- };
490
- const getRespMsg = (rest, defaultMsg) => {
491
- const proxyOpts = computeProxyOpts.value;
492
- const resConfigs = proxyOpts.response || proxyOpts.props || {};
493
- const messageProp = resConfigs.message;
494
- const $xeTable = refTable.value;
495
- let msg;
496
- if (rest && messageProp) {
497
- msg = XEUtils.isFunction(messageProp) ? messageProp({ data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null }) : XEUtils.get(rest, messageProp);
498
- }
499
- return msg || getI18n(defaultMsg);
500
- };
501
- const handleDeleteRow = (code, alertKey, callback) => {
502
- const isActiveMsg = computeIsActiveMsg.value;
503
- const selectRecords = $xeGrid.getCheckboxRecords();
504
- if (isActiveMsg) {
505
- if (selectRecords.length) {
506
- if (VxeUI.modal) {
507
- return VxeUI.modal.confirm({ id: `cfm_${code}`, content: getI18n(alertKey), escClosable: true }).then((type) => {
508
- if (type === "confirm") {
509
- return callback();
510
- }
525
+ return Promise.resolve();
526
+ };
527
+ const pageChangeEvent = (params) => {
528
+ const { proxyConfig } = props;
529
+ const { tablePage } = reactData;
530
+ const { $event, currentPage, pageSize } = params;
531
+ const proxyOpts = computeProxyOpts.value;
532
+ tablePage.currentPage = currentPage;
533
+ tablePage.pageSize = pageSize;
534
+ $xeGrid.dispatchEvent("page-change", params, $event);
535
+ if (proxyConfig && isEnableConf(proxyOpts)) {
536
+ $xeGrid.commitProxy("query").then((rest) => {
537
+ $xeGrid.dispatchEvent("proxy-query", rest, $event);
538
+ });
539
+ }
540
+ };
541
+ const handleSortEvent = (params) => {
542
+ const $xeTable = refTable.value;
543
+ const { proxyConfig } = props;
544
+ if (!$xeTable) {
545
+ return;
546
+ }
547
+ const { computeSortOpts } = $xeTable.getComputeMaps();
548
+ const proxyOpts = computeProxyOpts.value;
549
+ const sortOpts = computeSortOpts.value;
550
+ if (sortOpts.remote) {
551
+ reactData.sortData = params.sortList;
552
+ if (proxyConfig && isEnableConf(proxyOpts)) {
553
+ reactData.tablePage.currentPage = 1;
554
+ $xeGrid.commitProxy("query").then((rest) => {
555
+ $xeGrid.dispatchEvent("proxy-query", rest, params.$event);
511
556
  });
512
557
  }
513
- } else {
514
- if (VxeUI.modal) {
515
- VxeUI.modal.message({ id: `msg_${code}`, content: getI18n("vxe.grid.selectOneRecord"), status: "warning" });
558
+ }
559
+ };
560
+ const sortChangeEvent = (params) => {
561
+ handleSortEvent(params);
562
+ $xeGrid.dispatchEvent("sort-change", params, params.$event);
563
+ };
564
+ const clearAllSortEvent = (params) => {
565
+ handleSortEvent(params);
566
+ $xeGrid.dispatchEvent("clear-all-sort", params, params.$event);
567
+ };
568
+ const handleFilterEvent = (params) => {
569
+ const $xeTable = refTable.value;
570
+ const { proxyConfig } = props;
571
+ if (!$xeTable) {
572
+ return;
573
+ }
574
+ const { computeFilterOpts } = $xeTable.getComputeMaps();
575
+ const proxyOpts = computeProxyOpts.value;
576
+ const filterOpts = computeFilterOpts.value;
577
+ if (filterOpts.remote) {
578
+ reactData.filterData = params.filterList;
579
+ if (proxyConfig && isEnableConf(proxyOpts)) {
580
+ reactData.tablePage.currentPage = 1;
581
+ internalData.uFoot = true;
582
+ $xeGrid.commitProxy("query").then((rest) => {
583
+ $xeGrid.dispatchEvent("proxy-query", rest, params.$event);
584
+ });
585
+ internalData.uFoot = false;
586
+ updateQueryFooter();
516
587
  }
517
588
  }
518
- } else {
519
- if (selectRecords.length) {
520
- callback();
589
+ };
590
+ const filterChangeEvent = (params) => {
591
+ handleFilterEvent(params);
592
+ $xeGrid.dispatchEvent("filter-change", params, params.$event);
593
+ };
594
+ const clearAllFilterEvent = (params) => {
595
+ handleFilterEvent(params);
596
+ $xeGrid.dispatchEvent("clear-all-filter", params, params.$event);
597
+ };
598
+ const submitFormEvent = (params) => {
599
+ const { proxyConfig } = props;
600
+ const proxyOpts = computeProxyOpts.value;
601
+ const formOptions = proxyOpts.formOptions || {};
602
+ if (reactData.tableLoading) {
603
+ return;
521
604
  }
522
- }
523
- return Promise.resolve();
524
- };
525
- const pageChangeEvent = (params) => {
526
- const { proxyConfig } = props;
527
- const { tablePage } = reactData;
528
- const { $event, currentPage, pageSize } = params;
529
- const proxyOpts = computeProxyOpts.value;
530
- tablePage.currentPage = currentPage;
531
- tablePage.pageSize = pageSize;
532
- $xeGrid.dispatchEvent("page-change", params, $event);
533
- if (proxyConfig && isEnableConf(proxyOpts)) {
534
- $xeGrid.commitProxy("query").then((rest) => {
535
- $xeGrid.dispatchEvent("proxy-query", rest, $event);
536
- });
537
- }
538
- };
539
- const handleSortEvent = (params) => {
540
- const $xeTable = refTable.value;
541
- const { proxyConfig } = props;
542
- if (!$xeTable) {
543
- return;
544
- }
545
- const { computeSortOpts } = $xeTable.getComputeMaps();
546
- const proxyOpts = computeProxyOpts.value;
547
- const sortOpts = computeSortOpts.value;
548
- if (sortOpts.remote) {
549
- reactData.sortData = params.sortList;
550
605
  if (proxyConfig && isEnableConf(proxyOpts)) {
551
- reactData.tablePage.currentPage = 1;
552
- $xeGrid.commitProxy("query").then((rest) => {
553
- $xeGrid.dispatchEvent("proxy-query", rest, params.$event);
606
+ $xeGrid.dispatchEvent("form-submit", params, params.$event);
607
+ internalData.uFoot = true;
608
+ $xeGrid.commitProxy(formOptions.submitMode || "reload").then((rest) => {
609
+ $xeGrid.dispatchEvent("proxy-query", { ...rest, isReload: true }, params.$event);
554
610
  });
611
+ internalData.uFoot = false;
612
+ updateQueryFooter();
613
+ } else {
614
+ $xeGrid.dispatchEvent("form-submit", params, params.$event);
555
615
  }
556
- }
557
- };
558
- const sortChangeEvent = (params) => {
559
- handleSortEvent(params);
560
- $xeGrid.dispatchEvent("sort-change", params, params.$event);
561
- };
562
- const clearAllSortEvent = (params) => {
563
- handleSortEvent(params);
564
- $xeGrid.dispatchEvent("clear-all-sort", params, params.$event);
565
- };
566
- const handleFilterEvent = (params) => {
567
- const $xeTable = refTable.value;
568
- const { proxyConfig } = props;
569
- if (!$xeTable) {
570
- return;
571
- }
572
- const { computeFilterOpts } = $xeTable.getComputeMaps();
573
- const proxyOpts = computeProxyOpts.value;
574
- const filterOpts = computeFilterOpts.value;
575
- if (filterOpts.remote) {
576
- reactData.filterData = params.filterList;
616
+ };
617
+ const resetFormEvent = (params) => {
618
+ const $xeTable = refTable.value;
619
+ const { proxyConfig } = props;
620
+ const { $event } = params;
621
+ const proxyOpts = computeProxyOpts.value;
577
622
  if (proxyConfig && isEnableConf(proxyOpts)) {
578
- reactData.tablePage.currentPage = 1;
623
+ const formOptions = proxyOpts.formOptions || {};
624
+ $xeGrid.dispatchEvent("form-reset", params, $event);
625
+ if ($xeTable) {
626
+ $xeTable.clearScroll();
627
+ }
579
628
  internalData.uFoot = true;
580
- $xeGrid.commitProxy("query").then((rest) => {
581
- $xeGrid.dispatchEvent("proxy-query", rest, params.$event);
629
+ $xeGrid.commitProxy(formOptions.resetMode === "reset_form" ? "query" : "reload").then((rest) => {
630
+ $xeGrid.dispatchEvent("proxy-query", { ...rest, isReload: true }, $event);
582
631
  });
583
632
  internalData.uFoot = false;
584
633
  updateQueryFooter();
634
+ } else {
635
+ $xeGrid.dispatchEvent("form-reset", params, $event);
585
636
  }
586
- }
587
- };
588
- const filterChangeEvent = (params) => {
589
- handleFilterEvent(params);
590
- $xeGrid.dispatchEvent("filter-change", params, params.$event);
591
- };
592
- const clearAllFilterEvent = (params) => {
593
- handleFilterEvent(params);
594
- $xeGrid.dispatchEvent("clear-all-filter", params, params.$event);
595
- };
596
- const submitFormEvent = (params) => {
597
- const { proxyConfig } = props;
598
- const proxyOpts = computeProxyOpts.value;
599
- const formOptions = proxyOpts.formOptions || {};
600
- if (reactData.tableLoading) {
601
- return;
602
- }
603
- if (proxyConfig && isEnableConf(proxyOpts)) {
604
- $xeGrid.dispatchEvent("form-submit", params, params.$event);
605
- internalData.uFoot = true;
606
- $xeGrid.commitProxy(formOptions.submitMode || "reload").then((rest) => {
607
- $xeGrid.dispatchEvent("proxy-query", { ...rest, isReload: true }, params.$event);
608
- });
609
- internalData.uFoot = false;
610
- updateQueryFooter();
611
- } else {
612
- $xeGrid.dispatchEvent("form-submit", params, params.$event);
613
- }
614
- };
615
- const resetFormEvent = (params) => {
616
- const $xeTable = refTable.value;
617
- const { proxyConfig } = props;
618
- const { $event } = params;
619
- const proxyOpts = computeProxyOpts.value;
620
- if (proxyConfig && isEnableConf(proxyOpts)) {
621
- const formOptions = proxyOpts.formOptions || {};
622
- $xeGrid.dispatchEvent("form-reset", params, $event);
623
- if ($xeTable) {
624
- $xeTable.clearScroll();
625
- }
626
- internalData.uFoot = true;
627
- $xeGrid.commitProxy(formOptions.resetMode === "reset_form" ? "query" : "reload").then((rest) => {
628
- $xeGrid.dispatchEvent("proxy-query", { ...rest, isReload: true }, $event);
629
- });
630
- internalData.uFoot = false;
631
- updateQueryFooter();
632
- } else {
633
- $xeGrid.dispatchEvent("form-reset", params, $event);
634
- }
635
- };
636
- const submitInvalidEvent = (params) => {
637
- $xeGrid.dispatchEvent("form-submit-invalid", params, params.$event);
638
- };
639
- const collapseEvent = (params) => {
640
- const { $event } = params;
641
- $xeGrid.dispatchEvent("form-toggle-collapse", params, $event);
642
- $xeGrid.dispatchEvent("form-collapse", params, $event);
643
- };
644
- const handleZoom = (isMax) => {
645
- const { isZMax } = reactData;
646
- if (isMax ? !isZMax : isZMax) {
647
- reactData.isZMax = !isZMax;
648
- if (reactData.tZindex < getLastZIndex()) {
649
- reactData.tZindex = nextZIndex();
650
- }
651
- }
652
- return nextTick().then(() => $xeGrid.recalculate(true)).then(() => {
653
- setTimeout(() => $xeGrid.recalculate(true), 15);
654
- return reactData.isZMax;
655
- });
656
- };
657
- const getFuncSlot = (optSlots, slotKey) => {
658
- const funcSlot = optSlots[slotKey];
659
- if (funcSlot) {
660
- if (XEUtils.isString(funcSlot)) {
661
- if (slots[funcSlot]) {
662
- return slots[funcSlot];
663
- } else {
664
- errLog("vxe.error.notSlot", [funcSlot]);
637
+ };
638
+ const submitInvalidEvent = (params) => {
639
+ $xeGrid.dispatchEvent("form-submit-invalid", params, params.$event);
640
+ };
641
+ const collapseEvent = (params) => {
642
+ const { $event } = params;
643
+ $xeGrid.dispatchEvent("form-toggle-collapse", params, $event);
644
+ $xeGrid.dispatchEvent("form-collapse", params, $event);
645
+ };
646
+ const handleZoom = (isMax) => {
647
+ const { isZMax } = reactData;
648
+ if (isMax ? !isZMax : isZMax) {
649
+ reactData.isZMax = !isZMax;
650
+ if (reactData.tZindex < getLastZIndex()) {
651
+ reactData.tZindex = nextZIndex();
665
652
  }
666
- } else {
667
- return funcSlot;
668
653
  }
669
- }
670
- return null;
671
- };
672
- const getConfigSlot = (slotConfigs) => {
673
- const slotConf = {};
674
- XEUtils.objectMap(slotConfigs, (slotFunc, slotKey) => {
675
- if (slotFunc) {
676
- if (XEUtils.isString(slotFunc)) {
677
- if (slots[slotFunc]) {
678
- slotConf[slotKey] = slots[slotFunc];
654
+ return nextTick().then(() => $xeGrid.recalculate(true)).then(() => {
655
+ setTimeout(() => $xeGrid.recalculate(true), 15);
656
+ return reactData.isZMax;
657
+ });
658
+ };
659
+ const getFuncSlot = (optSlots, slotKey) => {
660
+ const funcSlot = optSlots[slotKey];
661
+ if (funcSlot) {
662
+ if (XEUtils.isString(funcSlot)) {
663
+ if (slots[funcSlot]) {
664
+ return slots[funcSlot];
679
665
  } else {
680
- errLog("vxe.error.notSlot", [slotFunc]);
666
+ errLog("vxe.error.notSlot", [funcSlot]);
681
667
  }
682
668
  } else {
683
- slotConf[slotKey] = slotFunc;
669
+ return funcSlot;
684
670
  }
685
671
  }
686
- });
687
- return slotConf;
688
- };
689
- const renderForm = () => {
690
- const { formConfig, proxyConfig } = props;
691
- const { formData } = reactData;
692
- const proxyOpts = computeProxyOpts.value;
693
- const formOpts = computeFormOpts.value;
694
- if (formConfig && isEnableConf(formOpts) || slots.form) {
695
- let slotVNs = [];
696
- if (slots.form) {
697
- slotVNs = slots.form({ $grid: $xeGrid, $gantt: null });
698
- } else {
699
- if (formOpts.items) {
700
- const formSlots = {};
701
- if (!formOpts.inited) {
702
- ;
703
- formOpts.inited = true;
704
- const beforeItem = proxyOpts.beforeItem;
705
- if (proxyOpts && beforeItem) {
706
- formOpts.items.forEach((item) => {
707
- beforeItem({ $grid: $xeGrid, $gantt: null, item });
708
- });
672
+ return null;
673
+ };
674
+ const getConfigSlot = (slotConfigs) => {
675
+ const slotConf = {};
676
+ XEUtils.objectMap(slotConfigs, (slotFunc, slotKey) => {
677
+ if (slotFunc) {
678
+ if (XEUtils.isString(slotFunc)) {
679
+ if (slots[slotFunc]) {
680
+ slotConf[slotKey] = slots[slotFunc];
681
+ } else {
682
+ errLog("vxe.error.notSlot", [slotFunc]);
709
683
  }
684
+ } else {
685
+ slotConf[slotKey] = slotFunc;
710
686
  }
711
- formOpts.items.forEach((item) => {
712
- XEUtils.each(item.slots, (func) => {
713
- if (func && !XEUtils.isFunction(func)) {
714
- if (slots[func]) {
715
- formSlots[func] = slots[func];
716
- }
687
+ }
688
+ });
689
+ return slotConf;
690
+ };
691
+ const renderForm = () => {
692
+ const { formConfig, proxyConfig } = props;
693
+ const { formData } = reactData;
694
+ const proxyOpts = computeProxyOpts.value;
695
+ const formOpts = computeFormOpts.value;
696
+ if (formConfig && isEnableConf(formOpts) || slots.form) {
697
+ let slotVNs = [];
698
+ if (slots.form) {
699
+ slotVNs = slots.form({ $grid: $xeGrid, $gantt: null });
700
+ } else {
701
+ if (formOpts.items) {
702
+ const formSlots = {};
703
+ if (!formOpts.inited) {
704
+ ;
705
+ formOpts.inited = true;
706
+ const beforeItem = proxyOpts.beforeItem;
707
+ if (proxyOpts && beforeItem) {
708
+ formOpts.items.forEach((item) => {
709
+ beforeItem({ $grid: $xeGrid, $gantt: null, item });
710
+ });
717
711
  }
712
+ }
713
+ formOpts.items.forEach((item) => {
714
+ XEUtils.each(item.slots, (func) => {
715
+ if (func && !XEUtils.isFunction(func)) {
716
+ if (slots[func]) {
717
+ formSlots[func] = slots[func];
718
+ }
719
+ }
720
+ });
718
721
  });
719
- });
720
- if (VxeUIFormComponent) {
721
- slotVNs.push(
722
- h(
723
- VxeUIFormComponent,
724
- {
725
- ref: refForm,
726
- ...Object.assign({}, formOpts, {
727
- data: proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form ? formData : formOpts.data
728
- }),
729
- onSubmit: submitFormEvent,
730
- onReset: resetFormEvent,
731
- onSubmitInvalid: submitInvalidEvent,
732
- onCollapse: collapseEvent
733
- },
734
- formSlots
735
- )
736
- );
722
+ if (VxeUIFormComponent) {
723
+ slotVNs.push(
724
+ h(
725
+ VxeUIFormComponent,
726
+ {
727
+ ref: refForm,
728
+ ...Object.assign({}, formOpts, {
729
+ data: proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form ? formData : formOpts.data
730
+ }),
731
+ onSubmit: submitFormEvent,
732
+ onReset: resetFormEvent,
733
+ onSubmitInvalid: submitInvalidEvent,
734
+ onCollapse: collapseEvent
735
+ },
736
+ formSlots
737
+ )
738
+ );
739
+ }
737
740
  }
738
741
  }
742
+ return h(
743
+ "div",
744
+ {
745
+ ref: refFormWrapper,
746
+ key: "form",
747
+ class: "vxe-grid--form-wrapper"
748
+ },
749
+ slotVNs
750
+ );
739
751
  }
740
- return h(
741
- "div",
742
- {
743
- ref: refFormWrapper,
744
- key: "form",
745
- class: "vxe-grid--form-wrapper"
746
- },
747
- slotVNs
748
- );
749
- }
750
- return renderEmptyElement($xeGrid);
751
- };
752
- const renderToolbar = () => {
753
- const { toolbarConfig } = props;
754
- const toolbarOpts = computeToolbarOpts.value;
755
- const toolbarSlot = slots.toolbar;
756
- if (toolbarConfig && isEnableConf(toolbarOpts) || toolbarSlot) {
757
- let slotVNs = [];
758
- if (toolbarSlot) {
759
- slotVNs = toolbarSlot({ $grid: $xeGrid, $gantt: null });
760
- } else {
761
- const toolbarOptSlots = toolbarOpts.slots;
762
- const toolbarSlots = {};
763
- if (toolbarOptSlots) {
764
- const buttonsSlot = getFuncSlot(toolbarOptSlots, "buttons");
765
- const buttonPrefixSlot = getFuncSlot(toolbarOptSlots, "buttonPrefix");
766
- const buttonSuffixSlot = getFuncSlot(toolbarOptSlots, "buttonSuffix");
767
- const toolsSlot = getFuncSlot(toolbarOptSlots, "tools");
768
- const toolPrefixSlot = getFuncSlot(toolbarOptSlots, "toolPrefix");
769
- const toolSuffixSlot = getFuncSlot(toolbarOptSlots, "toolSuffix");
770
- if (buttonsSlot) {
771
- toolbarSlots.buttons = buttonsSlot;
772
- }
773
- if (buttonPrefixSlot) {
774
- toolbarSlots.buttonPrefix = buttonPrefixSlot;
775
- }
776
- if (buttonSuffixSlot) {
777
- toolbarSlots.buttonSuffix = buttonSuffixSlot;
778
- }
779
- if (toolsSlot) {
780
- toolbarSlots.tools = toolsSlot;
781
- }
782
- if (toolPrefixSlot) {
783
- toolbarSlots.toolPrefix = toolPrefixSlot;
784
- }
785
- if (toolSuffixSlot) {
786
- toolbarSlots.toolSuffix = toolSuffixSlot;
752
+ return renderEmptyElement($xeGrid);
753
+ };
754
+ const renderToolbar = () => {
755
+ const { toolbarConfig } = props;
756
+ const toolbarOpts = computeToolbarOpts.value;
757
+ const toolbarSlot = slots.toolbar;
758
+ if (toolbarConfig && isEnableConf(toolbarOpts) || toolbarSlot) {
759
+ let slotVNs = [];
760
+ if (toolbarSlot) {
761
+ slotVNs = toolbarSlot({ $grid: $xeGrid, $gantt: null });
762
+ } else {
763
+ const toolbarOptSlots = toolbarOpts.slots;
764
+ const toolbarSlots = {};
765
+ if (toolbarOptSlots) {
766
+ const buttonsSlot = getFuncSlot(toolbarOptSlots, "buttons");
767
+ const buttonPrefixSlot = getFuncSlot(toolbarOptSlots, "buttonPrefix");
768
+ const buttonSuffixSlot = getFuncSlot(toolbarOptSlots, "buttonSuffix");
769
+ const toolsSlot = getFuncSlot(toolbarOptSlots, "tools");
770
+ const toolPrefixSlot = getFuncSlot(toolbarOptSlots, "toolPrefix");
771
+ const toolSuffixSlot = getFuncSlot(toolbarOptSlots, "toolSuffix");
772
+ if (buttonsSlot) {
773
+ toolbarSlots.buttons = buttonsSlot;
774
+ }
775
+ if (buttonPrefixSlot) {
776
+ toolbarSlots.buttonPrefix = buttonPrefixSlot;
777
+ }
778
+ if (buttonSuffixSlot) {
779
+ toolbarSlots.buttonSuffix = buttonSuffixSlot;
780
+ }
781
+ if (toolsSlot) {
782
+ toolbarSlots.tools = toolsSlot;
783
+ }
784
+ if (toolPrefixSlot) {
785
+ toolbarSlots.toolPrefix = toolPrefixSlot;
786
+ }
787
+ if (toolSuffixSlot) {
788
+ toolbarSlots.toolSuffix = toolSuffixSlot;
789
+ }
787
790
  }
791
+ slotVNs.push(
792
+ h(
793
+ VxeToolbarComponent,
794
+ {
795
+ ref: refToolbar,
796
+ ...toolbarOpts,
797
+ slots: void 0
798
+ },
799
+ toolbarSlots
800
+ )
801
+ );
788
802
  }
789
- slotVNs.push(
790
- h(
791
- VxeToolbarComponent,
792
- {
793
- ref: refToolbar,
794
- ...toolbarOpts,
795
- slots: void 0
796
- },
797
- toolbarSlots
798
- )
803
+ return h(
804
+ "div",
805
+ {
806
+ ref: refToolbarWrapper,
807
+ key: "toolbar",
808
+ class: "vxe-grid--toolbar-wrapper"
809
+ },
810
+ slotVNs
799
811
  );
800
812
  }
801
- return h(
802
- "div",
803
- {
804
- ref: refToolbarWrapper,
805
- key: "toolbar",
806
- class: "vxe-grid--toolbar-wrapper"
807
- },
808
- slotVNs
809
- );
810
- }
811
- return renderEmptyElement($xeGrid);
812
- };
813
- const renderTop = () => {
814
- const topSlot = slots.top;
815
- if (topSlot) {
816
- return h(
817
- "div",
818
- {
819
- ref: refTopWrapper,
820
- key: "top",
821
- class: "vxe-grid--top-wrapper"
822
- },
823
- topSlot({ $grid: $xeGrid, $gantt: null })
824
- );
825
- }
826
- return renderEmptyElement($xeGrid);
827
- };
828
- const renderTableLeft = () => {
829
- const leftSlot = slots.left;
830
- if (leftSlot) {
831
- return h(
832
- "div",
833
- {
834
- class: "vxe-grid--left-wrapper"
835
- },
836
- leftSlot({ $grid: $xeGrid, $gantt: null })
837
- );
838
- }
839
- return renderEmptyElement($xeGrid);
840
- };
841
- const renderTableRight = () => {
842
- const rightSlot = slots.right;
843
- if (rightSlot) {
844
- return h(
845
- "div",
846
- {
847
- class: "vxe-grid--right-wrapper"
848
- },
849
- rightSlot({ $grid: $xeGrid, $gantt: null })
850
- );
851
- }
852
- return renderEmptyElement($xeGrid);
853
- };
854
- const renderTable = () => {
855
- const { proxyConfig } = props;
856
- const tableProps2 = computeTableProps.value;
857
- const proxyOpts = computeProxyOpts.value;
858
- const tableOns = Object.assign({}, tableCompEvents);
859
- const emptySlot = slots.empty;
860
- const loadingSlot = slots.loading;
861
- const rowDragIconSlot = slots.rowDragIcon || slots["row-drag-icon"];
862
- const columnDragIconSlot = slots.columnDragIcon || slots["column-drag-icon"];
863
- const headerTooltipSlot = slots.headerTooltip || slots["header-tooltip"];
864
- const tooltipSlot = slots.tooltip;
865
- const footerTooltipSlot = slots.footerTooltip || slots["footer-tooltip"];
866
- if (proxyConfig && isEnableConf(proxyOpts)) {
867
- if (proxyOpts.sort) {
868
- tableOns.onSortChange = sortChangeEvent;
869
- tableOns.onClearAllSort = clearAllSortEvent;
813
+ return renderEmptyElement($xeGrid);
814
+ };
815
+ const renderTop = () => {
816
+ const topSlot = slots.top;
817
+ if (topSlot) {
818
+ return h(
819
+ "div",
820
+ {
821
+ ref: refTopWrapper,
822
+ key: "top",
823
+ class: "vxe-grid--top-wrapper"
824
+ },
825
+ topSlot({ $grid: $xeGrid, $gantt: null })
826
+ );
870
827
  }
871
- if (proxyOpts.filter) {
872
- tableOns.onFilterChange = filterChangeEvent;
873
- tableOns.onClearAllFilter = clearAllFilterEvent;
828
+ return renderEmptyElement($xeGrid);
829
+ };
830
+ const renderTableLeft = () => {
831
+ const leftSlot = slots.left;
832
+ if (leftSlot) {
833
+ return h(
834
+ "div",
835
+ {
836
+ class: "vxe-grid--left-wrapper"
837
+ },
838
+ leftSlot({ $grid: $xeGrid, $gantt: null })
839
+ );
874
840
  }
875
- }
876
- const slotObj = {};
877
- if (emptySlot) {
878
- slotObj.empty = emptySlot;
879
- }
880
- if (loadingSlot) {
881
- slotObj.loading = loadingSlot;
882
- }
883
- if (rowDragIconSlot) {
884
- slotObj.rowDragIcon = rowDragIconSlot;
885
- }
886
- if (columnDragIconSlot) {
887
- slotObj.columnDragIcon = columnDragIconSlot;
888
- }
889
- if (headerTooltipSlot) {
890
- slotObj.headerTooltip = headerTooltipSlot;
891
- }
892
- if (tooltipSlot) {
893
- slotObj.tooltip = tooltipSlot;
894
- }
895
- if (footerTooltipSlot) {
896
- slotObj.footerTooltip = footerTooltipSlot;
897
- }
898
- return h(
899
- "div",
900
- {
901
- class: "vxe-grid--table-wrapper"
902
- },
903
- [
904
- h(
905
- VxeTableComponent,
841
+ return renderEmptyElement($xeGrid);
842
+ };
843
+ const renderTableRight = () => {
844
+ const rightSlot = slots.right;
845
+ if (rightSlot) {
846
+ return h(
847
+ "div",
906
848
  {
907
- ref: refTable,
908
- ...tableProps2,
909
- ...tableOns
849
+ class: "vxe-grid--right-wrapper"
910
850
  },
911
- slotObj
912
- )
913
- ]
914
- );
915
- };
916
- const renderBottom = () => {
917
- if (slots.bottom) {
851
+ rightSlot({ $grid: $xeGrid, $gantt: null })
852
+ );
853
+ }
854
+ return renderEmptyElement($xeGrid);
855
+ };
856
+ const renderTable = () => {
857
+ const { proxyConfig } = props;
858
+ const tableProps2 = computeTableProps.value;
859
+ const proxyOpts = computeProxyOpts.value;
860
+ const tableOns = Object.assign({}, tableCompEvents);
861
+ const emptySlot = slots.empty;
862
+ const loadingSlot = slots.loading;
863
+ const rowDragIconSlot = slots.rowDragIcon || slots["row-drag-icon"];
864
+ const columnDragIconSlot = slots.columnDragIcon || slots["column-drag-icon"];
865
+ const headerTooltipSlot = slots.headerTooltip || slots["header-tooltip"];
866
+ const tooltipSlot = slots.tooltip;
867
+ const footerTooltipSlot = slots.footerTooltip || slots["footer-tooltip"];
868
+ if (proxyConfig && isEnableConf(proxyOpts)) {
869
+ if (proxyOpts.sort) {
870
+ tableOns.onSortChange = sortChangeEvent;
871
+ tableOns.onClearAllSort = clearAllSortEvent;
872
+ }
873
+ if (proxyOpts.filter) {
874
+ tableOns.onFilterChange = filterChangeEvent;
875
+ tableOns.onClearAllFilter = clearAllFilterEvent;
876
+ }
877
+ }
878
+ const slotObj = {};
879
+ if (emptySlot) {
880
+ slotObj.empty = emptySlot;
881
+ }
882
+ if (loadingSlot) {
883
+ slotObj.loading = loadingSlot;
884
+ }
885
+ if (rowDragIconSlot) {
886
+ slotObj.rowDragIcon = rowDragIconSlot;
887
+ }
888
+ if (columnDragIconSlot) {
889
+ slotObj.columnDragIcon = columnDragIconSlot;
890
+ }
891
+ if (headerTooltipSlot) {
892
+ slotObj.headerTooltip = headerTooltipSlot;
893
+ }
894
+ if (tooltipSlot) {
895
+ slotObj.tooltip = tooltipSlot;
896
+ }
897
+ if (footerTooltipSlot) {
898
+ slotObj.footerTooltip = footerTooltipSlot;
899
+ }
918
900
  return h(
919
901
  "div",
920
902
  {
921
- ref: refBottomWrapper,
922
- key: "bottom",
923
- class: "vxe-grid--bottom-wrapper"
903
+ class: "vxe-grid--table-wrapper"
924
904
  },
925
- slots.bottom({ $grid: $xeGrid, $gantt: null })
926
- );
927
- }
928
- return renderEmptyElement($xeGrid);
929
- };
930
- const renderPager = () => {
931
- const { proxyConfig, pagerConfig } = props;
932
- const proxyOpts = computeProxyOpts.value;
933
- const pagerOpts = computePagerOpts.value;
934
- const pagerProps = computePagerProps.value;
935
- const pagerSlot = slots.pager;
936
- if (pagerConfig && isEnableConf(pagerOpts) || slots.pager) {
937
- return h(
938
- "div",
939
- {
940
- ref: refPagerWrapper,
941
- key: "pager",
942
- class: "vxe-grid--pager-wrapper"
943
- },
944
- pagerSlot ? pagerSlot({ $grid: $xeGrid, $gantt: null }) : [
945
- VxeUIPagerComponent ? h(
946
- VxeUIPagerComponent,
905
+ [
906
+ h(
907
+ VxeTableComponent,
947
908
  {
948
- ref: refPager,
949
- ...pagerProps,
950
- ...proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {},
951
- onPageChange: pageChangeEvent
909
+ ref: refTable,
910
+ ...tableProps2,
911
+ ...tableOns
952
912
  },
953
- getConfigSlot(pagerOpts.slots)
954
- ) : renderEmptyElement($xeGrid)
913
+ slotObj
914
+ )
955
915
  ]
956
916
  );
957
- }
958
- return renderEmptyElement($xeGrid);
959
- };
960
- const renderChildLayout = (layoutKeys) => {
961
- const childVNs = [];
962
- layoutKeys.forEach((key) => {
963
- switch (key) {
964
- case "Form":
965
- childVNs.push(renderForm());
966
- break;
967
- case "Toolbar":
968
- childVNs.push(renderToolbar());
969
- break;
970
- case "Top":
971
- childVNs.push(renderTop());
972
- break;
973
- case "Table":
974
- childVNs.push(
917
+ };
918
+ const renderBottom = () => {
919
+ if (slots.bottom) {
920
+ return h(
921
+ "div",
922
+ {
923
+ ref: refBottomWrapper,
924
+ key: "bottom",
925
+ class: "vxe-grid--bottom-wrapper"
926
+ },
927
+ slots.bottom({ $grid: $xeGrid, $gantt: null })
928
+ );
929
+ }
930
+ return renderEmptyElement($xeGrid);
931
+ };
932
+ const renderPager = () => {
933
+ const { proxyConfig, pagerConfig } = props;
934
+ const proxyOpts = computeProxyOpts.value;
935
+ const pagerOpts = computePagerOpts.value;
936
+ const pagerProps = computePagerProps.value;
937
+ const pagerSlot = slots.pager;
938
+ if (pagerConfig && isEnableConf(pagerOpts) || slots.pager) {
939
+ return h(
940
+ "div",
941
+ {
942
+ ref: refPagerWrapper,
943
+ key: "pager",
944
+ class: "vxe-grid--pager-wrapper"
945
+ },
946
+ pagerSlot ? pagerSlot({ $grid: $xeGrid, $gantt: null }) : [
947
+ VxeUIPagerComponent ? h(
948
+ VxeUIPagerComponent,
949
+ {
950
+ ref: refPager,
951
+ ...pagerProps,
952
+ ...proxyConfig && isEnableConf(proxyOpts) ? reactData.tablePage : {},
953
+ onPageChange: pageChangeEvent
954
+ },
955
+ getConfigSlot(pagerOpts.slots)
956
+ ) : renderEmptyElement($xeGrid)
957
+ ]
958
+ );
959
+ }
960
+ return renderEmptyElement($xeGrid);
961
+ };
962
+ const renderChildLayout = (layoutKeys) => {
963
+ const childVNs = [];
964
+ layoutKeys.forEach((key) => {
965
+ switch (key) {
966
+ case "Form":
967
+ childVNs.push(renderForm());
968
+ break;
969
+ case "Toolbar":
970
+ childVNs.push(renderToolbar());
971
+ break;
972
+ case "Top":
973
+ childVNs.push(renderTop());
974
+ break;
975
+ case "Table":
976
+ childVNs.push(
977
+ h(
978
+ "div",
979
+ {
980
+ key: "table",
981
+ class: "vxe-grid--table-container"
982
+ },
983
+ [renderTableLeft(), renderTable(), renderTableRight()]
984
+ )
985
+ );
986
+ break;
987
+ case "Bottom":
988
+ childVNs.push(renderBottom());
989
+ break;
990
+ case "Pager":
991
+ childVNs.push(renderPager());
992
+ break;
993
+ default:
994
+ errLog("vxe.error.notProp", [`layouts -> ${key}`]);
995
+ break;
996
+ }
997
+ });
998
+ return childVNs;
999
+ };
1000
+ const renderLayout = () => {
1001
+ const currLayoutConf = computeCurrLayoutConf.value;
1002
+ const { headKeys, bodyKeys, footKeys } = currLayoutConf;
1003
+ const asideLeftSlot = slots.asideLeft || slots["aside-left"];
1004
+ const asideRightSlot = slots.asideRight || slots["aside-right"];
1005
+ return [
1006
+ h(
1007
+ "div",
1008
+ {
1009
+ class: "vxe-grid--layout-header-wrapper"
1010
+ },
1011
+ renderChildLayout(headKeys)
1012
+ ),
1013
+ h(
1014
+ "div",
1015
+ {
1016
+ class: "vxe-grid--layout-body-wrapper"
1017
+ },
1018
+ [
1019
+ asideLeftSlot ? h(
1020
+ "div",
1021
+ {
1022
+ class: "vxe-grid--layout-aside-left-wrapper"
1023
+ },
1024
+ asideLeftSlot({})
1025
+ ) : renderEmptyElement($xeGrid),
975
1026
  h(
976
1027
  "div",
977
1028
  {
978
- key: "table",
979
- class: "vxe-grid--table-container"
1029
+ class: "vxe-grid--layout-body-content-wrapper"
980
1030
  },
981
- [renderTableLeft(), renderTable(), renderTableRight()]
982
- )
983
- );
984
- break;
985
- case "Bottom":
986
- childVNs.push(renderBottom());
987
- break;
988
- case "Pager":
989
- childVNs.push(renderPager());
990
- break;
991
- default:
992
- errLog("vxe.error.notProp", [`layouts -> ${key}`]);
993
- break;
994
- }
1031
+ renderChildLayout(bodyKeys)
1032
+ ),
1033
+ asideRightSlot ? h(
1034
+ "div",
1035
+ {
1036
+ class: "vxe-grid--layout-aside-right-wrapper"
1037
+ },
1038
+ asideRightSlot({})
1039
+ ) : renderEmptyElement($xeGrid)
1040
+ ]
1041
+ ),
1042
+ h(
1043
+ "div",
1044
+ {
1045
+ class: "vxe-grid--layout-footer-wrapper"
1046
+ },
1047
+ renderChildLayout(footKeys)
1048
+ ),
1049
+ h("div", {
1050
+ ref: refPopupContainerElem
1051
+ })
1052
+ ];
1053
+ };
1054
+ const tableCompEvents = {};
1055
+ tableEmits.forEach((name) => {
1056
+ const type = XEUtils.camelCase(`on-${name}`);
1057
+ tableCompEvents[type] = (...args) => emit(name, ...args);
995
1058
  });
996
- return childVNs;
997
- };
998
- const renderLayout = () => {
999
- const currLayoutConf = computeCurrLayoutConf.value;
1000
- const { headKeys, bodyKeys, footKeys } = currLayoutConf;
1001
- const asideLeftSlot = slots.asideLeft || slots["aside-left"];
1002
- const asideRightSlot = slots.asideRight || slots["aside-right"];
1003
- return [
1004
- h(
1005
- "div",
1006
- {
1007
- class: "vxe-grid--layout-header-wrapper"
1008
- },
1009
- renderChildLayout(headKeys)
1010
- ),
1011
- h(
1012
- "div",
1013
- {
1014
- class: "vxe-grid--layout-body-wrapper"
1015
- },
1016
- [
1017
- asideLeftSlot ? h(
1018
- "div",
1019
- {
1020
- class: "vxe-grid--layout-aside-left-wrapper"
1021
- },
1022
- asideLeftSlot({})
1023
- ) : renderEmptyElement($xeGrid),
1024
- h(
1025
- "div",
1026
- {
1027
- class: "vxe-grid--layout-body-content-wrapper"
1028
- },
1029
- renderChildLayout(bodyKeys)
1030
- ),
1031
- asideRightSlot ? h(
1032
- "div",
1033
- {
1034
- class: "vxe-grid--layout-aside-right-wrapper"
1035
- },
1036
- asideRightSlot({})
1037
- ) : renderEmptyElement($xeGrid)
1038
- ]
1039
- ),
1040
- h(
1041
- "div",
1042
- {
1043
- class: "vxe-grid--layout-footer-wrapper"
1044
- },
1045
- renderChildLayout(footKeys)
1046
- ),
1047
- h("div", {
1048
- ref: refPopupContainerElem
1049
- })
1050
- ];
1051
- };
1052
- const tableCompEvents = {};
1053
- tableEmits.forEach((name) => {
1054
- const type = XEUtils.camelCase(`on-${name}`);
1055
- tableCompEvents[type] = (...args) => emit(name, ...args);
1056
- });
1057
- const getDefaultFormData = () => {
1058
- const formOpts = computeFormOpts.value;
1059
- if (formOpts.items) {
1060
- const fData = {};
1061
- formOpts.items.forEach((item) => {
1062
- const { field, itemRender } = item;
1063
- if (field) {
1064
- let itemValue = null;
1065
- if (itemRender) {
1066
- const { startField, endField, defaultValue } = itemRender;
1067
- if (XEUtils.isFunction(defaultValue)) {
1068
- itemValue = defaultValue({ item });
1069
- } else if (!XEUtils.isUndefined(defaultValue)) {
1070
- itemValue = defaultValue;
1071
- }
1072
- if (startField && endField) {
1073
- XEUtils.set(fData, startField, null);
1074
- XEUtils.set(fData, endField, null);
1059
+ const getDefaultFormData = () => {
1060
+ const formOpts = computeFormOpts.value;
1061
+ if (formOpts.items) {
1062
+ const fData = {};
1063
+ formOpts.items.forEach((item) => {
1064
+ const { field, itemRender } = item;
1065
+ if (field) {
1066
+ let itemValue = null;
1067
+ if (itemRender) {
1068
+ const { startField, endField, defaultValue } = itemRender;
1069
+ if (XEUtils.isFunction(defaultValue)) {
1070
+ itemValue = defaultValue({ item });
1071
+ } else if (!XEUtils.isUndefined(defaultValue)) {
1072
+ itemValue = defaultValue;
1073
+ }
1074
+ if (startField && endField) {
1075
+ XEUtils.set(fData, startField, null);
1076
+ XEUtils.set(fData, endField, null);
1077
+ }
1075
1078
  }
1079
+ fData[field] = itemValue;
1076
1080
  }
1077
- fData[field] = itemValue;
1078
- }
1079
- });
1080
- return fData;
1081
- }
1082
- return {};
1083
- };
1084
- const initProxy = () => {
1085
- const { proxyConfig, formConfig } = props;
1086
- const { proxyInited } = reactData;
1087
- const proxyOpts = computeProxyOpts.value;
1088
- const formOpts = computeFormOpts.value;
1089
- if (proxyConfig && isEnableConf(proxyOpts)) {
1090
- if (formConfig && isEnableConf(formOpts) && proxyOpts.form && formOpts.items) {
1091
- reactData.formData = getDefaultFormData();
1081
+ });
1082
+ return fData;
1092
1083
  }
1093
- if (!proxyInited) {
1094
- reactData.proxyInited = true;
1095
- if (proxyOpts.autoLoad !== false) {
1096
- nextTick().then(() => {
1097
- internalData.uFoot = true;
1098
- const rest = $xeGrid.commitProxy("initial");
1099
- internalData.uFoot = false;
1100
- updateQueryFooter();
1101
- return rest;
1102
- }).then((rest) => {
1103
- dispatchEvent("proxy-query", { ...rest, isInited: true }, new Event("initial"));
1104
- });
1084
+ return {};
1085
+ };
1086
+ const initProxy = () => {
1087
+ const { proxyConfig, formConfig } = props;
1088
+ const { proxyInited } = reactData;
1089
+ const proxyOpts = computeProxyOpts.value;
1090
+ const formOpts = computeFormOpts.value;
1091
+ if (proxyConfig && isEnableConf(proxyOpts)) {
1092
+ if (formConfig && isEnableConf(formOpts) && proxyOpts.form && formOpts.items) {
1093
+ reactData.formData = getDefaultFormData();
1094
+ }
1095
+ if (!proxyInited) {
1096
+ reactData.proxyInited = true;
1097
+ if (proxyOpts.autoLoad !== false) {
1098
+ nextTick().then(() => {
1099
+ internalData.uFoot = true;
1100
+ const rest = $xeGrid.commitProxy("initial");
1101
+ internalData.uFoot = false;
1102
+ updateQueryFooter();
1103
+ return rest;
1104
+ }).then((rest) => {
1105
+ dispatchEvent("proxy-query", { ...rest, isInited: true }, new Event("initial"));
1106
+ });
1107
+ }
1105
1108
  }
1106
1109
  }
1107
- }
1108
- };
1109
- const updateQueryFooter = () => {
1110
- const proxyOpts = computeProxyOpts.value;
1111
- const { ajax } = proxyOpts;
1112
- if (ajax && ajax.queryFooter) {
1113
- return $xeGrid.commitProxy("queryFooter");
1114
- }
1115
- };
1116
- const handleGlobalKeydownEvent = (evnt) => {
1117
- const zoomOpts = computeZoomOpts.value;
1118
- const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
1119
- if (isEsc && reactData.isZMax && zoomOpts.escRestore !== false) {
1120
- $xeGrid.triggerZoomEvent(evnt);
1121
- }
1122
- };
1123
- const dispatchEvent = (type, params, evnt) => {
1124
- emit(type, createEvent(evnt, { $grid: $xeGrid, $gantt: null }, params));
1125
- };
1126
- const gridMethods = {
1127
- dispatchEvent,
1128
- getEl() {
1129
- return refElem.value;
1130
- },
1131
- /**
1132
- * 提交指令,支持 code 或 button
1133
- * @param {String/Object} code 字符串或对象
1134
- */
1135
- commitProxy(proxyTarget, ...args) {
1136
- const { showFooter, proxyConfig, toolbarConfig, pagerConfig, editRules, validConfig } = props;
1137
- const { tablePage } = reactData;
1138
- const isActiveMsg = computeIsActiveMsg.value;
1139
- const isRespMsg = computeIsRespMsg.value;
1110
+ };
1111
+ const updateQueryFooter = () => {
1140
1112
  const proxyOpts = computeProxyOpts.value;
1141
- const pagerOpts = computePagerOpts.value;
1142
- const toolbarOpts = computeToolbarOpts.value;
1143
- const { beforeQuery: oldBeforeQuery, afterQuery: oldAfterQuery, beforeQueryFooter: oldBeforeQueryFooter, afterQueryFooter: oldAfterQueryFooter, beforeDelete: oldBeforeDelete, afterDelete: oldAfterDelete, beforeSave: oldBeforeSave, afterSave: oldAfterSave, ajax = {} } = proxyOpts;
1144
- const resConfigs = proxyOpts.response || proxyOpts.props || {};
1145
- const $xeTable = refTable.value;
1146
- if (!$xeTable) {
1147
- return nextTick();
1113
+ const { ajax } = proxyOpts;
1114
+ if (ajax && ajax.queryFooter) {
1115
+ return $xeGrid.commitProxy("queryFooter");
1148
1116
  }
1149
- let formData = getFormData();
1150
- let button = null;
1151
- let code = null;
1152
- if (XEUtils.isString(proxyTarget)) {
1153
- const { buttons } = toolbarOpts;
1154
- const matchObj = toolbarConfig && isEnableConf(toolbarOpts) && buttons ? XEUtils.findTree(buttons, (item) => item.code === proxyTarget, { children: "dropdowns" }) : null;
1155
- button = matchObj ? matchObj.item : null;
1156
- code = proxyTarget;
1157
- } else {
1158
- button = proxyTarget;
1159
- code = button.code;
1117
+ };
1118
+ const handleGlobalKeydownEvent = (evnt) => {
1119
+ const zoomOpts = computeZoomOpts.value;
1120
+ const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
1121
+ if (isEsc && reactData.isZMax && zoomOpts.escRestore !== false) {
1122
+ $xeGrid.triggerZoomEvent(evnt);
1160
1123
  }
1161
- const btnParams = button ? button.params : null;
1162
- switch (code) {
1163
- case "insert":
1164
- return $xeTable.insert({});
1165
- case "insert_edit":
1166
- return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row, true));
1167
- // 已废弃
1168
- case "insert_actived":
1169
- return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row, true));
1170
- // 已废弃
1171
- case "mark_cancel":
1172
- triggerPendingEvent(code);
1173
- break;
1174
- case "remove":
1175
- return handleDeleteRow(code, "vxe.grid.removeSelectRecord", () => $xeTable.removeCheckboxRow());
1176
- case "import":
1177
- $xeTable.importData(btnParams);
1178
- break;
1179
- case "open_import":
1180
- $xeTable.openImport(btnParams);
1181
- break;
1182
- case "export":
1183
- $xeTable.exportData(btnParams);
1184
- break;
1185
- case "open_export":
1186
- $xeTable.openExport(btnParams);
1187
- break;
1188
- case "reset_custom":
1189
- return $xeTable.resetCustom(true);
1190
- case "initial":
1191
- case "reload":
1192
- case "query": {
1193
- const bqMethod = ajax.beforeQuery;
1194
- const qMethod = ajax.query;
1195
- const aqMethod = ajax.afterQuery;
1196
- const qsMethod = ajax.querySuccess;
1197
- const qeMethod = ajax.queryError;
1198
- if (qMethod) {
1199
- const isInited = code === "initial";
1200
- const isReload = code === "reload";
1201
- if (!isInited && reactData.tableLoading) {
1202
- return nextTick();
1203
- }
1204
- let operPromise = null;
1205
- let sortList = [];
1206
- let filterList = [];
1207
- let pageParams = {};
1208
- if (pagerConfig) {
1209
- if (isInited || isReload) {
1210
- tablePage.currentPage = 1;
1211
- }
1212
- if (isEnableConf(pagerOpts)) {
1213
- pageParams = { ...tablePage };
1214
- }
1215
- }
1216
- if (isInited) {
1217
- if (proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form) {
1218
- formData = getDefaultFormData();
1219
- reactData.formData = formData;
1124
+ };
1125
+ const dispatchEvent = (type, params, evnt) => {
1126
+ emit(type, createEvent(evnt, { $grid: $xeGrid, $gantt: null }, params));
1127
+ };
1128
+ const gridMethods = {
1129
+ dispatchEvent,
1130
+ getEl() {
1131
+ return refElem.value;
1132
+ },
1133
+ /**
1134
+ * 提交指令,支持 code 或 button
1135
+ * @param {String/Object} code 字符串或对象
1136
+ */
1137
+ commitProxy(proxyTarget, ...args) {
1138
+ const { showFooter, proxyConfig, toolbarConfig, pagerConfig, editRules, validConfig } = props;
1139
+ const { tablePage } = reactData;
1140
+ const isActiveMsg = computeIsActiveMsg.value;
1141
+ const isRespMsg = computeIsRespMsg.value;
1142
+ const proxyOpts = computeProxyOpts.value;
1143
+ const pagerOpts = computePagerOpts.value;
1144
+ const toolbarOpts = computeToolbarOpts.value;
1145
+ const { beforeQuery: oldBeforeQuery, afterQuery: oldAfterQuery, beforeQueryFooter: oldBeforeQueryFooter, afterQueryFooter: oldAfterQueryFooter, beforeDelete: oldBeforeDelete, afterDelete: oldAfterDelete, beforeSave: oldBeforeSave, afterSave: oldAfterSave, ajax = {} } = proxyOpts;
1146
+ const resConfigs = proxyOpts.response || proxyOpts.props || {};
1147
+ const $xeTable = refTable.value;
1148
+ if (!$xeTable) {
1149
+ return nextTick();
1150
+ }
1151
+ let formData = getFormData();
1152
+ let button = null;
1153
+ let code = null;
1154
+ if (XEUtils.isString(proxyTarget)) {
1155
+ const { buttons } = toolbarOpts;
1156
+ const matchObj = toolbarConfig && isEnableConf(toolbarOpts) && buttons ? XEUtils.findTree(buttons, (item) => item.code === proxyTarget, { children: "dropdowns" }) : null;
1157
+ button = matchObj ? matchObj.item : null;
1158
+ code = proxyTarget;
1159
+ } else {
1160
+ button = proxyTarget;
1161
+ code = button.code;
1162
+ }
1163
+ const btnParams = button ? button.params : null;
1164
+ switch (code) {
1165
+ case "insert":
1166
+ return $xeTable.insert({});
1167
+ case "insert_edit":
1168
+ return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row, true));
1169
+ // 已废弃
1170
+ case "insert_actived":
1171
+ return $xeTable.insert({}).then(({ row }) => $xeTable.setEditRow(row, true));
1172
+ // 已废弃
1173
+ case "mark_cancel":
1174
+ triggerPendingEvent(code);
1175
+ break;
1176
+ case "remove":
1177
+ return handleDeleteRow(code, "vxe.grid.removeSelectRecord", () => $xeTable.removeCheckboxRow());
1178
+ case "import":
1179
+ $xeTable.importData(btnParams);
1180
+ break;
1181
+ case "open_import":
1182
+ $xeTable.openImport(btnParams);
1183
+ break;
1184
+ case "export":
1185
+ $xeTable.exportData(btnParams);
1186
+ break;
1187
+ case "open_export":
1188
+ $xeTable.openExport(btnParams);
1189
+ break;
1190
+ case "reset_custom":
1191
+ return $xeTable.resetCustom(true);
1192
+ case "initial":
1193
+ case "reload":
1194
+ case "query": {
1195
+ const bqMethod = ajax.beforeQuery;
1196
+ const qMethod = ajax.query;
1197
+ const aqMethod = ajax.afterQuery;
1198
+ const qsMethod = ajax.querySuccess;
1199
+ const qeMethod = ajax.queryError;
1200
+ if (qMethod) {
1201
+ const isInited = code === "initial";
1202
+ const isReload = code === "reload";
1203
+ if (!isInited && reactData.tableLoading) {
1204
+ return nextTick();
1220
1205
  }
1221
- if ($xeTable) {
1222
- const tableInternalData = $xeTable.internalData;
1223
- const { tableFullColumn, fullColumnFieldData } = tableInternalData;
1224
- const { computeSortOpts } = $xeTable.getComputeMaps();
1225
- const sortOpts = computeSortOpts.value;
1226
- let defaultSort = sortOpts.defaultSort;
1227
- tableFullColumn.forEach((column) => {
1228
- column.order = null;
1229
- });
1230
- if (defaultSort) {
1231
- if (!XEUtils.isArray(defaultSort)) {
1232
- defaultSort = [defaultSort];
1233
- }
1234
- sortList = defaultSort.map((item) => {
1235
- const { field, order } = item;
1236
- const colRest = fullColumnFieldData[field];
1237
- if (colRest) {
1238
- const column = colRest.column;
1239
- if (column) {
1240
- column.order = order;
1241
- }
1242
- }
1243
- return {
1244
- field,
1245
- property: field,
1246
- order
1247
- };
1248
- });
1206
+ let operPromise = null;
1207
+ let sortList = [];
1208
+ let filterList = [];
1209
+ let pageParams = {};
1210
+ if (pagerConfig) {
1211
+ if (isInited || isReload) {
1212
+ tablePage.currentPage = 1;
1213
+ }
1214
+ if (isEnableConf(pagerOpts)) {
1215
+ pageParams = { ...tablePage };
1249
1216
  }
1250
- filterList = $xeTable.getCheckedFilters();
1251
1217
  }
1252
- } else {
1253
- if ($xeTable) {
1254
- if (isReload) {
1255
- operPromise = $xeTable.clearAll();
1256
- } else {
1257
- sortList = $xeTable.getSortColumns();
1218
+ if (isInited) {
1219
+ if (proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form) {
1220
+ formData = getDefaultFormData();
1221
+ reactData.formData = formData;
1222
+ }
1223
+ if ($xeTable) {
1224
+ const tableInternalData = $xeTable.internalData;
1225
+ const { tableFullColumn, fullColumnFieldData } = tableInternalData;
1226
+ const { computeSortOpts } = $xeTable.getComputeMaps();
1227
+ const sortOpts = computeSortOpts.value;
1228
+ let defaultSort = sortOpts.defaultSort;
1229
+ tableFullColumn.forEach((column) => {
1230
+ column.order = null;
1231
+ });
1232
+ if (defaultSort) {
1233
+ if (!XEUtils.isArray(defaultSort)) {
1234
+ defaultSort = [defaultSort];
1235
+ }
1236
+ sortList = defaultSort.map((item) => {
1237
+ const { field, order } = item;
1238
+ const colRest = fullColumnFieldData[field];
1239
+ if (colRest) {
1240
+ const column = colRest.column;
1241
+ if (column) {
1242
+ column.order = order;
1243
+ }
1244
+ }
1245
+ return {
1246
+ field,
1247
+ property: field,
1248
+ order
1249
+ };
1250
+ });
1251
+ }
1258
1252
  filterList = $xeTable.getCheckedFilters();
1259
1253
  }
1254
+ } else {
1255
+ if ($xeTable) {
1256
+ if (isReload) {
1257
+ operPromise = $xeTable.clearAll();
1258
+ } else {
1259
+ sortList = $xeTable.getSortColumns();
1260
+ filterList = $xeTable.getCheckedFilters();
1261
+ }
1262
+ }
1260
1263
  }
1261
- }
1262
- const commitParams = {
1263
- $table: $xeTable,
1264
- $grid: $xeGrid,
1265
- $gantt: null,
1266
- code,
1267
- button,
1268
- isInited,
1269
- isReload,
1270
- page: pageParams,
1271
- sort: sortList.length ? sortList[0] : {},
1272
- sorts: sortList,
1273
- filters: filterList,
1274
- form: formData,
1275
- options: qMethod
1276
- };
1277
- const handleQuery = () => {
1278
- reactData.sortData = sortList;
1279
- reactData.filterData = filterList;
1280
- reactData.tableLoading = true;
1281
- return Promise.all([Promise.resolve((oldBeforeQuery || qMethod)(commitParams, ...args)), operPromise]).then(([rest]) => {
1282
- reactData.tableLoading = false;
1283
- if (aqMethod) {
1284
- aqMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1285
- } else {
1286
- let tableData = [];
1287
- if (rest) {
1288
- const listProp = resConfigs.list;
1289
- const resultProp = resConfigs.result;
1290
- const reParams = { data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null };
1291
- if (pagerConfig && isEnableConf(pagerOpts)) {
1292
- const totalProp = resConfigs.total;
1293
- const total = (XEUtils.isFunction(totalProp) ? totalProp(reParams) : XEUtils.get(rest, totalProp || "page.total")) || 0;
1294
- tablePage.total = XEUtils.toNumber(total);
1295
- tableData = (XEUtils.isFunction(resultProp) ? resultProp(reParams) : XEUtils.get(rest, resultProp || "result")) || [];
1296
- const pageCount = Math.max(Math.ceil(total / tablePage.pageSize), 1);
1297
- if (tablePage.currentPage > pageCount) {
1298
- tablePage.currentPage = pageCount;
1264
+ const commitParams = {
1265
+ $table: $xeTable,
1266
+ $grid: $xeGrid,
1267
+ $gantt: null,
1268
+ code,
1269
+ button,
1270
+ isInited,
1271
+ isReload,
1272
+ page: pageParams,
1273
+ sort: sortList.length ? sortList[0] : {},
1274
+ sorts: sortList,
1275
+ filters: filterList,
1276
+ form: formData,
1277
+ options: qMethod
1278
+ };
1279
+ const handleQuery = () => {
1280
+ reactData.sortData = sortList;
1281
+ reactData.filterData = filterList;
1282
+ reactData.tableLoading = true;
1283
+ return Promise.all([Promise.resolve((oldBeforeQuery || qMethod)(commitParams, ...args)), operPromise]).then(([rest]) => {
1284
+ reactData.tableLoading = false;
1285
+ if (aqMethod) {
1286
+ aqMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1287
+ } else {
1288
+ let tableData = [];
1289
+ if (rest) {
1290
+ const listProp = resConfigs.list;
1291
+ const resultProp = resConfigs.result;
1292
+ const reParams = { data: rest, $table: $xeTable, $grid: $xeGrid, $gantt: null };
1293
+ if (pagerConfig && isEnableConf(pagerOpts)) {
1294
+ const totalProp = resConfigs.total;
1295
+ const total = (XEUtils.isFunction(totalProp) ? totalProp(reParams) : XEUtils.get(rest, totalProp || "page.total")) || 0;
1296
+ tablePage.total = XEUtils.toNumber(total);
1297
+ tableData = (XEUtils.isFunction(resultProp) ? resultProp(reParams) : XEUtils.get(rest, resultProp || "result")) || [];
1298
+ const pageCount = Math.max(Math.ceil(total / tablePage.pageSize), 1);
1299
+ if (tablePage.currentPage > pageCount) {
1300
+ tablePage.currentPage = pageCount;
1301
+ }
1302
+ } else {
1303
+ if (XEUtils.isArray(rest)) {
1304
+ tableData = rest;
1305
+ } else if (listProp) {
1306
+ tableData = (XEUtils.isFunction(listProp) ? listProp(reParams) : XEUtils.get(rest, listProp)) || [];
1307
+ }
1299
1308
  }
1300
- } else {
1301
- if (XEUtils.isArray(rest)) {
1302
- tableData = rest;
1303
- } else if (listProp) {
1304
- tableData = (XEUtils.isFunction(listProp) ? listProp(reParams) : XEUtils.get(rest, listProp)) || [];
1309
+ if (showFooter) {
1310
+ const fdProp = resConfigs.footerData;
1311
+ const footerList = fdProp ? XEUtils.isFunction(fdProp) ? fdProp(reParams) : XEUtils.get(rest, fdProp) : [];
1312
+ if (XEUtils.isArray(footerList)) {
1313
+ reactData.footerData = footerList;
1314
+ }
1305
1315
  }
1306
1316
  }
1307
- if (showFooter) {
1308
- const fdProp = resConfigs.footerData;
1309
- const footerList = fdProp ? XEUtils.isFunction(fdProp) ? fdProp(reParams) : XEUtils.get(rest, fdProp) : [];
1310
- if (XEUtils.isArray(footerList)) {
1311
- reactData.footerData = footerList;
1312
- }
1317
+ if ($xeTable) {
1318
+ $xeTable.loadData(tableData);
1319
+ } else {
1320
+ nextTick(() => {
1321
+ const $xeTable2 = refTable.value;
1322
+ if ($xeTable2) {
1323
+ $xeTable2.loadData(tableData);
1324
+ }
1325
+ });
1326
+ }
1327
+ if (oldAfterQuery) {
1328
+ oldAfterQuery({ ...commitParams, response: rest }, ...args);
1313
1329
  }
1314
1330
  }
1315
- if ($xeTable) {
1316
- $xeTable.loadData(tableData);
1317
- } else {
1318
- nextTick(() => {
1319
- const $xeTable2 = refTable.value;
1320
- if ($xeTable2) {
1321
- $xeTable2.loadData(tableData);
1322
- }
1323
- });
1331
+ if (qsMethod) {
1332
+ qsMethod({ ...commitParams, response: rest });
1324
1333
  }
1325
- if (oldAfterQuery) {
1326
- oldAfterQuery({ ...commitParams, response: rest }, ...args);
1334
+ return { status: true };
1335
+ }).catch((rest) => {
1336
+ reactData.tableLoading = false;
1337
+ if (aqMethod) {
1338
+ aqMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1327
1339
  }
1328
- }
1329
- if (qsMethod) {
1330
- qsMethod({ ...commitParams, response: rest });
1331
- }
1332
- return { status: true };
1333
- }).catch((rest) => {
1334
- reactData.tableLoading = false;
1335
- if (aqMethod) {
1336
- aqMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1337
- }
1338
- if (qeMethod) {
1339
- qeMethod({ ...commitParams, response: rest });
1340
- }
1341
- return { status: false };
1342
- });
1343
- };
1344
- if (bqMethod) {
1345
- return Promise.resolve(bqMethod(commitParams, ...args)).then((status) => {
1346
- if (status !== false) {
1347
- return handleQuery();
1348
- }
1349
- });
1340
+ if (qeMethod) {
1341
+ qeMethod({ ...commitParams, response: rest });
1342
+ }
1343
+ return { status: false };
1344
+ });
1345
+ };
1346
+ if (bqMethod) {
1347
+ return Promise.resolve(bqMethod(commitParams, ...args)).then((status) => {
1348
+ if (status !== false) {
1349
+ return handleQuery();
1350
+ }
1351
+ });
1352
+ }
1353
+ return handleQuery();
1354
+ } else {
1355
+ errLog("vxe.error.notFunc", ["proxy-config.ajax.query"]);
1350
1356
  }
1351
- return handleQuery();
1352
- } else {
1353
- errLog("vxe.error.notFunc", ["proxy-config.ajax.query"]);
1357
+ break;
1354
1358
  }
1355
- break;
1356
- }
1357
- case "queryFooter":
1358
- case "query_footer": {
1359
- const bqfMethod = ajax.beforeQueryFooter;
1360
- const qfMethod = ajax.queryFooter;
1361
- const aqfMethod = ajax.afterQueryFooter;
1362
- const qfSuccessMethod = ajax.queryFooterSuccess;
1363
- const qfErrorMethod = ajax.queryFooterError;
1364
- if (qfMethod) {
1365
- let filterList = [];
1366
- if ($xeTable) {
1367
- filterList = $xeTable.getCheckedFilters();
1368
- }
1369
- let pageParams = {};
1370
- if (pagerConfig) {
1371
- if (isEnableConf(pagerOpts)) {
1372
- pageParams = { ...tablePage };
1359
+ case "queryFooter":
1360
+ case "query_footer": {
1361
+ const bqfMethod = ajax.beforeQueryFooter;
1362
+ const qfMethod = ajax.queryFooter;
1363
+ const aqfMethod = ajax.afterQueryFooter;
1364
+ const qfSuccessMethod = ajax.queryFooterSuccess;
1365
+ const qfErrorMethod = ajax.queryFooterError;
1366
+ if (qfMethod) {
1367
+ let filterList = [];
1368
+ if ($xeTable) {
1369
+ filterList = $xeTable.getCheckedFilters();
1373
1370
  }
1374
- }
1375
- const commitParams = {
1376
- $table: $xeTable,
1377
- $grid: $xeGrid,
1378
- $gantt: null,
1379
- code,
1380
- button,
1381
- page: pageParams,
1382
- filters: filterList,
1383
- form: formData,
1384
- options: qfMethod
1385
- };
1386
- const handleQueryFooter = () => {
1387
- return Promise.resolve((oldBeforeQueryFooter || qfMethod)(commitParams, ...args)).then((rest) => {
1388
- if (aqfMethod) {
1389
- aqfMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1390
- } else {
1391
- reactData.footerData = XEUtils.isArray(rest) ? rest : [];
1392
- if (oldAfterQueryFooter) {
1393
- oldAfterQueryFooter({ ...commitParams, response: rest }, ...args);
1394
- }
1395
- }
1396
- if (qfSuccessMethod) {
1397
- qfSuccessMethod({ ...commitParams, response: rest });
1398
- }
1399
- return { status: true };
1400
- }).catch((rest) => {
1401
- if (aqfMethod) {
1402
- aqfMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1403
- }
1404
- if (qfErrorMethod) {
1405
- qfErrorMethod({ ...commitParams, response: rest });
1371
+ let pageParams = {};
1372
+ if (pagerConfig) {
1373
+ if (isEnableConf(pagerOpts)) {
1374
+ pageParams = { ...tablePage };
1406
1375
  }
1407
- return { status: false };
1408
- });
1409
- };
1410
- if (bqfMethod) {
1411
- return Promise.resolve(bqfMethod(commitParams, ...args)).then((status) => {
1412
- if (status !== false) {
1413
- return handleQueryFooter();
1414
- }
1415
- });
1376
+ }
1377
+ const commitParams = {
1378
+ $table: $xeTable,
1379
+ $grid: $xeGrid,
1380
+ $gantt: null,
1381
+ code,
1382
+ button,
1383
+ page: pageParams,
1384
+ filters: filterList,
1385
+ form: formData,
1386
+ options: qfMethod
1387
+ };
1388
+ const handleQueryFooter = () => {
1389
+ return Promise.resolve((oldBeforeQueryFooter || qfMethod)(commitParams, ...args)).then((rest) => {
1390
+ if (aqfMethod) {
1391
+ aqfMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1392
+ } else {
1393
+ reactData.footerData = XEUtils.isArray(rest) ? rest : [];
1394
+ if (oldAfterQueryFooter) {
1395
+ oldAfterQueryFooter({ ...commitParams, response: rest }, ...args);
1396
+ }
1397
+ }
1398
+ if (qfSuccessMethod) {
1399
+ qfSuccessMethod({ ...commitParams, response: rest });
1400
+ }
1401
+ return { status: true };
1402
+ }).catch((rest) => {
1403
+ if (aqfMethod) {
1404
+ aqfMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1405
+ }
1406
+ if (qfErrorMethod) {
1407
+ qfErrorMethod({ ...commitParams, response: rest });
1408
+ }
1409
+ return { status: false };
1410
+ });
1411
+ };
1412
+ if (bqfMethod) {
1413
+ return Promise.resolve(bqfMethod(commitParams, ...args)).then((status) => {
1414
+ if (status !== false) {
1415
+ return handleQueryFooter();
1416
+ }
1417
+ });
1418
+ }
1419
+ return handleQueryFooter();
1420
+ } else {
1421
+ errLog("vxe.error.notFunc", ["proxy-config.ajax.queryFooter"]);
1416
1422
  }
1417
- return handleQueryFooter();
1418
- } else {
1419
- errLog("vxe.error.notFunc", ["proxy-config.ajax.queryFooter"]);
1423
+ break;
1420
1424
  }
1421
- break;
1422
- }
1423
- case "delete": {
1424
- const bdMethod = ajax.beforeDelete;
1425
- const dMethod = ajax.delete;
1426
- const adMethod = ajax.afterDelete;
1427
- const deleteSuccessMethods = ajax.deleteSuccess;
1428
- const deleteErrorMethods = ajax.deleteError;
1429
- if (dMethod) {
1430
- const selectRecords = $xeGrid.getCheckboxRecords();
1431
- const removeRecords = selectRecords.filter((row) => !$xeTable.isInsertByRow(row));
1432
- const body = { removeRecords };
1433
- const commitParams = {
1434
- $table: $xeTable,
1435
- $grid: $xeGrid,
1436
- $gantt: null,
1437
- code,
1438
- button,
1439
- body,
1440
- form: formData,
1441
- options: dMethod
1442
- };
1443
- if (selectRecords.length) {
1444
- return handleDeleteRow(code, "vxe.grid.deleteSelectRecord", () => {
1445
- if (!removeRecords.length) {
1446
- return $xeTable.remove(selectRecords);
1447
- }
1448
- const handleDelete = () => {
1449
- reactData.tableLoading = true;
1450
- return Promise.resolve((oldBeforeDelete || dMethod)(commitParams, ...args)).then((rest) => {
1451
- reactData.tableLoading = false;
1452
- if (adMethod) {
1453
- adMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1454
- } else {
1455
- $xeTable.setPendingRow(removeRecords, false);
1456
- if (isRespMsg) {
1457
- if (VxeUI.modal) {
1458
- VxeUI.modal.message({ content: getRespMsg(rest, "vxe.grid.delSuccess"), status: "success" });
1425
+ case "delete": {
1426
+ const bdMethod = ajax.beforeDelete;
1427
+ const dMethod = ajax.delete;
1428
+ const adMethod = ajax.afterDelete;
1429
+ const deleteSuccessMethods = ajax.deleteSuccess;
1430
+ const deleteErrorMethods = ajax.deleteError;
1431
+ if (dMethod) {
1432
+ const selectRecords = $xeGrid.getCheckboxRecords();
1433
+ const removeRecords = selectRecords.filter((row) => !$xeTable.isInsertByRow(row));
1434
+ const body = { removeRecords };
1435
+ const commitParams = {
1436
+ $table: $xeTable,
1437
+ $grid: $xeGrid,
1438
+ $gantt: null,
1439
+ code,
1440
+ button,
1441
+ body,
1442
+ form: formData,
1443
+ options: dMethod
1444
+ };
1445
+ if (selectRecords.length) {
1446
+ return handleDeleteRow(code, "vxe.grid.deleteSelectRecord", () => {
1447
+ if (!removeRecords.length) {
1448
+ return $xeTable.remove(selectRecords);
1449
+ }
1450
+ const handleDelete = () => {
1451
+ reactData.tableLoading = true;
1452
+ return Promise.resolve((oldBeforeDelete || dMethod)(commitParams, ...args)).then((rest) => {
1453
+ reactData.tableLoading = false;
1454
+ if (adMethod) {
1455
+ adMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1456
+ } else {
1457
+ $xeTable.setPendingRow(removeRecords, false);
1458
+ if (isRespMsg) {
1459
+ if (VxeUI.modal) {
1460
+ VxeUI.modal.message({ content: getRespMsg(rest, "vxe.grid.delSuccess"), status: "success" });
1461
+ }
1462
+ }
1463
+ if (oldAfterDelete) {
1464
+ oldAfterDelete({ ...commitParams, response: rest }, ...args);
1465
+ } else {
1466
+ internalData.uFoot = true;
1467
+ $xeGrid.commitProxy("query");
1468
+ internalData.uFoot = false;
1469
+ updateQueryFooter();
1459
1470
  }
1460
1471
  }
1461
- if (oldAfterDelete) {
1462
- oldAfterDelete({ ...commitParams, response: rest }, ...args);
1463
- } else {
1464
- internalData.uFoot = true;
1465
- $xeGrid.commitProxy("query");
1466
- internalData.uFoot = false;
1467
- updateQueryFooter();
1472
+ if (deleteSuccessMethods) {
1473
+ deleteSuccessMethods({ ...commitParams, response: rest });
1468
1474
  }
1469
- }
1470
- if (deleteSuccessMethods) {
1471
- deleteSuccessMethods({ ...commitParams, response: rest });
1472
- }
1473
- return { status: true };
1474
- }).catch((rest) => {
1475
- reactData.tableLoading = false;
1476
- if (adMethod) {
1477
- adMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1478
- } else {
1479
- if (isRespMsg) {
1480
- if (VxeUI.modal) {
1481
- VxeUI.modal.message({ id: code, content: getRespMsg(rest, "vxe.grid.operError"), status: "error" });
1475
+ return { status: true };
1476
+ }).catch((rest) => {
1477
+ reactData.tableLoading = false;
1478
+ if (adMethod) {
1479
+ adMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1480
+ } else {
1481
+ if (isRespMsg) {
1482
+ if (VxeUI.modal) {
1483
+ VxeUI.modal.message({ id: code, content: getRespMsg(rest, "vxe.grid.operError"), status: "error" });
1484
+ }
1482
1485
  }
1483
1486
  }
1484
- }
1485
- if (deleteErrorMethods) {
1486
- deleteErrorMethods({ ...commitParams, response: rest });
1487
- }
1488
- return { status: false };
1489
- });
1490
- };
1491
- if (bdMethod) {
1492
- return Promise.resolve(bdMethod(commitParams, ...args)).then((status) => {
1493
- if (status !== false) {
1494
- return handleDelete();
1495
- }
1496
- });
1497
- }
1498
- return handleDelete();
1499
- });
1500
- } else {
1501
- if (isActiveMsg) {
1502
- if (VxeUI.modal) {
1503
- VxeUI.modal.message({ id: code, content: getI18n("vxe.grid.selectOneRecord"), status: "warning" });
1487
+ if (deleteErrorMethods) {
1488
+ deleteErrorMethods({ ...commitParams, response: rest });
1489
+ }
1490
+ return { status: false };
1491
+ });
1492
+ };
1493
+ if (bdMethod) {
1494
+ return Promise.resolve(bdMethod(commitParams, ...args)).then((status) => {
1495
+ if (status !== false) {
1496
+ return handleDelete();
1497
+ }
1498
+ });
1499
+ }
1500
+ return handleDelete();
1501
+ });
1502
+ } else {
1503
+ if (isActiveMsg) {
1504
+ if (VxeUI.modal) {
1505
+ VxeUI.modal.message({ id: code, content: getI18n("vxe.grid.selectOneRecord"), status: "warning" });
1506
+ }
1504
1507
  }
1505
1508
  }
1509
+ } else {
1510
+ errLog("vxe.error.notFunc", ["proxy-config.ajax.delete"]);
1506
1511
  }
1507
- } else {
1508
- errLog("vxe.error.notFunc", ["proxy-config.ajax.delete"]);
1512
+ break;
1509
1513
  }
1510
- break;
1511
- }
1512
- case "save": {
1513
- const bSaveMethod = ajax.beforeSave;
1514
- const sMethod = ajax.save;
1515
- const aSaveMethod = ajax.afterSave;
1516
- const sSuccessMethod = ajax.saveSuccess;
1517
- const sErrorMethod = ajax.saveError;
1518
- if (sMethod) {
1519
- const body = $xeTable.getRecordset();
1520
- const { insertRecords, removeRecords, updateRecords, pendingRecords } = body;
1521
- const commitParams = {
1522
- $table: $xeTable,
1523
- $grid: $xeGrid,
1524
- $gantt: null,
1525
- code,
1526
- button,
1527
- body,
1528
- form: formData,
1529
- options: sMethod
1530
- };
1531
- if (insertRecords.length) {
1532
- body.pendingRecords = pendingRecords.filter((row) => $xeTable.findRowIndexOf(insertRecords, row) === -1);
1533
- }
1534
- if (pendingRecords.length) {
1535
- body.insertRecords = insertRecords.filter((row) => $xeTable.findRowIndexOf(pendingRecords, row) === -1);
1536
- }
1537
- let restPromise = Promise.resolve();
1538
- if (editRules) {
1539
- restPromise = $xeTable[validConfig && validConfig.msgMode === "full" ? "fullValidate" : "validate"](body.insertRecords.concat(updateRecords));
1540
- }
1541
- return restPromise.then((errMap) => {
1542
- if (errMap) {
1543
- return;
1514
+ case "save": {
1515
+ const bSaveMethod = ajax.beforeSave;
1516
+ const sMethod = ajax.save;
1517
+ const aSaveMethod = ajax.afterSave;
1518
+ const sSuccessMethod = ajax.saveSuccess;
1519
+ const sErrorMethod = ajax.saveError;
1520
+ if (sMethod) {
1521
+ const body = $xeTable.getRecordset();
1522
+ const { insertRecords, removeRecords, updateRecords, pendingRecords } = body;
1523
+ const commitParams = {
1524
+ $table: $xeTable,
1525
+ $grid: $xeGrid,
1526
+ $gantt: null,
1527
+ code,
1528
+ button,
1529
+ body,
1530
+ form: formData,
1531
+ options: sMethod
1532
+ };
1533
+ if (insertRecords.length) {
1534
+ body.pendingRecords = pendingRecords.filter((row) => $xeTable.findRowIndexOf(insertRecords, row) === -1);
1544
1535
  }
1545
- if (body.insertRecords.length || removeRecords.length || updateRecords.length || body.pendingRecords.length) {
1546
- const handleSave = () => {
1547
- reactData.tableLoading = true;
1548
- return Promise.resolve((oldBeforeSave || sMethod)(commitParams, ...args)).then((rest) => {
1549
- reactData.tableLoading = false;
1550
- if (aSaveMethod) {
1551
- aSaveMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1552
- } else {
1553
- $xeTable.clearPendingRow();
1554
- if (isRespMsg) {
1555
- if (VxeUI.modal) {
1556
- VxeUI.modal.message({ content: getRespMsg(rest, "vxe.grid.saveSuccess"), status: "success" });
1536
+ if (pendingRecords.length) {
1537
+ body.insertRecords = insertRecords.filter((row) => $xeTable.findRowIndexOf(pendingRecords, row) === -1);
1538
+ }
1539
+ let restPromise = Promise.resolve();
1540
+ if (editRules) {
1541
+ restPromise = $xeTable[validConfig && validConfig.msgMode === "full" ? "fullValidate" : "validate"](body.insertRecords.concat(updateRecords));
1542
+ }
1543
+ return restPromise.then((errMap) => {
1544
+ if (errMap) {
1545
+ return;
1546
+ }
1547
+ if (body.insertRecords.length || removeRecords.length || updateRecords.length || body.pendingRecords.length) {
1548
+ const handleSave = () => {
1549
+ reactData.tableLoading = true;
1550
+ return Promise.resolve((oldBeforeSave || sMethod)(commitParams, ...args)).then((rest) => {
1551
+ reactData.tableLoading = false;
1552
+ if (aSaveMethod) {
1553
+ aSaveMethod({ ...commitParams, response: rest, status: "success" }, ...args);
1554
+ } else {
1555
+ $xeTable.clearPendingRow();
1556
+ if (isRespMsg) {
1557
+ if (VxeUI.modal) {
1558
+ VxeUI.modal.message({ content: getRespMsg(rest, "vxe.grid.saveSuccess"), status: "success" });
1559
+ }
1560
+ }
1561
+ if (oldAfterSave) {
1562
+ oldAfterSave({ ...commitParams, response: rest }, ...args);
1563
+ } else {
1564
+ internalData.uFoot = true;
1565
+ $xeGrid.commitProxy("query");
1566
+ internalData.uFoot = false;
1567
+ updateQueryFooter();
1557
1568
  }
1558
1569
  }
1559
- if (oldAfterSave) {
1560
- oldAfterSave({ ...commitParams, response: rest }, ...args);
1561
- } else {
1562
- internalData.uFoot = true;
1563
- $xeGrid.commitProxy("query");
1564
- internalData.uFoot = false;
1565
- updateQueryFooter();
1570
+ if (sSuccessMethod) {
1571
+ sSuccessMethod({ ...commitParams, response: rest });
1566
1572
  }
1567
- }
1568
- if (sSuccessMethod) {
1569
- sSuccessMethod({ ...commitParams, response: rest });
1570
- }
1571
- return { status: true };
1572
- }).catch((rest) => {
1573
- reactData.tableLoading = false;
1574
- if (aSaveMethod) {
1575
- aSaveMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1576
- } else {
1577
- if (isRespMsg) {
1578
- if (VxeUI.modal) {
1579
- VxeUI.modal.message({ id: code, content: getRespMsg(rest, "vxe.grid.operError"), status: "error" });
1573
+ return { status: true };
1574
+ }).catch((rest) => {
1575
+ reactData.tableLoading = false;
1576
+ if (aSaveMethod) {
1577
+ aSaveMethod({ ...commitParams, response: rest, status: "error" }, ...args);
1578
+ } else {
1579
+ if (isRespMsg) {
1580
+ if (VxeUI.modal) {
1581
+ VxeUI.modal.message({ id: code, content: getRespMsg(rest, "vxe.grid.operError"), status: "error" });
1582
+ }
1580
1583
  }
1581
1584
  }
1585
+ if (sErrorMethod) {
1586
+ sErrorMethod({ ...commitParams, response: rest });
1587
+ }
1588
+ return { status: false };
1589
+ });
1590
+ };
1591
+ if (bSaveMethod) {
1592
+ return Promise.resolve(bSaveMethod(commitParams, ...args)).then((status) => {
1593
+ if (status !== false) {
1594
+ return handleSave();
1595
+ }
1596
+ });
1597
+ }
1598
+ return handleSave();
1599
+ } else {
1600
+ if (isActiveMsg) {
1601
+ if (VxeUI.modal) {
1602
+ VxeUI.modal.message({ id: code, content: getI18n("vxe.grid.dataUnchanged"), status: "info" });
1582
1603
  }
1583
- if (sErrorMethod) {
1584
- sErrorMethod({ ...commitParams, response: rest });
1585
- }
1586
- return { status: false };
1587
- });
1588
- };
1589
- if (bSaveMethod) {
1590
- return Promise.resolve(bSaveMethod(commitParams, ...args)).then((status) => {
1591
- if (status !== false) {
1592
- return handleSave();
1593
- }
1594
- });
1595
- }
1596
- return handleSave();
1597
- } else {
1598
- if (isActiveMsg) {
1599
- if (VxeUI.modal) {
1600
- VxeUI.modal.message({ id: code, content: getI18n("vxe.grid.dataUnchanged"), status: "info" });
1601
1604
  }
1602
1605
  }
1603
- }
1604
- });
1605
- } else {
1606
- errLog("vxe.error.notFunc", ["proxy-config.ajax.save"]);
1607
- }
1608
- break;
1609
- }
1610
- default: {
1611
- const gCommandOpts = commands.get(code);
1612
- if (gCommandOpts) {
1613
- const tCommandMethod = gCommandOpts.tableCommandMethod || gCommandOpts.commandMethod;
1614
- if (tCommandMethod) {
1615
- tCommandMethod({ code, button, $grid: $xeGrid, $table: $xeTable, $gantt: null }, ...args);
1606
+ });
1616
1607
  } else {
1617
- errLog("vxe.error.notCommands", [code]);
1608
+ errLog("vxe.error.notFunc", ["proxy-config.ajax.save"]);
1609
+ }
1610
+ break;
1611
+ }
1612
+ default: {
1613
+ const gCommandOpts = commands.get(code);
1614
+ if (gCommandOpts) {
1615
+ const tCommandMethod = gCommandOpts.tableCommandMethod || gCommandOpts.commandMethod;
1616
+ if (tCommandMethod) {
1617
+ tCommandMethod({ code, button, $grid: $xeGrid, $table: $xeTable, $gantt: null }, ...args);
1618
+ } else {
1619
+ errLog("vxe.error.notCommands", [code]);
1620
+ }
1618
1621
  }
1619
1622
  }
1620
1623
  }
1621
- }
1622
- return nextTick();
1623
- },
1624
- getParams() {
1625
- return props.params;
1626
- },
1627
- zoom() {
1628
- if (reactData.isZMax) {
1629
- return $xeGrid.revert();
1630
- }
1631
- return $xeGrid.maximize();
1632
- },
1633
- isMaximized() {
1634
- return reactData.isZMax;
1635
- },
1636
- maximize() {
1637
- return handleZoom(true);
1638
- },
1639
- revert() {
1640
- return handleZoom();
1641
- },
1642
- getFormData,
1643
- /**
1644
- * 已废弃,被 getFormFlatItems 替换
1645
- * @deprecated
1646
- */
1647
- getFormItems(itemIndex) {
1648
- const formOpts = computeFormOpts.value;
1649
- const { formConfig } = props;
1650
- const { items } = formOpts;
1651
- const itemList = [];
1652
- XEUtils.eachTree(
1653
- formConfig && isEnableConf(formOpts) && items ? items : [],
1654
- (item) => {
1655
- itemList.push(item);
1656
- },
1657
- { children: "children" }
1658
- );
1659
- return XEUtils.isUndefined(itemIndex) ? itemList : itemList[itemIndex];
1660
- },
1661
- getFormFlatItems() {
1662
- const $form = refForm.value;
1663
- if ($form) {
1664
- return $form.getFlatItems();
1665
- }
1666
- return [];
1667
- },
1668
- getFormNestedItems() {
1669
- const $form = refForm.value;
1670
- if ($form) {
1671
- return $form.getNestedItems();
1672
- }
1673
- return [];
1674
- },
1675
- getFormItemByField(field) {
1676
- const $form = refForm.value;
1677
- if ($form) {
1678
- return $form.getItemByField(field);
1679
- }
1680
- return null;
1681
- },
1682
- resetForm() {
1683
- const $form = refForm.value;
1684
- if ($form) {
1685
- return $form.reset();
1686
- }
1687
- return nextTick();
1688
- },
1689
- validateForm() {
1690
- const $form = refForm.value;
1691
- if ($form) {
1692
- return $form.validate();
1693
- }
1694
- return Promise.resolve();
1695
- },
1696
- validateFormField(field) {
1697
- const $form = refForm.value;
1698
- if ($form) {
1699
- return $form.validateField(field);
1700
- }
1701
- return Promise.resolve();
1702
- },
1703
- clearFormValidate(field) {
1704
- const $form = refForm.value;
1705
- if ($form) {
1706
- return $form.clearValidate(field);
1707
- }
1708
- return nextTick();
1709
- },
1710
- homePage() {
1711
- const { tablePage } = reactData;
1712
- tablePage.currentPage = 1;
1713
- return nextTick();
1714
- },
1715
- homePageByEvent(evnt) {
1716
- const $pager = refPager.value;
1717
- if ($pager) {
1718
- $pager.homePageByEvent(evnt);
1719
- }
1720
- },
1721
- endPage() {
1722
- const { tablePage } = reactData;
1723
- const pageCount = computePageCount.value;
1724
- tablePage.currentPage = pageCount;
1725
- return nextTick();
1726
- },
1727
- endPageByEvent(evnt) {
1728
- const $pager = refPager.value;
1729
- if ($pager) {
1730
- $pager.endPageByEvent(evnt);
1731
- }
1732
- },
1733
- getCurrentPage() {
1734
- const { tablePage } = reactData;
1735
- return tablePage.currentPage;
1736
- },
1737
- setCurrentPage(currentPage) {
1738
- const { tablePage } = reactData;
1739
- const pageCount = computePageCount.value;
1740
- tablePage.currentPage = Math.min(pageCount, Math.max(1, XEUtils.toNumber(currentPage)));
1741
- return nextTick();
1742
- },
1743
- setCurrentPageByEvent(evnt, currentPage) {
1744
- const $pager = refPager.value;
1745
- if ($pager) {
1746
- $pager.setCurrentPageByEvent(evnt, currentPage);
1747
- }
1748
- },
1749
- getPageSize() {
1750
- const { tablePage } = reactData;
1751
- return tablePage.pageSize;
1752
- },
1753
- setPageSize(pageSize) {
1754
- const { tablePage } = reactData;
1755
- tablePage.pageSize = Math.max(1, XEUtils.toNumber(pageSize));
1756
- return nextTick();
1757
- },
1758
- setPageSizeByEvent(evnt, pageSize) {
1759
- const $pager = refPager.value;
1760
- if ($pager) {
1761
- $pager.setPageSizeByEvent(evnt, pageSize);
1762
- }
1763
- },
1764
- getProxyInfo() {
1765
- const $xeTable = refTable.value;
1766
- if (props.proxyConfig) {
1767
- const { sortData } = reactData;
1768
- return {
1769
- data: $xeTable ? $xeTable.getFullData() : [],
1770
- filter: reactData.filterData,
1771
- form: getFormData(),
1772
- sort: sortData.length ? sortData[0] : {},
1773
- sorts: sortData,
1774
- pager: reactData.tablePage,
1775
- pendingRecords: $xeTable ? $xeTable.getPendingRecords() : []
1776
- };
1777
- }
1778
- return null;
1779
- },
1780
- getCustomPagerData() {
1781
- const { pagerConfig } = props;
1782
- const { tablePage } = reactData;
1783
- const pagerOpts = computePagerOpts.value;
1784
- if (pagerConfig && isEnableConf(pagerOpts)) {
1785
- return {
1786
- pSize: tablePage.pageSize
1787
- };
1788
- }
1789
- return {};
1790
- }
1791
- // setProxyInfo (options) {
1792
- // if (props.proxyConfig && options) {
1793
- // const { pager, form } = options
1794
- // const proxyOpts = computeProxyOpts.value
1795
- // if (pager) {
1796
- // if (pager.currentPage) {
1797
- // reactData.tablePage.currentPage = Number(pager.currentPage)
1798
- // }
1799
- // if (pager.pageSize) {
1800
- // reactData.tablePage.pageSize = Number(pager.pageSize)
1801
- // }
1802
- // }
1803
- // if (proxyOpts.form && form) {
1804
- // Object.assign(reactData.formData, form)
1805
- // }
1806
- // }
1807
- // return nextTick()
1808
- // }
1809
- };
1810
- const gridPrivateMethods = {
1811
- extendTableMethods,
1812
- callSlot(slotFunc, params) {
1813
- if (slotFunc) {
1814
- if (XEUtils.isString(slotFunc)) {
1815
- slotFunc = slots[slotFunc] || null;
1624
+ return nextTick();
1625
+ },
1626
+ getParams() {
1627
+ return props.params;
1628
+ },
1629
+ zoom() {
1630
+ if (reactData.isZMax) {
1631
+ return $xeGrid.revert();
1816
1632
  }
1817
- if (XEUtils.isFunction(slotFunc)) {
1818
- return getSlotVNs(slotFunc(params));
1633
+ return $xeGrid.maximize();
1634
+ },
1635
+ isMaximized() {
1636
+ return reactData.isZMax;
1637
+ },
1638
+ maximize() {
1639
+ return handleZoom(true);
1640
+ },
1641
+ revert() {
1642
+ return handleZoom();
1643
+ },
1644
+ getFormData,
1645
+ /**
1646
+ * 已废弃,被 getFormFlatItems 替换
1647
+ * @deprecated
1648
+ */
1649
+ getFormItems(itemIndex) {
1650
+ const formOpts = computeFormOpts.value;
1651
+ const { formConfig } = props;
1652
+ const { items } = formOpts;
1653
+ const itemList = [];
1654
+ XEUtils.eachTree(
1655
+ formConfig && isEnableConf(formOpts) && items ? items : [],
1656
+ (item) => {
1657
+ itemList.push(item);
1658
+ },
1659
+ { children: "children" }
1660
+ );
1661
+ return XEUtils.isUndefined(itemIndex) ? itemList : itemList[itemIndex];
1662
+ },
1663
+ getFormFlatItems() {
1664
+ const $form = refForm.value;
1665
+ if ($form) {
1666
+ return $form.getFlatItems();
1819
1667
  }
1820
- }
1821
- return [];
1822
- },
1823
- /**
1824
- * 获取需要排除的高度
1825
- */
1826
- getExcludeHeight() {
1827
- const { height } = props;
1828
- const { isZMax } = reactData;
1829
- const el = refElem.value;
1830
- if (el) {
1831
- const formWrapper = refFormWrapper.value;
1832
- const toolbarWrapper = refToolbarWrapper.value;
1833
- const topWrapper = refTopWrapper.value;
1834
- const bottomWrapper = refBottomWrapper.value;
1835
- const pagerWrapper = refPagerWrapper.value;
1836
- const parentEl = el.parentElement;
1837
- let parentPaddingSize = 0;
1838
- if (parentEl && (height === "100%" || height === "auto")) {
1839
- parentPaddingSize = isZMax ? 0 : getPaddingTopBottomSize(parentEl);
1668
+ return [];
1669
+ },
1670
+ getFormNestedItems() {
1671
+ const $form = refForm.value;
1672
+ if ($form) {
1673
+ return $form.getNestedItems();
1674
+ }
1675
+ return [];
1676
+ },
1677
+ getFormItemByField(field) {
1678
+ const $form = refForm.value;
1679
+ if ($form) {
1680
+ return $form.getItemByField(field);
1840
1681
  }
1841
- return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper);
1842
- }
1843
- return 0;
1844
- },
1845
- getParentElem() {
1846
- const el = refElem.value;
1847
- if (!el) {
1848
1682
  return null;
1683
+ },
1684
+ resetForm() {
1685
+ const $form = refForm.value;
1686
+ if ($form) {
1687
+ return $form.reset();
1688
+ }
1689
+ return nextTick();
1690
+ },
1691
+ validateForm() {
1692
+ const $form = refForm.value;
1693
+ if ($form) {
1694
+ return $form.validate();
1695
+ }
1696
+ return Promise.resolve();
1697
+ },
1698
+ validateFormField(field) {
1699
+ const $form = refForm.value;
1700
+ if ($form) {
1701
+ return $form.validateField(field);
1702
+ }
1703
+ return Promise.resolve();
1704
+ },
1705
+ clearFormValidate(field) {
1706
+ const $form = refForm.value;
1707
+ if ($form) {
1708
+ return $form.clearValidate(field);
1709
+ }
1710
+ return nextTick();
1711
+ },
1712
+ homePage() {
1713
+ const { tablePage } = reactData;
1714
+ tablePage.currentPage = 1;
1715
+ return nextTick();
1716
+ },
1717
+ homePageByEvent(evnt) {
1718
+ const $pager = refPager.value;
1719
+ if ($pager) {
1720
+ $pager.homePageByEvent(evnt);
1721
+ }
1722
+ },
1723
+ endPage() {
1724
+ const { tablePage } = reactData;
1725
+ const pageCount = computePageCount.value;
1726
+ tablePage.currentPage = pageCount;
1727
+ return nextTick();
1728
+ },
1729
+ endPageByEvent(evnt) {
1730
+ const $pager = refPager.value;
1731
+ if ($pager) {
1732
+ $pager.endPageByEvent(evnt);
1733
+ }
1734
+ },
1735
+ getCurrentPage() {
1736
+ const { tablePage } = reactData;
1737
+ return tablePage.currentPage;
1738
+ },
1739
+ setCurrentPage(currentPage) {
1740
+ const { tablePage } = reactData;
1741
+ const pageCount = computePageCount.value;
1742
+ tablePage.currentPage = Math.min(pageCount, Math.max(1, XEUtils.toNumber(currentPage)));
1743
+ return nextTick();
1744
+ },
1745
+ setCurrentPageByEvent(evnt, currentPage) {
1746
+ const $pager = refPager.value;
1747
+ if ($pager) {
1748
+ $pager.setCurrentPageByEvent(evnt, currentPage);
1749
+ }
1750
+ },
1751
+ getPageSize() {
1752
+ const { tablePage } = reactData;
1753
+ return tablePage.pageSize;
1754
+ },
1755
+ setPageSize(pageSize) {
1756
+ const { tablePage } = reactData;
1757
+ tablePage.pageSize = Math.max(1, XEUtils.toNumber(pageSize));
1758
+ return nextTick();
1759
+ },
1760
+ setPageSizeByEvent(evnt, pageSize) {
1761
+ const $pager = refPager.value;
1762
+ if ($pager) {
1763
+ $pager.setPageSizeByEvent(evnt, pageSize);
1764
+ }
1765
+ },
1766
+ getProxyInfo() {
1767
+ const $xeTable = refTable.value;
1768
+ if (props.proxyConfig) {
1769
+ const { sortData } = reactData;
1770
+ return {
1771
+ data: $xeTable ? $xeTable.getFullData() : [],
1772
+ filter: reactData.filterData,
1773
+ form: getFormData(),
1774
+ sort: sortData.length ? sortData[0] : {},
1775
+ sorts: sortData,
1776
+ pager: reactData.tablePage,
1777
+ pendingRecords: $xeTable ? $xeTable.getPendingRecords() : []
1778
+ };
1779
+ }
1780
+ return null;
1781
+ },
1782
+ getCustomPagerData() {
1783
+ const { pagerConfig } = props;
1784
+ const { tablePage } = reactData;
1785
+ const pagerOpts = computePagerOpts.value;
1786
+ if (pagerConfig && isEnableConf(pagerOpts)) {
1787
+ return {
1788
+ pSize: tablePage.pageSize
1789
+ };
1790
+ }
1791
+ return {};
1849
1792
  }
1850
- let parentEl = el.parentElement;
1851
- if (parentEl && hasClass(parentEl, "vxe-scrollbar--view-inner")) {
1852
- parentEl = parentEl.parentElement;
1853
- }
1854
- return parentEl;
1855
- },
1856
- getParentHeight() {
1857
- const el = refElem.value;
1858
- if (el) {
1859
- const parentEl = $xeGrid.getParentElem();
1860
- return (reactData.isZMax ? getDomNode().visibleHeight : parentEl ? XEUtils.toNumber(getComputedStyle(parentEl).height) : 0) - gridPrivateMethods.getExcludeHeight();
1861
- }
1862
- return 0;
1863
- },
1864
- triggerToolbarCommitEvent(params, evnt) {
1865
- const { code } = params;
1866
- if (code) {
1867
- const isUf = ["reload", "delete", "save"].includes(code);
1868
- if (isUf) {
1869
- internalData.uFoot = true;
1793
+ // setProxyInfo (options) {
1794
+ // if (props.proxyConfig && options) {
1795
+ // const { pager, form } = options
1796
+ // const proxyOpts = computeProxyOpts.value
1797
+ // if (pager) {
1798
+ // if (pager.currentPage) {
1799
+ // reactData.tablePage.currentPage = Number(pager.currentPage)
1800
+ // }
1801
+ // if (pager.pageSize) {
1802
+ // reactData.tablePage.pageSize = Number(pager.pageSize)
1803
+ // }
1804
+ // }
1805
+ // if (proxyOpts.form && form) {
1806
+ // Object.assign(reactData.formData, form)
1807
+ // }
1808
+ // }
1809
+ // return nextTick()
1810
+ // }
1811
+ };
1812
+ const gridPrivateMethods = {
1813
+ extendTableMethods,
1814
+ callSlot(slotFunc, params) {
1815
+ if (slotFunc) {
1816
+ if (XEUtils.isString(slotFunc)) {
1817
+ slotFunc = slots[slotFunc] || null;
1818
+ }
1819
+ if (XEUtils.isFunction(slotFunc)) {
1820
+ return getSlotVNs(slotFunc(params));
1821
+ }
1870
1822
  }
1871
- const rest = $xeGrid.commitProxy(params, evnt).then((rest2) => {
1872
- if (rest2 && rest2.status && ["query", "reload", "delete", "save"].includes(code)) {
1873
- $xeGrid.dispatchEvent(code === "delete" || code === "save" ? `proxy-${code}` : "proxy-query", { ...rest2, isReload: code === "reload" }, evnt);
1823
+ return [];
1824
+ },
1825
+ /**
1826
+ * 获取需要排除的高度
1827
+ */
1828
+ getExcludeHeight() {
1829
+ const { height } = props;
1830
+ const { isZMax } = reactData;
1831
+ const el = refElem.value;
1832
+ if (el) {
1833
+ const formWrapper = refFormWrapper.value;
1834
+ const toolbarWrapper = refToolbarWrapper.value;
1835
+ const topWrapper = refTopWrapper.value;
1836
+ const bottomWrapper = refBottomWrapper.value;
1837
+ const pagerWrapper = refPagerWrapper.value;
1838
+ const parentEl = el.parentElement;
1839
+ let parentPaddingSize = 0;
1840
+ if (parentEl && (height === "100%" || height === "auto")) {
1841
+ parentPaddingSize = isZMax ? 0 : getPaddingTopBottomSize(parentEl);
1874
1842
  }
1875
- });
1876
- internalData.uFoot = false;
1877
- if (isUf) {
1878
- updateQueryFooter();
1843
+ return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper);
1879
1844
  }
1880
- return rest;
1881
- }
1882
- return nextTick();
1883
- },
1884
- triggerToolbarBtnEvent(button, evnt) {
1885
- $xeGrid.triggerToolbarCommitEvent(button, evnt);
1886
- $xeGrid.dispatchEvent("toolbar-button-click", { code: button.code, button }, evnt);
1887
- },
1888
- triggerToolbarTolEvent(tool, evnt) {
1889
- $xeGrid.triggerToolbarCommitEvent(tool, evnt);
1890
- $xeGrid.dispatchEvent("toolbar-tool-click", { code: tool.code, tool }, evnt);
1891
- },
1892
- triggerZoomEvent(evnt) {
1893
- $xeGrid.zoom();
1894
- $xeGrid.dispatchEvent("zoom", { type: reactData.isZMax ? "max" : "revert" }, evnt);
1895
- }
1896
- };
1897
- Object.assign($xeGrid, gridExtendTableMethods, gridMethods, gridPrivateMethods, {
1898
- // 检查插槽
1899
- loadColumn(columns) {
1900
- const $xeTable = refTable.value;
1901
- XEUtils.eachTree(columns, (column) => {
1902
- if (column.slots) {
1903
- XEUtils.each(column.slots, (func) => {
1904
- if (func && !XEUtils.isFunction(func)) {
1905
- if (!slots[func]) {
1906
- errLog("vxe.error.notSlot", [func]);
1907
- }
1845
+ return 0;
1846
+ },
1847
+ getParentElem() {
1848
+ const el = refElem.value;
1849
+ if (!el) {
1850
+ return null;
1851
+ }
1852
+ let parentEl = el.parentElement;
1853
+ if (parentEl && hasClass(parentEl, "vxe-scrollbar--view-inner")) {
1854
+ parentEl = parentEl.parentElement;
1855
+ }
1856
+ return parentEl;
1857
+ },
1858
+ getParentHeight() {
1859
+ const el = refElem.value;
1860
+ if (el) {
1861
+ const parentEl = $xeGrid.getParentElem();
1862
+ return (reactData.isZMax ? getDomNode().visibleHeight : parentEl ? XEUtils.toNumber(getComputedStyle(parentEl).height) : 0) - gridPrivateMethods.getExcludeHeight();
1863
+ }
1864
+ return 0;
1865
+ },
1866
+ triggerToolbarCommitEvent(params, evnt) {
1867
+ const { code } = params;
1868
+ if (code) {
1869
+ const isUf = ["reload", "delete", "save"].includes(code);
1870
+ if (isUf) {
1871
+ internalData.uFoot = true;
1872
+ }
1873
+ const rest = $xeGrid.commitProxy(params, evnt).then((rest2) => {
1874
+ if (rest2 && rest2.status && ["query", "reload", "delete", "save"].includes(code)) {
1875
+ $xeGrid.dispatchEvent(code === "delete" || code === "save" ? `proxy-${code}` : "proxy-query", { ...rest2, isReload: code === "reload" }, evnt);
1908
1876
  }
1909
1877
  });
1878
+ internalData.uFoot = false;
1879
+ if (isUf) {
1880
+ updateQueryFooter();
1881
+ }
1882
+ return rest;
1910
1883
  }
1911
- });
1912
- if ($xeTable) {
1913
- return $xeTable.loadColumn(columns);
1884
+ return nextTick();
1885
+ },
1886
+ triggerToolbarBtnEvent(button, evnt) {
1887
+ $xeGrid.triggerToolbarCommitEvent(button, evnt);
1888
+ $xeGrid.dispatchEvent("toolbar-button-click", { code: button.code, button }, evnt);
1889
+ },
1890
+ triggerToolbarTolEvent(tool, evnt) {
1891
+ $xeGrid.triggerToolbarCommitEvent(tool, evnt);
1892
+ $xeGrid.dispatchEvent("toolbar-tool-click", { code: tool.code, tool }, evnt);
1893
+ },
1894
+ triggerZoomEvent(evnt) {
1895
+ $xeGrid.zoom();
1896
+ $xeGrid.dispatchEvent("zoom", { type: reactData.isZMax ? "max" : "revert" }, evnt);
1914
1897
  }
1915
- return nextTick();
1916
- },
1917
- reloadColumn(columns) {
1918
- $xeGrid.clearAll();
1919
- return $xeGrid.loadColumn(columns);
1920
- }
1921
- });
1922
- const renderVN = () => {
1923
- const vSize = computeSize.value;
1924
- const styles = computeStyles.value;
1925
- const isLoading = computeIsLoading.value;
1926
- return h(
1927
- "div",
1928
- {
1929
- ref: refElem,
1930
- class: [
1931
- "vxe-grid",
1932
- {
1933
- [`size--${vSize}`]: vSize,
1934
- "is--animat": !!props.animat,
1935
- "is--round": props.round,
1936
- "is--maximize": reactData.isZMax,
1937
- "is--loading": isLoading
1898
+ };
1899
+ Object.assign($xeGrid, gridExtendTableMethods, gridMethods, gridPrivateMethods, {
1900
+ // 检查插槽
1901
+ loadColumn(columns) {
1902
+ const $xeTable = refTable.value;
1903
+ XEUtils.eachTree(columns, (column) => {
1904
+ if (column.slots) {
1905
+ XEUtils.each(column.slots, (func) => {
1906
+ if (func && !XEUtils.isFunction(func)) {
1907
+ if (!slots[func]) {
1908
+ errLog("vxe.error.notSlot", [func]);
1909
+ }
1910
+ }
1911
+ });
1938
1912
  }
1939
- ],
1940
- style: styles
1913
+ });
1914
+ if ($xeTable) {
1915
+ return $xeTable.loadColumn(columns);
1916
+ }
1917
+ return nextTick();
1941
1918
  },
1942
- renderLayout()
1943
- );
1944
- };
1945
- const columnFlag = ref(0);
1946
- watch(
1947
- () => props.columns ? props.columns.length : -1,
1948
- () => {
1949
- columnFlag.value++;
1950
- }
1951
- );
1952
- watch(
1953
- () => props.columns,
1954
- () => {
1955
- columnFlag.value++;
1956
- }
1957
- );
1958
- watch(columnFlag, () => {
1959
- nextTick(() => $xeGrid.loadColumn(props.columns || []));
1960
- });
1961
- watch(
1962
- () => props.toolbarConfig,
1963
- () => {
1964
- initToolbar();
1965
- }
1966
- );
1967
- watch(computeCustomCurrentPageFlag, () => {
1968
- initPages("currentPage");
1969
- });
1970
- watch(computeCustomPageSizeFlag, () => {
1971
- initPages("pageSize");
1972
- });
1973
- watch(computeCustomTotalFlag, () => {
1974
- initPages("total");
1975
- });
1976
- watch(
1977
- () => props.proxyConfig,
1978
- () => {
1979
- initProxy();
1980
- }
1981
- );
1982
- hooks.forEach((options) => {
1983
- const { setupGrid } = options;
1984
- if (setupGrid) {
1985
- const hookRest = setupGrid($xeGrid);
1986
- if (hookRest && XEUtils.isObject(hookRest)) {
1987
- Object.assign($xeGrid, hookRest);
1919
+ reloadColumn(columns) {
1920
+ $xeGrid.clearAll();
1921
+ return $xeGrid.loadColumn(columns);
1988
1922
  }
1989
- }
1990
- });
1991
- initPages();
1992
- onMounted(() => {
1993
- nextTick(() => {
1994
- const { columns } = props;
1995
- const proxyOpts = computeProxyOpts.value;
1996
- if (props.formConfig) {
1997
- if (!VxeUIFormComponent) {
1998
- errLog("vxe.error.reqComp", ["vxe-form"]);
1999
- }
1923
+ });
1924
+ const renderVN = () => {
1925
+ const vSize = computeSize.value;
1926
+ const styles = computeStyles.value;
1927
+ const isLoading = computeIsLoading.value;
1928
+ return h(
1929
+ "div",
1930
+ {
1931
+ ref: refElem,
1932
+ class: [
1933
+ "vxe-grid",
1934
+ {
1935
+ [`size--${vSize}`]: vSize,
1936
+ "is--animat": !!props.animat,
1937
+ "is--round": props.round,
1938
+ "is--maximize": reactData.isZMax,
1939
+ "is--loading": isLoading
1940
+ }
1941
+ ],
1942
+ style: styles
1943
+ },
1944
+ renderLayout()
1945
+ );
1946
+ };
1947
+ const columnFlag = ref(0);
1948
+ watch(
1949
+ () => props.columns ? props.columns.length : -1,
1950
+ () => {
1951
+ columnFlag.value++;
2000
1952
  }
2001
- if (props.pagerConfig) {
2002
- if (!VxeUIPagerComponent) {
2003
- errLog("vxe.error.reqComp", ["vxe-pager"]);
2004
- }
1953
+ );
1954
+ watch(
1955
+ () => props.columns,
1956
+ () => {
1957
+ columnFlag.value++;
2005
1958
  }
2006
- if (proxyOpts.props) {
2007
- warnLog("vxe.error.delProp", ["proxy-config.props", "proxy-config.response"]);
1959
+ );
1960
+ watch(columnFlag, () => {
1961
+ nextTick(() => $xeGrid.loadColumn(props.columns || []));
1962
+ });
1963
+ watch(
1964
+ () => props.toolbarConfig,
1965
+ () => {
1966
+ initToolbar();
2008
1967
  }
2009
- if (columns && columns.length) {
2010
- $xeGrid.loadColumn(columns);
1968
+ );
1969
+ watch(computeCustomCurrentPageFlag, () => {
1970
+ initPages("currentPage");
1971
+ });
1972
+ watch(computeCustomPageSizeFlag, () => {
1973
+ initPages("pageSize");
1974
+ });
1975
+ watch(computeCustomTotalFlag, () => {
1976
+ initPages("total");
1977
+ });
1978
+ watch(
1979
+ () => props.proxyConfig,
1980
+ () => {
1981
+ initProxy();
2011
1982
  }
2012
- initToolbar();
2013
- initProxy();
1983
+ );
1984
+ hooks.forEach((options) => {
1985
+ const { setupGrid } = options;
1986
+ if (setupGrid) {
1987
+ const hookRest = setupGrid($xeGrid);
1988
+ if (hookRest && XEUtils.isObject(hookRest)) {
1989
+ Object.assign($xeGrid, hookRest);
1990
+ }
1991
+ }
1992
+ });
1993
+ initPages();
1994
+ onMounted(() => {
1995
+ nextTick(() => {
1996
+ const { columns } = props;
1997
+ const proxyOpts = computeProxyOpts.value;
1998
+ if (props.formConfig) {
1999
+ if (!VxeUIFormComponent) {
2000
+ errLog("vxe.error.reqComp", ["vxe-form"]);
2001
+ }
2002
+ }
2003
+ if (props.pagerConfig) {
2004
+ if (!VxeUIPagerComponent) {
2005
+ errLog("vxe.error.reqComp", ["vxe-pager"]);
2006
+ }
2007
+ }
2008
+ if (proxyOpts.props) {
2009
+ warnLog("vxe.error.delProp", ["proxy-config.props", "proxy-config.response"]);
2010
+ }
2011
+ if (columns && columns.length) {
2012
+ $xeGrid.loadColumn(columns);
2013
+ }
2014
+ initToolbar();
2015
+ initProxy();
2016
+ });
2017
+ globalEvents.on($xeGrid, "keydown", handleGlobalKeydownEvent);
2018
+ });
2019
+ onBeforeUnmount(() => {
2020
+ globalEvents.off($xeGrid, "keydown");
2021
+ XEUtils.assign(reactData, createReactData());
2022
+ XEUtils.assign(internalData, createInternalData());
2014
2023
  });
2015
- globalEvents.on($xeGrid, "keydown", handleGlobalKeydownEvent);
2016
- });
2017
- onBeforeUnmount(() => {
2018
- globalEvents.off($xeGrid, "keydown");
2019
- XEUtils.assign(reactData, createReactData());
2020
- XEUtils.assign(internalData, createInternalData());
2021
- });
2022
- $xeGrid.renderVN = renderVN;
2023
- provide("$xeGrid", $xeGrid);
2024
- provide("$xeGantt", null);
2025
- return $xeGrid;
2026
- },
2027
- render() {
2028
- return this.renderVN();
2029
- }
2030
- });
2024
+ $xeGrid.renderVN = renderVN;
2025
+ provide("$xeGrid", $xeGrid);
2026
+ provide("$xeGantt", null);
2027
+ return $xeGrid;
2028
+ },
2029
+ render() {
2030
+ return this.renderVN();
2031
+ }
2032
+ })
2033
+ );
2031
2034
  export {
2032
2035
  grid_default as default
2033
2036
  };