vxe-table 3.7.0-beta.11 → 3.7.0-beta.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 (53) hide show
  1. package/lib/edit/src/mixin.js +5 -0
  2. package/lib/edit/src/mixin.min.js +1 -1
  3. package/lib/icon/style/style.css +1 -1
  4. package/lib/icon/style/style.min.css +1 -1
  5. package/lib/index.css +1 -1
  6. package/lib/index.umd.js +67 -35
  7. package/lib/index.umd.min.js +1 -1
  8. package/lib/style.css +1 -1
  9. package/lib/style.min.css +1 -1
  10. package/lib/table/src/body.js +5 -5
  11. package/lib/table/src/body.min.js +1 -1
  12. package/lib/table/src/cell.js +12 -12
  13. package/lib/table/src/cell.min.js +1 -1
  14. package/lib/table/src/methods.js +40 -13
  15. package/lib/table/src/methods.min.js +1 -1
  16. package/lib/table/src/table.js +6 -0
  17. package/lib/table/src/table.min.js +1 -1
  18. package/lib/table/src/util.js +1 -1
  19. package/lib/table/src/util.min.js +1 -1
  20. package/lib/tools/log.js +1 -1
  21. package/lib/tools/log.min.js +1 -1
  22. package/lib/v-x-e-table/index.js +1 -1
  23. package/lib/v-x-e-table/index.min.js +1 -1
  24. package/lib/v-x-e-table/src/commands.js +1 -1
  25. package/lib/v-x-e-table/src/commands.min.js +1 -1
  26. package/lib/v-x-e-table/src/conf.js +2 -2
  27. package/lib/v-x-e-table/src/conf.min.js +1 -1
  28. package/lib/v-x-e-table/src/formats.js +1 -1
  29. package/lib/v-x-e-table/src/formats.min.js +1 -1
  30. package/lib/v-x-e-table/src/menus.js +1 -1
  31. package/lib/v-x-e-table/src/menus.min.js +1 -1
  32. package/lib/v-x-e-table/src/renderer.js +4 -4
  33. package/lib/v-x-e-table/src/renderer.min.js +1 -1
  34. package/package.json +3 -3
  35. package/packages/edit/src/mixin.js +5 -0
  36. package/packages/table/src/body.js +5 -5
  37. package/packages/table/src/cell.js +8 -7
  38. package/packages/table/src/methods.js +38 -9
  39. package/packages/table/src/table.js +6 -0
  40. package/packages/table/src/util.js +1 -1
  41. package/packages/v-x-e-table/src/commands.js +1 -1
  42. package/packages/v-x-e-table/src/conf.js +2 -2
  43. package/packages/v-x-e-table/src/formats.js +1 -1
  44. package/packages/v-x-e-table/src/menus.js +1 -1
  45. package/packages/v-x-e-table/src/renderer.js +4 -4
  46. package/types/table.d.ts +7 -1
  47. package/types/v-x-e-table/index.d.ts +1 -1
  48. /package/lib/icon/style/{iconfont.1691021948915.ttf → iconfont.1692433325378.ttf} +0 -0
  49. /package/lib/icon/style/{iconfont.1691021948915.woff → iconfont.1692433325378.woff} +0 -0
  50. /package/lib/icon/style/{iconfont.1691021948915.woff2 → iconfont.1692433325378.woff2} +0 -0
  51. /package/lib/{iconfont.1691021948915.ttf → iconfont.1692433325378.ttf} +0 -0
  52. /package/lib/{iconfont.1691021948915.woff → iconfont.1692433325378.woff} +0 -0
  53. /package/lib/{iconfont.1691021948915.woff2 → iconfont.1692433325378.woff2} +0 -0
@@ -3080,8 +3080,25 @@ const Methods = {
3080
3080
  }
3081
3081
  },
3082
3082
  triggerCheckRowEvent (evnt, params, value) {
3083
- const { checkMethod } = this.checkboxOpts
3084
- if (!checkMethod || checkMethod({ row: params.row })) {
3083
+ const { checkboxOpts, afterFullData } = this
3084
+ const { checkMethod } = checkboxOpts
3085
+ const { row } = params
3086
+ if (checkboxOpts.isShiftKey && evnt.shiftKey && !this.treeConfig) {
3087
+ const checkboxRecords = this.getCheckboxRecords()
3088
+ if (checkboxRecords.length) {
3089
+ const firstRow = checkboxRecords[0]
3090
+ const _rowIndex = this.getVTRowIndex(row)
3091
+ const _firstRowIndex = this.getVTRowIndex(firstRow)
3092
+ if (_rowIndex !== _firstRowIndex) {
3093
+ this.setAllCheckboxRow(false)
3094
+ const rangeRows = _rowIndex < _firstRowIndex ? afterFullData.slice(_rowIndex, _firstRowIndex + 1) : afterFullData.slice(_firstRowIndex, _rowIndex + 1)
3095
+ this.handleCheckedCheckboxRow(rangeRows, true, false)
3096
+ this.emitEvent('checkbox-range-select', Object.assign({ rangeRecords: rangeRows }, params), evnt)
3097
+ return
3098
+ }
3099
+ }
3100
+ }
3101
+ if (!checkMethod || checkMethod({ row })) {
3085
3102
  this.handleSelectRow(params, value)
3086
3103
  this.emitEvent('checkbox-change', Object.assign({
3087
3104
  records: this.getCheckboxRecords(),
@@ -3104,6 +3121,7 @@ const Methods = {
3104
3121
  handleCheckedAllCheckboxRow (value, isForce) {
3105
3122
  const { afterFullData, treeConfig, treeOpts, selectCheckboxRows, checkboxReserveRowMap, checkboxOpts } = this
3106
3123
  const { checkField, reserve, checkStrictly, checkMethod } = checkboxOpts
3124
+ const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
3107
3125
  let selectRows = []
3108
3126
  const beforeSelection = treeConfig ? [] : selectCheckboxRows.filter(row => this.findRowIndexOf(afterFullData, row) === -1)
3109
3127
  if (checkStrictly) {
@@ -3121,6 +3139,9 @@ const Methods = {
3121
3139
  }
3122
3140
  XEUtils.set(row, checkField, value)
3123
3141
  }
3142
+ if (treeConfig && indeterminateField) {
3143
+ XEUtils.set(row, indeterminateField, false)
3144
+ }
3124
3145
  }
3125
3146
  // 如果存在选中方法
3126
3147
  // 如果方法成立,则更新值,否则忽略该数据
@@ -3206,7 +3227,8 @@ const Methods = {
3206
3227
  },
3207
3228
  checkSelectionStatus () {
3208
3229
  const { afterFullData, selectCheckboxRows, treeIndeterminates, checkboxOpts, treeConfig } = this
3209
- const { checkField, halfField, checkStrictly, checkMethod } = checkboxOpts
3230
+ const { checkField, checkStrictly, checkMethod } = checkboxOpts
3231
+ const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
3210
3232
  if (!checkStrictly) {
3211
3233
  const disableRows = []
3212
3234
  const checkRows = []
@@ -3231,14 +3253,14 @@ const Methods = {
3231
3253
  )
3232
3254
  isAllSelected = isAllResolve && afterFullData.length !== disableRows.length
3233
3255
  if (treeConfig) {
3234
- if (halfField) {
3235
- isIndeterminate = !isAllSelected && afterFullData.some(row => XEUtils.get(row, checkField) || XEUtils.get(row, halfField) || this.findRowIndexOf(treeIndeterminates, row) > -1)
3256
+ if (indeterminateField) {
3257
+ isIndeterminate = !isAllSelected && afterFullData.some(row => XEUtils.get(row, checkField) || XEUtils.get(row, indeterminateField) || this.findRowIndexOf(treeIndeterminates, row) > -1)
3236
3258
  } else {
3237
3259
  isIndeterminate = !isAllSelected && afterFullData.some(row => XEUtils.get(row, checkField) || this.findRowIndexOf(treeIndeterminates, row) > -1)
3238
3260
  }
3239
3261
  } else {
3240
- if (halfField) {
3241
- isIndeterminate = !isAllSelected && afterFullData.some(row => XEUtils.get(row, checkField) || XEUtils.get(row, halfField))
3262
+ if (indeterminateField) {
3263
+ isIndeterminate = !isAllSelected && afterFullData.some(row => XEUtils.get(row, checkField) || XEUtils.get(row, indeterminateField))
3242
3264
  } else {
3243
3265
  isIndeterminate = !isAllSelected && afterFullData.some(row => XEUtils.get(row, checkField))
3244
3266
  }
@@ -3411,11 +3433,18 @@ const Methods = {
3411
3433
  clearCheckboxRow () {
3412
3434
  const { tableFullData, treeConfig, treeOpts, checkboxOpts } = this
3413
3435
  const { checkField, reserve } = checkboxOpts
3436
+ const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
3414
3437
  if (checkField) {
3438
+ const handleClearChecked = (item) => {
3439
+ if (treeConfig && indeterminateField) {
3440
+ XEUtils.set(item, indeterminateField, false)
3441
+ }
3442
+ XEUtils.set(item, checkField, false)
3443
+ }
3415
3444
  if (treeConfig) {
3416
- XEUtils.eachTree(tableFullData, item => XEUtils.set(item, checkField, false), treeOpts)
3445
+ XEUtils.eachTree(tableFullData, handleClearChecked, treeOpts)
3417
3446
  } else {
3418
- tableFullData.forEach(item => XEUtils.set(item, checkField, false))
3447
+ tableFullData.forEach(handleClearChecked)
3419
3448
  }
3420
3449
  }
3421
3450
  if (reserve) {
@@ -885,6 +885,12 @@ export default {
885
885
  if (this.editConfig && this.editOpts.activeMethod) {
886
886
  warnLog('vxe.error.delProp', ['table.edit-config.activeMethod', 'table.edit-config.beforeEditMethod'])
887
887
  }
888
+ if (this.treeConfig && this.checkboxOpts.isShiftKey) {
889
+ errLog('vxe.error.errConflicts', ['tree-config', 'checkbox-config.isShiftKey'])
890
+ }
891
+ if (this.checkboxOpts.halfField) {
892
+ warnLog('vxe.error.delProp', ['checkbox-config.halfField', 'checkbox-config.indeterminateField'])
893
+ }
888
894
  }
889
895
 
890
896
  // 检查是否有安装需要的模块
@@ -160,7 +160,7 @@ function countTreeExpand (prevRow, params) {
160
160
  const { treeOpts } = $table
161
161
  const childrenField = treeOpts.children || treeOpts.childrenField
162
162
  const rowChildren = prevRow[childrenField]
163
- if ($table.isTreeExpandByRow(prevRow)) {
163
+ if (rowChildren && $table.isTreeExpandByRow(prevRow)) {
164
164
  for (let index = 0; index < rowChildren.length; index++) {
165
165
  count += countTreeExpand(rowChildren[index], params)
166
166
  }
@@ -22,7 +22,7 @@ class VXECommandsStore {
22
22
  // 兼容
23
23
  if (XEUtils.isFunction(render)) {
24
24
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
25
- warnLog('vxe.error.delProp', ['callback', 'commandMethod'])
25
+ warnLog('vxe.error.delProp', ['commands -> callback', 'commandMethod'])
26
26
  }
27
27
  render = {
28
28
  commandMethod: render
@@ -119,12 +119,12 @@ export default {
119
119
  isReplace: true
120
120
  },
121
121
  scrollX: {
122
- enabled: true,
122
+ // enabled: false,
123
123
  gt: 60
124
124
  // oSize: 0
125
125
  },
126
126
  scrollY: {
127
- enabled: true,
127
+ // enabled: false,
128
128
  gt: 100
129
129
  // oSize: 0
130
130
  }
@@ -22,7 +22,7 @@ class VXEFormatsStore {
22
22
  // 兼容
23
23
  if (XEUtils.isFunction(render)) {
24
24
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
25
- warnLog('vxe.error.delProp', ['callback', 'cellFormatMethod'])
25
+ warnLog('vxe.error.delProp', ['formats -> callback', 'cellFormatMethod'])
26
26
  }
27
27
  render = {
28
28
  cellFormatMethod: render
@@ -22,7 +22,7 @@ class VXEMenusStore {
22
22
  // 兼容
23
23
  if (XEUtils.isFunction(render)) {
24
24
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
25
- warnLog('vxe.error.delProp', ['callback', 'menuMethod'])
25
+ warnLog('vxe.error.delProp', ['menus -> callback', 'menuMethod'])
26
26
  }
27
27
  render = {
28
28
  menuMethod: render
@@ -104,8 +104,8 @@ function getNativeOns (renderOpts, params) {
104
104
  XEUtils.objectEach(nativeEvents, (func, key) => {
105
105
  nativeOns[key] = function (...args) {
106
106
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
107
- if (!XEUtils.isFunction(key)) {
108
- errLog('vxe.error.errFunc', [key])
107
+ if (!XEUtils.isFunction(func)) {
108
+ errLog('vxe.error.errFunc', [func])
109
109
  }
110
110
  }
111
111
  func(params, ...args)
@@ -123,8 +123,8 @@ function getOns (renderOpts, params, inputFunc, changeFunc) {
123
123
  XEUtils.objectEach(events, (func, key) => {
124
124
  ons[key] = function (...args) {
125
125
  if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
126
- if (!XEUtils.isFunction(key)) {
127
- errLog('vxe.error.errFunc', [key])
126
+ if (!XEUtils.isFunction(func)) {
127
+ errLog('vxe.error.errFunc', [func])
128
128
  }
129
129
  }
130
130
  func(params, ...args)
package/types/table.d.ts CHANGED
@@ -1340,7 +1340,7 @@ export interface TableCheckboxConfig {
1340
1340
  reserve?: boolean;
1341
1341
  labelField?: string;
1342
1342
  checkField?: string;
1343
- halfField?: string;
1343
+ indeterminateField?: string;
1344
1344
  showHeader?: boolean;
1345
1345
  checkAll?: boolean;
1346
1346
  checkRowKeys?: string[] | number[];
@@ -1350,6 +1350,12 @@ export interface TableCheckboxConfig {
1350
1350
  trigger?: 'default' | 'cell' | 'row' | '';
1351
1351
  highlight?: boolean;
1352
1352
  range?: boolean;
1353
+
1354
+ /**
1355
+ * 请使用 indeterminateField
1356
+ * @deprecated
1357
+ */
1358
+ halfField?: string;
1353
1359
  }
1354
1360
  export type CheckboxConfig = TableCheckboxConfig
1355
1361
 
@@ -108,7 +108,7 @@ export interface VXETableCore {
108
108
  }
109
109
 
110
110
  /**
111
- * 一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式为零代码而设计...
111
+ * 一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式为低/零代码而设计...
112
112
  */
113
113
  export const VXETable: VXETableCore
114
114