vxe-table 3.4.10 → 3.4.12-beta.2
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/index.umd.js +172 -65
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +50 -19
- package/lib/input/src/input.min.js +1 -1
- package/lib/radio/src/button.js +38 -14
- package/lib/radio/src/button.min.js +1 -1
- package/lib/radio/src/group.js +7 -1
- package/lib/radio/src/group.min.js +1 -1
- package/lib/radio/src/radio.js +38 -30
- package/lib/radio/src/radio.min.js +1 -1
- package/lib/table/src/methods.js +28 -2
- package/lib/table/src/methods.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +11 -1
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +3 -3
- package/packages/input/src/input.js +35 -16
- package/packages/radio/src/button.js +27 -9
- package/packages/radio/src/group.js +2 -1
- package/packages/radio/src/radio.js +26 -18
- package/packages/table/src/methods.js +21 -2
- package/packages/v-x-e-table/src/conf.js +10 -1
|
@@ -812,11 +812,14 @@ export default {
|
|
|
812
812
|
}
|
|
813
813
|
return ''
|
|
814
814
|
},
|
|
815
|
+
firstDayOfWeek () {
|
|
816
|
+
const { startDay, startWeek } = this
|
|
817
|
+
return XEUtils.toNumber(XEUtils.isNumber(startDay) || XEUtils.isString(startDay) ? startDay : startWeek)
|
|
818
|
+
},
|
|
815
819
|
weekDatas () {
|
|
816
820
|
const weeks = []
|
|
817
821
|
if (this.isDatePickerType) {
|
|
818
|
-
|
|
819
|
-
let sWeek = XEUtils.toNumber(XEUtils.isNumber(startDay) || XEUtils.isString(startDay) ? startDay : startWeek)
|
|
822
|
+
let { firstDayOfWeek: sWeek } = this
|
|
820
823
|
weeks.push(sWeek)
|
|
821
824
|
for (let index = 0; index < 6; index++) {
|
|
822
825
|
if (sWeek >= 6) {
|
|
@@ -957,7 +960,8 @@ export default {
|
|
|
957
960
|
return XEUtils.chunk(this.dayList, 7)
|
|
958
961
|
},
|
|
959
962
|
weekDates () {
|
|
960
|
-
|
|
963
|
+
const { dayDatas, firstDayOfWeek } = this
|
|
964
|
+
return dayDatas.map(list => {
|
|
961
965
|
const firstItem = list[0]
|
|
962
966
|
const item = {
|
|
963
967
|
date: firstItem.date,
|
|
@@ -966,7 +970,7 @@ export default {
|
|
|
966
970
|
isCurrent: false,
|
|
967
971
|
isNow: false,
|
|
968
972
|
isNext: false,
|
|
969
|
-
label: XEUtils.getYearWeek(firstItem.date)
|
|
973
|
+
label: XEUtils.getYearWeek(firstItem.date, firstDayOfWeek)
|
|
970
974
|
}
|
|
971
975
|
return [item].concat(list)
|
|
972
976
|
})
|
|
@@ -1045,8 +1049,10 @@ export default {
|
|
|
1045
1049
|
this.initValue()
|
|
1046
1050
|
},
|
|
1047
1051
|
dateLabelFormat () {
|
|
1048
|
-
|
|
1049
|
-
|
|
1052
|
+
if (this.isDatePickerType) {
|
|
1053
|
+
this.dateParseValue(this.datePanelValue)
|
|
1054
|
+
this.inputValue = this.datePanelLabel
|
|
1055
|
+
}
|
|
1050
1056
|
}
|
|
1051
1057
|
},
|
|
1052
1058
|
created () {
|
|
@@ -1292,7 +1298,7 @@ export default {
|
|
|
1292
1298
|
}
|
|
1293
1299
|
},
|
|
1294
1300
|
afterCheckValue () {
|
|
1295
|
-
const { type, exponential, inpReadonly, inputValue, isDatePickerType, isNumType, datetimePanelValue, dateLabelFormat, min, max } = this
|
|
1301
|
+
const { type, exponential, inpReadonly, inputValue, isDatePickerType, isNumType, datetimePanelValue, dateLabelFormat, min, max, firstDayOfWeek } = this
|
|
1296
1302
|
if (!inpReadonly) {
|
|
1297
1303
|
if (isNumType) {
|
|
1298
1304
|
if (inputValue) {
|
|
@@ -1340,7 +1346,7 @@ export default {
|
|
|
1340
1346
|
} else {
|
|
1341
1347
|
isChange = true
|
|
1342
1348
|
}
|
|
1343
|
-
this.inputValue = XEUtils.toDateString(inpDateVal, dateLabelFormat)
|
|
1349
|
+
this.inputValue = XEUtils.toDateString(inpDateVal, dateLabelFormat, { firstDay: firstDayOfWeek })
|
|
1344
1350
|
if (isChange) {
|
|
1345
1351
|
this.dateChange(inpDateVal)
|
|
1346
1352
|
}
|
|
@@ -1650,7 +1656,7 @@ export default {
|
|
|
1650
1656
|
}
|
|
1651
1657
|
},
|
|
1652
1658
|
dateParseValue (date) {
|
|
1653
|
-
const { type, dateLabelFormat, valueFormat } = this
|
|
1659
|
+
const { type, dateLabelFormat, valueFormat, firstDayOfWeek } = this
|
|
1654
1660
|
let dValue = null
|
|
1655
1661
|
let dLabel = ''
|
|
1656
1662
|
if (date) {
|
|
@@ -1661,7 +1667,20 @@ export default {
|
|
|
1661
1667
|
}
|
|
1662
1668
|
}
|
|
1663
1669
|
if (XEUtils.isValidDate(dValue)) {
|
|
1664
|
-
dLabel = XEUtils.toDateString(dValue, dateLabelFormat)
|
|
1670
|
+
dLabel = XEUtils.toDateString(dValue, dateLabelFormat, { firstDay: firstDayOfWeek })
|
|
1671
|
+
// 由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年
|
|
1672
|
+
if (dateLabelFormat && type === 'week') {
|
|
1673
|
+
const firstWeekDate = XEUtils.getWhatWeek(dValue, 0, firstDayOfWeek, firstDayOfWeek)
|
|
1674
|
+
if (firstWeekDate.getFullYear() < dValue.getFullYear()) {
|
|
1675
|
+
const yyIndex = dateLabelFormat.indexOf('yyyy')
|
|
1676
|
+
if (yyIndex > -1) {
|
|
1677
|
+
const yyNum = Number(dLabel.substring(yyIndex, yyIndex + 4))
|
|
1678
|
+
if (yyNum && !isNaN(yyNum)) {
|
|
1679
|
+
dLabel = dLabel.replace(`${yyNum}`, `${yyNum - 1}`)
|
|
1680
|
+
}
|
|
1681
|
+
}
|
|
1682
|
+
}
|
|
1683
|
+
}
|
|
1665
1684
|
} else {
|
|
1666
1685
|
dValue = null
|
|
1667
1686
|
}
|
|
@@ -1669,7 +1688,7 @@ export default {
|
|
|
1669
1688
|
this.datePanelLabel = dLabel
|
|
1670
1689
|
},
|
|
1671
1690
|
dateOffsetEvent (evnt) {
|
|
1672
|
-
const { isActivated, datePanelValue, datePanelType } = this
|
|
1691
|
+
const { isActivated, datePanelValue, datePanelType, firstDayOfWeek } = this
|
|
1673
1692
|
if (isActivated) {
|
|
1674
1693
|
evnt.preventDefault()
|
|
1675
1694
|
const keyCode = evnt.keyCode
|
|
@@ -1718,11 +1737,11 @@ export default {
|
|
|
1718
1737
|
if (isLeftArrow) {
|
|
1719
1738
|
offsetDay = XEUtils.getWhatDay(offsetDay, -1)
|
|
1720
1739
|
} else if (isUpArrow) {
|
|
1721
|
-
offsetDay = XEUtils.getWhatWeek(offsetDay, -1)
|
|
1740
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, -1, firstDayOfWeek)
|
|
1722
1741
|
} else if (isRightArrow) {
|
|
1723
1742
|
offsetDay = XEUtils.getWhatDay(offsetDay, 1)
|
|
1724
1743
|
} else if (isDwArrow) {
|
|
1725
|
-
offsetDay = XEUtils.getWhatWeek(offsetDay, 1)
|
|
1744
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, 1, firstDayOfWeek)
|
|
1726
1745
|
}
|
|
1727
1746
|
this.dateMoveDay(offsetDay)
|
|
1728
1747
|
}
|
|
@@ -1741,16 +1760,16 @@ export default {
|
|
|
1741
1760
|
}
|
|
1742
1761
|
},
|
|
1743
1762
|
dateChange (date) {
|
|
1744
|
-
const { value, datetimePanelValue, dateValueFormat } = this
|
|
1763
|
+
const { value, datetimePanelValue, dateValueFormat, firstDayOfWeek } = this
|
|
1745
1764
|
if (this.type === 'week') {
|
|
1746
1765
|
const sWeek = XEUtils.toNumber(this.selectDay)
|
|
1747
|
-
date = XEUtils.getWhatWeek(date, 0, sWeek)
|
|
1766
|
+
date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek)
|
|
1748
1767
|
} else if (this.hasTime) {
|
|
1749
1768
|
date.setHours(datetimePanelValue.getHours())
|
|
1750
1769
|
date.setMinutes(datetimePanelValue.getMinutes())
|
|
1751
1770
|
date.setSeconds(datetimePanelValue.getSeconds())
|
|
1752
1771
|
}
|
|
1753
|
-
const inpVal = XEUtils.toDateString(date, dateValueFormat)
|
|
1772
|
+
const inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek })
|
|
1754
1773
|
this.dateCheckMonth(date)
|
|
1755
1774
|
if (!XEUtils.isEqual(value, inpVal)) {
|
|
1756
1775
|
this.emitModel(inpVal, { type: 'update' })
|
|
@@ -9,7 +9,8 @@ export default {
|
|
|
9
9
|
title: [String, Number],
|
|
10
10
|
content: [String, Number],
|
|
11
11
|
disabled: Boolean,
|
|
12
|
-
|
|
12
|
+
strict: { type: Boolean, default: () => GlobalConfig.radioButton.strict },
|
|
13
|
+
size: { type: String, default: () => GlobalConfig.radioButton.size || GlobalConfig.size }
|
|
13
14
|
},
|
|
14
15
|
inject: {
|
|
15
16
|
$xeradiogroup: {
|
|
@@ -23,6 +24,10 @@ export default {
|
|
|
23
24
|
isDisabled () {
|
|
24
25
|
const { $xeradiogroup } = this
|
|
25
26
|
return this.disabled || ($xeradiogroup && $xeradiogroup.disabled)
|
|
27
|
+
},
|
|
28
|
+
isStrict () {
|
|
29
|
+
const { $xeradiogroup } = this
|
|
30
|
+
return $xeradiogroup ? $xeradiogroup.strict : this.strict
|
|
26
31
|
}
|
|
27
32
|
},
|
|
28
33
|
render (h) {
|
|
@@ -49,7 +54,8 @@ export default {
|
|
|
49
54
|
checked: $xeradiogroup ? $xeradiogroup.value === label : value === label
|
|
50
55
|
},
|
|
51
56
|
on: {
|
|
52
|
-
change: this.changeEvent
|
|
57
|
+
change: this.changeEvent,
|
|
58
|
+
click: this.clickEvent
|
|
53
59
|
}
|
|
54
60
|
}),
|
|
55
61
|
h('span', {
|
|
@@ -58,15 +64,27 @@ export default {
|
|
|
58
64
|
])
|
|
59
65
|
},
|
|
60
66
|
methods: {
|
|
67
|
+
handleValue (label, evnt) {
|
|
68
|
+
const { $xeradiogroup } = this
|
|
69
|
+
const params = { label, $event: evnt }
|
|
70
|
+
if ($xeradiogroup) {
|
|
71
|
+
$xeradiogroup.handleChecked(params)
|
|
72
|
+
} else {
|
|
73
|
+
this.$emit('input', label)
|
|
74
|
+
this.$emit('change', params)
|
|
75
|
+
}
|
|
76
|
+
},
|
|
61
77
|
changeEvent (evnt) {
|
|
62
|
-
const {
|
|
78
|
+
const { isDisabled } = this
|
|
63
79
|
if (!isDisabled) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
80
|
+
this.handleValue(this.label, evnt)
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
clickEvent (evnt) {
|
|
84
|
+
const { $xeradiogroup, isDisabled, isStrict } = this
|
|
85
|
+
if (!isDisabled && !isStrict) {
|
|
86
|
+
if (this.label === ($xeradiogroup ? $xeradiogroup.value : this.value)) {
|
|
87
|
+
this.handleValue(null, evnt)
|
|
70
88
|
}
|
|
71
89
|
}
|
|
72
90
|
}
|
|
@@ -6,7 +6,8 @@ export default {
|
|
|
6
6
|
props: {
|
|
7
7
|
value: [String, Number, Boolean],
|
|
8
8
|
disabled: Boolean,
|
|
9
|
-
|
|
9
|
+
strict: { type: Boolean, default: () => GlobalConfig.radioGroup.strict },
|
|
10
|
+
size: { type: String, default: () => GlobalConfig.radioGroup.size || GlobalConfig.size }
|
|
10
11
|
},
|
|
11
12
|
provide () {
|
|
12
13
|
return {
|
|
@@ -12,6 +12,7 @@ export default {
|
|
|
12
12
|
content: [String, Number],
|
|
13
13
|
disabled: Boolean,
|
|
14
14
|
name: String,
|
|
15
|
+
strict: { type: Boolean, default: () => GlobalConfig.radio.strict },
|
|
15
16
|
size: { type: String, default: () => GlobalConfig.radio.size || GlobalConfig.size }
|
|
16
17
|
},
|
|
17
18
|
inject: {
|
|
@@ -23,6 +24,10 @@ export default {
|
|
|
23
24
|
isDisabled () {
|
|
24
25
|
const { $xeradiogroup } = this
|
|
25
26
|
return this.disabled || ($xeradiogroup && $xeradiogroup.disabled)
|
|
27
|
+
},
|
|
28
|
+
isStrict () {
|
|
29
|
+
const { $xeradiogroup } = this
|
|
30
|
+
return $xeradiogroup ? $xeradiogroup.strict : this.strict
|
|
26
31
|
}
|
|
27
32
|
},
|
|
28
33
|
render (h) {
|
|
@@ -49,17 +54,8 @@ export default {
|
|
|
49
54
|
checked: $xeradiogroup ? $xeradiogroup.value === label : value === label
|
|
50
55
|
},
|
|
51
56
|
on: {
|
|
52
|
-
change:
|
|
53
|
-
|
|
54
|
-
const params = { label, $event: evnt }
|
|
55
|
-
if ($xeradiogroup) {
|
|
56
|
-
$xeradiogroup.handleChecked(params)
|
|
57
|
-
} else {
|
|
58
|
-
this.$emit('input', label)
|
|
59
|
-
this.$emit('change', params)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
57
|
+
change: this.changeEvent,
|
|
58
|
+
click: this.clickEvent
|
|
63
59
|
}
|
|
64
60
|
}),
|
|
65
61
|
h('span', {
|
|
@@ -71,15 +67,27 @@ export default {
|
|
|
71
67
|
])
|
|
72
68
|
},
|
|
73
69
|
methods: {
|
|
70
|
+
handleValue (label, evnt) {
|
|
71
|
+
const { $xeradiogroup } = this
|
|
72
|
+
const params = { label, $event: evnt }
|
|
73
|
+
if ($xeradiogroup) {
|
|
74
|
+
$xeradiogroup.handleChecked(params)
|
|
75
|
+
} else {
|
|
76
|
+
this.$emit('input', label)
|
|
77
|
+
this.$emit('change', params)
|
|
78
|
+
}
|
|
79
|
+
},
|
|
74
80
|
changeEvent (evnt) {
|
|
75
|
-
const {
|
|
81
|
+
const { isDisabled } = this
|
|
76
82
|
if (!isDisabled) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
this.handleValue(this.label, evnt)
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
clickEvent (evnt) {
|
|
87
|
+
const { $xeradiogroup, isDisabled, isStrict } = this
|
|
88
|
+
if (!isDisabled && !isStrict) {
|
|
89
|
+
if (this.label === ($xeradiogroup ? $xeradiogroup.value : this.value)) {
|
|
90
|
+
this.handleValue(null, evnt)
|
|
83
91
|
}
|
|
84
92
|
}
|
|
85
93
|
}
|
|
@@ -606,7 +606,7 @@ const Methods = {
|
|
|
606
606
|
}
|
|
607
607
|
XEUtils.eachTree(rows, (childRow, index, items, path, parent, nodes) => {
|
|
608
608
|
const rowid = getRowid(this, childRow)
|
|
609
|
-
const rest = { row: childRow, rowid, seq: -1, index
|
|
609
|
+
const rest = { row: childRow, rowid, seq: -1, index, _index: -1, $index: -1, items, parent, level: parentLevel + nodes.length }
|
|
610
610
|
fullDataRowIdData[rowid] = rest
|
|
611
611
|
fullDataRowMap.set(childRow, rest)
|
|
612
612
|
fullAllDataRowIdData[rowid] = rest
|
|
@@ -616,6 +616,7 @@ const Methods = {
|
|
|
616
616
|
if (transform) {
|
|
617
617
|
row[mapChildren] = rows
|
|
618
618
|
}
|
|
619
|
+
this.updateAfterDataIndex()
|
|
619
620
|
return rows
|
|
620
621
|
})
|
|
621
622
|
},
|
|
@@ -1250,7 +1251,7 @@ const Methods = {
|
|
|
1250
1251
|
fullAllDataRowIdData[rowid] = rest
|
|
1251
1252
|
fullDataRowIdData[rowid] = rest
|
|
1252
1253
|
}
|
|
1253
|
-
}, { children: treeOpts.mapChildren })
|
|
1254
|
+
}, { children: treeOpts.transform ? treeOpts.mapChildren : treeOpts.children })
|
|
1254
1255
|
} else {
|
|
1255
1256
|
afterFullData.forEach((row, index) => {
|
|
1256
1257
|
const rowid = getRowid(this, row)
|
|
@@ -1267,6 +1268,24 @@ const Methods = {
|
|
|
1267
1268
|
})
|
|
1268
1269
|
}
|
|
1269
1270
|
},
|
|
1271
|
+
/**
|
|
1272
|
+
* 只对 tree-config 有效,获取行的父级
|
|
1273
|
+
*/
|
|
1274
|
+
getParentRow (rowOrRowid) {
|
|
1275
|
+
const { treeConfig, fullDataRowIdData } = this
|
|
1276
|
+
if (rowOrRowid && treeConfig) {
|
|
1277
|
+
let rowid
|
|
1278
|
+
if (XEUtils.isString(rowOrRowid)) {
|
|
1279
|
+
rowid = rowOrRowid
|
|
1280
|
+
} else {
|
|
1281
|
+
rowid = getRowid(this, rowOrRowid)
|
|
1282
|
+
}
|
|
1283
|
+
if (rowid) {
|
|
1284
|
+
return fullDataRowIdData[rowid] ? fullDataRowIdData[rowid].parent : null
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
return null
|
|
1288
|
+
},
|
|
1270
1289
|
/**
|
|
1271
1290
|
* 根据行的唯一主键获取行
|
|
1272
1291
|
* @param {String/Number} rowid 行主键
|
|
@@ -292,7 +292,16 @@ export default {
|
|
|
292
292
|
// transfer: false
|
|
293
293
|
},
|
|
294
294
|
radio: {
|
|
295
|
-
// size: null
|
|
295
|
+
// size: null,
|
|
296
|
+
strict: true
|
|
297
|
+
},
|
|
298
|
+
radioButton: {
|
|
299
|
+
// size: null,
|
|
300
|
+
strict: true
|
|
301
|
+
},
|
|
302
|
+
radioGroup: {
|
|
303
|
+
// size: null,
|
|
304
|
+
strict: true
|
|
296
305
|
},
|
|
297
306
|
checkbox: {
|
|
298
307
|
// size: null
|