vxe-pc-ui 3.3.65 → 3.3.67

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 (72) hide show
  1. package/es/button/src/button-group.js +5 -2
  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 +101 -42
  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/image/style.css +4 -0
  10. package/es/image/style.min.css +1 -1
  11. package/es/style.css +1 -1
  12. package/es/style.min.css +1 -1
  13. package/es/ui/index.js +1 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-button-group/style.css +6 -0
  16. package/es/vxe-button-group/style.min.css +1 -1
  17. package/es/vxe-date-picker/style.css +83 -19
  18. package/es/vxe-date-picker/style.min.css +1 -1
  19. package/es/vxe-image/style.css +4 -0
  20. package/es/vxe-image/style.min.css +1 -1
  21. package/helper/vetur/attributes.json +1 -1
  22. package/helper/vetur/tags.json +1 -1
  23. package/lib/button/src/button-group.js +6 -2
  24. package/lib/button/src/button-group.min.js +1 -1
  25. package/lib/button/src/button.js +3 -4
  26. package/lib/button/src/button.min.js +1 -1
  27. package/lib/button-group/style/style.css +6 -0
  28. package/lib/button-group/style/style.min.css +1 -1
  29. package/lib/date-picker/src/date-picker.js +62 -34
  30. package/lib/date-picker/src/date-picker.min.js +1 -1
  31. package/lib/date-picker/style/style.css +83 -19
  32. package/lib/date-picker/style/style.min.css +1 -1
  33. package/lib/icon/style/style.css +1 -1
  34. package/lib/icon/style/style.min.css +1 -1
  35. package/lib/image/style/style.css +4 -0
  36. package/lib/image/style/style.min.css +1 -1
  37. package/lib/index.umd.js +73 -42
  38. package/lib/index.umd.min.js +1 -1
  39. package/lib/style.css +1 -1
  40. package/lib/style.min.css +1 -1
  41. package/lib/ui/index.js +1 -1
  42. package/lib/ui/index.min.js +1 -1
  43. package/lib/ui/src/log.js +1 -1
  44. package/lib/ui/src/log.min.js +1 -1
  45. package/lib/vxe-button-group/style/style.css +6 -0
  46. package/lib/vxe-button-group/style/style.min.css +1 -1
  47. package/lib/vxe-date-picker/style/style.css +83 -19
  48. package/lib/vxe-date-picker/style/style.min.css +1 -1
  49. package/lib/vxe-image/style/style.css +4 -0
  50. package/lib/vxe-image/style/style.min.css +1 -1
  51. package/package.json +1 -1
  52. package/packages/button/src/button-group.ts +5 -2
  53. package/packages/button/src/button.ts +1 -2
  54. package/packages/date-picker/src/date-picker.ts +103 -44
  55. package/styles/components/button-group.scss +6 -0
  56. package/styles/components/date-picker.scss +86 -9
  57. package/styles/components/image.scss +2 -0
  58. package/types/components/button-group.d.ts +2 -0
  59. package/types/components/date-picker.d.ts +8 -2
  60. package/types/components/table.d.ts +24 -1
  61. /package/es/icon/{iconfont.1735915759974.ttf → iconfont.1736058590017.ttf} +0 -0
  62. /package/es/icon/{iconfont.1735915759974.woff → iconfont.1736058590017.woff} +0 -0
  63. /package/es/icon/{iconfont.1735915759974.woff2 → iconfont.1736058590017.woff2} +0 -0
  64. /package/es/{iconfont.1735915759974.ttf → iconfont.1736058590017.ttf} +0 -0
  65. /package/es/{iconfont.1735915759974.woff → iconfont.1736058590017.woff} +0 -0
  66. /package/es/{iconfont.1735915759974.woff2 → iconfont.1736058590017.woff2} +0 -0
  67. /package/lib/icon/style/{iconfont.1735915759974.ttf → iconfont.1736058590017.ttf} +0 -0
  68. /package/lib/icon/style/{iconfont.1735915759974.woff → iconfont.1736058590017.woff} +0 -0
  69. /package/lib/icon/style/{iconfont.1735915759974.woff2 → iconfont.1736058590017.woff2} +0 -0
  70. /package/lib/{iconfont.1735915759974.ttf → iconfont.1736058590017.ttf} +0 -0
  71. /package/lib/{iconfont.1735915759974.woff → iconfont.1736058590017.woff} +0 -0
  72. /package/lib/{iconfont.1735915759974.woff2 → iconfont.1736058590017.woff2} +0 -0
@@ -739,6 +739,7 @@ export default defineVxeComponent({
739
739
  const $xeDatePicker = this
740
740
  const reactData = $xeDatePicker.reactData
741
741
 
742
+ const { isActivated, visiblePanel } = reactData
742
743
  let val: any = ''
743
744
  if (modelValue) {
744
745
  if (XEUtils.isNumber(modelValue) && /^[0-9]{11,15}$/.test(`${modelValue}`)) {
@@ -748,6 +749,9 @@ export default defineVxeComponent({
748
749
  }
749
750
  }
750
751
  reactData.inputValue = val
752
+ if (isActivated && visiblePanel) {
753
+ $xeDatePicker.dateOpenPanel()
754
+ }
751
755
  },
752
756
  parseDate (value: VxeDatePickerPropTypes.ModelValue, format: string) {
753
757
  const $xeDatePicker = this
@@ -2266,62 +2270,117 @@ export default defineVxeComponent({
2266
2270
  renderPanel (h: CreateElement) {
2267
2271
  const $xeDatePicker = this
2268
2272
  const props = $xeDatePicker
2273
+ const slots = $xeDatePicker.$scopedSlots
2269
2274
  const reactData = $xeDatePicker.reactData
2270
2275
 
2271
2276
  const { type } = props
2272
2277
  const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle } = reactData
2273
2278
  const vSize = $xeDatePicker.computeSize
2274
- const isDatePickerType = $xeDatePicker.computeIsDatePickerType
2275
2279
  const btnTransfer = $xeDatePicker.computeBtnTransfer
2280
+ const headerSlot = slots.header
2281
+ const footerSlot = slots.footer
2282
+ const topSlot = slots.top
2283
+ const bottomSlot = slots.bottom
2284
+ const leftSlot = slots.left
2285
+ const rightSlot = slots.right
2276
2286
  const renders = []
2277
- if (isDatePickerType) {
2278
- if (type === 'datetime') {
2279
- renders.push(
2287
+ if (type === 'datetime') {
2288
+ renders.push(
2289
+ h('div', {
2290
+ key: type,
2291
+ ref: 'refPanelWrapper',
2292
+ class: 'vxe-date-picker--panel-datetime-layout-wrapper'
2293
+ }, [
2294
+ h('div', {
2295
+ class: 'vxe-date-picker--panel-datetime-left-wrapper'
2296
+ }, $xeDatePicker.renderDatePanel(h)),
2297
+ h('div', {
2298
+ class: 'vxe-date-picker--panel-datetime-right-wrapper'
2299
+ }, $xeDatePicker.renderTimePanel(h))
2300
+ ])
2301
+ )
2302
+ } else if (type === 'time') {
2303
+ renders.push(
2304
+ h('div', {
2305
+ key: type,
2306
+ ref: 'refPanelWrapper',
2307
+ class: 'vxe-date-picker--panel-wrapper'
2308
+ }, $xeDatePicker.renderTimePanel(h))
2309
+ )
2310
+ } else {
2311
+ renders.push(
2312
+ h('div', {
2313
+ key: type || 'default',
2314
+ ref: 'refPanelWrapper',
2315
+ class: 'vxe-date-picker--panel-wrapper'
2316
+ }, $xeDatePicker.renderDatePanel(h))
2317
+ )
2318
+ }
2319
+ return h('div', {
2320
+ ref: 'refInputPanel',
2321
+ class: ['vxe-table--ignore-clear vxe-date-picker--panel', `type--${type}`, {
2322
+ [`size--${vSize}`]: vSize,
2323
+ 'is--transfer': btnTransfer,
2324
+ 'ani--leave': isAniVisible,
2325
+ 'ani--enter': visiblePanel,
2326
+ 'show--top': !!(topSlot || headerSlot),
2327
+ 'show--bottom': !!(bottomSlot || footerSlot),
2328
+ 'show--left': !!leftSlot,
2329
+ 'show--right': !!rightSlot
2330
+ }],
2331
+ attrs: {
2332
+ placement: panelPlacement
2333
+ },
2334
+ style: panelStyle
2335
+ }, initialized && (visiblePanel || isAniVisible)
2336
+ ? [
2280
2337
  h('div', {
2281
- key: type,
2282
- ref: 'refPanelWrapper',
2283
2338
  class: 'vxe-date-picker--panel-layout-wrapper'
2284
2339
  }, [
2340
+ topSlot
2341
+ ? h('div', {
2342
+ class: 'vxe-date-picker--panel-top-wrapper'
2343
+ }, topSlot({}))
2344
+ : renderEmptyElement($xeDatePicker),
2285
2345
  h('div', {
2286
- class: 'vxe-date-picker--panel-left-wrapper'
2287
- }, $xeDatePicker.renderDatePanel(h)),
2288
- h('div', {
2289
- class: 'vxe-date-picker--panel-right-wrapper'
2290
- }, $xeDatePicker.renderTimePanel(h))
2346
+ class: 'vxe-date-picker--panel-body-layout-wrapper'
2347
+ }, [
2348
+ leftSlot
2349
+ ? h('div', {
2350
+ class: 'vxe-date-picker--panel-left-wrapper'
2351
+ }, leftSlot({}))
2352
+ : renderEmptyElement($xeDatePicker),
2353
+ h('div', {
2354
+ class: 'vxe-date-picker--panel-body-content-wrapper'
2355
+ }, [
2356
+ headerSlot
2357
+ ? h('div', {
2358
+ class: 'vxe-date-picker--panel-header-wrapper'
2359
+ }, headerSlot({}))
2360
+ : renderEmptyElement($xeDatePicker),
2361
+ h('div', {
2362
+ class: 'vxe-date-picker--panel-body-wrapper'
2363
+ }, renders),
2364
+ footerSlot
2365
+ ? h('div', {
2366
+ class: 'vxe-date-picker--panel-footer-wrapper'
2367
+ }, footerSlot({}))
2368
+ : renderEmptyElement($xeDatePicker)
2369
+ ]),
2370
+ rightSlot
2371
+ ? h('div', {
2372
+ class: 'vxe-date-picker--panel-right-wrapper'
2373
+ }, rightSlot({}))
2374
+ : renderEmptyElement($xeDatePicker)
2375
+ ]),
2376
+ bottomSlot
2377
+ ? h('div', {
2378
+ class: 'vxe-date-picker--panel-bottom-wrapper'
2379
+ }, bottomSlot({}))
2380
+ : renderEmptyElement($xeDatePicker)
2291
2381
  ])
2292
- )
2293
- } else if (type === 'time') {
2294
- renders.push(
2295
- h('div', {
2296
- key: type,
2297
- ref: 'refPanelWrapper',
2298
- class: 'vxe-date-picker--panel-wrapper'
2299
- }, $xeDatePicker.renderTimePanel(h))
2300
- )
2301
- } else {
2302
- renders.push(
2303
- h('div', {
2304
- key: type || 'default',
2305
- ref: 'refPanelWrapper',
2306
- class: 'vxe-date-picker--panel-wrapper'
2307
- }, $xeDatePicker.renderDatePanel(h))
2308
- )
2309
- }
2310
- return h('div', {
2311
- ref: 'refInputPanel',
2312
- class: ['vxe-table--ignore-clear vxe-date-picker--panel', `type--${type}`, {
2313
- [`size--${vSize}`]: vSize,
2314
- 'is--transfer': btnTransfer,
2315
- 'ani--leave': isAniVisible,
2316
- 'ani--enter': visiblePanel
2317
- }],
2318
- attrs: {
2319
- placement: panelPlacement
2320
- },
2321
- style: panelStyle
2322
- }, initialized && (visiblePanel || isAniVisible) ? renders : [])
2323
- }
2324
- return renderEmptyElement($xeDatePicker)
2382
+ ]
2383
+ : [])
2325
2384
  },
2326
2385
  renderPrefixIcon (h: CreateElement) {
2327
2386
  const $xeDatePicker = this
@@ -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
  }
@@ -1,4 +1,6 @@
1
1
  .vxe-image {
2
+ vertical-align: middle;
3
+ border-style: none;
2
4
  &.is--circle {
3
5
  border-radius: 50%;
4
6
  }
@@ -21,6 +21,7 @@ export namespace VxeButtonGroupPropTypes {
21
21
  export type PermissionCode = VxeComponentPermissionCodeType
22
22
  export type Options = VxeButtonProps[]
23
23
  export type Round = boolean
24
+ export type Vertical = boolean
24
25
  export type Circle = boolean
25
26
  export type Disabled = boolean
26
27
  export type Mode = VxeButtonPropTypes.Mode
@@ -35,6 +36,7 @@ export interface VxeButtonGroupProps {
35
36
  mode?: VxeButtonGroupPropTypes.Mode
36
37
  status?: VxeButtonGroupPropTypes.Status
37
38
  round?: VxeButtonGroupPropTypes.Round
39
+ vertical?: VxeButtonGroupPropTypes.Vertical
38
40
  circle?: VxeButtonGroupPropTypes.Circle
39
41
  /**
40
42
  * 是否禁用
@@ -331,8 +331,14 @@ export namespace VxeDatePickerSlotTypes {
331
331
 
332
332
  export interface VxeDatePickerSlots {
333
333
  default?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
334
- prefix: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
335
- suffix: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
334
+ prefix?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
335
+ suffix?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
336
+ header?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
337
+ footer?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
338
+ top?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
339
+ bottom?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
340
+ left?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
341
+ right?: (params: VxeDatePickerSlotTypes.DefaultSlotParams) => any
336
342
  }
337
343
 
338
344
  export const DatePicker: typeof VxeDatePicker
@@ -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