vxe-table 4.2.6-beta.1 → 4.2.6-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/README.md +1 -1
  2. package/README.zh-TW.md +0 -4
  3. package/es/edit/src/hook.js +5 -4
  4. package/es/export/src/export-panel.js +19 -19
  5. package/es/export/src/import-panel.js +9 -9
  6. package/es/filter/src/hook.js +5 -5
  7. package/es/form/src/form-item.js +1 -1
  8. package/es/form/src/form.js +8 -9
  9. package/es/form/src/render.js +1 -1
  10. package/es/grid/src/grid.js +7 -4
  11. package/es/list/src/list.js +8 -9
  12. package/es/loading/index.js +7 -0
  13. package/es/loading/src/loading.js +31 -0
  14. package/es/locale/lang/en-US.js +5 -0
  15. package/es/locale/lang/ja-JP.js +5 -0
  16. package/es/locale/lang/zh-CN.js +5 -0
  17. package/es/locale/lang/zh-TC.js +5 -0
  18. package/es/menu/src/hooks.js +0 -6
  19. package/es/modal/src/modal.js +8 -9
  20. package/es/select/src/select.js +145 -15
  21. package/es/select/style.css +17 -67
  22. package/es/style.css +1 -1
  23. package/es/style.min.css +1 -1
  24. package/es/table/src/body.js +1 -1
  25. package/es/table/src/cell.js +3 -3
  26. package/es/table/src/columnInfo.js +1 -1
  27. package/es/table/src/table.js +69 -57
  28. package/es/table/src/util.js +2 -2
  29. package/es/table/style.css +0 -63
  30. package/es/toolbar/style.css +11 -9
  31. package/es/tools/log.js +1 -1
  32. package/es/v-x-e-table/index.js +1 -1
  33. package/es/v-x-e-table/src/conf.js +3 -0
  34. package/es/v-x-e-table/style.css +558 -0
  35. package/lib/edit/src/hook.js +5 -5
  36. package/lib/edit/src/hook.min.js +1 -1
  37. package/lib/filter/src/hook.js +8 -5
  38. package/lib/filter/src/hook.min.js +1 -1
  39. package/lib/form/src/form-item.js +1 -0
  40. package/lib/form/src/form-item.min.js +1 -1
  41. package/lib/form/src/form.js +10 -7
  42. package/lib/form/src/form.min.js +1 -1
  43. package/lib/form/src/render.js +1 -0
  44. package/lib/form/src/render.min.js +1 -1
  45. package/lib/grid/src/grid.js +11 -6
  46. package/lib/grid/src/grid.min.js +1 -1
  47. package/lib/index.umd.js +383 -131
  48. package/lib/index.umd.min.js +1 -1
  49. package/lib/list/src/list.js +10 -7
  50. package/lib/list/src/list.min.js +1 -1
  51. package/lib/loading/index.js +19 -0
  52. package/lib/loading/index.min.js +1 -0
  53. package/lib/loading/src/loading.js +39 -0
  54. package/lib/loading/src/loading.min.js +1 -0
  55. package/lib/locale/lang/en-US.js +5 -0
  56. package/lib/locale/lang/en-US.min.js +1 -1
  57. package/lib/locale/lang/en-US.umd.js +5 -0
  58. package/lib/locale/lang/ja-JP.js +5 -0
  59. package/lib/locale/lang/ja-JP.min.js +1 -1
  60. package/lib/locale/lang/ja-JP.umd.js +5 -0
  61. package/lib/locale/lang/zh-CN.js +5 -0
  62. package/lib/locale/lang/zh-CN.min.js +1 -1
  63. package/lib/locale/lang/zh-CN.umd.js +5 -0
  64. package/lib/locale/lang/zh-HK.min.js +1 -1
  65. package/lib/locale/lang/zh-HK.umd.js +5 -0
  66. package/lib/locale/lang/zh-MO.min.js +1 -1
  67. package/lib/locale/lang/zh-MO.umd.js +5 -0
  68. package/lib/locale/lang/zh-TC.js +5 -0
  69. package/lib/locale/lang/zh-TC.min.js +1 -1
  70. package/lib/locale/lang/zh-TC.umd.js +5 -0
  71. package/lib/locale/lang/zh-TW.min.js +1 -1
  72. package/lib/locale/lang/zh-TW.umd.js +5 -0
  73. package/lib/menu/src/hooks.js +0 -6
  74. package/lib/modal/src/modal.js +9 -7
  75. package/lib/modal/src/modal.min.js +1 -1
  76. package/lib/select/src/select.js +194 -16
  77. package/lib/select/src/select.min.js +1 -1
  78. package/lib/select/style/style.css +17 -67
  79. package/lib/select/style/style.min.css +1 -1
  80. package/lib/style.css +1 -1
  81. package/lib/style.min.css +1 -1
  82. package/lib/table/src/body.js +1 -1
  83. package/lib/table/src/body.min.js +1 -1
  84. package/lib/table/src/cell.js +3 -3
  85. package/lib/table/src/cell.min.js +1 -1
  86. package/lib/table/src/columnInfo.js +1 -1
  87. package/lib/table/src/columnInfo.min.js +1 -1
  88. package/lib/table/src/table.js +79 -60
  89. package/lib/table/src/table.min.js +1 -1
  90. package/lib/table/src/util.js +2 -2
  91. package/lib/table/src/util.min.js +1 -1
  92. package/lib/table/style/style.css +0 -63
  93. package/lib/table/style/style.min.css +1 -1
  94. package/lib/toolbar/style/style.css +11 -9
  95. package/lib/toolbar/style/style.min.css +1 -1
  96. package/lib/tools/log.js +1 -1
  97. package/lib/tools/log.min.js +1 -1
  98. package/lib/v-x-e-table/index.js +1 -1
  99. package/lib/v-x-e-table/index.min.js +1 -1
  100. package/lib/v-x-e-table/src/conf.js +3 -0
  101. package/lib/v-x-e-table/src/conf.min.js +1 -1
  102. package/lib/v-x-e-table/style/style.css +558 -0
  103. package/lib/v-x-e-table/style/style.min.css +1 -0
  104. package/package.json +1 -1
  105. package/packages/edit/src/hook.ts +5 -4
  106. package/packages/export/src/export-panel.ts +19 -19
  107. package/packages/export/src/import-panel.ts +9 -9
  108. package/packages/filter/src/hook.ts +7 -7
  109. package/packages/form/src/form-item.ts +1 -1
  110. package/packages/form/src/form.ts +8 -9
  111. package/packages/form/src/render.ts +1 -1
  112. package/packages/grid/src/grid.ts +7 -4
  113. package/packages/list/src/list.ts +8 -9
  114. package/packages/loading/index.ts +10 -0
  115. package/packages/loading/src/loading.ts +32 -0
  116. package/packages/locale/lang/en-US.ts +5 -0
  117. package/packages/locale/lang/ja-JP.ts +5 -0
  118. package/packages/locale/lang/zh-CN.ts +5 -0
  119. package/packages/locale/lang/zh-TC.ts +5 -0
  120. package/packages/menu/src/hooks.ts +0 -6
  121. package/packages/modal/src/modal.ts +8 -9
  122. package/packages/select/src/select.ts +146 -16
  123. package/packages/table/src/body.ts +1 -1
  124. package/packages/table/src/cell.ts +3 -3
  125. package/packages/table/src/columnInfo.ts +1 -1
  126. package/packages/table/src/table.ts +71 -59
  127. package/packages/table/src/util.ts +4 -4
  128. package/packages/v-x-e-table/src/conf.ts +4 -0
  129. package/styles/{base/loading.scss → loading.scss} +17 -4
  130. package/styles/modules.scss +1 -0
  131. package/styles/select.scss +24 -6
  132. package/styles/table.scss +0 -1
  133. package/styles/toolbar.scss +9 -5
  134. package/styles/v-x-e-table.scss +2 -0
  135. package/styles/variable.scss +0 -4
  136. package/types/form-item.d.ts +16 -1
  137. package/types/form.d.ts +1 -1
  138. package/types/select.d.ts +19 -4
  139. package/types/table.d.ts +14 -0
package/README.md CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  ## QQ 交流群
30
30
 
31
- ![qq](https://gitee.com/xuliangzhan_admin/vxe-table/raw/master/public/static/donation/qq.png)
31
+ ![qq](https://vxetable.cn/static/donation/qq.png)
32
32
 
33
33
  ## 浏览器支持
34
34
 
package/README.zh-TW.md CHANGED
@@ -25,10 +25,6 @@
25
25
  * [x] v3.0 基於 vue2.6+,支持現代瀏覽器並保留相容IE11,提升渲染效能
26
26
  * [x] v4.0 基于 vue3.0+,只支持現代瀏覽器,不支持IE
27
27
 
28
- ## QQ 交流群
29
-
30
- ![qq](https://gitee.com/xuliangzhan_admin/vxe-table/raw/master/public/static/donation/qq.png)
31
-
32
28
  ## 瀏覽器支持
33
29
 
34
30
  ![Edge](https://raw.github.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![Opera](https://raw.github.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Safari](https://raw.github.com/alrra/browser-logos/master/src/safari/safari_48x48.png)
@@ -267,7 +267,7 @@ var editHook = {
267
267
  var treeOpts = computeTreeOpts.value;
268
268
  var transform = treeOpts.transform;
269
269
  var actived = editStore.actived, removeList = editStore.removeList, insertList = editStore.insertList;
270
- var property = checkboxOpts.checkField;
270
+ var checkField = checkboxOpts.checkField;
271
271
  var rest = [];
272
272
  if (!rows) {
273
273
  rows = tableFullData;
@@ -282,7 +282,7 @@ var editHook = {
282
282
  }
283
283
  });
284
284
  // 如果绑定了多选属性,则更新状态
285
- if (!property) {
285
+ if (!checkField) {
286
286
  rows.forEach(function (row) {
287
287
  var sIndex = $xetable.findRowIndexOf(selection, row);
288
288
  if (sIndex > -1) {
@@ -607,17 +607,18 @@ var editHook = {
607
607
  var editConfig = props.editConfig, mouseConfig = props.mouseConfig;
608
608
  var editStore = reactData.editStore, tableColumn = reactData.tableColumn;
609
609
  var editOpts = computeEditOpts.value;
610
- var mode = editOpts.mode, activeMethod = editOpts.activeMethod;
610
+ var mode = editOpts.mode;
611
611
  var actived = editStore.actived;
612
612
  var row = params.row, column = params.column;
613
613
  var editRender = column.editRender;
614
614
  var cell = (params.cell || $xetable.getCell(row, column));
615
+ var beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
615
616
  params.cell = cell;
616
617
  if (isEnableConf(editConfig) && isEnableConf(editRender) && cell) {
617
618
  if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
618
619
  // 判断是否禁用编辑
619
620
  var type = 'edit-disabled';
620
- if (!activeMethod || activeMethod(__assign(__assign({}, params), { $table: $xetable }))) {
621
+ if (!beforeEditMethod || beforeEditMethod(__assign(__assign({}, params), { $table: $xetable }))) {
621
622
  if (mouseConfig) {
622
623
  editMethods.clearSelected();
623
624
  if ($xetable.clearCellAreas) {
@@ -2,11 +2,11 @@ import { defineComponent, h, createCommentVNode, ref, computed, reactive, inject
2
2
  import XEUtils from 'xe-utils';
3
3
  import GlobalConfig from '../../v-x-e-table/src/conf';
4
4
  import { formatText } from '../../tools/utils';
5
- import VxeModalConstructor from '../../modal/src/modal';
6
- import VxeInputConstructor from '../../input/src/input';
7
- import VxeCheckboxConstructor from '../../checkbox/src/checkbox';
8
- import VxeSelectConstructor from '../../select/src/select';
9
- import VxeButtonConstructor from '../../button/src/button';
5
+ import VxeModalComponent from '../../modal/src/modal';
6
+ import VxeInputComponent from '../../input/src/input';
7
+ import VxeCheckboxComponent from '../../checkbox/src/checkbox';
8
+ import VxeSelectComponent from '../../select/src/select';
9
+ import VxeButtonComponent from '../../button/src/button';
10
10
  export default defineComponent({
11
11
  name: 'VxeExportPanel',
12
12
  props: {
@@ -173,7 +173,7 @@ export default defineComponent({
173
173
  }, colTitle)
174
174
  ]));
175
175
  });
176
- return h(VxeModalConstructor, {
176
+ return h(VxeModalComponent, {
177
177
  modelValue: storeData.visible,
178
178
  title: GlobalConfig.i18n(isPrint ? 'vxe.export.printTitle' : 'vxe.export.expTitle'),
179
179
  width: 660,
@@ -202,7 +202,7 @@ export default defineComponent({
202
202
  isPrint ? createCommentVNode() : h('tr', [
203
203
  h('td', GlobalConfig.i18n('vxe.export.expName')),
204
204
  h('td', [
205
- h(VxeInputConstructor, {
205
+ h(VxeInputComponent, {
206
206
  ref: xInputFilename,
207
207
  modelValue: defaultOptions.filename,
208
208
  type: 'text',
@@ -217,7 +217,7 @@ export default defineComponent({
217
217
  isPrint ? createCommentVNode() : h('tr', [
218
218
  h('td', GlobalConfig.i18n('vxe.export.expType')),
219
219
  h('td', [
220
- h(VxeSelectConstructor, {
220
+ h(VxeSelectComponent, {
221
221
  modelValue: defaultOptions.type,
222
222
  options: storeData.typeList.map(function (item) {
223
223
  return {
@@ -234,7 +234,7 @@ export default defineComponent({
234
234
  isPrint || showSheet ? h('tr', [
235
235
  h('td', GlobalConfig.i18n('vxe.export.expSheetName')),
236
236
  h('td', [
237
- h(VxeInputConstructor, {
237
+ h(VxeInputComponent, {
238
238
  ref: xInputSheetname,
239
239
  modelValue: defaultOptions.sheetName,
240
240
  type: 'text',
@@ -249,7 +249,7 @@ export default defineComponent({
249
249
  h('tr', [
250
250
  h('td', GlobalConfig.i18n('vxe.export.expMode')),
251
251
  h('td', [
252
- h(VxeSelectConstructor, {
252
+ h(VxeSelectComponent, {
253
253
  modelValue: defaultOptions.mode,
254
254
  options: storeData.modeList.map(function (item) {
255
255
  return {
@@ -306,7 +306,7 @@ export default defineComponent({
306
306
  h('div', {
307
307
  class: 'vxe-export--panel-option-row'
308
308
  }, [
309
- h(VxeCheckboxConstructor, {
309
+ h(VxeCheckboxComponent, {
310
310
  modelValue: defaultOptions.isHeader,
311
311
  title: GlobalConfig.i18n('vxe.export.expHeaderTitle'),
312
312
  content: GlobalConfig.i18n('vxe.export.expOptHeader'),
@@ -314,7 +314,7 @@ export default defineComponent({
314
314
  defaultOptions.isHeader = value;
315
315
  }
316
316
  }),
317
- h(VxeCheckboxConstructor, {
317
+ h(VxeCheckboxComponent, {
318
318
  modelValue: defaultOptions.isFooter,
319
319
  disabled: !storeData.hasFooter,
320
320
  title: GlobalConfig.i18n('vxe.export.expFooterTitle'),
@@ -323,7 +323,7 @@ export default defineComponent({
323
323
  defaultOptions.isFooter = value;
324
324
  }
325
325
  }),
326
- h(VxeCheckboxConstructor, {
326
+ h(VxeCheckboxComponent, {
327
327
  modelValue: defaultOptions.original,
328
328
  title: GlobalConfig.i18n('vxe.export.expOriginalTitle'),
329
329
  content: GlobalConfig.i18n('vxe.export.expOptOriginal'),
@@ -335,7 +335,7 @@ export default defineComponent({
335
335
  h('div', {
336
336
  class: 'vxe-export--panel-option-row'
337
337
  }, [
338
- h(VxeCheckboxConstructor, {
338
+ h(VxeCheckboxComponent, {
339
339
  modelValue: isHeader && hasColgroup && supportMerge ? defaultOptions.isColgroup : false,
340
340
  title: GlobalConfig.i18n('vxe.export.expColgroupTitle'),
341
341
  disabled: !isHeader || !hasColgroup || !supportMerge,
@@ -344,7 +344,7 @@ export default defineComponent({
344
344
  defaultOptions.isColgroup = value;
345
345
  }
346
346
  }),
347
- h(VxeCheckboxConstructor, {
347
+ h(VxeCheckboxComponent, {
348
348
  modelValue: hasMerge && supportMerge && checkedAll ? defaultOptions.isMerge : false,
349
349
  title: GlobalConfig.i18n('vxe.export.expMergeTitle'),
350
350
  disabled: !hasMerge || !supportMerge || !checkedAll,
@@ -353,7 +353,7 @@ export default defineComponent({
353
353
  defaultOptions.isMerge = value;
354
354
  }
355
355
  }),
356
- isPrint ? createCommentVNode() : h(VxeCheckboxConstructor, {
356
+ isPrint ? createCommentVNode() : h(VxeCheckboxComponent, {
357
357
  modelValue: supportStyle ? defaultOptions.useStyle : false,
358
358
  disabled: !supportStyle,
359
359
  title: GlobalConfig.i18n('vxe.export.expUseStyleTitle'),
@@ -362,7 +362,7 @@ export default defineComponent({
362
362
  defaultOptions.useStyle = value;
363
363
  }
364
364
  }),
365
- h(VxeCheckboxConstructor, {
365
+ h(VxeCheckboxComponent, {
366
366
  modelValue: hasTree ? defaultOptions.isAllExpand : false,
367
367
  disabled: !hasTree,
368
368
  title: GlobalConfig.i18n('vxe.export.expAllExpandTitle'),
@@ -380,11 +380,11 @@ export default defineComponent({
380
380
  h('div', {
381
381
  class: 'vxe-export--panel-btns'
382
382
  }, [
383
- h(VxeButtonConstructor, {
383
+ h(VxeButtonComponent, {
384
384
  content: GlobalConfig.i18n('vxe.export.expCancel'),
385
385
  onClick: cancelEvent
386
386
  }),
387
- h(VxeButtonConstructor, {
387
+ h(VxeButtonComponent, {
388
388
  ref: xButtonConfirm,
389
389
  status: 'primary',
390
390
  content: GlobalConfig.i18n(isPrint ? 'vxe.export.expPrint' : 'vxe.export.expConfirm'),
@@ -1,10 +1,10 @@
1
1
  import { defineComponent, h, ref, computed, inject, reactive, nextTick } from 'vue';
2
2
  import XEUtils from 'xe-utils';
3
3
  import GlobalConfig from '../../v-x-e-table/src/conf';
4
- import VxeModalConstructor from '../../modal/src/modal';
5
- import VxeRadioGroupConstructor from '../../radio/src/group';
6
- import VxeRadioConstructor from '../../radio/src/radio';
7
- import VxeButtonConstructor from '../../button/src/button';
4
+ import VxeModalComponent from '../../modal/src/modal';
5
+ import VxeRadioGroupComponent from '../../radio/src/group';
6
+ import VxeRadioComponent from '../../radio/src/radio';
7
+ import VxeButtonComponent from '../../button/src/button';
8
8
  import { parseFile } from '../../tools/utils';
9
9
  export default defineComponent({
10
10
  name: 'VxeImportPanel',
@@ -79,7 +79,7 @@ export default defineComponent({
79
79
  var selectName = computeSelectName.value;
80
80
  var hasFile = computeHasFile.value;
81
81
  var parseTypeLabel = computeParseTypeLabel.value;
82
- return h(VxeModalConstructor, {
82
+ return h(VxeModalComponent, {
83
83
  modelValue: storeData.visible,
84
84
  title: GlobalConfig.i18n('vxe.import.impTitle'),
85
85
  width: 440,
@@ -130,13 +130,13 @@ export default defineComponent({
130
130
  h('tr', [
131
131
  h('td', GlobalConfig.i18n('vxe.import.impOpts')),
132
132
  h('td', [
133
- h(VxeRadioGroupConstructor, {
133
+ h(VxeRadioGroupComponent, {
134
134
  modelValue: defaultOptions.mode,
135
135
  'onUpdate:modelValue': function (value) {
136
136
  defaultOptions.mode = value;
137
137
  }
138
138
  }, {
139
- default: function () { return storeData.modeList.map(function (item) { return h(VxeRadioConstructor, { label: item.value, content: GlobalConfig.i18n(item.label) }); }); }
139
+ default: function () { return storeData.modeList.map(function (item) { return h(VxeRadioComponent, { label: item.value, content: GlobalConfig.i18n(item.label) }); }); }
140
140
  })
141
141
  ])
142
142
  ])
@@ -145,11 +145,11 @@ export default defineComponent({
145
145
  h('div', {
146
146
  class: 'vxe-export--panel-btns'
147
147
  }, [
148
- h(VxeButtonConstructor, {
148
+ h(VxeButtonComponent, {
149
149
  content: GlobalConfig.i18n('vxe.import.impCancel'),
150
150
  onClick: cancelEvent
151
151
  }),
152
- h(VxeButtonConstructor, {
152
+ h(VxeButtonComponent, {
153
153
  status: 'primary',
154
154
  disabled: !hasFile,
155
155
  content: GlobalConfig.i18n('vxe.import.impConfirm'),
@@ -120,7 +120,7 @@ var tableFilterHook = {
120
120
  filterStore.maxHeight = maxHeight;
121
121
  });
122
122
  }
123
- $xetable.dispatchEvent('filter-visible', { column: column, property: column.property, filterList: $xetable.getCheckedFilters(), visible: filterStore.visible }, evnt);
123
+ $xetable.dispatchEvent('filter-visible', { column: column, field: column.field, property: column.field, filterList: $xetable.getCheckedFilters(), visible: filterStore.visible }, evnt);
124
124
  },
125
125
  handleClearFilter: function (column) {
126
126
  if (column) {
@@ -150,7 +150,7 @@ var tableFilterHook = {
150
150
  var filterStore = reactData.filterStore, oldScrollXLoad = reactData.scrollXLoad, oldScrollYLoad = reactData.scrollYLoad;
151
151
  var filterOpts = computeFilterOpts.value;
152
152
  var column = filterStore.column;
153
- var property = column.property;
153
+ var field = column.field;
154
154
  var values = [];
155
155
  var datas = [];
156
156
  column.filters.forEach(function (item) {
@@ -165,7 +165,7 @@ var tableFilterHook = {
165
165
  $xetable.handleTableData(true);
166
166
  $xetable.checkSelectionStatus();
167
167
  }
168
- $xetable.dispatchEvent('filter-change', { column: column, property: property, values: values, datas: datas, filters: filterList, filterList: filterList }, evnt);
168
+ $xetable.dispatchEvent('filter-change', { column: column, field: field, property: field, values: values, datas: datas, filters: filterList, filterList: filterList }, evnt);
169
169
  $xetable.closeFilter();
170
170
  $xetable.updateFooter().then(function () {
171
171
  var scrollXLoad = reactData.scrollXLoad, scrollYLoad = reactData.scrollYLoad;
@@ -259,7 +259,7 @@ var tableFilterHook = {
259
259
  var tableFullColumn = internalData.tableFullColumn;
260
260
  var filterList = [];
261
261
  tableFullColumn.filter(function (column) {
262
- var property = column.property, filters = column.filters;
262
+ var field = column.field, filters = column.filters;
263
263
  var valueList = [];
264
264
  var dataList = [];
265
265
  if (filters && filters.length) {
@@ -270,7 +270,7 @@ var tableFilterHook = {
270
270
  }
271
271
  });
272
272
  if (valueList.length) {
273
- filterList.push({ column: column, property: property, values: valueList, datas: dataList });
273
+ filterList.push({ column: column, field: field, property: field, values: valueList, datas: dataList });
274
274
  }
275
275
  }
276
276
  });
@@ -84,7 +84,7 @@ export default defineComponent({
84
84
  var showTooltip = itemOverflow === true || itemOverflow === 'tooltip';
85
85
  var hasEllipsis = showTitle || showTooltip || showEllipsis;
86
86
  var itemVisibleMethod = visibleMethod;
87
- var params = { data: data, property: field, item: item, $form: $xeform };
87
+ var params = { data: data, field: field, property: field, item: item, $form: $xeform };
88
88
  var isRequired = false;
89
89
  if (rules) {
90
90
  var itemRules = rules[field];
@@ -19,6 +19,7 @@ import { scrollToView } from '../../tools/dom';
19
19
  import { createItem, handleFieldOrItem } from './util';
20
20
  import { useSize } from '../../hooks/size';
21
21
  import VxeFormConfigItem from './form-config-item';
22
+ import VxeLoading from '../../loading/index';
22
23
  var Rule = /** @class */ (function () {
23
24
  function Rule(rule) {
24
25
  Object.assign(this, {
@@ -567,15 +568,13 @@ export default defineComponent({
567
568
  class: 'vxe-form-slots',
568
569
  ref: 'hideItem'
569
570
  }, customLayout ? [] : (defaultSlot ? defaultSlot({}) : [])),
570
- h('div', {
571
- class: ['vxe-loading', {
572
- 'is--visible': loading
573
- }]
574
- }, [
575
- h('div', {
576
- class: 'vxe-loading--spinner'
577
- })
578
- ]),
571
+ /**
572
+ * 加载中
573
+ */
574
+ h(VxeLoading, {
575
+ class: 'vxe-form--loading',
576
+ loading: loading
577
+ }),
579
578
  /**
580
579
  * 工具提示
581
580
  */
@@ -37,7 +37,7 @@ export function renderTitle($xeform, item) {
37
37
  var slots = item.slots, field = item.field, itemRender = item.itemRender, titlePrefix = item.titlePrefix, titleSuffix = item.titleSuffix;
38
38
  var tooltipOpts = computeTooltipOpts.value;
39
39
  var compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null;
40
- var params = { data: data, property: field, item: item, $form: $xeform };
40
+ var params = { data: data, field: field, property: field, item: item, $form: $xeform };
41
41
  var titleSlot = slots ? slots.title : null;
42
42
  var contVNs = [];
43
43
  var titVNs = [];
@@ -162,12 +162,15 @@ export default defineComponent({
162
162
  clss.push(rowClassName ? (XEUtils.isFunction(rowClassName) ? rowClassName(params) : rowClassName) : '');
163
163
  return clss;
164
164
  };
165
- var handleActiveMethod = function (params) {
165
+ var handleBeforeEditMethod = function (params) {
166
166
  var editConfig = props.editConfig;
167
167
  var pendingRecords = reactData.pendingRecords;
168
168
  var $xetable = refTable.value;
169
- var activeMethod = editConfig ? editConfig.activeMethod : null;
170
- return $xetable.findRowIndexOf(pendingRecords, params.row) === -1 && (!activeMethod || activeMethod(__assign(__assign({}, params), { $grid: $xegrid })));
169
+ var beforeEditMethod = editConfig ? (editConfig.beforeEditMethod || editConfig.activeMethod) : null;
170
+ if ($xetable.findRowIndexOf(pendingRecords, params.row) === -1) {
171
+ return !beforeEditMethod || beforeEditMethod(__assign(__assign({}, params), { $grid: $xegrid }));
172
+ }
173
+ return false;
171
174
  };
172
175
  var computeTableProps = computed(function () {
173
176
  var seqConfig = props.seqConfig, pagerConfig = props.pagerConfig, loading = props.loading, editConfig = props.editConfig, proxyConfig = props.proxyConfig;
@@ -192,7 +195,7 @@ export default defineComponent({
192
195
  }
193
196
  }
194
197
  if (editConfig) {
195
- tableProps.editConfig = Object.assign({}, editConfig, { activeMethod: handleActiveMethod });
198
+ tableProps.editConfig = Object.assign({}, editConfig, { beforeEditMethod: handleBeforeEditMethod });
196
199
  }
197
200
  return tableProps;
198
201
  });
@@ -5,6 +5,7 @@ import { useSize } from '../../hooks/size';
5
5
  import { createResizeEvent } from '../../tools/resize';
6
6
  import { browse } from '../../tools/dom';
7
7
  import { GlobalEvent } from '../../tools/event';
8
+ import VxeLoading from '../../loading/index';
8
9
  export default defineComponent({
9
10
  name: 'VxeList',
10
11
  props: {
@@ -305,15 +306,13 @@ export default defineComponent({
305
306
  }
306
307
  }, slots.default ? slots.default({ items: items, $list: $xelist }) : [])
307
308
  ]),
308
- h('div', {
309
- class: ['vxe-list--loading vxe-loading', {
310
- 'is--visible': loading
311
- }]
312
- }, [
313
- h('div', {
314
- class: 'vxe-loading--spinner'
315
- })
316
- ])
309
+ /**
310
+ * 加载中
311
+ */
312
+ h(VxeLoading, {
313
+ class: 'vxe-list--loading',
314
+ loading: loading
315
+ })
317
316
  ]);
318
317
  };
319
318
  $xelist.renderVN = renderVN;
@@ -0,0 +1,7 @@
1
+ import VxeLoading from './src/loading';
2
+ export var Loading = Object.assign(VxeLoading, {
3
+ install: function (app) {
4
+ app.component(VxeLoading.name, VxeLoading);
5
+ }
6
+ });
7
+ export default VxeLoading;
@@ -0,0 +1,31 @@
1
+ import { defineComponent, h } from 'vue';
2
+ import GlobalConfig from '../../v-x-e-table/src/conf';
3
+ export default defineComponent({
4
+ name: 'VxeLoading',
5
+ props: {
6
+ loading: Boolean
7
+ },
8
+ render: function () {
9
+ var icon = GlobalConfig.icon.LOADING;
10
+ var loadingText = GlobalConfig.loadingText;
11
+ var text = loadingText === null ? loadingText : GlobalConfig.i18n('vxe.loading.text');
12
+ return h('div', {
13
+ class: ['vxe-loading', {
14
+ 'is--visible': this.loading
15
+ }]
16
+ }, [
17
+ h('div', {
18
+ class: 'vxe-loading--chunk'
19
+ }, [
20
+ icon ? h('i', {
21
+ class: icon
22
+ }) : h('div', {
23
+ class: 'vxe-loading--spinner'
24
+ }),
25
+ text ? h('div', {
26
+ class: 'vxe-loading--text'
27
+ }, "" + text) : null
28
+ ])
29
+ ]);
30
+ }
31
+ });
@@ -1,5 +1,8 @@
1
1
  export default {
2
2
  vxe: {
3
+ loading: {
4
+ text: 'Loading'
5
+ },
3
6
  error: {
4
7
  groupFixed: 'If you use group headers, the fixed columns must be set by group.',
5
8
  groupMouseRange: 'Grouping headers and "{0}" cannot be used at the same time, which may cause errors.',
@@ -146,6 +149,8 @@ export default {
146
149
  operError: 'Error occurred, operation failed!'
147
150
  },
148
151
  select: {
152
+ search: 'Search',
153
+ loadingText: 'Loading',
149
154
  emptyText: 'No Data'
150
155
  },
151
156
  pager: {
@@ -1,5 +1,8 @@
1
1
  export default {
2
2
  vxe: {
3
+ loading: {
4
+ text: 'Loading'
5
+ },
3
6
  error: {
4
7
  groupFixed: 'グループのヘッダを使用すると、固定列はグループで設定しなければなりません',
5
8
  groupMouseRange: 'グループ化ヘッダーと「{0}」は同時に使用できません。これによりエラーが発生する可能性があります',
@@ -146,6 +149,8 @@ export default {
146
149
  operError: 'エラーが発生しました。操作が失敗しました'
147
150
  },
148
151
  select: {
152
+ search: 'Search',
153
+ loadingText: 'Loading',
149
154
  emptyText: 'データがありません'
150
155
  },
151
156
  pager: {
@@ -1,5 +1,8 @@
1
1
  export default {
2
2
  vxe: {
3
+ loading: {
4
+ text: '加载中'
5
+ },
3
6
  error: {
4
7
  groupFixed: '如果使用分组表头,固定列必须按组设置',
5
8
  groupMouseRange: '分组表头与 "{0}" 不能同时使用,这可能会出现错误',
@@ -146,6 +149,8 @@ export default {
146
149
  operError: '发生错误,操作失败!'
147
150
  },
148
151
  select: {
152
+ search: '搜索',
153
+ loadingText: '加载中',
149
154
  emptyText: '暂无数据'
150
155
  },
151
156
  pager: {
@@ -1,5 +1,8 @@
1
1
  export default {
2
2
  vxe: {
3
+ loading: {
4
+ text: '加載中'
5
+ },
3
6
  error: {
4
7
  groupFixed: '如果使用分組表頭,固定列必須按組設定',
5
8
  groupMouseRange: '分组表頭與 "{0}" 不能同時使用,這可能會出現錯誤',
@@ -146,6 +149,8 @@ export default {
146
149
  operError: '發生錯誤,操作失敗!'
147
150
  },
148
151
  select: {
152
+ search: '蒐索',
153
+ loadingText: '加載中',
149
154
  emptyText: '暫無資料'
150
155
  },
151
156
  pager: {
@@ -117,12 +117,6 @@ var tableMenuHook = {
117
117
  menuPrivateMethods = {
118
118
  /**
119
119
  * 处理菜单的移动
120
- * @param evnt
121
- * @param ctxMenuStore
122
- * @param property
123
- * @param hasOper
124
- * @param operRest
125
- * @param menuList
126
120
  */
127
121
  moveCtxMenu: function (evnt, ctxMenuStore, property, hasOper, operRest, menuList) {
128
122
  var selectItem;
@@ -18,6 +18,7 @@ import { errLog } from '../../tools/log';
18
18
  import { GlobalEvent, hasEventKey, EVENT_KEYS } from '../../tools/event';
19
19
  import GlobalConfig from '../../v-x-e-table/src/conf';
20
20
  import VxeButtonConstructor from '../../button/src/button';
21
+ import VxeLoading from '../../loading/index';
21
22
  export var allActivedModals = [];
22
23
  export var msgQueue = [];
23
24
  export default defineComponent({
@@ -722,15 +723,13 @@ export default defineComponent({
722
723
  class: 'vxe-modal--content'
723
724
  }, defaultSlot ? (!reactData.inited || (props.destroyOnClose && !reactData.visible) ? [] : defaultSlot({ $modal: $xemodal })) : getFuncText(content)));
724
725
  if (!isMsg) {
725
- contVNs.push(h('div', {
726
- class: ['vxe-loading', {
727
- 'is--visible': props.loading
728
- }]
729
- }, [
730
- h('div', {
731
- class: 'vxe-loading--spinner'
732
- })
733
- ]));
726
+ /**
727
+ * 加载中
728
+ */
729
+ contVNs.push(h(VxeLoading, {
730
+ class: 'vxe-modal--loading',
731
+ loading: props.loading
732
+ }));
734
733
  }
735
734
  return [
736
735
  h('div', {