vxe-pc-ui 4.3.61 → 4.3.62

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.
Files changed (62) hide show
  1. package/es/button/src/button-group.js +8 -3
  2. package/es/button/src/button.js +1 -3
  3. package/es/button-group/style.css +6 -0
  4. package/es/button-group/style.min.css +1 -1
  5. package/es/date-picker/src/date-picker.js +105 -47
  6. package/es/date-picker/style.css +83 -19
  7. package/es/date-picker/style.min.css +1 -1
  8. package/es/icon/style.css +1 -1
  9. package/es/style.css +1 -1
  10. package/es/style.min.css +1 -1
  11. package/es/ui/index.js +1 -1
  12. package/es/ui/src/log.js +1 -1
  13. package/es/vxe-button-group/style.css +6 -0
  14. package/es/vxe-button-group/style.min.css +1 -1
  15. package/es/vxe-date-picker/style.css +83 -19
  16. package/es/vxe-date-picker/style.min.css +1 -1
  17. package/helper/vetur/attributes.json +1 -1
  18. package/helper/vetur/tags.json +1 -1
  19. package/lib/button/src/button-group.js +8 -2
  20. package/lib/button/src/button-group.min.js +1 -1
  21. package/lib/button/src/button.js +3 -4
  22. package/lib/button/src/button.min.js +1 -1
  23. package/lib/button-group/style/style.css +6 -0
  24. package/lib/button-group/style/style.min.css +1 -1
  25. package/lib/date-picker/src/date-picker.js +73 -40
  26. package/lib/date-picker/src/date-picker.min.js +1 -1
  27. package/lib/date-picker/style/style.css +83 -19
  28. package/lib/date-picker/style/style.min.css +1 -1
  29. package/lib/icon/style/style.css +1 -1
  30. package/lib/icon/style/style.min.css +1 -1
  31. package/lib/index.umd.js +85 -47
  32. package/lib/index.umd.min.js +1 -1
  33. package/lib/style.css +1 -1
  34. package/lib/style.min.css +1 -1
  35. package/lib/ui/index.js +1 -1
  36. package/lib/ui/index.min.js +1 -1
  37. package/lib/ui/src/log.js +1 -1
  38. package/lib/ui/src/log.min.js +1 -1
  39. package/lib/vxe-button-group/style/style.css +6 -0
  40. package/lib/vxe-button-group/style/style.min.css +1 -1
  41. package/lib/vxe-date-picker/style/style.css +83 -19
  42. package/lib/vxe-date-picker/style/style.min.css +1 -1
  43. package/package.json +1 -1
  44. package/packages/button/src/button-group.ts +11 -4
  45. package/packages/button/src/button.ts +1 -2
  46. package/packages/date-picker/src/date-picker.ts +107 -49
  47. package/styles/components/button-group.scss +6 -0
  48. package/styles/components/date-picker.scss +86 -9
  49. package/types/components/button-group.d.ts +2 -0
  50. package/types/components/date-picker.d.ts +8 -2
  51. /package/es/icon/{iconfont.1735915786708.ttf → iconfont.1735974888106.ttf} +0 -0
  52. /package/es/icon/{iconfont.1735915786708.woff → iconfont.1735974888106.woff} +0 -0
  53. /package/es/icon/{iconfont.1735915786708.woff2 → iconfont.1735974888106.woff2} +0 -0
  54. /package/es/{iconfont.1735915786708.ttf → iconfont.1735974888106.ttf} +0 -0
  55. /package/es/{iconfont.1735915786708.woff → iconfont.1735974888106.woff} +0 -0
  56. /package/es/{iconfont.1735915786708.woff2 → iconfont.1735974888106.woff2} +0 -0
  57. /package/lib/icon/style/{iconfont.1735915786708.ttf → iconfont.1735974888106.ttf} +0 -0
  58. /package/lib/icon/style/{iconfont.1735915786708.woff → iconfont.1735974888106.woff} +0 -0
  59. /package/lib/icon/style/{iconfont.1735915786708.woff2 → iconfont.1735974888106.woff2} +0 -0
  60. /package/lib/{iconfont.1735915786708.ttf → iconfont.1735974888106.ttf} +0 -0
  61. /package/lib/{iconfont.1735915786708.woff → iconfont.1735974888106.woff} +0 -0
  62. /package/lib/{iconfont.1735915786708.woff2 → iconfont.1735974888106.woff2} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, h, Teleport, ref, Ref, computed, reactive, inject, nextTick, watch, onUnmounted, PropType, createCommentVNode } from 'vue'
2
2
  import XEUtils from 'xe-utils'
3
- import { getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, useSize } from '../../ui'
3
+ import { getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, useSize, renderEmptyElement } from '../../ui'
4
4
  import { getFuncText, getLastZIndex, nextZIndex } from '../../ui/src/utils'
5
5
  import { getAbsolutePos, getEventTargetNode } from '../../ui/src/dom'
6
6
  import { toStringTimeDate, getDateQuarter } from './util'
@@ -624,6 +624,7 @@ export default defineComponent({
624
624
  })
625
625
 
626
626
  const updateModelValue = (modelValue: VxeDatePickerPropTypes.ModelValue | undefined) => {
627
+ const { isActivated, visiblePanel } = reactData
627
628
  let val: any = ''
628
629
  if (modelValue) {
629
630
  if (XEUtils.isNumber(modelValue) && /^[0-9]{11,15}$/.test(`${modelValue}`)) {
@@ -633,6 +634,9 @@ export default defineComponent({
633
634
  }
634
635
  }
635
636
  reactData.inputValue = val
637
+ if (isActivated && visiblePanel) {
638
+ dateOpenPanel()
639
+ }
636
640
  }
637
641
 
638
642
  const parseDate = (value: VxeDatePickerPropTypes.ModelValue, format: string) => {
@@ -1998,60 +2002,114 @@ export default defineComponent({
1998
2002
  const { type } = props
1999
2003
  const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle } = reactData
2000
2004
  const vSize = computeSize.value
2001
- const isDatePickerType = computeIsDatePickerType.value
2002
2005
  const btnTransfer = computeBtnTransfer.value
2006
+ const headerSlot = slots.header
2007
+ const footerSlot = slots.footer
2008
+ const topSlot = slots.top
2009
+ const bottomSlot = slots.bottom
2010
+ const leftSlot = slots.left
2011
+ const rightSlot = slots.right
2003
2012
  const renders = []
2004
- if (isDatePickerType) {
2005
- if (type === 'datetime') {
2006
- renders.push(
2013
+ if (type === 'datetime') {
2014
+ renders.push(
2015
+ h('div', {
2016
+ key: type,
2017
+ ref: refPanelWrapper,
2018
+ class: 'vxe-date-picker--panel-datetime-layout-wrapper'
2019
+ }, [
2007
2020
  h('div', {
2008
- key: type,
2009
- ref: refPanelWrapper,
2010
- class: 'vxe-date-picker--panel-layout-wrapper'
2011
- }, [
2012
- h('div', {
2013
- class: 'vxe-date-picker--panel-left-wrapper'
2014
- }, renderDatePanel()),
2015
- h('div', {
2016
- class: 'vxe-date-picker--panel-right-wrapper'
2017
- }, renderTimePanel())
2018
- ])
2019
- )
2020
- } else if (type === 'time') {
2021
- renders.push(
2021
+ class: 'vxe-date-picker--panel-datetime-left-wrapper'
2022
+ }, renderDatePanel()),
2022
2023
  h('div', {
2023
- key: type,
2024
- ref: refPanelWrapper,
2025
- class: 'vxe-date-picker--panel-wrapper'
2024
+ class: 'vxe-date-picker--panel-datetime-right-wrapper'
2026
2025
  }, renderTimePanel())
2027
- )
2028
- } else {
2029
- renders.push(
2030
- h('div', {
2031
- key: type || 'default',
2032
- ref: refPanelWrapper,
2033
- class: 'vxe-date-picker--panel-wrapper'
2034
- }, renderDatePanel())
2035
- )
2036
- }
2037
- return h(Teleport, {
2038
- to: 'body',
2039
- disabled: btnTransfer ? !initialized : true
2040
- }, [
2026
+ ])
2027
+ )
2028
+ } else if (type === 'time') {
2029
+ renders.push(
2041
2030
  h('div', {
2042
- ref: refInputPanel,
2043
- class: ['vxe-table--ignore-clear vxe-date-picker--panel', `type--${type}`, {
2044
- [`size--${vSize}`]: vSize,
2045
- 'is--transfer': btnTransfer,
2046
- 'ani--leave': isAniVisible,
2047
- 'ani--enter': visiblePanel
2048
- }],
2049
- placement: panelPlacement,
2050
- style: panelStyle
2051
- }, initialized && (visiblePanel || isAniVisible) ? renders : [])
2052
- ])
2053
- }
2054
- return createCommentVNode()
2031
+ key: type,
2032
+ ref: refPanelWrapper,
2033
+ class: 'vxe-date-picker--panel-wrapper'
2034
+ }, renderTimePanel())
2035
+ )
2036
+ } else {
2037
+ renders.push(
2038
+ h('div', {
2039
+ key: type || 'default',
2040
+ ref: refPanelWrapper,
2041
+ class: 'vxe-date-picker--panel-wrapper'
2042
+ }, renderDatePanel())
2043
+ )
2044
+ }
2045
+ return h(Teleport, {
2046
+ to: 'body',
2047
+ disabled: btnTransfer ? !initialized : true
2048
+ }, [
2049
+ h('div', {
2050
+ ref: refInputPanel,
2051
+ class: ['vxe-table--ignore-clear vxe-date-picker--panel', `type--${type}`, {
2052
+ [`size--${vSize}`]: vSize,
2053
+ 'is--transfer': btnTransfer,
2054
+ 'ani--leave': isAniVisible,
2055
+ 'ani--enter': visiblePanel,
2056
+ 'show--top': !!(topSlot || headerSlot),
2057
+ 'show--bottom': !!(bottomSlot || footerSlot),
2058
+ 'show--left': !!leftSlot,
2059
+ 'show--right': !!rightSlot
2060
+ }],
2061
+ placement: panelPlacement,
2062
+ style: panelStyle
2063
+ }, initialized && (visiblePanel || isAniVisible)
2064
+ ? [
2065
+ h('div', {
2066
+ class: 'vxe-date-picker--panel-layout-wrapper'
2067
+ }, [
2068
+ topSlot
2069
+ ? h('div', {
2070
+ class: 'vxe-date-picker--panel-top-wrapper'
2071
+ }, topSlot({}))
2072
+ : renderEmptyElement($xeDatePicker),
2073
+ h('div', {
2074
+ class: 'vxe-date-picker--panel-body-layout-wrapper'
2075
+ }, [
2076
+ leftSlot
2077
+ ? h('div', {
2078
+ class: 'vxe-date-picker--panel-left-wrapper'
2079
+ }, leftSlot({}))
2080
+ : renderEmptyElement($xeDatePicker),
2081
+ h('div', {
2082
+ class: 'vxe-date-picker--panel-body-content-wrapper'
2083
+ }, [
2084
+ headerSlot
2085
+ ? h('div', {
2086
+ class: 'vxe-date-picker--panel-header-wrapper'
2087
+ }, headerSlot({}))
2088
+ : renderEmptyElement($xeDatePicker),
2089
+ h('div', {
2090
+ class: 'vxe-date-picker--panel-body-wrapper'
2091
+ }, renders),
2092
+ footerSlot
2093
+ ? h('div', {
2094
+ class: 'vxe-date-picker--panel-footer-wrapper'
2095
+ }, footerSlot({}))
2096
+ : renderEmptyElement($xeDatePicker)
2097
+ ]),
2098
+ rightSlot
2099
+ ? h('div', {
2100
+ class: 'vxe-date-picker--panel-right-wrapper'
2101
+ }, rightSlot({}))
2102
+ : renderEmptyElement($xeDatePicker)
2103
+ ]),
2104
+ bottomSlot
2105
+ ? h('div', {
2106
+ class: 'vxe-date-picker--panel-bottom-wrapper'
2107
+ }, bottomSlot({}))
2108
+ : renderEmptyElement($xeDatePicker)
2109
+ ])
2110
+ ]
2111
+ : [])
2112
+ ])
2055
2113
  }
2056
2114
 
2057
2115
  const renderPrefixIcon = () => {
@@ -1,3 +1,9 @@
1
1
  .vxe-button-group {
2
2
  display: inline-flex;
3
+ &.is--vertical {
4
+ flex-direction: column;
5
+ .vxe-button {
6
+ margin: 0;
7
+ }
8
+ }
3
9
  }
@@ -163,24 +163,101 @@
163
163
  }
164
164
  }
165
165
 
166
- .vxe-date-picker--panel {
167
- pointer-events: none;
168
- }
169
- .vxe-date-picker--panel-wrapper,
170
166
  .vxe-date-picker--panel-layout-wrapper {
167
+ display: flex;
168
+ flex-direction: column;
171
169
  pointer-events: auto;
172
170
  background-color: var(--vxe-ui-layout-background-color);
173
171
  border: 1px solid var(--vxe-ui-base-popup-border-color);
174
172
  box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
175
173
  border-radius: var(--vxe-ui-base-border-radius);
176
174
  }
175
+ .vxe-date-picker--panel-body-layout-wrapper {
176
+ display: flex;
177
+ flex-direction: row;
178
+ white-space: nowrap;
179
+ }
180
+ .vxe-date-picker--panel-body-content-wrapper,
181
+ .vxe-date-picker--panel-body-layout-wrapper,
182
+ .vxe-date-picker--panel-body-wrapper {
183
+ flex-grow: 1;
184
+ }
185
+ .vxe-date-picker--panel-top-wrapper,
186
+ .vxe-date-picker--panel-bottom-wrapper,
187
+ .vxe-date-picker--panel-left-wrapper,
188
+ .vxe-date-picker--panel-right-wrapper,
189
+ .vxe-date-picker--panel-header-wrapper,
190
+ .vxe-date-picker--panel-footer-wrapper {
191
+ flex-shrink: 0;
192
+ }
193
+
194
+ .vxe-date-picker--panel {
195
+ pointer-events: none;
196
+ &.show--top,
197
+ &.show--right {
198
+ .vxe-date-picker--panel-wrapper,
199
+ .vxe-date-picker--panel-datetime-layout-wrapper {
200
+ border-top-right-radius: 0;
201
+ }
202
+ }
203
+ &.show--right,
204
+ &.show--bottom {
205
+ .vxe-date-picker--panel-wrapper,
206
+ .vxe-date-picker--panel-datetime-layout-wrapper {
207
+ border-bottom-right-radius: 0;
208
+ }
209
+ }
210
+ &.show--bottom,
211
+ &.show--left {
212
+ .vxe-date-picker--panel-wrapper,
213
+ .vxe-date-picker--panel-datetime-layout-wrapper {
214
+ border-bottom-left-radius: 0;
215
+ }
216
+ }
217
+ &.show--top,
218
+ &.show--left {
219
+ .vxe-date-picker--panel-wrapper,
220
+ .vxe-date-picker--panel-datetime-layout-wrapper {
221
+ border-top-left-radius: 0;
222
+ }
223
+ }
224
+ &.show--top {
225
+ .vxe-date-picker--panel-wrapper,
226
+ .vxe-date-picker--panel-datetime-layout-wrapper {
227
+ border-top-width: 1px;
228
+ }
229
+ }
230
+ &.show--bottom {
231
+ .vxe-date-picker--panel-wrapper,
232
+ .vxe-date-picker--panel-datetime-layout-wrapper {
233
+ border-bottom-width: 1px;
234
+ }
235
+ }
236
+ &.show--left {
237
+ .vxe-date-picker--panel-wrapper,
238
+ .vxe-date-picker--panel-datetime-layout-wrapper {
239
+ border-left-width: 1px;
240
+ }
241
+ }
242
+ &.show--right {
243
+ .vxe-date-picker--panel-wrapper,
244
+ .vxe-date-picker--panel-datetime-layout-wrapper {
245
+ border-right-width: 1px;
246
+ }
247
+ }
248
+ }
249
+ .vxe-date-picker--panel-wrapper,
250
+ .vxe-date-picker--panel-datetime-layout-wrapper {
251
+ border: 0 solid var(--vxe-ui-base-popup-border-color);
252
+ border-radius: var(--vxe-ui-base-border-radius);
253
+ }
177
254
 
178
255
  .vxe-date-picker--panel-wrapper {
179
256
  overflow-x: hidden;
180
257
  overflow-y: auto;
181
258
  }
182
259
 
183
- .vxe-date-picker--panel-layout-wrapper {
260
+ .vxe-date-picker--panel-datetime-layout-wrapper {
184
261
  display: inline-flex;
185
262
  flex-direction: row;
186
263
  }
@@ -194,7 +271,7 @@
194
271
  user-select: none;
195
272
  }
196
273
  &.type--datetime {
197
- .vxe-date-picker--panel-right-wrapper {
274
+ .vxe-date-picker--panel-datetime-right-wrapper {
198
275
  display: flex;
199
276
  flex-direction: column;
200
277
  border-left: 1px solid var(--vxe-ui-input-border-color);
@@ -637,12 +714,12 @@
637
714
  }
638
715
  }
639
716
  &.type--datetime {
640
- .vxe-date-picker--panel-left-wrapper {
717
+ .vxe-date-picker--panel-datetime-left-wrapper {
641
718
  $widthList: 336px, 336px, 312px, 288px;
642
719
  width: list.nth($widthList, $sizeIndex);
643
720
  }
644
- .vxe-date-picker--panel-left-wrapper,
645
- .vxe-date-picker--panel-right-wrapper {
721
+ .vxe-date-picker--panel-datetime-left-wrapper,
722
+ .vxe-date-picker--panel-datetime-right-wrapper {
646
723
  padding: 12px - $sizeIndex;
647
724
  }
648
725
  }
@@ -28,6 +28,7 @@ export namespace VxeButtonGroupPropTypes {
28
28
  export type PermissionCode = VxeComponentPermissionCodeType
29
29
  export type Options = VxeButtonProps[]
30
30
  export type Round = boolean
31
+ export type Vertical = boolean
31
32
  export type Circle = boolean
32
33
  export type Disabled = boolean
33
34
  export type Mode = VxeButtonPropTypes.Mode
@@ -42,6 +43,7 @@ export type VxeButtonGroupProps = {
42
43
  mode?: VxeButtonGroupPropTypes.Mode
43
44
  status?: VxeButtonGroupPropTypes.Status
44
45
  round?: VxeButtonGroupPropTypes.Round
46
+ vertical?: VxeButtonGroupPropTypes.Vertical
45
47
  circle?: VxeButtonGroupPropTypes.Circle
46
48
  /**
47
49
  * 是否禁用
@@ -328,8 +328,14 @@ export namespace VxeDatePickerSlotTypes {
328
328
 
329
329
  export interface VxeDatePickerSlots {
330
330
  default?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
331
- prefix: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
332
- suffix: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
331
+ prefix?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
332
+ suffix?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
333
+ header?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
334
+ footer?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
335
+ top?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
336
+ bottom?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
337
+ left?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
338
+ right?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
333
339
  }
334
340
 
335
341
  export const DatePicker: typeof VxeDatePicker