vxe-table 3.8.7-beta.2 → 3.8.7-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/lib/form/src/form-config-item.js +2 -2
  2. package/lib/form/src/form-config-item.min.js +1 -1
  3. package/lib/form/src/form-gather.js +15 -12
  4. package/lib/form/src/form-gather.min.js +1 -1
  5. package/lib/form/src/form-item.js +2 -1
  6. package/lib/form/src/form-item.min.js +1 -1
  7. package/lib/form/src/form.js +1 -1
  8. package/lib/form/src/form.min.js +1 -1
  9. package/lib/form/src/util.js +1 -0
  10. package/lib/form/src/util.min.js +1 -1
  11. package/lib/form/style/style.css +91 -3
  12. package/lib/form/style/style.min.css +1 -1
  13. package/lib/icon/style/style.css +6 -2
  14. package/lib/icon/style/style.min.css +6 -2
  15. package/lib/index.css +1 -1
  16. package/lib/index.umd.js +110 -45
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/locale/lang/en-US.js +8 -1
  19. package/lib/locale/lang/en-US.min.js +1 -1
  20. package/lib/locale/lang/en-US.umd.js +8 -1
  21. package/lib/locale/lang/es-ES.js +9 -2
  22. package/lib/locale/lang/es-ES.min.js +1 -1
  23. package/lib/locale/lang/es-ES.umd.js +9 -2
  24. package/lib/locale/lang/ja-JP.js +7 -0
  25. package/lib/locale/lang/ja-JP.min.js +1 -1
  26. package/lib/locale/lang/ja-JP.umd.js +7 -0
  27. package/lib/locale/lang/pt-BR.js +191 -184
  28. package/lib/locale/lang/pt-BR.min.js +1 -1
  29. package/lib/locale/lang/pt-BR.umd.js +191 -184
  30. package/lib/locale/lang/zh-CN.js +7 -0
  31. package/lib/locale/lang/zh-CN.min.js +1 -1
  32. package/lib/locale/lang/zh-CN.umd.js +7 -0
  33. package/lib/locale/lang/zh-HK.min.js +1 -1
  34. package/lib/locale/lang/zh-HK.umd.js +7 -0
  35. package/lib/locale/lang/zh-MO.min.js +1 -1
  36. package/lib/locale/lang/zh-MO.umd.js +7 -0
  37. package/lib/locale/lang/zh-TC.js +7 -0
  38. package/lib/locale/lang/zh-TC.min.js +1 -1
  39. package/lib/locale/lang/zh-TC.umd.js +7 -0
  40. package/lib/locale/lang/zh-TW.min.js +1 -1
  41. package/lib/locale/lang/zh-TW.umd.js +7 -0
  42. package/lib/modal/src/modal.js +26 -8
  43. package/lib/modal/src/modal.min.js +1 -1
  44. package/lib/style.css +1 -1
  45. package/lib/style.min.css +1 -1
  46. package/lib/switch/src/switch.js +3 -1
  47. package/lib/switch/src/switch.min.js +1 -1
  48. package/lib/switch/style/style.css +10 -0
  49. package/lib/switch/style/style.min.css +1 -1
  50. package/lib/table/src/body.js +3 -3
  51. package/lib/table/src/body.min.js +1 -1
  52. package/lib/table/src/table.js +3 -3
  53. package/lib/table/src/table.min.js +1 -1
  54. package/lib/tools/log.js +1 -1
  55. package/lib/tools/log.min.js +1 -1
  56. package/lib/v-x-e-table/index.js +26 -4
  57. package/lib/v-x-e-table/index.min.js +1 -1
  58. package/lib/v-x-e-table/src/conf.js +2 -0
  59. package/lib/v-x-e-table/src/conf.min.js +1 -1
  60. package/lib/v-x-e-table/src/config.js +1 -3
  61. package/lib/v-x-e-table/src/config.min.js +1 -1
  62. package/lib/v-x-e-table/style/style.css +5 -1
  63. package/lib/v-x-e-table/style/style.min.css +1 -1
  64. package/lib/validator/src/mixin.js +16 -16
  65. package/lib/validator/src/mixin.min.js +1 -1
  66. package/lib/vxe-form/style/style.css +91 -3
  67. package/lib/vxe-form/style/style.min.css +1 -1
  68. package/lib/vxe-icon/style/style.css +5 -1
  69. package/lib/vxe-icon/style/style.min.css +1 -1
  70. package/lib/vxe-switch/style/style.css +10 -0
  71. package/lib/vxe-switch/style/style.min.css +1 -1
  72. package/package.json +1 -1
  73. package/packages/form/src/form-config-item.js +2 -2
  74. package/packages/form/src/form-gather.js +6 -11
  75. package/packages/form/src/form-item.js +2 -1
  76. package/packages/form/src/form.js +1 -1
  77. package/packages/form/src/util.js +1 -0
  78. package/packages/locale/lang/en-US.js +8 -1
  79. package/packages/locale/lang/es-ES.js +9 -2
  80. package/packages/locale/lang/ja-JP.js +7 -0
  81. package/packages/locale/lang/pt-BR.js +192 -185
  82. package/packages/locale/lang/zh-CN.js +7 -0
  83. package/packages/locale/lang/zh-TC.js +7 -0
  84. package/packages/modal/src/modal.js +13 -8
  85. package/packages/switch/src/switch.js +3 -1
  86. package/packages/table/src/body.js +3 -3
  87. package/packages/table/src/table.js +3 -3
  88. package/packages/v-x-e-table/index.js +24 -3
  89. package/packages/v-x-e-table/src/conf.js +2 -0
  90. package/packages/v-x-e-table/src/config.js +0 -2
  91. package/packages/validator/src/mixin.js +16 -16
  92. package/styles/form.scss +27 -3
  93. package/styles/icon.scss +1 -1
  94. package/styles/old-icon.scss +5 -0
  95. package/styles/switch.scss +10 -0
  96. package/types/form-item.d.ts +2 -1
  97. package/types/v-x-e-table/index.d.ts +69 -8
  98. package/types/v-x-e-table/renderer.d.ts +6 -0
  99. package/types/v-x-e-table/config.d.ts +0 -55
  100. /package/lib/icon/style/{iconfont.1715850304028.ttf → iconfont.1716169891278.ttf} +0 -0
  101. /package/lib/icon/style/{iconfont.1715850304028.woff → iconfont.1716169891278.woff} +0 -0
  102. /package/lib/icon/style/{iconfont.1715850304028.woff2 → iconfont.1716169891278.woff2} +0 -0
  103. /package/lib/{iconfont.1715850304028.ttf → iconfont.1716169891278.ttf} +0 -0
  104. /package/lib/{iconfont.1715850304028.woff → iconfont.1716169891278.woff} +0 -0
  105. /package/lib/{iconfont.1715850304028.woff2 → iconfont.1716169891278.woff2} +0 -0
@@ -261,205 +261,212 @@ export default {
261
261
  q4: '4º trimestre'
262
262
  }
263
263
  }
264
- }
265
- },
264
+ },
265
+ formDesign: {
266
+ widget: {
267
+ input: 'Input',
268
+ textarea: 'Textarea',
269
+ select: 'Select'
270
+ }
271
+ },
272
+
273
+ /**
274
+ * 扩展插件
275
+ */
276
+ plugins: {
277
+ extendCellArea: {
278
+ area: {
279
+ mergeErr: '无法对合并单元格进行该操作',
280
+ multiErr: '无法对多重选择区域进行该操作',
281
+ extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
282
+ pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作',
283
+ cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})'
284
+ },
285
+ fnr: {
286
+ title: '查找和替换',
287
+ findLabel: '查找',
288
+ replaceLabel: '替换',
289
+ findTitle: '查找内容:',
290
+ replaceTitle: '替换为:',
291
+ tabs: {
292
+ find: '查找',
293
+ replace: '替换'
294
+ },
295
+ filter: {
296
+ re: '正则表达式',
297
+ whole: '全词匹配',
298
+ sensitive: '区分大小写'
299
+ },
300
+ btns: {
301
+ findNext: '查找下一个',
302
+ findAll: '查找全部',
303
+ replace: '替换',
304
+ replaceAll: '替换全部',
305
+ cancel: '取消'
306
+ },
307
+ header: {
308
+ seq: '#',
309
+ cell: '单元格',
310
+ value: '值'
311
+ },
312
+ empty: '(空值)',
313
+ reError: '无效的正则表达式',
314
+ recordCount: '已找到 {0} 个单元格',
315
+ notCell: '找不到匹配的单元格',
316
+ replaceSuccess: '成功替换 {0} 个单元格'
317
+ }
318
+ },
319
+ filterComplexInput: {
320
+ menus: {
321
+ fixedColumn: '锁定列',
322
+ fixedGroup: '锁定组',
323
+ cancelFixed: '取消锁定',
324
+ fixedLeft: '锁定左侧',
325
+ fixedRight: '锁定右侧'
326
+ },
327
+ cases: {
328
+ equal: '等于',
329
+ gt: '大于',
330
+ lt: '小于',
331
+ begin: '开头是',
332
+ endin: '结尾是',
333
+ include: '包含',
334
+ isSensitive: '区分大小写'
335
+ }
336
+ },
337
+ filterCombination: {
338
+ menus: {
339
+ clearSort: '清除排序',
340
+ sortAsc: '升序',
341
+ sortDesc: '降序',
342
+ fixedColumn: '锁定列',
343
+ fixedGroup: '锁定组',
344
+ cancelFixed: '取消锁定',
345
+ fixedLeft: '锁定左侧',
346
+ fixedRight: '锁定右侧',
347
+ clearFilter: '清除筛选',
348
+ textOption: '文本筛选',
349
+ numberOption: '数值筛选'
350
+ },
351
+ popup: {
352
+ title: '自定义筛选的方式',
353
+ currColumnTitle: '当前列:',
354
+ and: '与',
355
+ or: '或',
356
+ describeHtml: '可用 ? 代表单个字符<br/>用 * 代表任意多个字符'
357
+ },
358
+ cases: {
359
+ equal: '等于',
360
+ unequal: '不等于',
361
+ gt: '大于',
362
+ ge: '大于或等于',
363
+ lt: '小于',
364
+ le: '小于或等于',
365
+ begin: '开头是',
366
+ notbegin: '开头不是',
367
+ endin: '结尾是',
368
+ notendin: '结尾不是',
369
+ include: '包含',
370
+ exclude: '不包含',
371
+ between: '介于',
372
+ custom: '自定义筛选',
373
+ insensitive: '不区分大小写',
374
+ isSensitive: '区分大小写'
375
+ },
376
+ empty: '(空白)',
377
+ notData: '无匹配项'
378
+ }
379
+ },
266
380
 
267
- /**
268
- * 扩展插件
269
- */
270
- plugins: {
271
- extendCellArea: {
381
+ /**
382
+ * 以下废弃
383
+ * @deprecated
384
+ */
385
+ renderer: {
386
+ search: 'Buscar',
387
+ cases: {
388
+ equal: 'Igual',
389
+ unequal: 'Não igual',
390
+ gt: 'Maior que',
391
+ ge: 'Maior ou igual a',
392
+ lt: 'Menor que',
393
+ le: 'Menor ou igual a',
394
+ begin: 'Começa com',
395
+ notbegin: 'Não começa com',
396
+ endin: 'Termina com',
397
+ notendin: 'Não termina com',
398
+ include: 'Inclui',
399
+ exclude: 'Exclusivo',
400
+ between: 'Entre',
401
+ custom: 'Filtro personalizado',
402
+ insensitive: 'Sem diferenciação de maiúsculas e minúsculas',
403
+ isSensitive: 'Diferenciação de maiúsculas e minúsculas'
404
+ },
405
+ combination: {
406
+ menus: {
407
+ clearSort: 'Limpar ordenação',
408
+ sortAsc: 'Ordem ascendente',
409
+ sortDesc: 'Ordem descendente',
410
+ fixedColumn: 'Coluna fixa',
411
+ fixedGroup: 'Grupo fixo',
412
+ cancelFixed: 'Limpar fixação',
413
+ fixedLeft: 'Fixar à esquerda',
414
+ fixedRight: 'Fixar à direita',
415
+ clearFilter: 'Limpar filtro',
416
+ textOption: 'Filtro de texto',
417
+ numberOption: 'Filtro numérico'
418
+ },
419
+ popup: {
420
+ title: 'Filtragem personalizada',
421
+ currColumnTitle: 'Coluna atual:',
422
+ and: 'E',
423
+ or: 'Ou',
424
+ describeHtml: 'Use ? para representar um único caractere <br/> use * para representar qualquer número de caracteres'
425
+ },
426
+ empty: '(Vazio)',
427
+ notData: 'Sem dados'
428
+ }
429
+ },
430
+ pro: {
272
431
  area: {
273
- mergeErr: '无法对合并单元格进行该操作',
274
- multiErr: '无法对多重选择区域进行该操作',
275
- extendErr: '如果延伸的区域包含被合并的单元格,所有合并的单元格需大小相同',
276
- pasteMultiErr: '无法粘贴,需要相同大小的复制的区域和粘贴的区域才能执行此操作',
277
- cpInvalidErr: '该操作无法进行,您选择的区域中存在被禁止的列({0})'
432
+ mergeErr: 'A operação não pode ser realizada em células mescladas',
433
+ multiErr: 'A operação não pode ser realizada em áreas de seleção múltipla',
434
+ extendErr: 'Se a área estendida contiver células mescladas, todas as células mescladas devem ter o mesmo tamanho',
435
+ pasteMultiErr: 'Não é possível colar, é necessário que a área copiada e a área colada tenham o mesmo tamanho para realizar esta operação'
278
436
  },
279
437
  fnr: {
280
- title: '查找和替换',
281
- findLabel: '查找',
282
- replaceLabel: '替换',
283
- findTitle: '查找内容:',
284
- replaceTitle: '替换为:',
438
+ title: 'Localizar e substituir',
439
+ findLabel: 'Localizar',
440
+ replaceLabel: 'Substituir',
441
+ findTitle: 'O que localizar:',
442
+ replaceTitle: 'Substituir por:',
285
443
  tabs: {
286
- find: '查找',
287
- replace: '替换'
444
+ find: 'Localizar',
445
+ replace: 'Substituir'
288
446
  },
289
447
  filter: {
290
- re: '正则表达式',
291
- whole: '全词匹配',
292
- sensitive: '区分大小写'
448
+ re: 'Expressão Regular',
449
+ whole: 'Palavra inteira',
450
+ sensitive: 'Diferenciar maiúsculas e minúsculas'
293
451
  },
294
452
  btns: {
295
- findNext: '查找下一个',
296
- findAll: '查找全部',
297
- replace: '替换',
298
- replaceAll: '替换全部',
299
- cancel: '取消'
453
+ findNext: 'Localizar próximo',
454
+ findAll: 'Localizar todos',
455
+ replace: 'Substituir',
456
+ replaceAll: 'Substituir tudo',
457
+ cancel: 'Cancelar'
300
458
  },
301
459
  header: {
302
460
  seq: '#',
303
- cell: '单元格',
304
- value: '值'
461
+ cell: 'Célula',
462
+ value: 'Valor'
305
463
  },
306
- empty: '(空值)',
307
- reError: '无效的正则表达式',
308
- recordCount: '已找到 {0} 个单元格',
309
- notCell: '找不到匹配的单元格',
310
- replaceSuccess: '成功替换 {0} 个单元格'
311
- }
312
- },
313
- filterComplexInput: {
314
- menus: {
315
- fixedColumn: '锁定列',
316
- fixedGroup: '锁定组',
317
- cancelFixed: '取消锁定',
318
- fixedLeft: '锁定左侧',
319
- fixedRight: '锁定右侧'
320
- },
321
- cases: {
322
- equal: '等于',
323
- gt: '大于',
324
- lt: '小于',
325
- begin: '开头是',
326
- endin: '结尾是',
327
- include: '包含',
328
- isSensitive: '区分大小写'
464
+ empty: '(Vazio)',
465
+ reError: 'Expressão regular inválida',
466
+ recordCount: 'Encontradas {0} células',
467
+ notCell: 'Não foram encontradas células correspondentes',
468
+ replaceSuccess: 'Substituído com sucesso {0} células'
329
469
  }
330
- },
331
- filterCombination: {
332
- menus: {
333
- clearSort: '清除排序',
334
- sortAsc: '升序',
335
- sortDesc: '降序',
336
- fixedColumn: '锁定列',
337
- fixedGroup: '锁定组',
338
- cancelFixed: '取消锁定',
339
- fixedLeft: '锁定左侧',
340
- fixedRight: '锁定右侧',
341
- clearFilter: '清除筛选',
342
- textOption: '文本筛选',
343
- numberOption: '数值筛选'
344
- },
345
- popup: {
346
- title: '自定义筛选的方式',
347
- currColumnTitle: '当前列:',
348
- and: '与',
349
- or: '或',
350
- describeHtml: '可用 ? 代表单个字符<br/>用 * 代表任意多个字符'
351
- },
352
- cases: {
353
- equal: '等于',
354
- unequal: '不等于',
355
- gt: '大于',
356
- ge: '大于或等于',
357
- lt: '小于',
358
- le: '小于或等于',
359
- begin: '开头是',
360
- notbegin: '开头不是',
361
- endin: '结尾是',
362
- notendin: '结尾不是',
363
- include: '包含',
364
- exclude: '不包含',
365
- between: '介于',
366
- custom: '自定义筛选',
367
- insensitive: '不区分大小写',
368
- isSensitive: '区分大小写'
369
- },
370
- empty: '(空白)',
371
- notData: '无匹配项'
372
- }
373
- },
374
-
375
- /**
376
- * 以下废弃
377
- * @deprecated
378
- */
379
- renderer: {
380
- search: 'Buscar',
381
- cases: {
382
- equal: 'Igual',
383
- unequal: 'Não igual',
384
- gt: 'Maior que',
385
- ge: 'Maior ou igual a',
386
- lt: 'Menor que',
387
- le: 'Menor ou igual a',
388
- begin: 'Começa com',
389
- notbegin: 'Não começa com',
390
- endin: 'Termina com',
391
- notendin: 'Não termina com',
392
- include: 'Inclui',
393
- exclude: 'Exclusivo',
394
- between: 'Entre',
395
- custom: 'Filtro personalizado',
396
- insensitive: 'Sem diferenciação de maiúsculas e minúsculas',
397
- isSensitive: 'Diferenciação de maiúsculas e minúsculas'
398
- },
399
- combination: {
400
- menus: {
401
- clearSort: 'Limpar ordenação',
402
- sortAsc: 'Ordem ascendente',
403
- sortDesc: 'Ordem descendente',
404
- fixedColumn: 'Coluna fixa',
405
- fixedGroup: 'Grupo fixo',
406
- cancelFixed: 'Limpar fixação',
407
- fixedLeft: 'Fixar à esquerda',
408
- fixedRight: 'Fixar à direita',
409
- clearFilter: 'Limpar filtro',
410
- textOption: 'Filtro de texto',
411
- numberOption: 'Filtro numérico'
412
- },
413
- popup: {
414
- title: 'Filtragem personalizada',
415
- currColumnTitle: 'Coluna atual:',
416
- and: 'E',
417
- or: 'Ou',
418
- describeHtml: 'Use ? para representar um único caractere <br/> use * para representar qualquer número de caracteres'
419
- },
420
- empty: '(Vazio)',
421
- notData: 'Sem dados'
422
- }
423
- },
424
- pro: {
425
- area: {
426
- mergeErr: 'A operação não pode ser realizada em células mescladas',
427
- multiErr: 'A operação não pode ser realizada em áreas de seleção múltipla',
428
- extendErr: 'Se a área estendida contiver células mescladas, todas as células mescladas devem ter o mesmo tamanho',
429
- pasteMultiErr: 'Não é possível colar, é necessário que a área copiada e a área colada tenham o mesmo tamanho para realizar esta operação'
430
- },
431
- fnr: {
432
- title: 'Localizar e substituir',
433
- findLabel: 'Localizar',
434
- replaceLabel: 'Substituir',
435
- findTitle: 'O que localizar:',
436
- replaceTitle: 'Substituir por:',
437
- tabs: {
438
- find: 'Localizar',
439
- replace: 'Substituir'
440
- },
441
- filter: {
442
- re: 'Expressão Regular',
443
- whole: 'Palavra inteira',
444
- sensitive: 'Diferenciar maiúsculas e minúsculas'
445
- },
446
- btns: {
447
- findNext: 'Localizar próximo',
448
- findAll: 'Localizar todos',
449
- replace: 'Substituir',
450
- replaceAll: 'Substituir tudo',
451
- cancel: 'Cancelar'
452
- },
453
- header: {
454
- seq: '#',
455
- cell: 'Célula',
456
- value: 'Valor'
457
- },
458
- empty: '(Vazio)',
459
- reError: 'Expressão regular inválida',
460
- recordCount: 'Encontradas {0} células',
461
- notCell: 'Não foram encontradas células correspondentes',
462
- replaceSuccess: 'Substituído com sucesso {0} células'
463
470
  }
464
471
  }
465
472
  }
@@ -262,6 +262,13 @@ export default {
262
262
  }
263
263
  }
264
264
  },
265
+ formDesign: {
266
+ widget: {
267
+ input: '输入框',
268
+ textarea: '文本域',
269
+ select: '下拉框'
270
+ }
271
+ },
265
272
 
266
273
  /**
267
274
  * 扩展插件
@@ -262,6 +262,13 @@ export default {
262
262
  }
263
263
  }
264
264
  },
265
+ formDesign: {
266
+ widget: {
267
+ input: '輸入框',
268
+ textarea: '文本域',
269
+ select: '下拉框'
270
+ }
271
+ },
265
272
 
266
273
  /**
267
274
  * 扩展插件
@@ -29,7 +29,9 @@ export default {
29
29
  // 请使用 content
30
30
  message: [String, Function],
31
31
  content: [String, Function],
32
+ showCancelButton: { type: Boolean, default: null },
32
33
  cancelButtonText: { type: String, default: () => GlobalConfig.modal.cancelButtonText },
34
+ showConfirmButton: { type: Boolean, default: () => GlobalConfig.modal.showConfirmButton },
33
35
  confirmButtonText: { type: String, default: () => GlobalConfig.modal.confirmButtonText },
34
36
  lockView: { type: Boolean, default: () => GlobalConfig.modal.lockView },
35
37
  lockScroll: Boolean,
@@ -121,7 +123,7 @@ export default {
121
123
  }
122
124
  },
123
125
  render (h) {
124
- const { _e, $scopedSlots, slots = {}, inited, vSize, className, type, resize, showClose, showZoom, animat, draggable, loading, status, iconStatus, showFooter, zoomLocat, modalTop, dblclickZoom, contentVisible, visible, title, lockScroll, lockView, mask, isMsg, showTitleOverflow, destroyOnClose } = this
126
+ const { _e, $scopedSlots, slots = {}, inited, vSize, className, type, resize, showClose, showZoom, animat, draggable, loading, status, iconStatus, showFooter, zoomLocat, modalTop, dblclickZoom, contentVisible, visible, title, lockScroll, lockView, mask, isMsg, showTitleOverflow, destroyOnClose, showCancelButton, showConfirmButton } = this
125
127
  const content = this.content || this.message
126
128
  const defaultSlot = $scopedSlots.default || slots.default
127
129
  const footerSlot = $scopedSlots.footer || slots.footer
@@ -226,13 +228,15 @@ export default {
226
228
  showFooter ? h('div', {
227
229
  class: 'vxe-modal--footer'
228
230
  }, footerSlot ? (!inited || (destroyOnClose && !visible) ? [] : getSlotVNs(footerSlot.call(this, { $modal: this }, h))) : [
229
- type === 'confirm' ? h('vxe-button', {
231
+ XEUtils.isBoolean(showCancelButton) ? showCancelButton : type === 'confirm' ? h('vxe-button', {
232
+ key: 1,
230
233
  ref: 'cancelBtn',
231
234
  on: {
232
235
  click: this.cancelEvent
233
236
  }
234
237
  }, this.cancelButtonText || GlobalConfig.i18n('vxe.button.cancel')) : null,
235
- h('vxe-button', {
238
+ XEUtils.isBoolean(showConfirmButton) ? showConfirmButton : (type === 'confirm' || type === 'alert') ? h('vxe-button', {
239
+ key: 2,
236
240
  ref: 'confirmBtn',
237
241
  props: {
238
242
  status: 'primary'
@@ -240,7 +244,7 @@ export default {
240
244
  on: {
241
245
  click: this.confirmEvent
242
246
  }
243
- }, this.confirmButtonText || GlobalConfig.i18n('vxe.button.confirm'))
247
+ }, this.confirmButtonText || GlobalConfig.i18n('vxe.button.confirm')) : null
244
248
  ]) : null,
245
249
  !isMsg && resize ? h('span', {
246
250
  class: 'vxe-modal--resize'
@@ -590,6 +594,7 @@ export default {
590
594
  modalBoxElem.style.left = `${left}px`
591
595
  modalBoxElem.style.top = `${top}px`
592
596
  modalBoxElem.className = modalBoxElem.className.replace(/\s?is--drag/, '') + ' is--drag'
597
+ this.$emit('move', { type: 'move', $event: evnt })
593
598
  }
594
599
  document.onmouseup = () => {
595
600
  document.onmousemove = domMousemove
@@ -742,10 +747,10 @@ export default {
742
747
  if (remember && storage) {
743
748
  this.savePosStorage()
744
749
  }
745
- if ($listeners.zoom) {
746
- this.$emit('zoom', params)
747
- } else if (events.zoom) {
748
- events.zoom.call(this, params)
750
+ if ($listeners.resize) {
751
+ this.$emit('resize', params)
752
+ } else if (events.resize) {
753
+ events.resize.call(this, params)
749
754
  }
750
755
  }
751
756
  document.onmouseup = () => {
@@ -16,7 +16,9 @@ export default {
16
16
  openValue: { type: [String, Number, Boolean], default: true },
17
17
  closeValue: { type: [String, Number, Boolean], default: false },
18
18
  openIcon: String,
19
- closeIcon: String
19
+ closeIcon: String,
20
+ openActiveIcon: String,
21
+ closeActiveIcon: String
20
22
  },
21
23
  inject: {
22
24
  $xeform: {
@@ -559,9 +559,9 @@ export default {
559
559
  emptyContent = $scopedSlots.empty.call(this, { $table: $xetable }, h)
560
560
  } else {
561
561
  const compConf = emptyOpts.name ? VXETable.renderer.get(emptyOpts.name) : null
562
- const renderEmpty = compConf ? compConf.renderEmpty : null
563
- if (renderEmpty) {
564
- emptyContent = getSlotVNs(renderEmpty.call(this, h, emptyOpts, { $table: $xetable }))
562
+ const renderTableEmptyView = compConf ? compConf.renderTableEmptyView || compConf.renderEmpty : null
563
+ if (renderTableEmptyView) {
564
+ emptyContent = getSlotVNs(renderTableEmptyView.call(this, h, emptyOpts, { $table: $xetable }))
565
565
  } else {
566
566
  emptyContent = $xetable.emptyText || GlobalConfig.i18n('vxe.table.emptyText')
567
567
  }
@@ -70,9 +70,9 @@ function renderEmptyContenet (h, _vm) {
70
70
  emptyContent = $scopedSlots.empty.call(_vm, params, h)
71
71
  } else {
72
72
  const compConf = emptyOpts.name ? VXETable.renderer.get(emptyOpts.name) : null
73
- const renderEmpty = compConf ? compConf.renderEmpty : null
74
- if (renderEmpty) {
75
- emptyContent = getSlotVNs(renderEmpty.call(_vm, h, emptyOpts, params))
73
+ const renderTableEmptyView = compConf ? compConf.renderTableEmptyView || compConf.renderEmpty : null
74
+ if (renderTableEmptyView) {
75
+ emptyContent = getSlotVNs(renderTableEmptyView.call(_vm, h, emptyOpts, params))
76
76
  } else {
77
77
  emptyContent = getFuncText(_vm.emptyText) || GlobalConfig.i18n('vxe.table.emptyText')
78
78
  }
@@ -9,7 +9,7 @@ import { validators } from './src/validators'
9
9
  import { setConfig } from './src/config'
10
10
  import { setTheme } from './src/theme'
11
11
  import { UtilTools } from '../tools/utils'
12
- import { errLog } from '../tools/log'
12
+ import { errLog, warnLog } from '../tools/log'
13
13
 
14
14
  const installedPlugins = []
15
15
 
@@ -90,7 +90,28 @@ export function _t (key, args) {
90
90
  }
91
91
 
92
92
  export const v = 'v3'
93
- export const setup = setConfig
93
+
94
+ /**
95
+ * 已废弃,请使用 setConfig
96
+ * @deprecated
97
+ */
98
+ export const setup = (options) => {
99
+ if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
100
+ warnLog('vxe.error.delFunc', ['setup', 'setConfig'])
101
+ }
102
+ return setConfig(options)
103
+ }
104
+
105
+ /**
106
+ * 已废弃,请使用 setConfig
107
+ * @deprecated
108
+ */
109
+ export const config = (options) => {
110
+ if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
111
+ warnLog('vxe.error.delFunc', ['setup', 'setConfig'])
112
+ }
113
+ return setConfig(options)
114
+ }
94
115
 
95
116
  export const globalStore = {}
96
117
 
@@ -111,7 +132,7 @@ export const VXETable = {
111
132
  _t,
112
133
 
113
134
  // 已废弃
114
- config: setConfig,
135
+ config,
115
136
  setup,
116
137
  globalConfs
117
138
  }
@@ -48,6 +48,7 @@ export default {
48
48
  validConfig: {
49
49
  showMessage: true,
50
50
  autoClear: true,
51
+ autoPos: true,
51
52
  message: 'inline',
52
53
  msgMode: 'single'
53
54
  },
@@ -365,6 +366,7 @@ export default {
365
366
  animat: true,
366
367
  showClose: true,
367
368
  draggable: true,
369
+ showConfirmButton: null,
368
370
  // storage: false,
369
371
  storageKey: 'VXE_MODAL_POSITION'
370
372
  },
@@ -17,5 +17,3 @@ export function setConfig (options) {
17
17
  }
18
18
  return XEUtils.merge(GlobalConfig, options)
19
19
  }
20
-
21
- export const config = setConfig
@@ -128,20 +128,20 @@ export default {
128
128
  const validRest = {}
129
129
  const { editRules, afterFullData, visibleColumn, treeConfig, treeOpts } = this
130
130
  const childrenField = treeOpts.children || treeOpts.childrenField
131
- let vaildDatas
131
+ let validDatas
132
132
  if (rows === true) {
133
- vaildDatas = afterFullData
133
+ validDatas = afterFullData
134
134
  } else if (rows) {
135
135
  if (XEUtils.isFunction(rows)) {
136
136
  cb = rows
137
137
  } else {
138
- vaildDatas = XEUtils.isArray(rows) ? rows : [rows]
138
+ validDatas = XEUtils.isArray(rows) ? rows : [rows]
139
139
  }
140
140
  }
141
- if (!vaildDatas) {
142
- vaildDatas = this.getInsertRecords().concat(this.getUpdateRecords())
141
+ if (!validDatas) {
142
+ validDatas = this.getInsertRecords().concat(this.getUpdateRecords())
143
143
  }
144
- const rowValids = []
144
+ const rowValidErrs = []
145
145
  this.lastCallTime = Date.now()
146
146
  this.validRuleErr = false // 如果为快速校验,当存在某列校验不通过时将终止执行
147
147
  this.clearValidate()
@@ -184,15 +184,15 @@ export default {
184
184
  )
185
185
  }
186
186
  })
187
- rowValids.push(Promise.all(colVailds))
187
+ rowValidErrs.push(Promise.all(colVailds))
188
188
  }
189
189
  }
190
190
  if (treeConfig) {
191
- XEUtils.eachTree(vaildDatas, handleVaild, { children: childrenField })
191
+ XEUtils.eachTree(validDatas, handleVaild, { children: childrenField })
192
192
  } else {
193
- vaildDatas.forEach(handleVaild)
193
+ validDatas.forEach(handleVaild)
194
194
  }
195
- return Promise.all(rowValids).then(() => {
195
+ return Promise.all(rowValidErrs).then(() => {
196
196
  const ruleProps = Object.keys(validRest)
197
197
  this.validErrorMaps = this.handleErrMsgMode(validErrMaps)
198
198
  return this.$nextTick().then(() => {
@@ -237,9 +237,9 @@ export default {
237
237
  const column = firstErrParams.column
238
238
  const rowIndex = afterFullData.indexOf(row)
239
239
  const columnIndex = visibleColumn.indexOf(column)
240
- const locatRow = rowIndex > 0 ? afterFullData[rowIndex - 1] : row
241
- const locatColumn = columnIndex > 0 ? visibleColumn[rowIndex - 1] : column
242
- this.scrollToRow(locatRow, locatColumn).then(posAndFinish)
240
+ const targetRow = rowIndex > 0 ? afterFullData[rowIndex - 1] : row
241
+ const targetColumn = columnIndex > 0 ? visibleColumn[columnIndex - 1] : column
242
+ this.scrollToRow(targetRow, targetColumn).then(posAndFinish)
243
243
  }
244
244
  })
245
245
  })
@@ -377,9 +377,9 @@ export default {
377
377
  validErrMaps = Object.assign({}, validErrorMaps)
378
378
  rowList.forEach(row => {
379
379
  colList.forEach((column) => {
380
- const vaildKey = `${getRowid(this, row)}:${column.id}`
381
- if (validErrMaps[vaildKey]) {
382
- delete validErrMaps[vaildKey]
380
+ const validKey = `${getRowid(this, row)}:${column.id}`
381
+ if (validErrMaps[validKey]) {
382
+ delete validErrMaps[validKey]
383
383
  }
384
384
  })
385
385
  })