vxe-pc-ui 3.3.66 → 3.3.68
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/button/src/button-group.js +1 -0
- package/es/button/src/button.js +19 -5
- package/es/button/style.css +4 -3
- package/es/button/style.min.css +1 -1
- package/es/button-group/style.css +8 -2
- package/es/button-group/style.min.css +1 -1
- package/es/date-picker/src/date-picker.js +101 -20
- package/es/date-picker/style.css +37 -12
- package/es/date-picker/style.min.css +1 -1
- package/es/icon/style.css +1 -1
- package/es/image/style.css +4 -0
- package/es/image/style.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +8 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-button/style.css +4 -3
- package/es/vxe-button/style.min.css +1 -1
- package/es/vxe-button-group/style.css +8 -2
- package/es/vxe-button-group/style.min.css +1 -1
- package/es/vxe-date-picker/style.css +37 -12
- package/es/vxe-date-picker/style.min.css +1 -1
- package/es/vxe-image/style.css +4 -0
- package/es/vxe-image/style.min.css +1 -1
- package/lib/button/src/button-group.js +1 -0
- package/lib/button/src/button-group.min.js +1 -1
- package/lib/button/src/button.js +18 -5
- package/lib/button/src/button.min.js +1 -1
- package/lib/button/style/style.css +4 -3
- package/lib/button/style/style.min.css +1 -1
- package/lib/button-group/style/style.css +8 -2
- package/lib/button-group/style/style.min.css +1 -1
- package/lib/date-picker/src/date-picker.js +103 -19
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-picker/style/style.css +37 -12
- package/lib/date-picker/style/style.min.css +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/image/style/style.css +4 -0
- package/lib/image/style/style.min.css +1 -1
- package/lib/index.umd.js +131 -27
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +8 -2
- 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-button/style/style.css +4 -3
- package/lib/vxe-button/style/style.min.css +1 -1
- package/lib/vxe-button-group/style/style.css +8 -2
- package/lib/vxe-button-group/style/style.min.css +1 -1
- package/lib/vxe-date-picker/style/style.css +37 -12
- package/lib/vxe-date-picker/style/style.min.css +1 -1
- package/lib/vxe-image/style/style.css +4 -0
- package/lib/vxe-image/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/button/src/button-group.ts +1 -0
- package/packages/button/src/button.ts +20 -5
- package/packages/date-picker/src/date-picker.ts +104 -21
- package/packages/ui/index.ts +7 -1
- package/styles/components/button-group.scss +14 -2
- package/styles/components/button.scss +7 -5
- package/styles/components/date-picker.scss +33 -11
- package/styles/components/image.scss +2 -0
- package/types/components/button-group.d.ts +3 -1
- package/types/components/button.d.ts +2 -2
- package/types/components/date-picker.d.ts +33 -2
- package/types/components/table.d.ts +24 -1
- /package/es/icon/{iconfont.1735974857067.ttf → iconfont.1736093232006.ttf} +0 -0
- /package/es/icon/{iconfont.1735974857067.woff → iconfont.1736093232006.woff} +0 -0
- /package/es/icon/{iconfont.1735974857067.woff2 → iconfont.1736093232006.woff2} +0 -0
- /package/es/{iconfont.1735974857067.ttf → iconfont.1736093232006.ttf} +0 -0
- /package/es/{iconfont.1735974857067.woff → iconfont.1736093232006.woff} +0 -0
- /package/es/{iconfont.1735974857067.woff2 → iconfont.1736093232006.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1735974857067.ttf → iconfont.1736093232006.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1735974857067.woff → iconfont.1736093232006.woff} +0 -0
- /package/lib/icon/style/{iconfont.1735974857067.woff2 → iconfont.1736093232006.woff2} +0 -0
- /package/lib/{iconfont.1735974857067.ttf → iconfont.1736093232006.ttf} +0 -0
- /package/lib/{iconfont.1735974857067.woff → iconfont.1736093232006.woff} +0 -0
- /package/lib/{iconfont.1735974857067.woff2 → iconfont.1736093232006.woff2} +0 -0
|
@@ -2,12 +2,13 @@ import { CreateElement, PropType, VNode } from 'vue'
|
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
4
|
import { getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, globalMixins, renderEmptyElement } from '../../ui'
|
|
5
|
-
import { getFuncText, getLastZIndex, nextZIndex } from '../../ui/src/utils'
|
|
5
|
+
import { getFuncText, getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils'
|
|
6
6
|
import { getAbsolutePos, getEventTargetNode } from '../../ui/src/dom'
|
|
7
7
|
import { toStringTimeDate, getDateQuarter } from './util'
|
|
8
8
|
import { getSlotVNs } from '../..//ui/src/vn'
|
|
9
|
+
import VxeButtonGroupComponent from '../../button/src/button-group'
|
|
9
10
|
|
|
10
|
-
import type { VxeDatePickerConstructor, DatePickerInternalData, VxeDatePickerEmits, DatePickerReactData, VxeDatePickerPropTypes, VxeComponentStyleType, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeModalConstructor, VxeModalMethods, VxeDatePickerDefines, VxeComponentSizeType, ValueOf } from '../../../types'
|
|
11
|
+
import type { VxeDatePickerConstructor, DatePickerInternalData, VxeDatePickerEmits, DatePickerReactData, VxeDatePickerPropTypes, VxeComponentStyleType, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeModalConstructor, VxeModalMethods, VxeDatePickerDefines, VxeComponentSizeType, ValueOf, VxeButtonGroupDefines } from '../../../types'
|
|
11
12
|
import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
|
|
12
13
|
|
|
13
14
|
export default defineVxeComponent({
|
|
@@ -101,6 +102,8 @@ export default defineVxeComponent({
|
|
|
101
102
|
default: null
|
|
102
103
|
},
|
|
103
104
|
|
|
105
|
+
shortcutConfig: Object as PropType<VxeDatePickerPropTypes.ShortcutConfig>,
|
|
106
|
+
|
|
104
107
|
// 已废弃 startWeek,被 startDay 替换
|
|
105
108
|
startWeek: Number as PropType<VxeDatePickerPropTypes.StartDay>,
|
|
106
109
|
// 已废弃
|
|
@@ -688,6 +691,12 @@ export default defineVxeComponent({
|
|
|
688
691
|
|
|
689
692
|
const { immediate } = props
|
|
690
693
|
return immediate
|
|
694
|
+
},
|
|
695
|
+
computeShortcutOpts () {
|
|
696
|
+
const $xeDatePicker = this
|
|
697
|
+
const props = $xeDatePicker
|
|
698
|
+
|
|
699
|
+
return Object.assign({}, getConfig().datePicker.shortcutConfig, props.shortcutConfig)
|
|
691
700
|
}
|
|
692
701
|
},
|
|
693
702
|
methods: {
|
|
@@ -757,10 +766,16 @@ export default defineVxeComponent({
|
|
|
757
766
|
const $xeDatePicker = this
|
|
758
767
|
const props = $xeDatePicker
|
|
759
768
|
|
|
760
|
-
const { type } = props
|
|
769
|
+
const { type, multiple } = props
|
|
761
770
|
if (type === 'time') {
|
|
762
771
|
return toStringTimeDate(value)
|
|
763
772
|
}
|
|
773
|
+
if (XEUtils.isArray(value)) {
|
|
774
|
+
return XEUtils.toStringDate(value[0], format)
|
|
775
|
+
}
|
|
776
|
+
if (XEUtils.isString(value)) {
|
|
777
|
+
return XEUtils.toStringDate(multiple ? XEUtils.last(value.split(',')) : value, format)
|
|
778
|
+
}
|
|
764
779
|
return XEUtils.toStringDate(value, format)
|
|
765
780
|
},
|
|
766
781
|
triggerEvent (evnt: Event & { type: 'input' | 'change' | 'keydown' | 'keyup' | 'wheel' | 'click' | 'focus' | 'blur' }) {
|
|
@@ -952,7 +967,7 @@ export default defineVxeComponent({
|
|
|
952
967
|
reactData.selectMonth = month
|
|
953
968
|
}
|
|
954
969
|
},
|
|
955
|
-
dateChange (date: Date) {
|
|
970
|
+
dateChange (date: Date, isReload?: boolean) {
|
|
956
971
|
const $xeDatePicker = this
|
|
957
972
|
const props = $xeDatePicker
|
|
958
973
|
const reactData = $xeDatePicker.reactData
|
|
@@ -976,10 +991,9 @@ export default defineVxeComponent({
|
|
|
976
991
|
$xeDatePicker.dateCheckMonth(date)
|
|
977
992
|
if (multiple) {
|
|
978
993
|
// 如果为多选
|
|
979
|
-
const dateMultipleValue = $xeDatePicker.computeDateMultipleValue
|
|
980
994
|
if (isDateTimeType) {
|
|
981
995
|
// 如果是datetime特殊类型
|
|
982
|
-
const dateListValue = [...$xeDatePicker.computeDateListValue]
|
|
996
|
+
const dateListValue = isReload ? [] : [...$xeDatePicker.computeDateListValue]
|
|
983
997
|
const datetimeRest: Date[] = []
|
|
984
998
|
const eqIndex = XEUtils.findIndexOf(dateListValue, val => XEUtils.isDateSame(date, val, 'yyyyMMdd'))
|
|
985
999
|
if (eqIndex === -1) {
|
|
@@ -999,6 +1013,7 @@ export default defineVxeComponent({
|
|
|
999
1013
|
})
|
|
1000
1014
|
$xeDatePicker.handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' })
|
|
1001
1015
|
} else {
|
|
1016
|
+
const dateMultipleValue = isReload ? [] : $xeDatePicker.computeDateMultipleValue
|
|
1002
1017
|
// 如果是日期类型
|
|
1003
1018
|
if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
|
|
1004
1019
|
$xeDatePicker.handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' })
|
|
@@ -1114,9 +1129,24 @@ export default defineVxeComponent({
|
|
|
1114
1129
|
},
|
|
1115
1130
|
dateNowHandle () {
|
|
1116
1131
|
const $xeDatePicker = this
|
|
1132
|
+
const props = $xeDatePicker
|
|
1117
1133
|
const reactData = $xeDatePicker.reactData
|
|
1118
1134
|
|
|
1119
|
-
const
|
|
1135
|
+
const { type } = props
|
|
1136
|
+
const firstDayOfWeek = $xeDatePicker.computeFirstDayOfWeek
|
|
1137
|
+
let currentDate = new Date()
|
|
1138
|
+
switch (type) {
|
|
1139
|
+
case 'week':
|
|
1140
|
+
currentDate = XEUtils.getWhatWeek(currentDate, 0, firstDayOfWeek)
|
|
1141
|
+
break
|
|
1142
|
+
case 'datetime':
|
|
1143
|
+
currentDate = new Date()
|
|
1144
|
+
reactData.datetimePanelValue = new Date()
|
|
1145
|
+
break
|
|
1146
|
+
default:
|
|
1147
|
+
currentDate = XEUtils.getWhatDay(Date.now(), 0, 'first')
|
|
1148
|
+
break
|
|
1149
|
+
}
|
|
1120
1150
|
reactData.currentDate = currentDate
|
|
1121
1151
|
$xeDatePicker.dateMonthHandle(currentDate, 0)
|
|
1122
1152
|
},
|
|
@@ -1172,8 +1202,8 @@ export default defineVxeComponent({
|
|
|
1172
1202
|
const reactData = $xeDatePicker.reactData
|
|
1173
1203
|
|
|
1174
1204
|
$xeDatePicker.dateNowHandle()
|
|
1205
|
+
$xeDatePicker.dateChange(reactData.currentDate, true)
|
|
1175
1206
|
if (!props.multiple) {
|
|
1176
|
-
$xeDatePicker.dateChange(reactData.currentDate)
|
|
1177
1207
|
$xeDatePicker.hidePanel()
|
|
1178
1208
|
}
|
|
1179
1209
|
$xeDatePicker.dispatchEvent('date-today', { type: props.type }, evnt)
|
|
@@ -1483,17 +1513,25 @@ export default defineVxeComponent({
|
|
|
1483
1513
|
offsetMonth = XEUtils.getWhatMonth(offsetMonth, 4)
|
|
1484
1514
|
}
|
|
1485
1515
|
$xeDatePicker.dateMoveMonth(offsetMonth)
|
|
1486
|
-
} else {
|
|
1516
|
+
} else if (datePanelType === 'week') {
|
|
1487
1517
|
let offsetDay = datePanelValue || XEUtils.getWhatDay(Date.now(), 0, 'first')
|
|
1488
1518
|
const firstDayOfWeek = $xeDatePicker.computeFirstDayOfWeek
|
|
1519
|
+
if (isUpArrow) {
|
|
1520
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, -1, firstDayOfWeek)
|
|
1521
|
+
} else if (isDwArrow) {
|
|
1522
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, 1, firstDayOfWeek)
|
|
1523
|
+
}
|
|
1524
|
+
$xeDatePicker.dateMoveDay(offsetDay)
|
|
1525
|
+
} else {
|
|
1526
|
+
let offsetDay = datePanelValue || XEUtils.getWhatDay(Date.now(), 0, 'first')
|
|
1489
1527
|
if (isLeftArrow) {
|
|
1490
1528
|
offsetDay = XEUtils.getWhatDay(offsetDay, -1)
|
|
1491
1529
|
} else if (isUpArrow) {
|
|
1492
|
-
offsetDay = XEUtils.getWhatWeek(offsetDay, -1,
|
|
1530
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, -1, offsetDay.getDay() as VxeDatePickerPropTypes.StartDay)
|
|
1493
1531
|
} else if (isRightArrow) {
|
|
1494
1532
|
offsetDay = XEUtils.getWhatDay(offsetDay, 1)
|
|
1495
1533
|
} else if (isDwArrow) {
|
|
1496
|
-
offsetDay = XEUtils.getWhatWeek(offsetDay, 1,
|
|
1534
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, 1, offsetDay.getDay() as VxeDatePickerPropTypes.StartDay)
|
|
1497
1535
|
}
|
|
1498
1536
|
$xeDatePicker.dateMoveDay(offsetDay)
|
|
1499
1537
|
}
|
|
@@ -1679,6 +1717,24 @@ export default defineVxeComponent({
|
|
|
1679
1717
|
|
|
1680
1718
|
$xeDatePicker.triggerEvent(evnt)
|
|
1681
1719
|
},
|
|
1720
|
+
handleShortcutEvent ({ option, $event }: VxeButtonGroupDefines.ClickEventParams) {
|
|
1721
|
+
const $xeDatePicker = this
|
|
1722
|
+
|
|
1723
|
+
const shortcutOpts = $xeDatePicker.computeShortcutOpts
|
|
1724
|
+
const { autoClose } = shortcutOpts
|
|
1725
|
+
const clickMethod = (option as VxeDatePickerDefines.ShortcutOption).clickMethod || shortcutOpts.clickMethod
|
|
1726
|
+
const shortcutParams = {
|
|
1727
|
+
$datePicker: $xeDatePicker as VxeDatePickerConstructor,
|
|
1728
|
+
option: option as VxeDatePickerDefines.ShortcutOption
|
|
1729
|
+
}
|
|
1730
|
+
if (clickMethod) {
|
|
1731
|
+
clickMethod(shortcutParams)
|
|
1732
|
+
}
|
|
1733
|
+
if (autoClose) {
|
|
1734
|
+
$xeDatePicker.hidePanel()
|
|
1735
|
+
}
|
|
1736
|
+
$xeDatePicker.dispatchEvent('shortcut-click', shortcutParams, $event)
|
|
1737
|
+
},
|
|
1682
1738
|
// 全局事件
|
|
1683
1739
|
handleGlobalMousedownEvent (evnt: Event) {
|
|
1684
1740
|
const $xeDatePicker = this
|
|
@@ -2267,6 +2323,30 @@ export default defineVxeComponent({
|
|
|
2267
2323
|
])
|
|
2268
2324
|
]
|
|
2269
2325
|
},
|
|
2326
|
+
renderShortcutBtn (h: CreateElement, pos: 'top' | 'bottom' | 'left' | 'right' | 'header' | 'footer', isVertical?: boolean) {
|
|
2327
|
+
const $xeDatePicker = this
|
|
2328
|
+
|
|
2329
|
+
const shortcutOpts = $xeDatePicker.computeShortcutOpts
|
|
2330
|
+
const { options, position, align, mode } = shortcutOpts
|
|
2331
|
+
if (isEnableConf(shortcutOpts) && options && options.length && (position || 'left') === pos) {
|
|
2332
|
+
return h('div', {
|
|
2333
|
+
class: `vxe-date-picker--panel-${pos}-wrapper`
|
|
2334
|
+
}, [
|
|
2335
|
+
h(VxeButtonGroupComponent, {
|
|
2336
|
+
props: {
|
|
2337
|
+
options: options,
|
|
2338
|
+
mode,
|
|
2339
|
+
align,
|
|
2340
|
+
vertical: isVertical
|
|
2341
|
+
},
|
|
2342
|
+
on: {
|
|
2343
|
+
click: $xeDatePicker.handleShortcutEvent
|
|
2344
|
+
}
|
|
2345
|
+
})
|
|
2346
|
+
])
|
|
2347
|
+
}
|
|
2348
|
+
return renderEmptyElement($xeDatePicker)
|
|
2349
|
+
},
|
|
2270
2350
|
renderPanel (h: CreateElement) {
|
|
2271
2351
|
const $xeDatePicker = this
|
|
2272
2352
|
const props = $xeDatePicker
|
|
@@ -2277,12 +2357,15 @@ export default defineVxeComponent({
|
|
|
2277
2357
|
const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle } = reactData
|
|
2278
2358
|
const vSize = $xeDatePicker.computeSize
|
|
2279
2359
|
const btnTransfer = $xeDatePicker.computeBtnTransfer
|
|
2360
|
+
const shortcutOpts = $xeDatePicker.computeShortcutOpts
|
|
2361
|
+
const { options, position } = shortcutOpts
|
|
2280
2362
|
const headerSlot = slots.header
|
|
2281
2363
|
const footerSlot = slots.footer
|
|
2282
2364
|
const topSlot = slots.top
|
|
2283
2365
|
const bottomSlot = slots.bottom
|
|
2284
2366
|
const leftSlot = slots.left
|
|
2285
2367
|
const rightSlot = slots.right
|
|
2368
|
+
const hasShortcutBtn = options && options.length
|
|
2286
2369
|
const renders = []
|
|
2287
2370
|
if (type === 'datetime') {
|
|
2288
2371
|
renders.push(
|
|
@@ -2323,10 +2406,10 @@ export default defineVxeComponent({
|
|
|
2323
2406
|
'is--transfer': btnTransfer,
|
|
2324
2407
|
'ani--leave': isAniVisible,
|
|
2325
2408
|
'ani--enter': visiblePanel,
|
|
2326
|
-
'show--top': !!(topSlot || headerSlot),
|
|
2327
|
-
'show--bottom': !!(bottomSlot || footerSlot),
|
|
2328
|
-
'show--left': !!leftSlot,
|
|
2329
|
-
'show--right': !!rightSlot
|
|
2409
|
+
'show--top': !!(topSlot || headerSlot || (hasShortcutBtn && (position === 'top' || position === 'header'))),
|
|
2410
|
+
'show--bottom': !!(bottomSlot || footerSlot || (hasShortcutBtn && (position === 'bottom' || position === 'footer'))),
|
|
2411
|
+
'show--left': !!(leftSlot || (hasShortcutBtn && position === 'left')),
|
|
2412
|
+
'show--right': !!(rightSlot || (hasShortcutBtn && position === 'right'))
|
|
2330
2413
|
}],
|
|
2331
2414
|
attrs: {
|
|
2332
2415
|
placement: panelPlacement
|
|
@@ -2341,7 +2424,7 @@ export default defineVxeComponent({
|
|
|
2341
2424
|
? h('div', {
|
|
2342
2425
|
class: 'vxe-date-picker--panel-top-wrapper'
|
|
2343
2426
|
}, topSlot({}))
|
|
2344
|
-
:
|
|
2427
|
+
: $xeDatePicker.renderShortcutBtn(h, 'top'),
|
|
2345
2428
|
h('div', {
|
|
2346
2429
|
class: 'vxe-date-picker--panel-body-layout-wrapper'
|
|
2347
2430
|
}, [
|
|
@@ -2349,7 +2432,7 @@ export default defineVxeComponent({
|
|
|
2349
2432
|
? h('div', {
|
|
2350
2433
|
class: 'vxe-date-picker--panel-left-wrapper'
|
|
2351
2434
|
}, leftSlot({}))
|
|
2352
|
-
:
|
|
2435
|
+
: $xeDatePicker.renderShortcutBtn(h, 'left', true),
|
|
2353
2436
|
h('div', {
|
|
2354
2437
|
class: 'vxe-date-picker--panel-body-content-wrapper'
|
|
2355
2438
|
}, [
|
|
@@ -2357,7 +2440,7 @@ export default defineVxeComponent({
|
|
|
2357
2440
|
? h('div', {
|
|
2358
2441
|
class: 'vxe-date-picker--panel-header-wrapper'
|
|
2359
2442
|
}, headerSlot({}))
|
|
2360
|
-
:
|
|
2443
|
+
: $xeDatePicker.renderShortcutBtn(h, 'header'),
|
|
2361
2444
|
h('div', {
|
|
2362
2445
|
class: 'vxe-date-picker--panel-body-wrapper'
|
|
2363
2446
|
}, renders),
|
|
@@ -2365,19 +2448,19 @@ export default defineVxeComponent({
|
|
|
2365
2448
|
? h('div', {
|
|
2366
2449
|
class: 'vxe-date-picker--panel-footer-wrapper'
|
|
2367
2450
|
}, footerSlot({}))
|
|
2368
|
-
:
|
|
2451
|
+
: $xeDatePicker.renderShortcutBtn(h, 'footer')
|
|
2369
2452
|
]),
|
|
2370
2453
|
rightSlot
|
|
2371
2454
|
? h('div', {
|
|
2372
2455
|
class: 'vxe-date-picker--panel-right-wrapper'
|
|
2373
2456
|
}, rightSlot({}))
|
|
2374
|
-
:
|
|
2457
|
+
: $xeDatePicker.renderShortcutBtn(h, 'right', true)
|
|
2375
2458
|
]),
|
|
2376
2459
|
bottomSlot
|
|
2377
2460
|
? h('div', {
|
|
2378
2461
|
class: 'vxe-date-picker--panel-bottom-wrapper'
|
|
2379
2462
|
}, bottomSlot({}))
|
|
2380
|
-
:
|
|
2463
|
+
: $xeDatePicker.renderShortcutBtn(h, 'bottom')
|
|
2381
2464
|
])
|
|
2382
2465
|
]
|
|
2383
2466
|
: [])
|
package/packages/ui/index.ts
CHANGED
|
@@ -91,7 +91,13 @@ setConfig({
|
|
|
91
91
|
startDate: new Date(1900, 0, 1),
|
|
92
92
|
endDate: new Date(2100, 0, 1),
|
|
93
93
|
startDay: 1,
|
|
94
|
-
selectDay: 1
|
|
94
|
+
selectDay: 1,
|
|
95
|
+
shortcutConfig: {
|
|
96
|
+
// position: 'left',
|
|
97
|
+
align: 'left',
|
|
98
|
+
mode: 'text',
|
|
99
|
+
autoClose: true
|
|
100
|
+
}
|
|
95
101
|
},
|
|
96
102
|
drawer: {
|
|
97
103
|
// size: null,
|
|
@@ -2,8 +2,20 @@
|
|
|
2
2
|
display: inline-flex;
|
|
3
3
|
&.is--vertical {
|
|
4
4
|
flex-direction: column;
|
|
5
|
-
.vxe-button
|
|
6
|
-
|
|
5
|
+
.vxe-button,
|
|
6
|
+
.vxe-button-wrapper {
|
|
7
|
+
&+.vxe-button-wrapper,
|
|
8
|
+
&+.vxe-button,
|
|
9
|
+
&+.vxe-button--dropdown {
|
|
10
|
+
margin-top: 0.5em;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
.vxe-button--dropdown {
|
|
14
|
+
&+.vxe-button-wrapper,
|
|
15
|
+
&+.vxe-button,
|
|
16
|
+
&+.vxe-button--dropdown {
|
|
17
|
+
margin-top: 0.5em;
|
|
18
|
+
}
|
|
7
19
|
}
|
|
8
20
|
}
|
|
9
21
|
}
|
|
@@ -274,6 +274,13 @@ $btnThemeList: (
|
|
|
274
274
|
margin-left: 0.72em;
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
+
.vxe-button--dropdown {
|
|
278
|
+
&+.vxe-button-wrapper,
|
|
279
|
+
&+.vxe-button.type--button,
|
|
280
|
+
&+.vxe-button--dropdown {
|
|
281
|
+
margin-left: 0.72em;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
277
284
|
.vxe-button--loading-icon,
|
|
278
285
|
.vxe-button--icon {
|
|
279
286
|
min-width: var(--vxe-ui-font-size-default);
|
|
@@ -300,11 +307,6 @@ $btnThemeList: (
|
|
|
300
307
|
.vxe-button--dropdown {
|
|
301
308
|
position: relative;
|
|
302
309
|
outline: 0;
|
|
303
|
-
&+.vxe-button-wrapper,
|
|
304
|
-
&+.vxe-button.type--button,
|
|
305
|
-
&+.vxe-button--dropdown {
|
|
306
|
-
margin-left: 12px;
|
|
307
|
-
}
|
|
308
310
|
& > .vxe-button {
|
|
309
311
|
&.type--button {
|
|
310
312
|
@for $index from 0 to list.length($btnThemeList) {
|
|
@@ -418,6 +418,8 @@
|
|
|
418
418
|
box-shadow: inset 0 -1px 0 0 var(--vxe-ui-base-popup-border-color);
|
|
419
419
|
}
|
|
420
420
|
td {
|
|
421
|
+
border: 1px solid transparent;
|
|
422
|
+
border-radius: 1em;
|
|
421
423
|
&.is--prev,
|
|
422
424
|
&.is--next {
|
|
423
425
|
color: var(--vxe-ui-font-disabled-color);
|
|
@@ -427,7 +429,7 @@
|
|
|
427
429
|
}
|
|
428
430
|
}
|
|
429
431
|
&.is--now {
|
|
430
|
-
|
|
432
|
+
color: var(--vxe-ui-base-popup-border-color);
|
|
431
433
|
&:not(.is--selected) {
|
|
432
434
|
&.is--current {
|
|
433
435
|
color: var(--vxe-ui-font-primary-color);
|
|
@@ -439,14 +441,21 @@
|
|
|
439
441
|
}
|
|
440
442
|
}
|
|
441
443
|
&.is--hover {
|
|
442
|
-
|
|
444
|
+
border-color: var(--vxe-ui-font-primary-color);
|
|
445
|
+
background-color: var(--vxe-ui-font-primary-tinge-color);
|
|
443
446
|
}
|
|
444
447
|
&.is--selected {
|
|
445
448
|
color: var(--vxe-ui-input-date-picker-selected-color);
|
|
446
449
|
background-color: var(--vxe-ui-font-primary-color);
|
|
450
|
+
&.is--hover {
|
|
451
|
+
box-shadow: 0 0px 6px 1px var(--vxe-ui-font-primary-color);
|
|
452
|
+
}
|
|
447
453
|
&.is--prev,
|
|
448
454
|
&.is--next {
|
|
449
|
-
|
|
455
|
+
.vxe-date-picker--date-label,
|
|
456
|
+
.vxe-date-picker--date-festival {
|
|
457
|
+
color: var(--vxe-ui-base-popup-border-color);
|
|
458
|
+
}
|
|
450
459
|
}
|
|
451
460
|
.vxe-date-picker--date-label,
|
|
452
461
|
.vxe-date-picker--date-festival {
|
|
@@ -482,8 +491,23 @@
|
|
|
482
491
|
}
|
|
483
492
|
}
|
|
484
493
|
td {
|
|
494
|
+
border-top-left-radius: 0;
|
|
495
|
+
border-top-right-radius: 0;
|
|
496
|
+
border-bottom-left-radius: 0;
|
|
497
|
+
border-bottom-right-radius: 0;
|
|
498
|
+
border-left-width: 0;
|
|
499
|
+
border-right-width: 0;
|
|
485
500
|
&:first-child {
|
|
486
|
-
|
|
501
|
+
border-bottom-left-radius: 1em;
|
|
502
|
+
border-top-left-radius: 1em;
|
|
503
|
+
border-left-width: 1px;
|
|
504
|
+
border-right-width: 1px;
|
|
505
|
+
border-right-color: var(--vxe-ui-base-popup-border-color);
|
|
506
|
+
}
|
|
507
|
+
&:last-child {
|
|
508
|
+
border-top-right-radius: 1em;
|
|
509
|
+
border-bottom-right-radius: 1em;
|
|
510
|
+
border-right-width: 1px;
|
|
487
511
|
}
|
|
488
512
|
}
|
|
489
513
|
}
|
|
@@ -514,9 +538,8 @@
|
|
|
514
538
|
position: absolute;
|
|
515
539
|
right: 0.1em;
|
|
516
540
|
top: -0.2em;
|
|
517
|
-
font-size:
|
|
518
|
-
|
|
519
|
-
transform: scale(0.7);
|
|
541
|
+
font-size: 0.86em;
|
|
542
|
+
transform: scale(0.85);
|
|
520
543
|
color: var(--vxe-ui-input-date-extra-color);
|
|
521
544
|
&.is-important {
|
|
522
545
|
color: var(--vxe-ui-input-date-extra-important-color);
|
|
@@ -526,7 +549,6 @@
|
|
|
526
549
|
.vxe-date-picker--date-festival {
|
|
527
550
|
color: var(--vxe-ui-input-date-festival-color);
|
|
528
551
|
height: 14px;
|
|
529
|
-
line-height: 1;
|
|
530
552
|
overflow: hidden;
|
|
531
553
|
&.is-important {
|
|
532
554
|
color: var(--vxe-ui-input-date-festival-important-color);
|
|
@@ -534,8 +556,8 @@
|
|
|
534
556
|
}
|
|
535
557
|
.vxe-date-picker--date-festival--label {
|
|
536
558
|
display: block;
|
|
537
|
-
font-size:
|
|
538
|
-
transform: scale(0.
|
|
559
|
+
font-size: 0.86em;
|
|
560
|
+
transform: scale(0.9);
|
|
539
561
|
}
|
|
540
562
|
|
|
541
563
|
@keyframes festivalOverlap2 {
|
|
@@ -561,7 +583,7 @@
|
|
|
561
583
|
|
|
562
584
|
.vxe-date-picker--date-festival--overlap {
|
|
563
585
|
display: block;
|
|
564
|
-
font-size:
|
|
586
|
+
font-size: 0.86em;
|
|
565
587
|
&.overlap--2 {
|
|
566
588
|
animation: festivalOverlap2 6s infinite ease-in-out;
|
|
567
589
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentSizeType, VxeComponentEventParams, VxeComponentPermissionCodeType, ValueOf } from '@vxe-ui/core'
|
|
1
|
+
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentSizeType, VxeComponentAlignType, VxeComponentEventParams, VxeComponentPermissionCodeType, ValueOf } from '@vxe-ui/core'
|
|
2
2
|
import { VxeButtonProps, VxeButtonPropTypes } from './button'
|
|
3
3
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
|
|
@@ -23,6 +23,7 @@ export namespace VxeButtonGroupPropTypes {
|
|
|
23
23
|
export type Round = boolean
|
|
24
24
|
export type Vertical = boolean
|
|
25
25
|
export type Circle = boolean
|
|
26
|
+
export type Align = VxeComponentAlignType
|
|
26
27
|
export type Disabled = boolean
|
|
27
28
|
export type Mode = VxeButtonPropTypes.Mode
|
|
28
29
|
export type Status = VxeButtonPropTypes.Status
|
|
@@ -36,6 +37,7 @@ export interface VxeButtonGroupProps {
|
|
|
36
37
|
mode?: VxeButtonGroupPropTypes.Mode
|
|
37
38
|
status?: VxeButtonGroupPropTypes.Status
|
|
38
39
|
round?: VxeButtonGroupPropTypes.Round
|
|
40
|
+
align?: VxeButtonGroupPropTypes.Align
|
|
39
41
|
vertical?: VxeButtonGroupPropTypes.Vertical
|
|
40
42
|
circle?: VxeButtonGroupPropTypes.Circle
|
|
41
43
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentPermissionCodeType, VxeComponentStatusType, VxeComponentSizeType, VxeComponentStyleType, ValueOf } from '@vxe-ui/core'
|
|
1
|
+
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, VxeComponentAlignType, VxeComponentPermissionCodeType, VxeComponentStatusType, VxeComponentSizeType, VxeComponentStyleType, ValueOf } from '@vxe-ui/core'
|
|
2
2
|
import { VxeTooltipDefines } from './tooltip'
|
|
3
3
|
|
|
4
4
|
/* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
|
|
@@ -41,7 +41,7 @@ export namespace VxeButtonPropTypes {
|
|
|
41
41
|
export type Disabled = boolean
|
|
42
42
|
export type Loading = boolean
|
|
43
43
|
export type Trigger = 'manual' | 'hover' | 'click' | '' | null
|
|
44
|
-
export type Align =
|
|
44
|
+
export type Align = VxeComponentAlignType
|
|
45
45
|
|
|
46
46
|
export type PrefixTooltip = VxeTooltipDefines.TooltipHelperOption
|
|
47
47
|
export type SuffixTooltip = VxeTooltipDefines.TooltipHelperOption
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentEventParams, ValueOf, VxeComponentStyleType, VxeComponentSizeType } from '@vxe-ui/core'
|
|
2
|
+
import { VxeButtonGroupPropTypes } from './button-group'
|
|
3
|
+
import { VxeButtonProps } from './button'
|
|
2
4
|
|
|
3
5
|
/* eslint-disable @typescript-eslint/no-empty-interface,no-use-before-define,@typescript-eslint/ban-types */
|
|
4
6
|
|
|
@@ -57,6 +59,19 @@ export namespace VxeDatePickerPropTypes {
|
|
|
57
59
|
export type Placement = 'top' | 'bottom' | '' | null
|
|
58
60
|
export type Transfer = boolean
|
|
59
61
|
|
|
62
|
+
export interface ShortcutConfig {
|
|
63
|
+
enabled?: boolean
|
|
64
|
+
position?: 'top' | 'bottom' | 'left' | 'right' | 'header' | 'footer' | null
|
|
65
|
+
align?: VxeButtonGroupPropTypes.Align
|
|
66
|
+
mode?: VxeButtonGroupPropTypes.Mode
|
|
67
|
+
options?: VxeDatePickerDefines.ShortcutOption[]
|
|
68
|
+
/**
|
|
69
|
+
* 点击按钮后自动关闭弹窗面板
|
|
70
|
+
*/
|
|
71
|
+
autoClose?: boolean
|
|
72
|
+
clickMethod?: (params: VxeDatePickerDefines.ShortcutClickParams) => void
|
|
73
|
+
}
|
|
74
|
+
|
|
60
75
|
/**
|
|
61
76
|
* 请使用 AutoComplete
|
|
62
77
|
* @deprecated
|
|
@@ -124,6 +139,8 @@ export interface VxeDatePickerProps {
|
|
|
124
139
|
placement?: VxeDatePickerPropTypes.Placement
|
|
125
140
|
transfer?: VxeDatePickerPropTypes.Transfer
|
|
126
141
|
|
|
142
|
+
shortcutConfig?: VxeDatePickerPropTypes.ShortcutConfig
|
|
143
|
+
|
|
127
144
|
/**
|
|
128
145
|
* 请使用 autoComplete
|
|
129
146
|
* @deprecated
|
|
@@ -208,7 +225,8 @@ export type VxeDatePickerEmits = [
|
|
|
208
225
|
'suffix-click',
|
|
209
226
|
'date-prev',
|
|
210
227
|
'date-today',
|
|
211
|
-
'date-next'
|
|
228
|
+
'date-next',
|
|
229
|
+
'shortcut-click'
|
|
212
230
|
]
|
|
213
231
|
|
|
214
232
|
export namespace VxeDatePickerDefines {
|
|
@@ -260,6 +278,10 @@ export namespace VxeDatePickerDefines {
|
|
|
260
278
|
|
|
261
279
|
export type DatePanelType = 'year' | 'quarter' | 'month' | 'week' | 'day'
|
|
262
280
|
|
|
281
|
+
export interface ShortcutOption extends VxeButtonProps {
|
|
282
|
+
clickMethod?: (params: VxeDatePickerDefines.ShortcutClickParams) => void
|
|
283
|
+
}
|
|
284
|
+
|
|
263
285
|
interface DateFestivalItem {
|
|
264
286
|
/**
|
|
265
287
|
* 显示名称
|
|
@@ -308,21 +330,30 @@ export namespace VxeDatePickerDefines {
|
|
|
308
330
|
|
|
309
331
|
export interface ChangeParams extends DatePickerParams {}
|
|
310
332
|
export interface ChangeEventParams extends DatePickerEventParams, ChangeParams { }
|
|
333
|
+
|
|
334
|
+
export interface ShortcutClickParams {
|
|
335
|
+
$datePicker: VxeDatePickerConstructor
|
|
336
|
+
option: VxeDatePickerDefines.ShortcutOption
|
|
337
|
+
}
|
|
338
|
+
export interface ShortcutClickEventParams extends DatePickerEventParams, ShortcutClickParams {}
|
|
311
339
|
}
|
|
312
340
|
|
|
313
341
|
export type VxeDatePickerEventProps = {
|
|
314
342
|
onInput?: VxeDatePickerEvents.Input
|
|
315
343
|
onChange?: VxeDatePickerEvents.Change
|
|
344
|
+
onShortcutClick?: VxeDatePickerEvents.ShortcutClick
|
|
316
345
|
}
|
|
317
346
|
|
|
318
347
|
export interface VxeDatePickerListeners {
|
|
319
|
-
|
|
348
|
+
input?: VxeDatePickerEvents.Input
|
|
320
349
|
change?: VxeDatePickerEvents.Change
|
|
350
|
+
shortcutClick?: VxeDatePickerEvents.ShortcutClick
|
|
321
351
|
}
|
|
322
352
|
|
|
323
353
|
export namespace VxeDatePickerEvents {
|
|
324
354
|
export type Input = (params: VxeDatePickerDefines.InputEventParams) => void
|
|
325
355
|
export type Change = (params: VxeDatePickerDefines.ChangeEventParams) => void
|
|
356
|
+
export type ShortcutClick = (params: VxeDatePickerDefines.ShortcutClickEventParams) => void
|
|
326
357
|
}
|
|
327
358
|
|
|
328
359
|
export namespace VxeDatePickerSlotTypes {
|
|
@@ -727,7 +727,18 @@ export namespace VxeTablePropTypes {
|
|
|
727
727
|
multiple?: boolean
|
|
728
728
|
chronological?: boolean
|
|
729
729
|
trigger?: 'default' | 'cell'
|
|
730
|
+
/**
|
|
731
|
+
* 是否显示排序按钮图标
|
|
732
|
+
*/
|
|
730
733
|
showIcon?: boolean
|
|
734
|
+
/**
|
|
735
|
+
* 排序按钮图标的显示方法,该方法的返回值用于决定该列是否显示排序按钮图标
|
|
736
|
+
* @param params
|
|
737
|
+
*/
|
|
738
|
+
iconVisibleMethod?(params: {
|
|
739
|
+
$table: VxeTableConstructor<D>
|
|
740
|
+
column: VxeTableDefines.ColumnInfo<D>
|
|
741
|
+
}): boolean
|
|
731
742
|
iconLayout?: 'horizontal' | 'vertical'
|
|
732
743
|
iconAsc?: string
|
|
733
744
|
iconDesc?: string
|
|
@@ -749,7 +760,18 @@ export namespace VxeTablePropTypes {
|
|
|
749
760
|
column: VxeTableDefines.ColumnInfo<D>
|
|
750
761
|
}) => any
|
|
751
762
|
remote?: boolean
|
|
763
|
+
/**
|
|
764
|
+
* 是否显示筛选按钮图标
|
|
765
|
+
*/
|
|
752
766
|
showIcon?: boolean
|
|
767
|
+
/**
|
|
768
|
+
* 筛选按钮图标的显示方法,该方法的返回值用于决定该列是否显示筛选按钮图标
|
|
769
|
+
* @param params
|
|
770
|
+
*/
|
|
771
|
+
iconVisibleMethod?(params: {
|
|
772
|
+
$table: VxeTableConstructor<D>
|
|
773
|
+
column: VxeTableDefines.ColumnInfo<D>
|
|
774
|
+
}): boolean
|
|
753
775
|
iconNone?: string
|
|
754
776
|
iconMatch?: string
|
|
755
777
|
destroyOnClose?: boolean
|
|
@@ -3706,7 +3728,7 @@ export interface TablePrivateMethods<D = any> {
|
|
|
3706
3728
|
updateAllCheckboxStatus(): void
|
|
3707
3729
|
checkSelectionStatus(): void
|
|
3708
3730
|
handleBatchSelectRows(rows: any[], value: any, isForce?: boolean): void
|
|
3709
|
-
handleResizeDblclickEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderHeaderParams): void
|
|
3731
|
+
handleResizeDblclickEvent(evnt: MouseEvent, params: VxeTableDefines.CellRenderHeaderParams & { $table: VxeTableConstructor & VxeTablePrivateMethods }): void
|
|
3710
3732
|
/**
|
|
3711
3733
|
* use handleBatchSelectRows
|
|
3712
3734
|
* @deprecated
|
|
@@ -4115,6 +4137,7 @@ export namespace VxeTableDefines {
|
|
|
4115
4137
|
type: string
|
|
4116
4138
|
isHidden: boolean
|
|
4117
4139
|
hasFilter: boolean
|
|
4140
|
+
firstFilterOption: VxeColumnPropTypes.FilterItem | null
|
|
4118
4141
|
|
|
4119
4142
|
checked?: boolean
|
|
4120
4143
|
indeterminate?: boolean
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|