vxe-pc-ui 3.15.0 → 3.15.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/es/cascader/src/cascader.js +91 -10
- package/es/date-panel/src/util.js +12 -0
- package/es/date-picker/src/date-picker.js +81 -10
- package/es/date-range-picker/src/date-range-picker.js +20 -8
- package/es/form/render/index.js +28 -14
- package/es/form/style.css +4 -2
- package/es/form/style.min.css +1 -1
- package/es/number-input/src/number-input.js +2 -3
- package/es/splitter/src/splitter.js +6 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tree-select/src/tree-select.js +14 -2
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-form/style.css +4 -2
- package/es/vxe-form/style.min.css +1 -1
- package/lib/cascader/src/cascader.js +96 -12
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/date-panel/src/util.js +13 -0
- package/lib/date-panel/src/util.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +79 -9
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +18 -8
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/form/render/index.js +31 -14
- package/lib/form/render/index.min.js +1 -1
- package/lib/form/style/style.css +4 -2
- package/lib/form/style/style.min.css +1 -1
- package/lib/index.umd.js +264 -51
- package/lib/index.umd.min.js +1 -1
- package/lib/number-input/src/number-input.js +2 -3
- package/lib/splitter/src/splitter.js +6 -1
- package/lib/splitter/src/splitter.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tree-select/src/tree-select.js +18 -2
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-form/style/style.css +4 -2
- package/lib/vxe-form/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/cascader/src/cascader.ts +93 -10
- package/packages/date-panel/src/util.ts +13 -0
- package/packages/date-picker/src/date-picker.ts +82 -10
- package/packages/date-range-picker/src/date-range-picker.ts +18 -8
- package/packages/form/render/index.ts +28 -14
- package/packages/number-input/src/number-input.ts +2 -6
- package/packages/splitter/src/splitter.ts +6 -1
- package/packages/tree-select/src/tree-select.ts +14 -2
- package/styles/components/form.scss +4 -2
- package/types/components/cascader.d.ts +6 -2
- package/types/components/date-picker.d.ts +18 -0
- package/types/components/date-range-picker.d.ts +4 -0
- package/types/components/splitter.d.ts +1 -0
- package/types/components/table.d.ts +33 -4
- package/types/components/tree-select.d.ts +20 -1
- /package/es/icon/{iconfont.1781659223842.ttf → iconfont.1781753586592.ttf} +0 -0
- /package/es/icon/{iconfont.1781659223842.woff → iconfont.1781753586592.woff} +0 -0
- /package/es/icon/{iconfont.1781659223842.woff2 → iconfont.1781753586592.woff2} +0 -0
- /package/es/{iconfont.1781659223842.ttf → iconfont.1781753586592.ttf} +0 -0
- /package/es/{iconfont.1781659223842.woff → iconfont.1781753586592.woff} +0 -0
- /package/es/{iconfont.1781659223842.woff2 → iconfont.1781753586592.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1781659223842.ttf → iconfont.1781753586592.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1781659223842.woff → iconfont.1781753586592.woff} +0 -0
- /package/lib/icon/style/{iconfont.1781659223842.woff2 → iconfont.1781753586592.woff2} +0 -0
- /package/lib/{iconfont.1781659223842.ttf → iconfont.1781753586592.ttf} +0 -0
- /package/lib/{iconfont.1781659223842.woff → iconfont.1781753586592.woff} +0 -0
- /package/lib/{iconfont.1781659223842.woff2 → iconfont.1781753586592.woff2} +0 -0
|
@@ -5,7 +5,7 @@ import { getConfig, getIcon, getI18n, commands, createEvent, globalEvents, GLOBA
|
|
|
5
5
|
import { getFuncText, getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils'
|
|
6
6
|
import { updatePanelPlacement, getEventTargetNode } from '../../ui/src/dom'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
8
|
-
import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, hasDateValueType, hasTimestampValueType } from '../../date-panel/src/util'
|
|
8
|
+
import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, handleInputFormat, hasDateValueType, hasTimestampValueType } from '../../date-panel/src/util'
|
|
9
9
|
import { errLog } from '../../ui/src/log'
|
|
10
10
|
import VxeDatePanelComponent from '../../date-panel/src/date-panel'
|
|
11
11
|
import VxeButtonComponent from '../../button/src/button'
|
|
@@ -84,6 +84,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
84
84
|
labelFormat: String as PropType<VxeDatePickerPropTypes.LabelFormat>,
|
|
85
85
|
valueFormat: String as PropType<VxeDatePickerPropTypes.ValueFormat>,
|
|
86
86
|
timeFormat: String as PropType<VxeDatePickerPropTypes.TimeFormat>,
|
|
87
|
+
inputFormat: String as PropType<VxeDatePickerPropTypes.InputFormat>,
|
|
87
88
|
editable: {
|
|
88
89
|
type: Boolean as PropType<VxeDatePickerPropTypes.Editable>,
|
|
89
90
|
default: true
|
|
@@ -114,6 +115,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
114
115
|
type: Boolean as PropType<VxeDatePickerPropTypes.AutoClose>,
|
|
115
116
|
default: () => getConfig().datePicker.autoClose
|
|
116
117
|
},
|
|
118
|
+
controlConfig: Object as PropType<VxeDatePickerPropTypes.ControlConfig>,
|
|
117
119
|
|
|
118
120
|
prefixIcon: String as PropType<VxeDatePickerPropTypes.PrefixIcon>,
|
|
119
121
|
suffixIcon: String as PropType<VxeDatePickerPropTypes.SuffixIcon>,
|
|
@@ -171,7 +173,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
171
173
|
}
|
|
172
174
|
|
|
173
175
|
const internalData: DatePickerInternalData = {
|
|
174
|
-
hpTimeout: undefined
|
|
176
|
+
// hpTimeout: undefined,
|
|
177
|
+
parseInputKayMaps: {}
|
|
175
178
|
}
|
|
176
179
|
|
|
177
180
|
return {
|
|
@@ -336,6 +339,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
336
339
|
const { type, valueFormat } = props
|
|
337
340
|
return handleValueFormat(type, valueFormat)
|
|
338
341
|
},
|
|
342
|
+
computeDateInputFormat () {
|
|
343
|
+
const $xeDatePicker = this
|
|
344
|
+
const props = $xeDatePicker
|
|
345
|
+
|
|
346
|
+
const { type, inputFormat } = props
|
|
347
|
+
return handleInputFormat(type, inputFormat)
|
|
348
|
+
},
|
|
339
349
|
computeFirstDayOfWeek () {
|
|
340
350
|
const $xeDatePicker = this
|
|
341
351
|
const props = $xeDatePicker
|
|
@@ -362,6 +372,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
362
372
|
})
|
|
363
373
|
return dateObj.label
|
|
364
374
|
}).join(', ')
|
|
375
|
+
},
|
|
376
|
+
computeControlOpts () {
|
|
377
|
+
const $xeDatePicker = this
|
|
378
|
+
const props = $xeDatePicker
|
|
379
|
+
|
|
380
|
+
return Object.assign({}, getConfig().datePicker.controlConfig, props.controlConfig)
|
|
365
381
|
}
|
|
366
382
|
},
|
|
367
383
|
methods: {
|
|
@@ -474,6 +490,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
474
490
|
reactData.isActivated = true
|
|
475
491
|
if (!trigger || trigger === 'default') {
|
|
476
492
|
$xeDatePicker.datePickerOpenEvent(evnt)
|
|
493
|
+
} else if (trigger === 'icon') {
|
|
494
|
+
$xeDatePicker.hidePanel()
|
|
477
495
|
}
|
|
478
496
|
$xeDatePicker.triggerEvent(evnt)
|
|
479
497
|
},
|
|
@@ -520,6 +538,36 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
520
538
|
$xeDatePicker.dispatchEvent('suffix-click', { value: inputValue }, evnt)
|
|
521
539
|
}
|
|
522
540
|
},
|
|
541
|
+
handleArrowInputDate (evnt: KeyboardEvent, isUpArrow: boolean) {
|
|
542
|
+
const $xeDatePicker = this
|
|
543
|
+
const props = $xeDatePicker
|
|
544
|
+
const reactData = $xeDatePicker.reactData
|
|
545
|
+
const internalData = $xeDatePicker.internalData
|
|
546
|
+
|
|
547
|
+
const { multiple } = props
|
|
548
|
+
if (multiple) {
|
|
549
|
+
return
|
|
550
|
+
}
|
|
551
|
+
const { inputValue } = reactData
|
|
552
|
+
if (!inputValue) {
|
|
553
|
+
return
|
|
554
|
+
}
|
|
555
|
+
const targetElem = $xeDatePicker.$refs.refInputTarget as HTMLInputElement
|
|
556
|
+
if (!targetElem) {
|
|
557
|
+
return
|
|
558
|
+
}
|
|
559
|
+
const { parseInputKayMaps } = internalData
|
|
560
|
+
const inputFormat = $xeDatePicker.computeDateInputFormat
|
|
561
|
+
const selectionStart = targetElem.selectionStart || 0
|
|
562
|
+
let selectKey = inputFormat[selectionStart]
|
|
563
|
+
if (!parseInputKayMaps[selectKey]) {
|
|
564
|
+
selectKey = inputFormat[selectionStart - 1]
|
|
565
|
+
}
|
|
566
|
+
const inputPaesrFn = parseInputKayMaps[selectKey]
|
|
567
|
+
if (inputPaesrFn) {
|
|
568
|
+
inputPaesrFn(evnt, targetElem, isUpArrow)
|
|
569
|
+
}
|
|
570
|
+
},
|
|
523
571
|
blurEvent (evnt: Event & { type: 'blur' }) {
|
|
524
572
|
const $xeDatePicker = this
|
|
525
573
|
const reactData = $xeDatePicker.reactData
|
|
@@ -548,7 +596,15 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
548
596
|
},
|
|
549
597
|
keydownEvent (evnt: KeyboardEvent & { type: 'keydown' }) {
|
|
550
598
|
const $xeDatePicker = this
|
|
599
|
+
const props = $xeDatePicker
|
|
551
600
|
|
|
601
|
+
const { controlConfig } = props
|
|
602
|
+
const controlOpts = $xeDatePicker.computeControlOpts
|
|
603
|
+
const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP)
|
|
604
|
+
const isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN)
|
|
605
|
+
if ((isUpArrow || isDwArrow) && controlOpts.isArrow && (controlConfig || controlOpts.enabled)) {
|
|
606
|
+
$xeDatePicker.handleArrowInputDate(evnt, isUpArrow)
|
|
607
|
+
}
|
|
552
608
|
$xeDatePicker.triggerEvent(evnt)
|
|
553
609
|
},
|
|
554
610
|
keyupEvent (evnt: KeyboardEvent & { type: 'keyup' }) {
|
|
@@ -702,6 +758,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
702
758
|
const { panelIndex } = reactData
|
|
703
759
|
const targetElem = $xeDatePicker.$refs.refInputTarget as HTMLInputElement
|
|
704
760
|
const panelElem = $xeDatePicker.$refs.refInputPanel as HTMLDivElement
|
|
761
|
+
if (!panelElem) {
|
|
762
|
+
return $xeDatePicker.$nextTick()
|
|
763
|
+
}
|
|
705
764
|
const btnTransfer = $xeDatePicker.computeBtnTransfer
|
|
706
765
|
const popupOpts = $xeDatePicker.computePopupOpts
|
|
707
766
|
const handleStyle = () => {
|
|
@@ -729,13 +788,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
729
788
|
const btnTransfer = $xeDatePicker.computeBtnTransfer
|
|
730
789
|
const panelElem = $xeDatePicker.$refs.refInputPanel as HTMLElement
|
|
731
790
|
if (!isDisabled && !visiblePanel) {
|
|
732
|
-
if (!reactData.initialized) {
|
|
791
|
+
if (!reactData.initialized && btnTransfer && panelElem) {
|
|
733
792
|
reactData.initialized = true
|
|
734
|
-
|
|
735
|
-
if (panelElem) {
|
|
736
|
-
document.body.appendChild(panelElem)
|
|
737
|
-
}
|
|
738
|
-
}
|
|
793
|
+
document.body.appendChild(panelElem)
|
|
739
794
|
}
|
|
740
795
|
if (internalData.hpTimeout) {
|
|
741
796
|
clearTimeout(internalData.hpTimeout)
|
|
@@ -763,11 +818,17 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
763
818
|
},
|
|
764
819
|
clickIconEvent (evnt: MouseEvent) {
|
|
765
820
|
const $xeDatePicker = this
|
|
821
|
+
const reactData = $xeDatePicker.reactData
|
|
766
822
|
|
|
823
|
+
const { visiblePanel } = reactData
|
|
767
824
|
const popupOpts = $xeDatePicker.computePopupOpts
|
|
768
825
|
const { trigger } = popupOpts
|
|
769
826
|
if (!trigger || trigger === 'default' || trigger === 'icon') {
|
|
770
|
-
|
|
827
|
+
if (visiblePanel) {
|
|
828
|
+
$xeDatePicker.hidePanel()
|
|
829
|
+
} else {
|
|
830
|
+
$xeDatePicker.datePickerOpenEvent(evnt)
|
|
831
|
+
}
|
|
771
832
|
}
|
|
772
833
|
},
|
|
773
834
|
clickEvent (evnt: Event & { type: 'click' }) {
|
|
@@ -906,6 +967,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
906
967
|
const slots = $xeDatePicker.$scopedSlots
|
|
907
968
|
const reactData = $xeDatePicker.reactData
|
|
908
969
|
|
|
970
|
+
const popupOpts = $xeDatePicker.computePopupOpts
|
|
971
|
+
if (popupOpts.enabled === false) {
|
|
972
|
+
return renderEmptyElement($xeDatePicker)
|
|
973
|
+
}
|
|
909
974
|
const { type, multiple, showClearButton, showConfirmButton } = props
|
|
910
975
|
const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle, inputValue } = reactData
|
|
911
976
|
const vSize = $xeDatePicker.computeSize
|
|
@@ -915,7 +980,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
915
980
|
const isDateTimeType = $xeDatePicker.computeIsDateTimeType
|
|
916
981
|
const shortcutList = $xeDatePicker.computeShortcutList
|
|
917
982
|
const timeOpts = $xeDatePicker.computeTimeOpts
|
|
918
|
-
const popupOpts = $xeDatePicker.computePopupOpts
|
|
919
983
|
const { position } = shortcutOpts
|
|
920
984
|
const headerSlot = slots.header
|
|
921
985
|
const footerSlot = slots.footer
|
|
@@ -1230,7 +1294,15 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
1230
1294
|
},
|
|
1231
1295
|
created () {
|
|
1232
1296
|
const $xeDatePicker = this
|
|
1297
|
+
const internalData = $xeDatePicker.internalData
|
|
1233
1298
|
|
|
1299
|
+
const { parseInputKayMaps } = internalData
|
|
1300
|
+
const inputKeys = ['y', 'M', 'd', 'H', 'm', 'n']
|
|
1301
|
+
inputKeys.forEach(key => {
|
|
1302
|
+
parseInputKayMaps[key] = (evnt: KeyboardEvent) => {
|
|
1303
|
+
evnt.preventDefault()
|
|
1304
|
+
}
|
|
1305
|
+
})
|
|
1234
1306
|
$xeDatePicker.updateModelValue()
|
|
1235
1307
|
globalEvents.on($xeDatePicker, 'mousewheel', $xeDatePicker.handleGlobalMousewheelEvent)
|
|
1236
1308
|
globalEvents.on($xeDatePicker, 'mousedown', $xeDatePicker.handleGlobalMousedownEvent)
|
|
@@ -591,6 +591,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
591
591
|
reactData.isActivated = true
|
|
592
592
|
if (!trigger || trigger === 'default') {
|
|
593
593
|
$xeDateRangePicker.dateRangePickerOpenEvent(evnt)
|
|
594
|
+
} else if (trigger === 'icon') {
|
|
595
|
+
$xeDateRangePicker.hidePanel()
|
|
594
596
|
}
|
|
595
597
|
$xeDateRangePicker.triggerEvent(evnt)
|
|
596
598
|
},
|
|
@@ -966,6 +968,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
966
968
|
const { panelIndex } = reactData
|
|
967
969
|
const targetElem = $xeDateRangePicker.$refs.refInputTarget as HTMLInputElement
|
|
968
970
|
const panelElem = $xeDateRangePicker.$refs.refInputPanel as HTMLDivElement
|
|
971
|
+
if (!panelElem) {
|
|
972
|
+
return $xeDateRangePicker.$nextTick()
|
|
973
|
+
}
|
|
969
974
|
const btnTransfer = $xeDateRangePicker.computeBtnTransfer
|
|
970
975
|
const popupOpts = $xeDateRangePicker.computePopupOpts
|
|
971
976
|
const handleStyle = () => {
|
|
@@ -993,13 +998,9 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
993
998
|
const btnTransfer = $xeDateRangePicker.computeBtnTransfer
|
|
994
999
|
const panelElem = $xeDateRangePicker.$refs.refInputPanel as HTMLElement
|
|
995
1000
|
if (!isDisabled && !visiblePanel) {
|
|
996
|
-
if (!reactData.initialized) {
|
|
1001
|
+
if (!reactData.initialized && btnTransfer && panelElem) {
|
|
997
1002
|
reactData.initialized = true
|
|
998
|
-
|
|
999
|
-
if (panelElem) {
|
|
1000
|
-
document.body.appendChild(panelElem)
|
|
1001
|
-
}
|
|
1002
|
-
}
|
|
1003
|
+
document.body.appendChild(panelElem)
|
|
1003
1004
|
}
|
|
1004
1005
|
if (internalData.hpTimeout) {
|
|
1005
1006
|
clearTimeout(internalData.hpTimeout)
|
|
@@ -1028,11 +1029,17 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
1028
1029
|
},
|
|
1029
1030
|
clickIconEvent (evnt: MouseEvent) {
|
|
1030
1031
|
const $xeDateRangePicker = this
|
|
1032
|
+
const reactData = $xeDateRangePicker.reactData
|
|
1031
1033
|
|
|
1034
|
+
const { visiblePanel } = reactData
|
|
1032
1035
|
const popupOpts = $xeDateRangePicker.computePopupOpts
|
|
1033
1036
|
const { trigger } = popupOpts
|
|
1034
1037
|
if (!trigger || trigger === 'default' || trigger === 'icon') {
|
|
1035
|
-
|
|
1038
|
+
if (visiblePanel) {
|
|
1039
|
+
$xeDateRangePicker.hidePanel()
|
|
1040
|
+
} else {
|
|
1041
|
+
$xeDateRangePicker.dateRangePickerOpenEvent(evnt)
|
|
1042
|
+
}
|
|
1036
1043
|
}
|
|
1037
1044
|
},
|
|
1038
1045
|
clickEvent (evnt: Event & { type: 'click' }) {
|
|
@@ -1182,6 +1189,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
1182
1189
|
const slots = $xeDateRangePicker.$scopedSlots
|
|
1183
1190
|
const reactData = $xeDateRangePicker.reactData
|
|
1184
1191
|
|
|
1192
|
+
const popupOpts = $xeDateRangePicker.computePopupOpts
|
|
1193
|
+
if (popupOpts.enabled === false) {
|
|
1194
|
+
return renderEmptyElement($xeDateRangePicker)
|
|
1195
|
+
}
|
|
1185
1196
|
const { type, separator, autoClose, showConfirmButton, showClearButton } = props
|
|
1186
1197
|
const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle, startValue, endValue } = reactData
|
|
1187
1198
|
const vSize = $xeDateRangePicker.computeSize
|
|
@@ -1194,7 +1205,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
1194
1205
|
const defaultDates = $xeDateRangePicker.computeDefaultDates
|
|
1195
1206
|
const defaultTimes = $xeDateRangePicker.computeDefaultTimes
|
|
1196
1207
|
const timeOpts = $xeDateRangePicker.computeTimeOpts
|
|
1197
|
-
const popupOpts = $xeDateRangePicker.computePopupOpts
|
|
1198
1208
|
const { startLabel, endLabel } = panelLabelObj
|
|
1199
1209
|
const { position } = shortcutOpts
|
|
1200
1210
|
const headerSlot = slots.header
|
|
@@ -344,15 +344,15 @@ function oldFormItemRadioAndCheckboxRender (h: CreateElement, renderOpts: VxeGlo
|
|
|
344
344
|
*/
|
|
345
345
|
renderer.mixin({
|
|
346
346
|
input: {
|
|
347
|
-
formItemAutoFocus:
|
|
347
|
+
formItemAutoFocus: true,
|
|
348
348
|
renderFormItemContent: nativeItemRender
|
|
349
349
|
},
|
|
350
350
|
textarea: {
|
|
351
|
-
formItemAutoFocus:
|
|
351
|
+
formItemAutoFocus: true,
|
|
352
352
|
renderFormItemContent: nativeItemRender
|
|
353
353
|
},
|
|
354
354
|
select: {
|
|
355
|
-
formItemAutoFocus:
|
|
355
|
+
formItemAutoFocus: true,
|
|
356
356
|
renderFormItemContent (h: CreateElement, renderOpts: VxeGlobalRendererHandles.RenderFormItemContentOptions, params: VxeGlobalRendererHandles.RenderFormItemContentParams) {
|
|
357
357
|
return [
|
|
358
358
|
h('select', {
|
|
@@ -367,27 +367,27 @@ renderer.mixin({
|
|
|
367
367
|
}
|
|
368
368
|
},
|
|
369
369
|
VxeInput: {
|
|
370
|
-
formItemAutoFocus:
|
|
370
|
+
formItemAutoFocus: true,
|
|
371
371
|
renderFormItemContent: defaultItemRender
|
|
372
372
|
},
|
|
373
373
|
VxeNumberInput: {
|
|
374
|
-
formItemAutoFocus:
|
|
374
|
+
formItemAutoFocus: true,
|
|
375
375
|
renderFormItemContent: defaultItemRender
|
|
376
376
|
},
|
|
377
377
|
VxePasswordInput: {
|
|
378
|
-
formItemAutoFocus:
|
|
378
|
+
formItemAutoFocus: true,
|
|
379
379
|
renderFormItemContent: defaultItemRender
|
|
380
380
|
},
|
|
381
381
|
VxeTextarea: {
|
|
382
|
-
formItemAutoFocus:
|
|
382
|
+
formItemAutoFocus: true,
|
|
383
383
|
renderFormItemContent: defaultItemRender
|
|
384
384
|
},
|
|
385
385
|
VxeDatePicker: {
|
|
386
|
-
formItemAutoFocus:
|
|
386
|
+
formItemAutoFocus: true,
|
|
387
387
|
renderFormItemContent: defaultItemRender
|
|
388
388
|
},
|
|
389
389
|
VxeDateRangePicker: {
|
|
390
|
-
formItemAutoFocus:
|
|
390
|
+
formItemAutoFocus: true,
|
|
391
391
|
renderFormItemContent (h, renderOpts, params) {
|
|
392
392
|
const { startField, endField } = renderOpts
|
|
393
393
|
const { $form, data, field } = params
|
|
@@ -449,7 +449,7 @@ renderer.mixin({
|
|
|
449
449
|
}
|
|
450
450
|
},
|
|
451
451
|
VxeSelect: {
|
|
452
|
-
formItemAutoFocus:
|
|
452
|
+
formItemAutoFocus: true,
|
|
453
453
|
renderFormItemContent (h: CreateElement, renderOpts, params) {
|
|
454
454
|
const { data, field } = params
|
|
455
455
|
const { options, optionProps, optionGroups, optionGroupProps } = renderOpts
|
|
@@ -463,7 +463,21 @@ renderer.mixin({
|
|
|
463
463
|
}
|
|
464
464
|
},
|
|
465
465
|
VxeTreeSelect: {
|
|
466
|
-
formItemAutoFocus:
|
|
466
|
+
formItemAutoFocus: true,
|
|
467
|
+
renderFormItemContent (h: CreateElement, renderOpts: VxeGlobalRendererHandles.RenderFormItemContentOptions, params: VxeGlobalRendererHandles.RenderFormItemContentParams) {
|
|
468
|
+
const { data, field } = params
|
|
469
|
+
const { options, optionProps } = renderOpts
|
|
470
|
+
const itemValue = XEUtils.get(data, field)
|
|
471
|
+
return [
|
|
472
|
+
h(getDefaultComponent(renderOpts), {
|
|
473
|
+
props: getComponentFormItemProps(renderOpts, params, itemValue, { options, optionProps }),
|
|
474
|
+
on: getItemOns(renderOpts, params)
|
|
475
|
+
})
|
|
476
|
+
]
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
VxeCascader: {
|
|
480
|
+
formItemAutoFocus: true,
|
|
467
481
|
renderFormItemContent (h: CreateElement, renderOpts: VxeGlobalRendererHandles.RenderFormItemContentOptions, params: VxeGlobalRendererHandles.RenderFormItemContentParams) {
|
|
468
482
|
const { data, field } = params
|
|
469
483
|
const { options, optionProps } = renderOpts
|
|
@@ -477,7 +491,7 @@ renderer.mixin({
|
|
|
477
491
|
}
|
|
478
492
|
},
|
|
479
493
|
VxeTableSelect: {
|
|
480
|
-
formItemAutoFocus:
|
|
494
|
+
formItemAutoFocus: true,
|
|
481
495
|
renderFormItemContent (h: CreateElement, renderOpts: VxeGlobalRendererHandles.RenderFormItemContentOptions, params: VxeGlobalRendererHandles.RenderFormItemContentParams) {
|
|
482
496
|
const { data, field } = params
|
|
483
497
|
const { options, optionProps } = renderOpts
|
|
@@ -491,7 +505,7 @@ renderer.mixin({
|
|
|
491
505
|
}
|
|
492
506
|
},
|
|
493
507
|
VxeColorPicker: {
|
|
494
|
-
formItemAutoFocus:
|
|
508
|
+
formItemAutoFocus: true,
|
|
495
509
|
renderFormItemContent (h: CreateElement, renderOpts: VxeGlobalRendererHandles.RenderFormItemContentOptions, params: VxeGlobalRendererHandles.RenderFormItemContentParams) {
|
|
496
510
|
const { data, field } = params
|
|
497
511
|
const { options } = renderOpts
|
|
@@ -505,7 +519,7 @@ renderer.mixin({
|
|
|
505
519
|
}
|
|
506
520
|
},
|
|
507
521
|
VxeIconPicker: {
|
|
508
|
-
formItemAutoFocus:
|
|
522
|
+
formItemAutoFocus: true,
|
|
509
523
|
renderFormItemContent (h: CreateElement, renderOpts: VxeGlobalRendererHandles.RenderFormItemContentOptions, params: VxeGlobalRendererHandles.RenderFormItemContentParams) {
|
|
510
524
|
const { data, field } = params
|
|
511
525
|
const { options } = renderOpts
|
|
@@ -64,8 +64,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
64
64
|
type: String as PropType<VxeNumberInputPropTypes.Size>,
|
|
65
65
|
default: () => getConfig().numberInput.size || getConfig().size
|
|
66
66
|
},
|
|
67
|
-
|
|
68
|
-
// number、integer、float
|
|
69
67
|
min: {
|
|
70
68
|
type: [String, Number] as PropType<VxeNumberInputPropTypes.Min>,
|
|
71
69
|
default: null
|
|
@@ -88,13 +86,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
88
86
|
default: () => getConfig().numberInput.currencySymbol
|
|
89
87
|
},
|
|
90
88
|
controlConfig: Object as PropType<VxeNumberInputPropTypes.ControlConfig>,
|
|
91
|
-
|
|
92
|
-
// float
|
|
89
|
+
// number、float、amount
|
|
93
90
|
roundingMode: {
|
|
94
91
|
type: String as PropType<VxeNumberInputPropTypes.RoundingMode>,
|
|
95
92
|
default: () => getConfig().numberInput.roundingMode
|
|
96
93
|
},
|
|
97
|
-
// float
|
|
94
|
+
// float、amount
|
|
98
95
|
digits: {
|
|
99
96
|
type: [String, Number] as PropType<VxeNumberInputPropTypes.Digits>,
|
|
100
97
|
default: null
|
|
@@ -107,7 +104,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
107
104
|
type: Boolean as PropType<VxeNumberInputPropTypes.Editable>,
|
|
108
105
|
default: true
|
|
109
106
|
},
|
|
110
|
-
|
|
111
107
|
plusIcon: String as PropType<VxeNumberInputPropTypes.PlusIcon>,
|
|
112
108
|
minusIcon: String as PropType<VxeNumberInputPropTypes.MinusIcon>,
|
|
113
109
|
prefixIcon: String as PropType<VxeNumberInputPropTypes.PrefixIcon>,
|
|
@@ -49,7 +49,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
49
49
|
staticItems: [],
|
|
50
50
|
itemList: [],
|
|
51
51
|
barWidth: 0,
|
|
52
|
-
barHeight: 0
|
|
52
|
+
barHeight: 0,
|
|
53
|
+
resizeFlag: 0
|
|
53
54
|
}
|
|
54
55
|
const internalData: SplitterInternalData = {
|
|
55
56
|
wrapperWidth: 0,
|
|
@@ -596,6 +597,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
596
597
|
document.onmousemove = (evnt) => {
|
|
597
598
|
evnt.preventDefault()
|
|
598
599
|
handleDrag(evnt)
|
|
600
|
+
reactData.resizeFlag++
|
|
599
601
|
}
|
|
600
602
|
document.onmouseup = (evnt) => {
|
|
601
603
|
document.onmousemove = null
|
|
@@ -607,6 +609,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
607
609
|
removeClass(el, 'is--drag')
|
|
608
610
|
$xeSplitter.dispatchEvent('resize-end', { prevItem, nextItem, offsetHeight: targetOffsetHeight, offsetWidth: targetOffsetWidth }, evnt)
|
|
609
611
|
$xeSplitter.recalculate()
|
|
612
|
+
reactData.resizeFlag++
|
|
610
613
|
}
|
|
611
614
|
|
|
612
615
|
if (rsSplitterLineEl) {
|
|
@@ -620,6 +623,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
620
623
|
handleItemActionEvent (evnt: MouseEvent | null, prevItem: VxeSplitterDefines.PaneConfig, nextItem: VxeSplitterDefines.PaneConfig, isNext: boolean) {
|
|
621
624
|
const $xeSplitter = this
|
|
622
625
|
const props = $xeSplitter
|
|
626
|
+
const reactData = $xeSplitter.reactData
|
|
623
627
|
|
|
624
628
|
const { vertical } = props
|
|
625
629
|
let expanded = false
|
|
@@ -659,6 +663,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
659
663
|
$xeSplitter.dispatchEvent('toggle-expand', { prevItem, nextItem, expanded, item }, evnt)
|
|
660
664
|
}
|
|
661
665
|
$xeSplitter.recalculate()
|
|
666
|
+
reactData.resizeFlag++
|
|
662
667
|
},
|
|
663
668
|
handlePrevActionDblclickEvent (evnt: MouseEvent) {
|
|
664
669
|
const $xeSplitter = this
|
|
@@ -105,6 +105,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
105
105
|
},
|
|
106
106
|
remote: Boolean as PropType<VxeTreeSelectPropTypes.Remote>,
|
|
107
107
|
remoteConfig: Function as PropType<VxeTreeSelectPropTypes.RemoteConfig>,
|
|
108
|
+
showRadio: {
|
|
109
|
+
type: Boolean as PropType<VxeTreeSelectPropTypes.ShowRadio>,
|
|
110
|
+
default: () => getConfig().treeSelect.showRadio
|
|
111
|
+
},
|
|
112
|
+
showCheckbox: {
|
|
113
|
+
type: Boolean as PropType<VxeTreeSelectPropTypes.ShowCheckbox>,
|
|
114
|
+
default: () => getConfig().treeSelect.showCheckbox
|
|
115
|
+
},
|
|
108
116
|
popupConfig: Object as PropType<VxeTreeSelectPropTypes.PopupConfig>,
|
|
109
117
|
treeConfig: Object as PropType<VxeTreeSelectPropTypes.TreeConfig>,
|
|
110
118
|
menuConfig: Object as PropType<VxeTreeSelectPropTypes.MenuConfig>,
|
|
@@ -277,20 +285,24 @@ export default /* define-vxe-component start */ defineVxeComponent({
|
|
|
277
285
|
},
|
|
278
286
|
computeTreeCheckboxOpts () {
|
|
279
287
|
const $xeTreeSelect = this
|
|
288
|
+
const props = $xeTreeSelect
|
|
280
289
|
|
|
290
|
+
const { showCheckbox } = props
|
|
281
291
|
const treeOpts = $xeTreeSelect.computeTreeOpts as VxeTreeSelectPropTypes.TreeConfig
|
|
282
292
|
return Object.assign({
|
|
283
|
-
showIcon: !!treeOpts.showCheckbox
|
|
293
|
+
showIcon: XEUtils.isBoolean(showCheckbox) ? showCheckbox : !!treeOpts.showCheckbox
|
|
284
294
|
}, treeOpts.checkboxConfig, {
|
|
285
295
|
trigger: 'node'
|
|
286
296
|
})
|
|
287
297
|
},
|
|
288
298
|
computeTreeRadioOpts () {
|
|
289
299
|
const $xeTreeSelect = this
|
|
300
|
+
const props = $xeTreeSelect
|
|
290
301
|
|
|
302
|
+
const { showRadio } = props
|
|
291
303
|
const treeOpts = $xeTreeSelect.computeTreeOpts as VxeTreeSelectPropTypes.TreeConfig
|
|
292
304
|
return Object.assign({
|
|
293
|
-
showIcon: !!treeOpts.showRadio
|
|
305
|
+
showIcon: XEUtils.isBoolean(showRadio) ? showRadio : !!treeOpts.showRadio
|
|
294
306
|
}, treeOpts.radioConfig, {
|
|
295
307
|
trigger: 'node'
|
|
296
308
|
})
|
|
@@ -289,7 +289,8 @@
|
|
|
289
289
|
.vxe-select,
|
|
290
290
|
.vxe-tree-select,
|
|
291
291
|
.vxe-table-select,
|
|
292
|
-
.vxe-ico-picker
|
|
292
|
+
.vxe-ico-picker,
|
|
293
|
+
.vxe-cascader {
|
|
293
294
|
width: 100%;
|
|
294
295
|
}
|
|
295
296
|
}
|
|
@@ -324,7 +325,8 @@
|
|
|
324
325
|
.vxe-default-input,
|
|
325
326
|
.vxe-default-textarea,
|
|
326
327
|
.vxe-default-select,
|
|
327
|
-
.vxe-ico-picker
|
|
328
|
+
.vxe-ico-picker,
|
|
329
|
+
.vxe-cascader {
|
|
328
330
|
border-color: var(--vxe-ui-form-validate-error-color);
|
|
329
331
|
}
|
|
330
332
|
.vxe-input,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core'
|
|
2
|
+
import { VxeListPropTypes } from './list'
|
|
2
3
|
|
|
3
4
|
/* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
|
|
4
5
|
|
|
@@ -79,6 +80,7 @@ export namespace VxeCascaderPropTypes {
|
|
|
79
80
|
disabled?: string
|
|
80
81
|
}
|
|
81
82
|
export type Remote = boolean
|
|
83
|
+
export type ShowRadio = boolean
|
|
82
84
|
export interface RadioConfig<D = any> {
|
|
83
85
|
strict?: boolean
|
|
84
86
|
visibleMode?: 'all' | 'first' | 'last' | '' | null
|
|
@@ -91,9 +93,9 @@ export namespace VxeCascaderPropTypes {
|
|
|
91
93
|
$cascader: VxeCascaderConstructor
|
|
92
94
|
node: D
|
|
93
95
|
}) => boolean
|
|
94
|
-
showIcon?: boolean
|
|
95
96
|
trigger?: '' | 'default' | 'node'
|
|
96
97
|
}
|
|
98
|
+
export type ShowCheckbox = boolean
|
|
97
99
|
export interface CheckboxConfig<D = any> {
|
|
98
100
|
checkStrictly?: boolean
|
|
99
101
|
visibleMode?: 'all' | 'first' | 'last' | '' | null
|
|
@@ -106,7 +108,6 @@ export namespace VxeCascaderPropTypes {
|
|
|
106
108
|
$cascader: VxeCascaderConstructor
|
|
107
109
|
node: D
|
|
108
110
|
}) => boolean
|
|
109
|
-
showIcon?: boolean
|
|
110
111
|
trigger?: '' | 'default' | 'node'
|
|
111
112
|
}
|
|
112
113
|
export interface RemoteConfig {
|
|
@@ -196,7 +197,9 @@ export interface VxeCascaderProps<D = any> {
|
|
|
196
197
|
options?: VxeCascaderPropTypes.Options<D>
|
|
197
198
|
optionProps?: VxeCascaderPropTypes.OptionProps
|
|
198
199
|
remote?: VxeCascaderPropTypes.Remote
|
|
200
|
+
showRadio?: VxeCascaderPropTypes.ShowRadio
|
|
199
201
|
radioConfig?: VxeCascaderPropTypes.RadioConfig
|
|
202
|
+
showCheckbox?: VxeCascaderPropTypes.ShowCheckbox
|
|
200
203
|
checkboxConfig?: VxeCascaderPropTypes.CheckboxConfig
|
|
201
204
|
remoteConfig?: VxeCascaderPropTypes.RemoteConfig
|
|
202
205
|
popupConfig?: VxeCascaderPropTypes.PopupConfig
|
|
@@ -231,6 +234,7 @@ export interface CascaderReactData {
|
|
|
231
234
|
|
|
232
235
|
export interface CascaderInternalData {
|
|
233
236
|
hpTimeout?: undefined | number
|
|
237
|
+
listVirtualYOpts: VxeListPropTypes.VirtualYConfig
|
|
234
238
|
afterTreeList: any[]
|
|
235
239
|
treeFullData: any[]
|
|
236
240
|
afterVisibleList: any[]
|
|
@@ -49,12 +49,23 @@ export namespace VxeDatePickerPropTypes {
|
|
|
49
49
|
export type LabelFormat = string
|
|
50
50
|
export type ValueFormat = string
|
|
51
51
|
export type TimeFormat = string
|
|
52
|
+
export type InputFormat = string
|
|
52
53
|
export type Editable = boolean
|
|
53
54
|
export type FestivalMethod = VxeDatePanelPropTypes.FestivalMethod
|
|
54
55
|
export type DisabledMethod = VxeDatePanelPropTypes.DisabledMethod
|
|
55
56
|
export type AutoClose = boolean
|
|
56
57
|
export type PrefixIcon = string
|
|
57
58
|
export type SuffixIcon = string
|
|
59
|
+
export interface ControlConfig {
|
|
60
|
+
/**
|
|
61
|
+
* 是否启用,支持局部/全局启用
|
|
62
|
+
*/
|
|
63
|
+
enabled?: boolean
|
|
64
|
+
/**
|
|
65
|
+
* 只对 enabled 启用后有效,是否启用方向键操作
|
|
66
|
+
*/
|
|
67
|
+
isArrow?: boolean
|
|
68
|
+
}
|
|
58
69
|
/**
|
|
59
70
|
* 已废弃,请使用 PopupConfig.placement
|
|
60
71
|
* @deprecated
|
|
@@ -71,6 +82,10 @@ export namespace VxeDatePickerPropTypes {
|
|
|
71
82
|
export interface TimeConfig extends VxeDatePanelPropTypes.TimeConfig {}
|
|
72
83
|
|
|
73
84
|
export interface PopupConfig {
|
|
85
|
+
/**
|
|
86
|
+
* 是否启用,支持局部/全局启用
|
|
87
|
+
*/
|
|
88
|
+
enabled?: boolean
|
|
74
89
|
/**
|
|
75
90
|
* 设置弹出面板方向
|
|
76
91
|
*/
|
|
@@ -134,6 +149,7 @@ export interface VxeDatePickerProps {
|
|
|
134
149
|
labelFormat?: VxeDatePickerPropTypes.LabelFormat
|
|
135
150
|
valueFormat?: VxeDatePickerPropTypes.ValueFormat
|
|
136
151
|
timeFormat?: VxeDatePickerPropTypes.TimeFormat
|
|
152
|
+
inputFormat?: VxeDatePickerPropTypes.InputFormat
|
|
137
153
|
editable?: VxeDatePickerPropTypes.Editable
|
|
138
154
|
festivalMethod?: VxeDatePickerPropTypes.FestivalMethod
|
|
139
155
|
disabledMethod?: VxeDatePickerPropTypes.DisabledMethod
|
|
@@ -146,6 +162,7 @@ export interface VxeDatePickerProps {
|
|
|
146
162
|
* 只对 type=date,week,month,quarter,year 有效,选择完日期后自动关闭
|
|
147
163
|
*/
|
|
148
164
|
autoClose?: VxeDatePickerPropTypes.AutoClose
|
|
165
|
+
controlConfig?: VxeDatePickerPropTypes.ControlConfig
|
|
149
166
|
|
|
150
167
|
/**
|
|
151
168
|
* 只对 type=week 有效,选中日期后指定为一周的哪一天
|
|
@@ -187,6 +204,7 @@ export interface DatePickerReactData {
|
|
|
187
204
|
|
|
188
205
|
export interface DatePickerInternalData {
|
|
189
206
|
hpTimeout?: undefined | number
|
|
207
|
+
parseInputKayMaps: Record<string, (evnt: KeyboardEvent, targetElem: HTMLInputElement, isUpArrow: boolean) => void>
|
|
190
208
|
}
|
|
191
209
|
|
|
192
210
|
export interface DatePickerMethods {
|