vxe-table 3.5.9-beta.5 → 3.5.9-beta.8
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/README.md +1 -1
- package/lib/edit/src/mixin.js +3 -3
- package/lib/edit/src/mixin.min.js +1 -1
- package/lib/export/src/mixin.js +1 -1
- package/lib/export/src/mixin.min.js +1 -1
- package/lib/filter/src/mixin.js +8 -5
- package/lib/filter/src/mixin.min.js +1 -1
- package/lib/filter/src/panel.js +6 -2
- package/lib/filter/src/panel.min.js +1 -1
- package/lib/form/src/form-config-item.js +2 -1
- package/lib/form/src/form-config-item.min.js +1 -1
- package/lib/form/src/form-item.js +3 -1
- package/lib/form/src/form-item.min.js +1 -1
- package/lib/form/src/render.js +1 -0
- package/lib/form/src/render.min.js +1 -1
- package/lib/grid/src/grid.js +2 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.umd.js +356 -133
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +20 -15
- package/lib/input/src/input.min.js +1 -1
- package/lib/locale/lang/en-US.js +2 -0
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -0
- package/lib/locale/lang/ja-JP.js +2 -0
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -0
- package/lib/locale/lang/zh-CN.js +2 -0
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -0
- package/lib/locale/lang/zh-HK.min.js +1 -1
- package/lib/locale/lang/zh-HK.umd.js +2 -0
- package/lib/locale/lang/zh-MO.min.js +1 -1
- package/lib/locale/lang/zh-MO.umd.js +2 -0
- package/lib/locale/lang/zh-TC.js +2 -0
- package/lib/locale/lang/zh-TC.min.js +1 -1
- package/lib/locale/lang/zh-TC.umd.js +2 -0
- package/lib/locale/lang/zh-TW.min.js +1 -1
- package/lib/locale/lang/zh-TW.umd.js +2 -0
- package/lib/select/src/select.js +213 -33
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/style/style.css +17 -3
- package/lib/select/style/style.min.css +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/body.js +6 -3
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +3 -3
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -1
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/methods.js +79 -60
- package/lib/table/src/methods.min.js +1 -1
- package/lib/toolbar/style/style.css +1 -1
- package/lib/toolbar/style/style.min.css +1 -1
- package/lib/tools/log.js +1 -1
- package/lib/tools/log.min.js +1 -1
- package/lib/tools/utils.js +2 -2
- package/lib/tools/utils.min.js +1 -1
- package/lib/v-x-e-table/index.js +1 -1
- package/lib/v-x-e-table/index.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +2 -2
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +1 -1
- package/packages/edit/src/mixin.js +4 -4
- package/packages/export/src/mixin.js +2 -2
- package/packages/filter/src/mixin.js +5 -5
- package/packages/filter/src/panel.js +13 -6
- package/packages/form/src/form-config-item.js +17 -9
- package/packages/form/src/form-item.js +16 -8
- package/packages/form/src/render.js +1 -1
- package/packages/grid/src/grid.js +1 -2
- package/packages/input/src/input.js +17 -13
- package/packages/locale/lang/en-US.js +2 -0
- package/packages/locale/lang/ja-JP.js +2 -0
- package/packages/locale/lang/zh-CN.js +2 -0
- package/packages/locale/lang/zh-TC.js +2 -0
- package/packages/select/src/select.js +139 -16
- package/packages/table/src/body.js +39 -24
- package/packages/table/src/cell.js +3 -3
- package/packages/table/src/columnInfo.js +1 -1
- package/packages/table/src/methods.js +64 -55
- package/packages/tools/utils.js +2 -2
- package/packages/v-x-e-table/src/conf.js +2 -2
- package/styles/select.scss +24 -5
- package/styles/toolbar.scss +1 -1
- package/types/form-item.d.ts +11 -8
- package/types/form.d.ts +5 -2
- package/types/v-x-e-table/renderer.d.ts +13 -1
|
@@ -138,12 +138,12 @@ function calculateMergerOffserIndex (list, offsetItem, type) {
|
|
|
138
138
|
function setMerges (_vm, merges, mList, rowList) {
|
|
139
139
|
if (merges) {
|
|
140
140
|
const { treeConfig, visibleColumn } = _vm
|
|
141
|
-
if (treeConfig) {
|
|
142
|
-
throw new Error(UtilTools.getLog('vxe.error.noTree', ['merge-footer-items']))
|
|
143
|
-
}
|
|
144
141
|
if (!XEUtils.isArray(merges)) {
|
|
145
142
|
merges = [merges]
|
|
146
143
|
}
|
|
144
|
+
if (treeConfig && merges.length) {
|
|
145
|
+
errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
146
|
+
}
|
|
147
147
|
merges.forEach(item => {
|
|
148
148
|
let { row, col, rowspan, colspan } = item
|
|
149
149
|
if (rowList && XEUtils.isNumber(row)) {
|
|
@@ -187,12 +187,12 @@ function removeMerges (_vm, merges, mList, rowList) {
|
|
|
187
187
|
const rest = []
|
|
188
188
|
if (merges) {
|
|
189
189
|
const { treeConfig, visibleColumn } = _vm
|
|
190
|
-
if (treeConfig) {
|
|
191
|
-
throw new Error(UtilTools.getLog('vxe.error.noTree', ['merge-cells']))
|
|
192
|
-
}
|
|
193
190
|
if (!XEUtils.isArray(merges)) {
|
|
194
191
|
merges = [merges]
|
|
195
192
|
}
|
|
193
|
+
if (treeConfig && merges.length) {
|
|
194
|
+
errLog('vxe.error.noTree', ['merge-cells | merge-footer-items'])
|
|
195
|
+
}
|
|
196
196
|
merges.forEach(item => {
|
|
197
197
|
let { row, col } = item
|
|
198
198
|
if (rowList && XEUtils.isNumber(row)) {
|
|
@@ -351,7 +351,7 @@ const Methods = {
|
|
|
351
351
|
* @param {Array} datas 数据
|
|
352
352
|
*/
|
|
353
353
|
loadTableData (datas) {
|
|
354
|
-
const { keepSource, treeConfig, treeOpts, editStore, scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop, scrollYLoad: oldScrollYLoad } = this
|
|
354
|
+
const { keepSource, treeConfig, treeOpts, editStore, scrollYStore, scrollXStore, lastScrollLeft, lastScrollTop, scrollYLoad: oldScrollYLoad, sXOpts, sYOpts } = this
|
|
355
355
|
let treeData = []
|
|
356
356
|
let fullData = datas ? datas.slice(0) : []
|
|
357
357
|
if (treeConfig) {
|
|
@@ -446,11 +446,20 @@ const Methods = {
|
|
|
446
446
|
this.$nextTick()
|
|
447
447
|
.then(() => this.recalculate())
|
|
448
448
|
.then(() => {
|
|
449
|
+
let targetScrollLeft = lastScrollLeft
|
|
450
|
+
let targetScrollTop = lastScrollTop
|
|
451
|
+
// 是否在更新数据之后自动滚动重置滚动条
|
|
452
|
+
if (sXOpts.scrollToLeftOnChange) {
|
|
453
|
+
targetScrollLeft = 0
|
|
454
|
+
}
|
|
455
|
+
if (sYOpts.scrollToTopOnChange) {
|
|
456
|
+
targetScrollTop = 0
|
|
457
|
+
}
|
|
449
458
|
// 是否变更虚拟滚动
|
|
450
459
|
if (oldScrollYLoad === sYLoad) {
|
|
451
|
-
restoreScrollLocation(this,
|
|
460
|
+
restoreScrollLocation(this, targetScrollLeft, targetScrollTop).then(resolve)
|
|
452
461
|
} else {
|
|
453
|
-
setTimeout(() => restoreScrollLocation(this,
|
|
462
|
+
setTimeout(() => restoreScrollLocation(this, targetScrollLeft, targetScrollTop).then(resolve))
|
|
454
463
|
}
|
|
455
464
|
})
|
|
456
465
|
})
|
|
@@ -654,15 +663,15 @@ const Methods = {
|
|
|
654
663
|
let radioColumn
|
|
655
664
|
let hasFixed
|
|
656
665
|
const handleFunc = (column, index, items, path, parent) => {
|
|
657
|
-
const { id: colid,
|
|
666
|
+
const { id: colid, field, fixed, type, treeNode } = column
|
|
658
667
|
const rest = { column, colid, index, items, parent }
|
|
659
|
-
if (
|
|
668
|
+
if (field) {
|
|
660
669
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
661
|
-
if (fullColumnFieldData[
|
|
662
|
-
warnLog('vxe.error.colRepet', ['field',
|
|
670
|
+
if (fullColumnFieldData[field]) {
|
|
671
|
+
warnLog('vxe.error.colRepet', ['field', field])
|
|
663
672
|
}
|
|
664
673
|
}
|
|
665
|
-
fullColumnFieldData[
|
|
674
|
+
fullColumnFieldData[field] = rest
|
|
666
675
|
}
|
|
667
676
|
if (!hasFixed && fixed) {
|
|
668
677
|
hasFixed = fixed
|
|
@@ -874,8 +883,8 @@ const Methods = {
|
|
|
874
883
|
const { radioOpts, checkboxOpts, treeConfig, treeOpts, expandOpts } = this
|
|
875
884
|
const rowkey = getRowkey(this)
|
|
876
885
|
this.tableFullColumn.forEach(column => {
|
|
877
|
-
const {
|
|
878
|
-
if (
|
|
886
|
+
const { field, editRender } = column
|
|
887
|
+
if (field && !XEUtils.has(record, field)) {
|
|
879
888
|
let cellValue = null
|
|
880
889
|
if (editRender) {
|
|
881
890
|
const { defaultValue } = editRender
|
|
@@ -885,7 +894,7 @@ const Methods = {
|
|
|
885
894
|
cellValue = defaultValue
|
|
886
895
|
}
|
|
887
896
|
}
|
|
888
|
-
XEUtils.set(record,
|
|
897
|
+
XEUtils.set(record, field, cellValue)
|
|
889
898
|
}
|
|
890
899
|
})
|
|
891
900
|
const otherFields = [radioOpts.labelField, checkboxOpts.checkField, checkboxOpts.labelField, expandOpts.labelField]
|
|
@@ -954,7 +963,7 @@ const Methods = {
|
|
|
954
963
|
if (!this.isInsertByRow(row)) {
|
|
955
964
|
const rowIndex = this.getRowIndex(row)
|
|
956
965
|
if (treeConfig && rowIndex === -1) {
|
|
957
|
-
|
|
966
|
+
errLog('vxe.error.noTree', ['revertData'])
|
|
958
967
|
}
|
|
959
968
|
const oRow = tableSourceData[rowIndex]
|
|
960
969
|
if (oRow && row) {
|
|
@@ -993,7 +1002,7 @@ const Methods = {
|
|
|
993
1002
|
} else {
|
|
994
1003
|
rows.forEach(row => {
|
|
995
1004
|
visibleColumn.forEach(column => {
|
|
996
|
-
if (column.
|
|
1005
|
+
if (column.field) {
|
|
997
1006
|
setCellValue(row, column, null)
|
|
998
1007
|
}
|
|
999
1008
|
})
|
|
@@ -1045,7 +1054,7 @@ const Methods = {
|
|
|
1045
1054
|
return !eqCellValue(oRow, row, field)
|
|
1046
1055
|
}
|
|
1047
1056
|
for (let index = 0, len = visibleColumn.length; index < len; index++) {
|
|
1048
|
-
property = visibleColumn[index].
|
|
1057
|
+
property = visibleColumn[index].field
|
|
1049
1058
|
if (property && !eqCellValue(oRow, row, property)) {
|
|
1050
1059
|
return true
|
|
1051
1060
|
}
|
|
@@ -1103,14 +1112,14 @@ const Methods = {
|
|
|
1103
1112
|
getCheckboxRecords (isFull) {
|
|
1104
1113
|
const { tableFullData, afterFullData, treeConfig, treeOpts, checkboxOpts, tableFullTreeData, afterTreeFullData } = this
|
|
1105
1114
|
const { transform, children, mapChildren } = treeOpts
|
|
1106
|
-
const { checkField
|
|
1115
|
+
const { checkField } = checkboxOpts
|
|
1107
1116
|
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData)
|
|
1108
1117
|
let rowList = []
|
|
1109
|
-
if (
|
|
1118
|
+
if (checkField) {
|
|
1110
1119
|
if (treeConfig) {
|
|
1111
|
-
rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row,
|
|
1120
|
+
rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row, checkField), { children: transform ? mapChildren : children })
|
|
1112
1121
|
} else {
|
|
1113
|
-
rowList = currTableData.filter(row => XEUtils.get(row,
|
|
1122
|
+
rowList = currTableData.filter(row => XEUtils.get(row, checkField))
|
|
1114
1123
|
}
|
|
1115
1124
|
} else {
|
|
1116
1125
|
const { selection } = this
|
|
@@ -1157,7 +1166,7 @@ const Methods = {
|
|
|
1157
1166
|
const filterColumns = []
|
|
1158
1167
|
let orderColumns = []
|
|
1159
1168
|
tableFullColumn.forEach(column => {
|
|
1160
|
-
const {
|
|
1169
|
+
const { field, sortable, order, filters } = column
|
|
1161
1170
|
if (!allRemoteFilter && filters && filters.length) {
|
|
1162
1171
|
const valueList = []
|
|
1163
1172
|
const itemList = []
|
|
@@ -1172,7 +1181,7 @@ const Methods = {
|
|
|
1172
1181
|
}
|
|
1173
1182
|
}
|
|
1174
1183
|
if (!allRemoteSort && sortable && order) {
|
|
1175
|
-
orderColumns.push({ column, field
|
|
1184
|
+
orderColumns.push({ column, field, property: field, order, sortTime: column.sortTime })
|
|
1176
1185
|
}
|
|
1177
1186
|
})
|
|
1178
1187
|
if (sortMultiple && chronological && orderColumns.length > 1) {
|
|
@@ -1182,7 +1191,7 @@ const Methods = {
|
|
|
1182
1191
|
const handleFilter = (row) => {
|
|
1183
1192
|
return filterColumns.every(({ column, valueList, itemList }) => {
|
|
1184
1193
|
if (valueList.length && !allRemoteFilter) {
|
|
1185
|
-
const { filterMethod, filterRender } = column
|
|
1194
|
+
const { filterMethod, filterRender, field } = column
|
|
1186
1195
|
const compConf = filterRender ? VXETable.renderer.get(filterRender.name) : null
|
|
1187
1196
|
const compFilterMethod = compConf && compConf.renderFilter ? compConf.filterMethod : null
|
|
1188
1197
|
const defaultFilterMethod = compConf ? compConf.defaultFilterMethod : null
|
|
@@ -1196,7 +1205,7 @@ const Methods = {
|
|
|
1196
1205
|
} else if (defaultFilterMethod) {
|
|
1197
1206
|
return itemList.some((item) => defaultFilterMethod({ value: item.value, option: item, cellValue, row, column, $table: this }))
|
|
1198
1207
|
}
|
|
1199
|
-
return valueList.indexOf(XEUtils.get(row,
|
|
1208
|
+
return valueList.indexOf(XEUtils.get(row, field)) > -1
|
|
1200
1209
|
}
|
|
1201
1210
|
return true
|
|
1202
1211
|
})
|
|
@@ -1232,7 +1241,7 @@ const Methods = {
|
|
|
1232
1241
|
tableData = tableTree
|
|
1233
1242
|
} else {
|
|
1234
1243
|
if (allSortMethod) {
|
|
1235
|
-
const sortRests = allSortMethod({ data: tableData, column: firstOrderColumn.column, property: firstOrderColumn.
|
|
1244
|
+
const sortRests = allSortMethod({ data: tableData, column: firstOrderColumn.column, property: firstOrderColumn.field, field: firstOrderColumn.field, order: firstOrderColumn.order, sortList: orderColumns, $table: this })
|
|
1236
1245
|
tableData = XEUtils.isArray(sortRests) ? sortRests : tableData
|
|
1237
1246
|
} else {
|
|
1238
1247
|
// 兼容 v4
|
|
@@ -2752,9 +2761,9 @@ const Methods = {
|
|
|
2752
2761
|
return this.$nextTick()
|
|
2753
2762
|
},
|
|
2754
2763
|
isCheckedByCheckboxRow (row) {
|
|
2755
|
-
const { checkField
|
|
2756
|
-
if (
|
|
2757
|
-
return XEUtils.get(row,
|
|
2764
|
+
const { checkField } = this.checkboxOpts
|
|
2765
|
+
if (checkField) {
|
|
2766
|
+
return XEUtils.get(row, checkField)
|
|
2758
2767
|
}
|
|
2759
2768
|
return this.selection.indexOf(row) > -1
|
|
2760
2769
|
},
|
|
@@ -2767,19 +2776,19 @@ const Methods = {
|
|
|
2767
2776
|
*/
|
|
2768
2777
|
handleSelectRow ({ row }, value) {
|
|
2769
2778
|
const { selection, afterFullData, treeConfig, treeOpts, treeIndeterminates, checkboxOpts } = this
|
|
2770
|
-
const { checkField
|
|
2771
|
-
if (
|
|
2779
|
+
const { checkField, checkStrictly, checkMethod } = checkboxOpts
|
|
2780
|
+
if (checkField) {
|
|
2772
2781
|
if (treeConfig && !checkStrictly) {
|
|
2773
2782
|
if (value === -1) {
|
|
2774
2783
|
if (treeIndeterminates.indexOf(row) === -1) {
|
|
2775
2784
|
treeIndeterminates.push(row)
|
|
2776
2785
|
}
|
|
2777
|
-
XEUtils.set(row,
|
|
2786
|
+
XEUtils.set(row, checkField, false)
|
|
2778
2787
|
} else {
|
|
2779
2788
|
// 更新子节点状态
|
|
2780
2789
|
XEUtils.eachTree([row], (item) => {
|
|
2781
2790
|
if (row === item || (!checkMethod || checkMethod({ row: item }))) {
|
|
2782
|
-
XEUtils.set(item,
|
|
2791
|
+
XEUtils.set(item, checkField, value)
|
|
2783
2792
|
XEUtils.remove(treeIndeterminates, half => half === item)
|
|
2784
2793
|
this.handleCheckboxReserveRow(row, value)
|
|
2785
2794
|
}
|
|
@@ -2794,14 +2803,14 @@ const Methods = {
|
|
|
2794
2803
|
if (indeterminatesItem) {
|
|
2795
2804
|
parentStatus = -1
|
|
2796
2805
|
} else {
|
|
2797
|
-
const selectItems = matchObj.items.filter(item => XEUtils.get(item,
|
|
2806
|
+
const selectItems = matchObj.items.filter(item => XEUtils.get(item, checkField))
|
|
2798
2807
|
parentStatus = selectItems.filter(item => vItems.indexOf(item) > -1).length === vItems.length ? true : (selectItems.length || value === -1 ? -1 : false)
|
|
2799
2808
|
}
|
|
2800
2809
|
return this.handleSelectRow({ row: matchObj.parent }, parentStatus)
|
|
2801
2810
|
}
|
|
2802
2811
|
} else {
|
|
2803
2812
|
if (!checkMethod || checkMethod({ row })) {
|
|
2804
|
-
XEUtils.set(row,
|
|
2813
|
+
XEUtils.set(row, checkField, value)
|
|
2805
2814
|
this.handleCheckboxReserveRow(row, value)
|
|
2806
2815
|
}
|
|
2807
2816
|
}
|
|
@@ -2857,9 +2866,9 @@ const Methods = {
|
|
|
2857
2866
|
},
|
|
2858
2867
|
handleToggleCheckRowEvent (evnt, params) {
|
|
2859
2868
|
const { selection, checkboxOpts } = this
|
|
2860
|
-
const { checkField
|
|
2869
|
+
const { checkField } = checkboxOpts
|
|
2861
2870
|
const { row } = params
|
|
2862
|
-
const value =
|
|
2871
|
+
const value = checkField ? !XEUtils.get(row, checkField) : selection.indexOf(row) === -1
|
|
2863
2872
|
if (evnt) {
|
|
2864
2873
|
this.triggerCheckRowEvent(evnt, params, value)
|
|
2865
2874
|
} else {
|
|
@@ -2886,7 +2895,7 @@ const Methods = {
|
|
|
2886
2895
|
*/
|
|
2887
2896
|
setAllCheckboxRow (value) {
|
|
2888
2897
|
const { afterFullData, treeConfig, treeOpts, selection, checkboxReserveRowMap, checkboxOpts } = this
|
|
2889
|
-
const { checkField
|
|
2898
|
+
const { checkField, reserve, checkStrictly, checkMethod } = checkboxOpts
|
|
2890
2899
|
let selectRows = []
|
|
2891
2900
|
const beforeSelection = treeConfig ? [] : selection.filter(row => afterFullData.indexOf(row) === -1)
|
|
2892
2901
|
if (checkStrictly) {
|
|
@@ -2896,13 +2905,13 @@ const Methods = {
|
|
|
2896
2905
|
* 绑定属性方式(高性能,有污染)
|
|
2897
2906
|
* 必须在行数据存在对应的属性,否则将不响应
|
|
2898
2907
|
*/
|
|
2899
|
-
if (
|
|
2908
|
+
if (checkField) {
|
|
2900
2909
|
const checkValFn = (row) => {
|
|
2901
2910
|
if (!checkMethod || checkMethod({ row })) {
|
|
2902
2911
|
if (value) {
|
|
2903
2912
|
selectRows.push(row)
|
|
2904
2913
|
}
|
|
2905
|
-
XEUtils.set(row,
|
|
2914
|
+
XEUtils.set(row, checkField, value)
|
|
2906
2915
|
}
|
|
2907
2916
|
}
|
|
2908
2917
|
// 如果存在选中方法
|
|
@@ -2974,7 +2983,7 @@ const Methods = {
|
|
|
2974
2983
|
afterFullData.forEach(row => this.handleCheckboxReserveRow(row, false))
|
|
2975
2984
|
}
|
|
2976
2985
|
}
|
|
2977
|
-
this.selection =
|
|
2986
|
+
this.selection = checkField ? [] : beforeSelection.concat(selectRows)
|
|
2978
2987
|
}
|
|
2979
2988
|
this.treeIndeterminates = []
|
|
2980
2989
|
this.checkSelectionStatus()
|
|
@@ -3185,12 +3194,12 @@ const Methods = {
|
|
|
3185
3194
|
*/
|
|
3186
3195
|
clearCheckboxRow () {
|
|
3187
3196
|
const { tableFullData, treeConfig, treeOpts, checkboxOpts } = this
|
|
3188
|
-
const { checkField
|
|
3189
|
-
if (
|
|
3197
|
+
const { checkField, reserve } = checkboxOpts
|
|
3198
|
+
if (checkField) {
|
|
3190
3199
|
if (treeConfig) {
|
|
3191
|
-
XEUtils.eachTree(tableFullData, item => XEUtils.set(item,
|
|
3200
|
+
XEUtils.eachTree(tableFullData, item => XEUtils.set(item, checkField, false), treeOpts)
|
|
3192
3201
|
} else {
|
|
3193
|
-
tableFullData.forEach(item => XEUtils.set(item,
|
|
3202
|
+
tableFullData.forEach(item => XEUtils.set(item, checkField, false))
|
|
3194
3203
|
}
|
|
3195
3204
|
}
|
|
3196
3205
|
if (reserve) {
|
|
@@ -3538,14 +3547,14 @@ const Methods = {
|
|
|
3538
3547
|
*/
|
|
3539
3548
|
triggerSortEvent (evnt, column, order) {
|
|
3540
3549
|
const { sortOpts } = this
|
|
3541
|
-
const
|
|
3542
|
-
if (
|
|
3550
|
+
const { field, sortable, remoteSort } = column
|
|
3551
|
+
if (sortable || remoteSort) {
|
|
3543
3552
|
if (!order || column.order === order) {
|
|
3544
3553
|
this.clearSort(sortOpts.multiple ? column : null)
|
|
3545
3554
|
} else {
|
|
3546
|
-
this.sort({ field
|
|
3555
|
+
this.sort({ field, order })
|
|
3547
3556
|
}
|
|
3548
|
-
const params = { column, property, order: column.order, sortList: this.getSortColumns() }
|
|
3557
|
+
const params = { column, field, property: field, order: column.order, sortList: this.getSortColumns() }
|
|
3549
3558
|
this.emitEvent('sort-change', params, evnt)
|
|
3550
3559
|
}
|
|
3551
3560
|
},
|
|
@@ -3632,9 +3641,9 @@ const Methods = {
|
|
|
3632
3641
|
const { multiple, chronological } = this.sortOpts
|
|
3633
3642
|
const sortList = []
|
|
3634
3643
|
this.tableFullColumn.forEach((column) => {
|
|
3635
|
-
const {
|
|
3644
|
+
const { field, order } = column
|
|
3636
3645
|
if ((column.sortable || column.remoteSort) && order) {
|
|
3637
|
-
sortList.push({ column, field
|
|
3646
|
+
sortList.push({ column, field, property: field, order, sortTime: column.sortTime })
|
|
3638
3647
|
}
|
|
3639
3648
|
})
|
|
3640
3649
|
if (multiple && chronological && sortList.length > 1) {
|
|
@@ -3656,7 +3665,7 @@ const Methods = {
|
|
|
3656
3665
|
visible: false
|
|
3657
3666
|
})
|
|
3658
3667
|
if (visible) {
|
|
3659
|
-
this.emitEvent('filter-visible', { column, property: column.
|
|
3668
|
+
this.emitEvent('filter-visible', { column, field: column.field, property: column.field, filterList: this.getCheckedFilters(), visible: false }, null)
|
|
3660
3669
|
}
|
|
3661
3670
|
return this.$nextTick()
|
|
3662
3671
|
},
|
package/packages/tools/utils.js
CHANGED
|
@@ -45,10 +45,10 @@ export const UtilTools = {
|
|
|
45
45
|
return '' + (value === '' || value === null || value === undefined ? (placeholder ? GlobalConfig.emptyCell : '') : value)
|
|
46
46
|
},
|
|
47
47
|
getCellValue (row, column) {
|
|
48
|
-
return XEUtils.get(row, column.
|
|
48
|
+
return XEUtils.get(row, column.field)
|
|
49
49
|
},
|
|
50
50
|
setCellValue (row, column, value) {
|
|
51
|
-
return XEUtils.set(row, column.
|
|
51
|
+
return XEUtils.set(row, column.field, value)
|
|
52
52
|
},
|
|
53
53
|
// 组装列配置
|
|
54
54
|
assemColumn (_vm) {
|
|
@@ -264,8 +264,8 @@ export default {
|
|
|
264
264
|
// parseFormat: 'yyyy-MM-dd HH:mm:ss.SSS',
|
|
265
265
|
// labelFormat: '',
|
|
266
266
|
// valueFormat: '',
|
|
267
|
-
|
|
268
|
-
|
|
267
|
+
startDate: new Date(1900, 0, 1),
|
|
268
|
+
endDate: new Date(2100, 0, 1),
|
|
269
269
|
startDay: 1,
|
|
270
270
|
selectDay: 1,
|
|
271
271
|
digits: 2,
|
package/styles/select.scss
CHANGED
|
@@ -33,9 +33,11 @@
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
&.is--active {
|
|
36
|
-
|
|
37
|
-
.vxe-input
|
|
38
|
-
|
|
36
|
+
&:not(.is--filter) {
|
|
37
|
+
& > .vxe-input {
|
|
38
|
+
.vxe-input--inner {
|
|
39
|
+
border: 1px solid $vxe-primary-color;
|
|
40
|
+
}
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
}
|
|
@@ -76,7 +78,15 @@
|
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
|
|
81
|
+
.vxe-select-filter--wrapper {
|
|
82
|
+
display: block;
|
|
83
|
+
.vxe-select-filter--input {
|
|
84
|
+
width: 100%;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
79
88
|
.vxe-select-option--wrapper {
|
|
89
|
+
position: relative;
|
|
80
90
|
overflow-x: hidden;
|
|
81
91
|
overflow-y: auto;
|
|
82
92
|
padding: 4px 0;
|
|
@@ -102,7 +112,7 @@
|
|
|
102
112
|
}
|
|
103
113
|
|
|
104
114
|
.vxe-select-option {
|
|
105
|
-
padding: 0
|
|
115
|
+
padding: 0 0.6em;
|
|
106
116
|
max-width: 600px;
|
|
107
117
|
white-space: nowrap;
|
|
108
118
|
overflow: hidden;
|
|
@@ -125,8 +135,13 @@
|
|
|
125
135
|
}
|
|
126
136
|
}
|
|
127
137
|
|
|
138
|
+
.vxe-select--search-icon {
|
|
139
|
+
margin-right: 0.5em;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.vxe-select--search-loading,
|
|
128
143
|
.vxe-select--empty-placeholder {
|
|
129
|
-
padding: 0
|
|
144
|
+
padding: 0 0.6em;
|
|
130
145
|
text-align: center;
|
|
131
146
|
color: $vxe-select-empty-color;
|
|
132
147
|
}
|
|
@@ -152,6 +167,7 @@
|
|
|
152
167
|
}
|
|
153
168
|
.vxe-optgroup--title,
|
|
154
169
|
.vxe-select-option,
|
|
170
|
+
.vxe-select--search-loading,
|
|
155
171
|
.vxe-select--empty-placeholder {
|
|
156
172
|
line-height: $vxe-select-option-height-default;
|
|
157
173
|
}
|
|
@@ -162,6 +178,7 @@
|
|
|
162
178
|
}
|
|
163
179
|
.vxe-optgroup--title,
|
|
164
180
|
.vxe-select-option,
|
|
181
|
+
.vxe-select--search-loading,
|
|
165
182
|
.vxe-select--empty-placeholder {
|
|
166
183
|
line-height: $vxe-select-option-height-medium;
|
|
167
184
|
}
|
|
@@ -173,6 +190,7 @@
|
|
|
173
190
|
}
|
|
174
191
|
.vxe-optgroup--title,
|
|
175
192
|
.vxe-select-option,
|
|
193
|
+
.vxe-select--search-loading,
|
|
176
194
|
.vxe-select--empty-placeholder {
|
|
177
195
|
line-height: $vxe-select-option-height-small;
|
|
178
196
|
}
|
|
@@ -184,6 +202,7 @@
|
|
|
184
202
|
}
|
|
185
203
|
.vxe-optgroup--title,
|
|
186
204
|
.vxe-select-option,
|
|
205
|
+
.vxe-select--search-loading,
|
|
187
206
|
.vxe-select--empty-placeholder {
|
|
188
207
|
line-height: $vxe-select-option-height-mini;
|
|
189
208
|
}
|
package/styles/toolbar.scss
CHANGED
package/types/form-item.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export class FormItem extends VXETableComponent {
|
|
|
45
45
|
/**
|
|
46
46
|
* 该方法的返回值用来决定该项是否显示
|
|
47
47
|
*/
|
|
48
|
-
visibleMethod?(params: { data: any,
|
|
48
|
+
visibleMethod?(params: { data: any, field: string }): boolean;
|
|
49
49
|
/**
|
|
50
50
|
* 默认收起
|
|
51
51
|
*/
|
|
@@ -100,7 +100,7 @@ export interface FormItemOptions {
|
|
|
100
100
|
/**
|
|
101
101
|
* 该方法的返回值用来决定该项是否显示
|
|
102
102
|
*/
|
|
103
|
-
visibleMethod?(params: { data: any,
|
|
103
|
+
visibleMethod?(params: { data: any, field: string }): boolean;
|
|
104
104
|
/**
|
|
105
105
|
* 默认收起
|
|
106
106
|
*/
|
|
@@ -164,10 +164,11 @@ export interface FormItemRenderParams extends RenderParams {
|
|
|
164
164
|
* 表单数据
|
|
165
165
|
*/
|
|
166
166
|
data: any;
|
|
167
|
+
field: string
|
|
167
168
|
/**
|
|
168
|
-
*
|
|
169
|
+
* @deprecated
|
|
169
170
|
*/
|
|
170
|
-
property: string
|
|
171
|
+
property: string
|
|
171
172
|
}
|
|
172
173
|
|
|
173
174
|
/**
|
|
@@ -182,10 +183,11 @@ export interface FormItemVisibleParams extends RenderParams {
|
|
|
182
183
|
* 表单数据
|
|
183
184
|
*/
|
|
184
185
|
data: any;
|
|
186
|
+
field: string
|
|
185
187
|
/**
|
|
186
|
-
*
|
|
188
|
+
* @deprecated
|
|
187
189
|
*/
|
|
188
|
-
property: string
|
|
190
|
+
property: string
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
/**
|
|
@@ -200,8 +202,9 @@ export interface FormItemResetParams extends RenderParams {
|
|
|
200
202
|
* 表单数据
|
|
201
203
|
*/
|
|
202
204
|
data: any;
|
|
205
|
+
field: string
|
|
203
206
|
/**
|
|
204
|
-
*
|
|
207
|
+
* @deprecated
|
|
205
208
|
*/
|
|
206
|
-
property: string
|
|
209
|
+
property: string
|
|
207
210
|
}
|
package/types/form.d.ts
CHANGED
|
@@ -107,8 +107,11 @@ export interface FormValidErrParams {
|
|
|
107
107
|
rule: FormRule;
|
|
108
108
|
rules: FormRule[];
|
|
109
109
|
data: any;
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
field: string
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated
|
|
113
|
+
*/
|
|
114
|
+
property: string
|
|
112
115
|
}
|
|
113
116
|
|
|
114
117
|
export interface FormValidErrMapParams {
|
|
@@ -21,9 +21,19 @@ export interface VxeGlobalRenderer {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface RendererMapOptions {
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* 请使用 filterClassName
|
|
26
|
+
* @deprecated
|
|
27
|
+
*/
|
|
25
28
|
className?: string;
|
|
29
|
+
/**
|
|
30
|
+
* 请使用 showFilterFooter
|
|
31
|
+
* @deprecated
|
|
32
|
+
*/
|
|
26
33
|
isFooter?: boolean;
|
|
34
|
+
// 筛选渲染
|
|
35
|
+
filterClassName?: string | ((params: ColumnFilterRenderParams) => string | { [key: string]: boolean })
|
|
36
|
+
showFilterFooter?: boolean;
|
|
27
37
|
renderFilter?(h: CreateElement, renderOpts: ColumnFilterRenderOptions, params: ColumnFilterRenderParams): VNode[] | string[];
|
|
28
38
|
filterMethod?(params: ColumnFilterMethodParams): boolean;
|
|
29
39
|
filterResetMethod?(params: ColumnFilterResetParams): void;
|
|
@@ -31,6 +41,7 @@ export interface RendererMapOptions {
|
|
|
31
41
|
defaultFilterMethod?(params: ColumnFilterMethodParams): boolean;
|
|
32
42
|
|
|
33
43
|
// 单元格渲染
|
|
44
|
+
cellClassName?: string | ((params: ColumnCellRenderParams | ColumnEditRenderParams) => string | { [key: string]: boolean })
|
|
34
45
|
renderHeader?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
|
|
35
46
|
renderDefault?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnCellRenderParams | ColumnEditRenderParams): VNode[] | string[];
|
|
36
47
|
renderFooter?(h: CreateElement, renderOpts: ColumnCellRenderOptions | ColumnEditRenderOptions, params: ColumnFooterRenderParams): VNode[] | string[];
|
|
@@ -50,6 +61,7 @@ export interface RendererMapOptions {
|
|
|
50
61
|
renderToolbarTool?(h: CreateElement, renderOpts: ToolbarToolRenderOptions, params: ToolbarToolRenderParams): VNode[] | string[];
|
|
51
62
|
|
|
52
63
|
// 表单-项渲染
|
|
64
|
+
itemClassName?: string | ((params: FormItemRenderParams) => string | { [key: string]: boolean })
|
|
53
65
|
renderItemTitle?(h: CreateElement, renderOpts: FormItemRenderOptions, params: FormItemRenderParams): VNode[] | string[];
|
|
54
66
|
renderItemContent?(h: CreateElement, renderOpts: FormItemRenderOptions, params: FormItemRenderParams): VNode[] | string[];
|
|
55
67
|
itemVisibleMethod?(params: FormItemVisibleParams): boolean;
|