vxe-table 4.7.75 → 4.7.77

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.
package/lib/ui/src/log.js CHANGED
@@ -8,6 +8,6 @@ var _core = require("@vxe-ui/core");
8
8
  const {
9
9
  log
10
10
  } = _core.VxeUI;
11
- const version = `table v${"4.7.75"}`;
11
+ const version = `table v${"4.7.77"}`;
12
12
  const warnLog = exports.warnLog = log.create('warn', version);
13
13
  const errLog = exports.errLog = log.create('error', version);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.7.75",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.7.77",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "4.7.75",
3
+ "version": "4.7.77",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
5
5
  "scripts": {
6
6
  "update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
28
28
  "style": "lib/style.css",
29
29
  "typings": "types/index.d.ts",
30
30
  "dependencies": {
31
- "vxe-pc-ui": "^4.1.14"
31
+ "vxe-pc-ui": "^4.1.19"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/resize-observer-browser": "^0.1.11",
@@ -1904,18 +1904,19 @@ export default defineComponent({
1904
1904
  return nextTick()
1905
1905
  }
1906
1906
 
1907
- const handleCheckedCheckboxRow = (rows: any, value: boolean, isForce?: boolean) => {
1907
+ const handleCheckedCheckboxRow = (rows: any[], value: boolean, isForce?: boolean) => {
1908
1908
  if (rows && !XEUtils.isArray(rows)) {
1909
1909
  rows = [rows]
1910
1910
  }
1911
- rows.forEach((row: any) => tablePrivateMethods.handleSelectRow({ row }, !!value, isForce))
1911
+ tablePrivateMethods.handleBatchSelectRows(rows, !!value, isForce)
1912
+ tablePrivateMethods.checkSelectionStatus()
1912
1913
  return nextTick()
1913
1914
  }
1914
1915
 
1915
1916
  const handleCheckedAllCheckboxRow = (value: boolean, isForce?: boolean) => {
1916
1917
  const { treeConfig } = props
1917
1918
  const { selectCheckboxMaps } = reactData
1918
- const { afterFullData, afterFullRowMaps, checkboxReserveRowMap } = internalData
1919
+ const { afterFullData, checkboxReserveRowMap } = internalData
1919
1920
  const treeOpts = computeTreeOpts.value
1920
1921
  const childrenField = treeOpts.children || treeOpts.childrenField
1921
1922
  const checkboxOpts = computeCheckboxOpts.value
@@ -1923,16 +1924,6 @@ export default defineComponent({
1923
1924
  const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField
1924
1925
  const selectRowMaps: Record<string, any> = {}
1925
1926
 
1926
- // 疑惑!
1927
- if (!treeConfig) {
1928
- XEUtils.each(selectCheckboxMaps, (row, rowid) => {
1929
- if (!afterFullRowMaps[rowid]) {
1930
- selectRowMaps[rowid] = row
1931
- }
1932
- })
1933
- }
1934
- // 疑惑!
1935
-
1936
1927
  if (checkStrictly) {
1937
1928
  reactData.isAllSelected = value
1938
1929
  } else {
@@ -2867,7 +2858,13 @@ export default defineComponent({
2867
2858
  if (!XEUtils.isArray(rows)) {
2868
2859
  rest = [rows]
2869
2860
  }
2870
- rest.forEach(item => Object.assign(item, record))
2861
+ const rowkey = getRowkey($xeTable)
2862
+ rest.forEach(row => {
2863
+ const rowid = getRowid($xeTable, row)
2864
+ const newRecord = XEUtils.clone(Object.assign({}, record), true)
2865
+ XEUtils.set(newRecord, rowkey, rowid)
2866
+ Object.assign(row, newRecord)
2867
+ })
2871
2868
  }
2872
2869
  return nextTick()
2873
2870
  },
@@ -2887,11 +2884,14 @@ export default defineComponent({
2887
2884
  const oRow = tableSourceData[rowIndex]
2888
2885
  if (oRow && row) {
2889
2886
  if (field) {
2890
- const newValue = XEUtils.get(record || row, field)
2887
+ const newValue = XEUtils.clone(XEUtils.get(record || row, field), true)
2891
2888
  XEUtils.set(row, field, newValue)
2892
2889
  XEUtils.set(oRow, field, newValue)
2893
2890
  } else {
2894
- const newRecord = XEUtils.clone({ ...record }, true)
2891
+ const rowkey = getRowkey($xeTable)
2892
+ const rowid = getRowid($xeTable, row)
2893
+ const newRecord = XEUtils.clone(Object.assign({}, record), true)
2894
+ XEUtils.set(newRecord, rowkey, rowid)
2895
2895
  XEUtils.destructuring(oRow, Object.assign(row, newRecord))
2896
2896
  }
2897
2897
  }
@@ -3651,7 +3651,10 @@ export default defineComponent({
3651
3651
  * @param {Array/Row} rows 行数据
3652
3652
  * @param {Boolean} value 是否选中
3653
3653
  */
3654
- setCheckboxRow (rows: any, value) {
3654
+ setCheckboxRow (rows, value) {
3655
+ if (rows && !XEUtils.isArray(rows)) {
3656
+ rows = [rows]
3657
+ }
3655
3658
  return handleCheckedCheckboxRow(rows, value, true)
3656
3659
  },
3657
3660
  isCheckedByCheckboxRow (row) {
@@ -3676,6 +3679,7 @@ export default defineComponent({
3676
3679
  const { checkField } = checkboxOpts
3677
3680
  const value = checkField ? !XEUtils.get(row, checkField) : !selectCheckboxMaps[getRowid($xeTable, row)]
3678
3681
  tablePrivateMethods.handleSelectRow({ row }, value, true)
3682
+ tablePrivateMethods.checkSelectionStatus()
3679
3683
  return nextTick()
3680
3684
  },
3681
3685
  /**
@@ -5349,7 +5353,7 @@ export default defineComponent({
5349
5353
  const el = refElem.value
5350
5354
  if (el) {
5351
5355
  const parentElem = el.parentNode as HTMLElement
5352
- const parentPaddingSize = height === 'fill' || height === 'auto' ? getPaddingTopBottomSize(parentElem) : 0
5356
+ const parentPaddingSize = height === '100%' || height === 'auto' ? getPaddingTopBottomSize(parentElem) : 0
5353
5357
  return Math.floor($xeGrid ? $xeGrid.getParentHeight() : XEUtils.toNumber(getComputedStyle(parentElem).height) - parentPaddingSize)
5354
5358
  }
5355
5359
  return 0
@@ -5692,13 +5696,63 @@ export default defineComponent({
5692
5696
  }
5693
5697
  },
5694
5698
  /**
5699
+ * 多行
5700
+ * 多选,行选中事件
5701
+ * value 选中true 不选false 半选-1
5702
+ */
5703
+ handleBatchSelectRows (rows, value, isForce) {
5704
+ const { treeConfig } = props
5705
+ const { selectCheckboxMaps } = reactData
5706
+ const selectRowMaps = Object.assign({}, selectCheckboxMaps)
5707
+ const checkboxOpts = computeCheckboxOpts.value
5708
+ const { checkField, checkStrictly, checkMethod } = checkboxOpts
5709
+ if (checkField) {
5710
+ if (treeConfig && !checkStrictly) {
5711
+ rows.forEach(row => {
5712
+ tablePrivateMethods.handleSelectRow({ row }, value, isForce)
5713
+ })
5714
+ } else {
5715
+ rows.forEach(row => {
5716
+ if (isForce || (!checkMethod || checkMethod({ row }))) {
5717
+ XEUtils.set(row, checkField, value)
5718
+ handleCheckboxReserveRow(row, value)
5719
+ }
5720
+ })
5721
+ }
5722
+ } else {
5723
+ if (treeConfig && !checkStrictly) {
5724
+ rows.forEach(row => {
5725
+ tablePrivateMethods.handleSelectRow({ row }, value, isForce)
5726
+ })
5727
+ } else {
5728
+ rows.forEach(row => {
5729
+ const rowid = getRowid($xeTable, row)
5730
+ if (isForce || (!checkMethod || checkMethod({ row }))) {
5731
+ if (value) {
5732
+ if (!selectRowMaps[rowid]) {
5733
+ selectRowMaps[rowid] = row
5734
+ }
5735
+ } else {
5736
+ if (selectRowMaps[rowid]) {
5737
+ delete selectRowMaps[rowid]
5738
+ }
5739
+ }
5740
+ handleCheckboxReserveRow(row, value)
5741
+ }
5742
+ })
5743
+ }
5744
+ }
5745
+ reactData.selectCheckboxMaps = selectRowMaps
5746
+ },
5747
+ /**
5748
+ * 单行
5695
5749
  * 多选,行选中事件
5696
5750
  * value 选中true 不选false 半选-1
5697
5751
  */
5698
5752
  handleSelectRow ({ row }, value, isForce) {
5699
5753
  const { treeConfig } = props
5700
5754
  const { selectCheckboxMaps, treeIndeterminateMaps } = reactData
5701
- const selectRowMaps = { ...selectCheckboxMaps }
5755
+ const selectRowMaps = Object.assign({}, selectCheckboxMaps)
5702
5756
  const { afterFullData } = internalData
5703
5757
  const treeOpts = computeTreeOpts.value
5704
5758
  const childrenField = treeOpts.children || treeOpts.childrenField
@@ -5763,7 +5817,8 @@ export default defineComponent({
5763
5817
  parentStatus = selectItems.filter(item => vItemMaps[getRowid($xeTable, item)]).length === vItems.length ? true : (selectItems.length || value === -1 ? -1 : false)
5764
5818
  }
5765
5819
  reactData.selectCheckboxMaps = selectRowMaps
5766
- return tablePrivateMethods.handleSelectRow({ row: matchObj.parent }, parentStatus, isForce)
5820
+ tablePrivateMethods.handleSelectRow({ row: matchObj.parent }, parentStatus, isForce)
5821
+ return
5767
5822
  }
5768
5823
  } else {
5769
5824
  if (isForce || (!checkMethod || checkMethod({ row }))) {
@@ -5838,7 +5893,8 @@ export default defineComponent({
5838
5893
  parentStatus = selectItems.filter(item => vItemMaps[getRowid($xeTable, item)]).length === vItems.length ? true : (selectItems.length || value === -1 ? -1 : false)
5839
5894
  }
5840
5895
  reactData.selectCheckboxMaps = selectRowMaps
5841
- return tablePrivateMethods.handleSelectRow({ row: matchObj.parent }, parentStatus, isForce)
5896
+ tablePrivateMethods.handleSelectRow({ row: matchObj.parent }, parentStatus, isForce)
5897
+ return
5842
5898
  }
5843
5899
  } else {
5844
5900
  if (isForce || (!checkMethod || checkMethod({ row }))) {
@@ -5856,7 +5912,6 @@ export default defineComponent({
5856
5912
  }
5857
5913
  }
5858
5914
  reactData.selectCheckboxMaps = selectRowMaps
5859
- tablePrivateMethods.checkSelectionStatus()
5860
5915
  },
5861
5916
  triggerHeaderTitleEvent (evnt, iconParams, params) {
5862
5917
  const tipContent = iconParams.content || (iconParams as any).message
@@ -6102,6 +6157,7 @@ export default defineComponent({
6102
6157
  tablePrivateMethods.triggerCheckRowEvent(evnt, params, value)
6103
6158
  } else {
6104
6159
  tablePrivateMethods.handleSelectRow(params, value)
6160
+ tablePrivateMethods.checkSelectionStatus()
6105
6161
  }
6106
6162
  },
6107
6163
  triggerCheckRowEvent (evnt: MouseEvent, params, value) {
@@ -6130,6 +6186,7 @@ export default defineComponent({
6130
6186
  }
6131
6187
  if (!checkMethod || checkMethod({ row })) {
6132
6188
  tablePrivateMethods.handleSelectRow(params, value)
6189
+ tablePrivateMethods.checkSelectionStatus()
6133
6190
  tableMethods.dispatchEvent('checkbox-change', Object.assign({
6134
6191
  records: tableMethods.getCheckboxRecords(),
6135
6192
  reserves: tableMethods.getCheckboxReserveRecords(),