vxe-table 4.2.6-beta.3 → 4.2.6
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/README.zh-TW.md +0 -4
- package/es/edit/src/hook.js +2 -2
- package/es/export/src/export-panel.js +19 -19
- package/es/export/src/import-panel.js +9 -9
- package/es/filter/src/hook.js +5 -5
- package/es/form/src/form-item.js +1 -1
- package/es/form/src/render.js +1 -1
- package/es/grid/src/grid.js +12 -8
- package/es/input/src/input.js +19 -16
- package/es/locale/lang/en-US.js +2 -0
- package/es/locale/lang/ja-JP.js +2 -0
- package/es/locale/lang/zh-CN.js +2 -0
- package/es/locale/lang/zh-TC.js +2 -0
- package/es/menu/src/hooks.js +0 -6
- package/es/select/src/select.js +145 -15
- package/es/select/style.css +17 -3
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/body.js +1 -1
- package/es/table/src/cell.js +3 -3
- package/es/table/src/columnInfo.js +1 -1
- package/es/table/src/table.js +59 -47
- package/es/table/src/util.js +2 -2
- package/es/toolbar/style.css +11 -9
- package/es/tools/log.js +1 -1
- package/es/v-x-e-table/index.js +1 -1
- package/es/v-x-e-table/src/conf.js +2 -2
- package/lib/edit/src/hook.js +2 -2
- package/lib/filter/src/hook.js +8 -5
- package/lib/filter/src/hook.min.js +1 -1
- package/lib/form/src/form-item.js +1 -0
- 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 +16 -11
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +327 -123
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +21 -18
- 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/menu/src/hooks.js +0 -6
- package/lib/select/src/select.js +194 -16
- 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 +1 -1
- 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/table.js +66 -51
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +2 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/toolbar/style/style.css +11 -9
- 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/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/hook.ts +2 -2
- package/packages/export/src/export-panel.ts +19 -19
- package/packages/export/src/import-panel.ts +9 -9
- package/packages/filter/src/hook.ts +7 -7
- package/packages/form/src/form-item.ts +1 -1
- package/packages/form/src/render.ts +1 -1
- package/packages/grid/src/grid.ts +15 -9
- package/packages/input/src/input.ts +19 -16
- package/packages/locale/lang/en-US.ts +2 -0
- package/packages/locale/lang/ja-JP.ts +2 -0
- package/packages/locale/lang/zh-CN.ts +2 -0
- package/packages/locale/lang/zh-TC.ts +2 -0
- package/packages/menu/src/hooks.ts +0 -6
- package/packages/select/src/select.ts +146 -16
- package/packages/table/src/body.ts +1 -1
- package/packages/table/src/cell.ts +3 -3
- package/packages/table/src/columnInfo.ts +1 -1
- package/packages/table/src/table.ts +61 -49
- package/packages/table/src/util.ts +4 -4
- package/packages/v-x-e-table/src/conf.ts +2 -2
- package/styles/select.scss +24 -5
- package/styles/toolbar.scss +9 -5
- package/styles/variable.scss +0 -4
- package/types/form-item.d.ts +16 -1
- package/types/form.d.ts +1 -1
- package/types/input.d.ts +4 -0
- package/types/select.d.ts +19 -4
- package/types/table.d.ts +2 -0
|
@@ -899,16 +899,16 @@ export default defineComponent({
|
|
|
899
899
|
let checkboxColumn: any
|
|
900
900
|
let radioColumn: any
|
|
901
901
|
let hasFixed: any
|
|
902
|
-
const handleFunc = (column:
|
|
903
|
-
const { id: colid,
|
|
902
|
+
const handleFunc = (column: VxeTableDefines.ColumnInfo, index: number, items: VxeTableDefines.ColumnInfo[], path?: string[], parent?: VxeTableDefines.ColumnInfo) => {
|
|
903
|
+
const { id: colid, field, fixed, type, treeNode } = column
|
|
904
904
|
const rest = { column, colid, index, items, parent }
|
|
905
|
-
if (
|
|
905
|
+
if (field) {
|
|
906
906
|
if (process.env.VUE_APP_VXE_TABLE_ENV === 'development') {
|
|
907
|
-
if (fullColumnFieldData[
|
|
908
|
-
warnLog('vxe.error.colRepet', ['field',
|
|
907
|
+
if (fullColumnFieldData[field]) {
|
|
908
|
+
warnLog('vxe.error.colRepet', ['field', field])
|
|
909
909
|
}
|
|
910
910
|
}
|
|
911
|
-
fullColumnFieldData[
|
|
911
|
+
fullColumnFieldData[field] = rest
|
|
912
912
|
}
|
|
913
913
|
if (!hasFixed && fixed) {
|
|
914
914
|
hasFixed = fixed
|
|
@@ -958,7 +958,7 @@ export default defineComponent({
|
|
|
958
958
|
fullColumnIdData[colid] = rest
|
|
959
959
|
}
|
|
960
960
|
if (isGroup) {
|
|
961
|
-
XEUtils.eachTree(collectColumn, (column
|
|
961
|
+
XEUtils.eachTree(collectColumn, (column, index, items, path, parent, nodes) => {
|
|
962
962
|
column.level = nodes.length
|
|
963
963
|
handleFunc(column, index, items, path, parent)
|
|
964
964
|
})
|
|
@@ -1229,7 +1229,7 @@ export default defineComponent({
|
|
|
1229
1229
|
}[] = []
|
|
1230
1230
|
let orderColumns: VxeTableDefines.SortCheckedParams[] = []
|
|
1231
1231
|
tableFullColumn.forEach((column) => {
|
|
1232
|
-
const {
|
|
1232
|
+
const { field, sortable, order, filters } = column
|
|
1233
1233
|
if (!allRemoteFilter && filters && filters.length) {
|
|
1234
1234
|
const valueList: any[] = []
|
|
1235
1235
|
const itemList: VxeTableDefines.FilterOption[] = []
|
|
@@ -1244,7 +1244,7 @@ export default defineComponent({
|
|
|
1244
1244
|
}
|
|
1245
1245
|
}
|
|
1246
1246
|
if (!allRemoteSort && sortable && order) {
|
|
1247
|
-
orderColumns.push({ column, field
|
|
1247
|
+
orderColumns.push({ column, field, property: field, order, sortTime: column.sortTime })
|
|
1248
1248
|
}
|
|
1249
1249
|
})
|
|
1250
1250
|
if (sortMultiple && chronological && orderColumns.length > 1) {
|
|
@@ -1270,7 +1270,7 @@ export default defineComponent({
|
|
|
1270
1270
|
} else if (defaultFilterMethod) {
|
|
1271
1271
|
return itemList.some((item) => defaultFilterMethod({ value: item.value, option: item, cellValue, row, column, $table: $xetable }))
|
|
1272
1272
|
}
|
|
1273
|
-
return valueList.indexOf(XEUtils.get(row, column.
|
|
1273
|
+
return valueList.indexOf(XEUtils.get(row, column.field)) > -1
|
|
1274
1274
|
})
|
|
1275
1275
|
}
|
|
1276
1276
|
if (treeConfig && transform) {
|
|
@@ -1779,7 +1779,7 @@ export default defineComponent({
|
|
|
1779
1779
|
return new Promise(resolve => {
|
|
1780
1780
|
if (loadMethod) {
|
|
1781
1781
|
treeLazyLoadeds.push(row)
|
|
1782
|
-
loadMethod({ $table: $xetable, row }).
|
|
1782
|
+
loadMethod({ $table: $xetable, row }).then((childRecords: any) => {
|
|
1783
1783
|
rest.treeLoaded = true
|
|
1784
1784
|
XEUtils.remove(treeLazyLoadeds, item => $xetable.eqRow(item, row))
|
|
1785
1785
|
if (!XEUtils.isArray(childRecords)) {
|
|
@@ -2014,11 +2014,22 @@ export default defineComponent({
|
|
|
2014
2014
|
nextTick()
|
|
2015
2015
|
.then(() => tableMethods.recalculate())
|
|
2016
2016
|
.then(() => {
|
|
2017
|
+
let targetScrollLeft = lastScrollLeft
|
|
2018
|
+
let targetScrollTop = lastScrollTop
|
|
2019
|
+
const sXOpts = computeSXOpts.value
|
|
2020
|
+
const sYOpts = computeSYOpts.value
|
|
2021
|
+
// 是否在更新数据之后自动滚动重置滚动条
|
|
2022
|
+
if (sXOpts.scrollToLeftOnChange) {
|
|
2023
|
+
targetScrollLeft = 0
|
|
2024
|
+
}
|
|
2025
|
+
if (sYOpts.scrollToTopOnChange) {
|
|
2026
|
+
targetScrollTop = 0
|
|
2027
|
+
}
|
|
2017
2028
|
// 是否变更虚拟滚动
|
|
2018
2029
|
if (oldScrollYLoad === sYLoad) {
|
|
2019
|
-
restoreScrollLocation($xetable,
|
|
2030
|
+
restoreScrollLocation($xetable, targetScrollLeft, targetScrollTop).then(resolve)
|
|
2020
2031
|
} else {
|
|
2021
|
-
setTimeout(() => restoreScrollLocation($xetable,
|
|
2032
|
+
setTimeout(() => restoreScrollLocation($xetable, targetScrollLeft, targetScrollTop).then(resolve))
|
|
2022
2033
|
}
|
|
2023
2034
|
})
|
|
2024
2035
|
})
|
|
@@ -2689,7 +2700,7 @@ export default defineComponent({
|
|
|
2689
2700
|
} else {
|
|
2690
2701
|
rows.forEach((row: any) => {
|
|
2691
2702
|
visibleColumn.forEach((column) => {
|
|
2692
|
-
if (column.
|
|
2703
|
+
if (column.field) {
|
|
2693
2704
|
setCellValue(row, column, null)
|
|
2694
2705
|
}
|
|
2695
2706
|
})
|
|
@@ -2745,7 +2756,7 @@ export default defineComponent({
|
|
|
2745
2756
|
return !eqCellValue(oRow, row, field as string)
|
|
2746
2757
|
}
|
|
2747
2758
|
for (let index = 0, len = visibleColumn.length; index < len; index++) {
|
|
2748
|
-
property = visibleColumn[index].
|
|
2759
|
+
property = visibleColumn[index].field
|
|
2749
2760
|
if (property && !eqCellValue(oRow, row, property)) {
|
|
2750
2761
|
return true
|
|
2751
2762
|
}
|
|
@@ -2806,14 +2817,14 @@ export default defineComponent({
|
|
|
2806
2817
|
const treeOpts = computeTreeOpts.value
|
|
2807
2818
|
const checkboxOpts = computeCheckboxOpts.value
|
|
2808
2819
|
const { transform, children, mapChildren } = treeOpts
|
|
2809
|
-
const { checkField
|
|
2820
|
+
const { checkField } = checkboxOpts
|
|
2810
2821
|
let rowList = []
|
|
2811
2822
|
const currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData)
|
|
2812
|
-
if (
|
|
2823
|
+
if (checkField) {
|
|
2813
2824
|
if (treeConfig) {
|
|
2814
|
-
rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row,
|
|
2825
|
+
rowList = XEUtils.filterTree(currTableData, row => XEUtils.get(row, checkField), { children: transform ? mapChildren : children })
|
|
2815
2826
|
} else {
|
|
2816
|
-
rowList = currTableData.filter((row) => XEUtils.get(row,
|
|
2827
|
+
rowList = currTableData.filter((row) => XEUtils.get(row, checkField))
|
|
2817
2828
|
}
|
|
2818
2829
|
} else {
|
|
2819
2830
|
const { selection } = reactData
|
|
@@ -2848,8 +2859,9 @@ export default defineComponent({
|
|
|
2848
2859
|
* 根据行的唯一主键获取行
|
|
2849
2860
|
* @param {String/Number} rowid 行主键
|
|
2850
2861
|
*/
|
|
2851
|
-
getRowById (
|
|
2862
|
+
getRowById (cellValue) {
|
|
2852
2863
|
const { fullDataRowIdData } = internalData
|
|
2864
|
+
const rowid = XEUtils.eqNull(cellValue) ? '' : encodeURIComponent(cellValue)
|
|
2853
2865
|
return fullDataRowIdData[rowid] ? fullDataRowIdData[rowid].row : null
|
|
2854
2866
|
},
|
|
2855
2867
|
/**
|
|
@@ -3042,9 +3054,9 @@ export default defineComponent({
|
|
|
3042
3054
|
isCheckedByCheckboxRow (row) {
|
|
3043
3055
|
const { selection } = reactData
|
|
3044
3056
|
const checkboxOpts = computeCheckboxOpts.value
|
|
3045
|
-
const { checkField
|
|
3046
|
-
if (
|
|
3047
|
-
return XEUtils.get(row,
|
|
3057
|
+
const { checkField } = checkboxOpts
|
|
3058
|
+
if (checkField) {
|
|
3059
|
+
return XEUtils.get(row, checkField)
|
|
3048
3060
|
}
|
|
3049
3061
|
return $xetable.findRowIndexOf(selection, row) > -1
|
|
3050
3062
|
},
|
|
@@ -3069,7 +3081,7 @@ export default defineComponent({
|
|
|
3069
3081
|
const { afterFullData, checkboxReserveRowMap } = internalData
|
|
3070
3082
|
const treeOpts = computeTreeOpts.value
|
|
3071
3083
|
const checkboxOpts = computeCheckboxOpts.value
|
|
3072
|
-
const { checkField
|
|
3084
|
+
const { checkField, reserve, checkStrictly, checkMethod } = checkboxOpts
|
|
3073
3085
|
let selectRows: any[] = []
|
|
3074
3086
|
const beforeSelection = treeConfig ? [] : selection.filter((row) => $xetable.findRowIndexOf(afterFullData, row) === -1)
|
|
3075
3087
|
if (checkStrictly) {
|
|
@@ -3079,13 +3091,13 @@ export default defineComponent({
|
|
|
3079
3091
|
* 绑定属性方式(高性能,有污染)
|
|
3080
3092
|
* 必须在行数据存在对应的属性,否则将不响应
|
|
3081
3093
|
*/
|
|
3082
|
-
if (
|
|
3094
|
+
if (checkField) {
|
|
3083
3095
|
const checkValFn = (row: any) => {
|
|
3084
3096
|
if (!checkMethod || checkMethod({ row })) {
|
|
3085
3097
|
if (value) {
|
|
3086
3098
|
selectRows.push(row)
|
|
3087
3099
|
}
|
|
3088
|
-
XEUtils.set(row,
|
|
3100
|
+
XEUtils.set(row, checkField, value)
|
|
3089
3101
|
}
|
|
3090
3102
|
}
|
|
3091
3103
|
// 如果存在选中方法
|
|
@@ -3157,7 +3169,7 @@ export default defineComponent({
|
|
|
3157
3169
|
afterFullData.forEach((row) => handleCheckboxReserveRow(row, false))
|
|
3158
3170
|
}
|
|
3159
3171
|
}
|
|
3160
|
-
reactData.selection =
|
|
3172
|
+
reactData.selection = checkField ? [] : beforeSelection.concat(selectRows)
|
|
3161
3173
|
}
|
|
3162
3174
|
reactData.treeIndeterminates = []
|
|
3163
3175
|
tablePrivateMethods.checkSelectionStatus()
|
|
@@ -3253,12 +3265,12 @@ export default defineComponent({
|
|
|
3253
3265
|
const { tableFullData } = internalData
|
|
3254
3266
|
const treeOpts = computeTreeOpts.value
|
|
3255
3267
|
const checkboxOpts = computeCheckboxOpts.value
|
|
3256
|
-
const { checkField
|
|
3257
|
-
if (
|
|
3268
|
+
const { checkField, reserve } = checkboxOpts
|
|
3269
|
+
if (checkField) {
|
|
3258
3270
|
if (treeConfig) {
|
|
3259
|
-
XEUtils.eachTree(tableFullData, item => XEUtils.set(item,
|
|
3271
|
+
XEUtils.eachTree(tableFullData, item => XEUtils.set(item, checkField, false), treeOpts)
|
|
3260
3272
|
} else {
|
|
3261
|
-
tableFullData.forEach((item) => XEUtils.set(item,
|
|
3273
|
+
tableFullData.forEach((item) => XEUtils.set(item, checkField, false))
|
|
3262
3274
|
}
|
|
3263
3275
|
}
|
|
3264
3276
|
if (reserve) {
|
|
@@ -3456,9 +3468,9 @@ export default defineComponent({
|
|
|
3456
3468
|
const sortList: VxeTableDefines.SortCheckedParams[] = []
|
|
3457
3469
|
const { tableFullColumn } = internalData
|
|
3458
3470
|
tableFullColumn.forEach((column) => {
|
|
3459
|
-
const {
|
|
3471
|
+
const { field, order } = column
|
|
3460
3472
|
if (column.sortable && order) {
|
|
3461
|
-
sortList.push({ column, field
|
|
3473
|
+
sortList.push({ column, field, property: field, order, sortTime: column.sortTime })
|
|
3462
3474
|
}
|
|
3463
3475
|
})
|
|
3464
3476
|
if (multiple && chronological && sortList.length > 1) {
|
|
@@ -3480,7 +3492,7 @@ export default defineComponent({
|
|
|
3480
3492
|
visible: false
|
|
3481
3493
|
})
|
|
3482
3494
|
if (visible) {
|
|
3483
|
-
$xetable.dispatchEvent('filter-visible', { column, property: column.
|
|
3495
|
+
$xetable.dispatchEvent('filter-visible', { column, property: column.field, field: column.field, filterList: $xetable.getCheckedFilters(), visible: false }, null)
|
|
3484
3496
|
}
|
|
3485
3497
|
return nextTick()
|
|
3486
3498
|
},
|
|
@@ -4567,8 +4579,8 @@ export default defineComponent({
|
|
|
4567
4579
|
const checkboxOpts = computeCheckboxOpts.value
|
|
4568
4580
|
const rowkey = getRowkey($xetable)
|
|
4569
4581
|
internalData.tableFullColumn.forEach(column => {
|
|
4570
|
-
const {
|
|
4571
|
-
if (
|
|
4582
|
+
const { field, editRender } = column
|
|
4583
|
+
if (field && !XEUtils.has(record, field)) {
|
|
4572
4584
|
let cellValue = null
|
|
4573
4585
|
if (editRender) {
|
|
4574
4586
|
const { defaultValue } = editRender
|
|
@@ -4578,7 +4590,7 @@ export default defineComponent({
|
|
|
4578
4590
|
cellValue = defaultValue
|
|
4579
4591
|
}
|
|
4580
4592
|
}
|
|
4581
|
-
XEUtils.set(record,
|
|
4593
|
+
XEUtils.set(record, field, cellValue)
|
|
4582
4594
|
}
|
|
4583
4595
|
})
|
|
4584
4596
|
const otherFields: (string | undefined)[] = [radioOpts.labelField, checkboxOpts.checkField, checkboxOpts.labelField, expandOpts.labelField]
|
|
@@ -4851,19 +4863,19 @@ export default defineComponent({
|
|
|
4851
4863
|
const { afterFullData } = internalData
|
|
4852
4864
|
const treeOpts = computeTreeOpts.value
|
|
4853
4865
|
const checkboxOpts = computeCheckboxOpts.value
|
|
4854
|
-
const { checkField
|
|
4855
|
-
if (
|
|
4866
|
+
const { checkField, checkStrictly, checkMethod } = checkboxOpts
|
|
4867
|
+
if (checkField) {
|
|
4856
4868
|
if (treeConfig && !checkStrictly) {
|
|
4857
4869
|
if (value === -1) {
|
|
4858
4870
|
if ($xetable.findRowIndexOf(treeIndeterminates, row) === -1) {
|
|
4859
4871
|
treeIndeterminates.push(row)
|
|
4860
4872
|
}
|
|
4861
|
-
XEUtils.set(row,
|
|
4873
|
+
XEUtils.set(row, checkField, false)
|
|
4862
4874
|
} else {
|
|
4863
4875
|
// 更新子节点状态
|
|
4864
4876
|
XEUtils.eachTree([row], (item) => {
|
|
4865
4877
|
if ($xetable.eqRow(item, row) || (!checkMethod || checkMethod({ row: item }))) {
|
|
4866
|
-
XEUtils.set(item,
|
|
4878
|
+
XEUtils.set(item, checkField, value)
|
|
4867
4879
|
XEUtils.remove(treeIndeterminates, half => half === item)
|
|
4868
4880
|
handleCheckboxReserveRow(row, value)
|
|
4869
4881
|
}
|
|
@@ -4878,14 +4890,14 @@ export default defineComponent({
|
|
|
4878
4890
|
if (indeterminatesItem) {
|
|
4879
4891
|
parentStatus = -1
|
|
4880
4892
|
} else {
|
|
4881
|
-
const selectItems = matchObj.items.filter(item => XEUtils.get(item,
|
|
4893
|
+
const selectItems = matchObj.items.filter(item => XEUtils.get(item, checkField))
|
|
4882
4894
|
parentStatus = selectItems.filter(item => $xetable.findRowIndexOf(vItems, item) > -1).length === vItems.length ? true : (selectItems.length || value === -1 ? -1 : false)
|
|
4883
4895
|
}
|
|
4884
4896
|
return tablePrivateMethods.handleSelectRow({ row: matchObj.parent }, parentStatus)
|
|
4885
4897
|
}
|
|
4886
4898
|
} else {
|
|
4887
4899
|
if (!checkMethod || checkMethod({ row })) {
|
|
4888
|
-
XEUtils.set(row,
|
|
4900
|
+
XEUtils.set(row, checkField, value)
|
|
4889
4901
|
handleCheckboxReserveRow(row, value)
|
|
4890
4902
|
}
|
|
4891
4903
|
}
|
|
@@ -5154,9 +5166,9 @@ export default defineComponent({
|
|
|
5154
5166
|
handleToggleCheckRowEvent (evnt, params) {
|
|
5155
5167
|
const { selection } = reactData
|
|
5156
5168
|
const checkboxOpts = computeCheckboxOpts.value
|
|
5157
|
-
const { checkField
|
|
5169
|
+
const { checkField } = checkboxOpts
|
|
5158
5170
|
const { row } = params
|
|
5159
|
-
const value =
|
|
5171
|
+
const value = checkField ? !XEUtils.get(row, checkField) : $xetable.findRowIndexOf(selection, row) === -1
|
|
5160
5172
|
if (evnt) {
|
|
5161
5173
|
tablePrivateMethods.triggerCheckRowEvent(evnt, params, value)
|
|
5162
5174
|
} else {
|
|
@@ -5266,14 +5278,14 @@ export default defineComponent({
|
|
|
5266
5278
|
*/
|
|
5267
5279
|
triggerSortEvent (evnt, column, order) {
|
|
5268
5280
|
const sortOpts = computeSortOpts.value
|
|
5269
|
-
const
|
|
5270
|
-
if (
|
|
5281
|
+
const { field, sortable } = column
|
|
5282
|
+
if (sortable) {
|
|
5271
5283
|
if (!order || column.order === order) {
|
|
5272
5284
|
tableMethods.clearSort(sortOpts.multiple ? column : null)
|
|
5273
5285
|
} else {
|
|
5274
|
-
tableMethods.sort({ field
|
|
5286
|
+
tableMethods.sort({ field, order })
|
|
5275
5287
|
}
|
|
5276
|
-
const params = { column, property, order: column.order, sortList: tableMethods.getSortColumns() }
|
|
5288
|
+
const params = { column, field, property: field, order: column.order, sortList: tableMethods.getSortColumns() }
|
|
5277
5289
|
tableMethods.dispatchEvent('sort-change', params, evnt)
|
|
5278
5290
|
}
|
|
5279
5291
|
},
|
|
@@ -104,12 +104,12 @@ export function toTreePathSeq (path: any[]) {
|
|
|
104
104
|
return path.map((num, i) => i % 2 === 0 ? (Number(num) + 1) : '.').join('')
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
export function getCellValue (row: any, column:
|
|
108
|
-
return XEUtils.get(row, column.
|
|
107
|
+
export function getCellValue (row: any, column: VxeTableDefines.ColumnInfo) {
|
|
108
|
+
return XEUtils.get(row, column.field)
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
export function setCellValue (row: any, column:
|
|
112
|
-
return XEUtils.set(row, column.
|
|
111
|
+
export function setCellValue (row: any, column: VxeTableDefines.ColumnInfo, value: any) {
|
|
112
|
+
return XEUtils.set(row, column.field, value)
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
export function getPropClass (property: any, params: any) {
|
|
@@ -266,8 +266,8 @@ const GlobalConfig: VXETableGlobalConfig = {
|
|
|
266
266
|
// parseFormat: 'yyyy-MM-dd HH:mm:ss.SSS',
|
|
267
267
|
// labelFormat: '',
|
|
268
268
|
// valueFormat: '',
|
|
269
|
-
|
|
270
|
-
|
|
269
|
+
startDate: new Date(1900, 0, 1),
|
|
270
|
+
endDate: new Date(2100, 0, 1),
|
|
271
271
|
startDay: 1,
|
|
272
272
|
selectDay: 1,
|
|
273
273
|
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
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
display: flex;
|
|
8
8
|
flex-direction: row;
|
|
9
9
|
align-items: center;
|
|
10
|
+
padding: 0.6em 0;
|
|
10
11
|
color: $vxe-font-color;
|
|
11
12
|
font-family: $vxe-font-family;
|
|
12
13
|
background-color: $vxe-toolbar-background-color;
|
|
@@ -64,12 +65,19 @@
|
|
|
64
65
|
justify-content: center;
|
|
65
66
|
}
|
|
66
67
|
}
|
|
68
|
+
.vxe-buttons--wrapper,
|
|
67
69
|
.vxe-tools--wrapper,
|
|
68
70
|
.vxe-tools--operate {
|
|
69
71
|
display: flex;
|
|
70
|
-
flex-shrink: 0;
|
|
71
72
|
align-items: center;
|
|
72
73
|
}
|
|
74
|
+
.vxe-buttons--wrapper,
|
|
75
|
+
.vxe-tools--wrapper {
|
|
76
|
+
flex-wrap: wrap;
|
|
77
|
+
}
|
|
78
|
+
.vxe-tools--operate {
|
|
79
|
+
flex-shrink: 0;
|
|
80
|
+
}
|
|
73
81
|
.vxe-custom--wrapper {
|
|
74
82
|
position: relative;
|
|
75
83
|
margin-left: 0.8em;
|
|
@@ -171,7 +179,6 @@
|
|
|
171
179
|
|
|
172
180
|
.vxe-toolbar {
|
|
173
181
|
font-size: $vxe-font-size;
|
|
174
|
-
height: $vxe-toolbar-height-default;
|
|
175
182
|
.vxe-custom--option {
|
|
176
183
|
& > .vxe-checkbox--icon {
|
|
177
184
|
font-size: $vxe-checkbox-font-size-default;
|
|
@@ -179,7 +186,6 @@
|
|
|
179
186
|
}
|
|
180
187
|
&.size--medium {
|
|
181
188
|
font-size: $vxe-font-size-medium;
|
|
182
|
-
height: $vxe-toolbar-height-medium;
|
|
183
189
|
.vxe-custom--option {
|
|
184
190
|
& > .vxe-checkbox--icon {
|
|
185
191
|
font-size: $vxe-checkbox-font-size-medium;
|
|
@@ -188,7 +194,6 @@
|
|
|
188
194
|
}
|
|
189
195
|
&.size--small {
|
|
190
196
|
font-size: $vxe-font-size-small;
|
|
191
|
-
height: $vxe-toolbar-height-small;
|
|
192
197
|
.vxe-custom--option {
|
|
193
198
|
& > .vxe-checkbox--icon {
|
|
194
199
|
font-size: $vxe-checkbox-font-size-small;
|
|
@@ -197,7 +202,6 @@
|
|
|
197
202
|
}
|
|
198
203
|
&.size--mini {
|
|
199
204
|
font-size: $vxe-font-size-mini;
|
|
200
|
-
height: $vxe-toolbar-height-mini;
|
|
201
205
|
.vxe-custom--option {
|
|
202
206
|
& > .vxe-checkbox--icon {
|
|
203
207
|
font-size: $vxe-checkbox-font-size-mini;
|
package/styles/variable.scss
CHANGED
|
@@ -121,10 +121,6 @@ $vxe-grid-maximize-background-color: #fff !default;
|
|
|
121
121
|
|
|
122
122
|
/*toolbar*/
|
|
123
123
|
$vxe-toolbar-background-color: #fff !default;
|
|
124
|
-
$vxe-toolbar-height-default: 52px !default;
|
|
125
|
-
$vxe-toolbar-height-medium: 50px !default;
|
|
126
|
-
$vxe-toolbar-height-small: 48px !default;
|
|
127
|
-
$vxe-toolbar-height-mini: 46px !default;
|
|
128
124
|
$vxe-toolbar-custom-active-background-color: #D9DADB !default;
|
|
129
125
|
$vxe-toolbar-panel-background-color: #fff !default;
|
|
130
126
|
|
package/types/form-item.d.ts
CHANGED
|
@@ -98,6 +98,10 @@ export namespace VxeFormItemPropTypes {
|
|
|
98
98
|
$form: VxeFormConstructor
|
|
99
99
|
data: any
|
|
100
100
|
item: VxeFormDefines.ItemInfo
|
|
101
|
+
field: string
|
|
102
|
+
/**
|
|
103
|
+
* @deprecated
|
|
104
|
+
*/
|
|
101
105
|
property: string
|
|
102
106
|
}
|
|
103
107
|
export type ClassName = string | ((params: ClassNameParams) => string)
|
|
@@ -164,6 +168,10 @@ export interface FormItemTitleRenderParams {
|
|
|
164
168
|
$form: VxeFormConstructor
|
|
165
169
|
data: any
|
|
166
170
|
item: VxeFormDefines.ItemInfo
|
|
171
|
+
field: string
|
|
172
|
+
/**
|
|
173
|
+
* @deprecated
|
|
174
|
+
*/
|
|
167
175
|
property: string
|
|
168
176
|
}
|
|
169
177
|
|
|
@@ -174,6 +182,10 @@ export interface FormItemContentRenderParams {
|
|
|
174
182
|
$form: VxeFormConstructor
|
|
175
183
|
data: any
|
|
176
184
|
item: VxeFormDefines.ItemInfo
|
|
185
|
+
field: string
|
|
186
|
+
/**
|
|
187
|
+
* @deprecated
|
|
188
|
+
*/
|
|
177
189
|
property: string
|
|
178
190
|
}
|
|
179
191
|
|
|
@@ -184,6 +196,10 @@ export interface FormItemVisibleParams {
|
|
|
184
196
|
$form: VxeFormConstructor
|
|
185
197
|
data: any
|
|
186
198
|
item: VxeFormDefines.ItemInfo
|
|
199
|
+
field: string
|
|
200
|
+
/**
|
|
201
|
+
* @deprecated
|
|
202
|
+
*/
|
|
187
203
|
property: string
|
|
188
204
|
}
|
|
189
205
|
|
|
@@ -196,7 +212,6 @@ export interface FormItemResetParams {
|
|
|
196
212
|
item: VxeFormDefines.ItemInfo
|
|
197
213
|
field: string
|
|
198
214
|
/**
|
|
199
|
-
* 已废弃,该属性被 field 替换
|
|
200
215
|
* @deprecated
|
|
201
216
|
*/
|
|
202
217
|
property: string
|
package/types/form.d.ts
CHANGED
package/types/input.d.ts
CHANGED
|
@@ -65,6 +65,8 @@ export namespace VxeInputPropTypes {
|
|
|
65
65
|
export type Exponential = boolean
|
|
66
66
|
export type Controls = boolean
|
|
67
67
|
export type Digits = string | number
|
|
68
|
+
export type StartDate = string | number | Date
|
|
69
|
+
export type EndDate = string | number | Date
|
|
68
70
|
export type MinDate = string | number | Date
|
|
69
71
|
export type MaxDate = string | number | Date
|
|
70
72
|
export type StartDay = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
|
@@ -110,6 +112,8 @@ export type VxeInputProps = {
|
|
|
110
112
|
digits?: VxeInputPropTypes.Digits
|
|
111
113
|
|
|
112
114
|
// date、week、month、quarter、year
|
|
115
|
+
startDate?: VxeInputPropTypes.StartDate
|
|
116
|
+
endDate?: VxeInputPropTypes.EndDate
|
|
113
117
|
minDate?: VxeInputPropTypes.MinDate
|
|
114
118
|
maxDate?: VxeInputPropTypes.MaxDate
|
|
115
119
|
/**
|
package/types/select.d.ts
CHANGED
|
@@ -28,17 +28,24 @@ export interface VxeSelectPrivateRef extends SelectPrivateRef { }
|
|
|
28
28
|
export interface SelectReactData {
|
|
29
29
|
inited: boolean
|
|
30
30
|
staticOptions: VxeSelectDefines.OptionInfo[]
|
|
31
|
-
fullGroupList:
|
|
32
|
-
fullOptionList:
|
|
33
|
-
visibleGroupList:
|
|
34
|
-
visibleOptionList:
|
|
31
|
+
fullGroupList: any[]
|
|
32
|
+
fullOptionList: any[]
|
|
33
|
+
visibleGroupList: any[]
|
|
34
|
+
visibleOptionList: any[]
|
|
35
|
+
remoteValueList: {
|
|
36
|
+
key: string
|
|
37
|
+
result: any
|
|
38
|
+
}[]
|
|
35
39
|
panelIndex: number
|
|
36
40
|
panelStyle: VNodeStyle
|
|
37
41
|
panelPlacement: any
|
|
42
|
+
currentOption: any
|
|
38
43
|
currentValue: any
|
|
39
44
|
visiblePanel: boolean
|
|
40
45
|
animatVisible: boolean
|
|
41
46
|
isActivated: boolean
|
|
47
|
+
searchValue: string,
|
|
48
|
+
searchLoading: boolean
|
|
42
49
|
}
|
|
43
50
|
|
|
44
51
|
export type VxeSelectProps = {
|
|
@@ -59,6 +66,10 @@ export type VxeSelectProps = {
|
|
|
59
66
|
optionGroupProps?: VxeSelectPropTypes.OptionGroupProps
|
|
60
67
|
optionConfig?: VxeSelectPropTypes.OptionConfig
|
|
61
68
|
emptyText?: VxeSelectPropTypes.EmptyText
|
|
69
|
+
filterable?: VxeSelectPropTypes.Filterable
|
|
70
|
+
filterMethod?: VxeSelectPropTypes.FilterMethod
|
|
71
|
+
remote?: VxeSelectPropTypes.Remote
|
|
72
|
+
remoteMethod?: VxeSelectPropTypes.RemoteMethod
|
|
62
73
|
/**
|
|
63
74
|
* 已废弃,被 optionConfig.keyField 替换
|
|
64
75
|
* @deprecated
|
|
@@ -88,6 +99,10 @@ export namespace VxeSelectPropTypes {
|
|
|
88
99
|
export type OptionProps = VxeGlobalRendererHandles.RenderOptionProps
|
|
89
100
|
export type OptionGroups = VxeSelectDefines.SelectOptgroups[]
|
|
90
101
|
export type OptionGroupProps = VxeGlobalRendererHandles.RenderOptionGroupProps
|
|
102
|
+
export type Filterable = boolean
|
|
103
|
+
export type FilterMethod = (params: { group: any, option: any, searchValue: string }) => boolean
|
|
104
|
+
export type Remote = boolean
|
|
105
|
+
export type RemoteMethod = (params: { searchValue: string }) => Promise<void> | void
|
|
91
106
|
/**
|
|
92
107
|
* 选项配置项
|
|
93
108
|
*/
|
package/types/table.d.ts
CHANGED
|
@@ -1932,6 +1932,7 @@ export namespace VxeTablePropTypes {
|
|
|
1932
1932
|
gt?: number
|
|
1933
1933
|
oSize?: number
|
|
1934
1934
|
enabled?: boolean
|
|
1935
|
+
scrollToLeftOnChange?: boolean
|
|
1935
1936
|
}
|
|
1936
1937
|
export interface SXOpts extends ScrollX {
|
|
1937
1938
|
gt: number
|
|
@@ -1943,6 +1944,7 @@ export namespace VxeTablePropTypes {
|
|
|
1943
1944
|
gt?: number
|
|
1944
1945
|
oSize?: number
|
|
1945
1946
|
enabled?: boolean
|
|
1947
|
+
scrollToTopOnChange?: boolean
|
|
1946
1948
|
/**
|
|
1947
1949
|
* @deprecated 请使用 row-config.height
|
|
1948
1950
|
*/
|