vxe-pc-ui 4.3.95 → 4.3.96

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 (61) hide show
  1. package/es/col/style.css +4 -0
  2. package/es/col/style.min.css +1 -1
  3. package/es/date-picker/style.css +1 -1
  4. package/es/date-picker/style.min.css +1 -1
  5. package/es/icon/style.css +1 -1
  6. package/es/language/ja-JP.js +2 -2
  7. package/es/pager/src/pager.js +128 -81
  8. package/es/row/src/col.js +3 -2
  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-col/style.css +4 -0
  14. package/es/vxe-col/style.min.css +1 -1
  15. package/es/vxe-date-picker/style.css +1 -1
  16. package/es/vxe-date-picker/style.min.css +1 -1
  17. package/lib/col/style/style.css +4 -0
  18. package/lib/col/style/style.min.css +1 -1
  19. package/lib/date-picker/style/style.css +1 -1
  20. package/lib/date-picker/style/style.min.css +1 -1
  21. package/lib/icon/style/style.css +1 -1
  22. package/lib/icon/style/style.min.css +1 -1
  23. package/lib/index.umd.js +106 -21
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/language/ja-JP.js +2 -2
  26. package/lib/language/ja-JP.min.js +1 -1
  27. package/lib/language/ja-JP.umd.js +2 -2
  28. package/lib/pager/src/pager.js +101 -18
  29. package/lib/pager/src/pager.min.js +1 -1
  30. package/lib/row/src/col.js +3 -1
  31. package/lib/row/src/col.min.js +1 -1
  32. package/lib/style.css +1 -1
  33. package/lib/style.min.css +1 -1
  34. package/lib/ui/index.js +1 -1
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-col/style/style.css +4 -0
  39. package/lib/vxe-col/style/style.min.css +1 -1
  40. package/lib/vxe-date-picker/style/style.css +1 -1
  41. package/lib/vxe-date-picker/style/style.min.css +1 -1
  42. package/package.json +1 -1
  43. package/packages/language/ja-JP.ts +2 -2
  44. package/packages/pager/src/pager.ts +133 -83
  45. package/packages/row/src/col.ts +3 -2
  46. package/styles/components/col.scss +23 -1
  47. package/styles/components/date-picker.scss +1 -1
  48. package/types/components/pager.d.ts +76 -0
  49. package/types/components/table.d.ts +7 -0
  50. /package/es/icon/{iconfont.1740188871481.ttf → iconfont.1740550757682.ttf} +0 -0
  51. /package/es/icon/{iconfont.1740188871481.woff → iconfont.1740550757682.woff} +0 -0
  52. /package/es/icon/{iconfont.1740188871481.woff2 → iconfont.1740550757682.woff2} +0 -0
  53. /package/es/{iconfont.1740188871481.ttf → iconfont.1740550757682.ttf} +0 -0
  54. /package/es/{iconfont.1740188871481.woff → iconfont.1740550757682.woff} +0 -0
  55. /package/es/{iconfont.1740188871481.woff2 → iconfont.1740550757682.woff2} +0 -0
  56. /package/lib/icon/style/{iconfont.1740188871481.ttf → iconfont.1740550757682.ttf} +0 -0
  57. /package/lib/icon/style/{iconfont.1740188871481.woff → iconfont.1740550757682.woff} +0 -0
  58. /package/lib/icon/style/{iconfont.1740188871481.woff2 → iconfont.1740550757682.woff2} +0 -0
  59. /package/lib/{iconfont.1740188871481.ttf → iconfont.1740550757682.ttf} +0 -0
  60. /package/lib/{iconfont.1740188871481.woff → iconfont.1740550757682.woff} +0 -0
  61. /package/lib/{iconfont.1740188871481.woff2 → iconfont.1740550757682.woff2} +0 -0
@@ -252,118 +252,143 @@ export default defineComponent({
252
252
 
253
253
  // 第一页
254
254
  const renderHomePage = () => {
255
+ const { currentPage } = props
256
+ const homePageSlot = slots.homePage || slots['home-page']
255
257
  return h('button', {
256
258
  class: ['vxe-pager--prev-btn', {
257
- 'is--disabled': props.currentPage <= 1
259
+ 'is--disabled': currentPage <= 1
258
260
  }],
259
261
  type: 'button',
260
262
  title: getI18n('vxe.pager.homePageTitle'),
261
263
  onClick: handleHomePage
262
- }, [
263
- h('i', {
264
- class: ['vxe-pager--btn-icon', props.iconHomePage || getIcon().PAGER_HOME]
265
- })
266
- ])
264
+ }, homePageSlot
265
+ ? homePageSlot({ currentPage })
266
+ : [
267
+ h('i', {
268
+ class: ['vxe-pager--btn-icon', props.iconHomePage || getIcon().PAGER_HOME]
269
+ })
270
+ ])
267
271
  }
268
272
 
269
273
  // 上一页
270
274
  const renderPrevPage = () => {
275
+ const { currentPage } = props
276
+ const prevPageSlot = slots.prevPage || slots['prev-page']
271
277
  return h('button', {
272
278
  class: ['vxe-pager--prev-btn', {
273
- 'is--disabled': props.currentPage <= 1
279
+ 'is--disabled': currentPage <= 1
274
280
  }],
275
281
  type: 'button',
276
282
  title: getI18n('vxe.pager.prevPageTitle'),
277
283
  onClick: handlePrevPage
278
- }, [
279
- h('i', {
280
- class: ['vxe-pager--btn-icon', props.iconPrevPage || getIcon().PAGER_PREV_PAGE]
281
- })
282
- ])
284
+ }, prevPageSlot
285
+ ? prevPageSlot({ currentPage })
286
+ : [
287
+ h('i', {
288
+ class: ['vxe-pager--btn-icon', props.iconPrevPage || getIcon().PAGER_PREV_PAGE]
289
+ })
290
+ ])
283
291
  }
284
292
 
285
293
  // 向上翻页
286
294
  const renderPrevJump = (tagName?: string) => {
295
+ const { currentPage } = props
296
+ const jumpPrevSlot = slots.jumpPrev || slots['jump-prev']
287
297
  return h(tagName || 'button', {
288
298
  class: ['vxe-pager--jump-prev', {
289
299
  'is--fixed': !tagName,
290
- 'is--disabled': props.currentPage <= 1
300
+ 'is--disabled': currentPage <= 1
291
301
  }],
292
302
  type: 'button',
293
303
  title: getI18n('vxe.pager.prevJumpTitle'),
294
304
  onClick: handlePrevJump
295
- }, [
296
- tagName
297
- ? h('i', {
298
- class: ['vxe-pager--jump-more-icon', props.iconJumpMore || getIcon().PAGER_JUMP_MORE]
299
- })
300
- : null,
301
- h('i', {
302
- class: ['vxe-pager--jump-icon', props.iconJumpPrev || getIcon().PAGER_JUMP_PREV]
303
- })
304
- ])
305
+ }, jumpPrevSlot
306
+ ? jumpPrevSlot({ currentPage })
307
+ : [
308
+ tagName
309
+ ? h('i', {
310
+ class: ['vxe-pager--jump-more-icon', props.iconJumpMore || getIcon().PAGER_JUMP_MORE]
311
+ })
312
+ : null,
313
+ h('i', {
314
+ class: ['vxe-pager--jump-icon', props.iconJumpPrev || getIcon().PAGER_JUMP_PREV]
315
+ })
316
+ ])
305
317
  }
306
318
 
307
319
  // 向下翻页
308
320
  const renderNextJump = (tagName?: string) => {
321
+ const { currentPage } = props
322
+ const jumpNextSlot = slots.jumpNext || slots['jump-next']
309
323
  const pageCount = computePageCount.value
310
324
  return h(tagName || 'button', {
311
325
  class: ['vxe-pager--jump-next', {
312
326
  'is--fixed': !tagName,
313
- 'is--disabled': props.currentPage >= pageCount
327
+ 'is--disabled': currentPage >= pageCount
314
328
  }],
315
329
  type: 'button',
316
330
  title: getI18n('vxe.pager.nextJumpTitle'),
317
331
  onClick: handleNextJump
318
- }, [
319
- tagName
320
- ? h('i', {
321
- class: ['vxe-pager--jump-more-icon', props.iconJumpMore || getIcon().PAGER_JUMP_MORE]
322
- })
323
- : null,
324
- h('i', {
325
- class: ['vxe-pager--jump-icon', props.iconJumpNext || getIcon().PAGER_JUMP_NEXT]
326
- })
327
- ])
332
+ }, jumpNextSlot
333
+ ? jumpNextSlot({ currentPage })
334
+ : [
335
+ tagName
336
+ ? h('i', {
337
+ class: ['vxe-pager--jump-more-icon', props.iconJumpMore || getIcon().PAGER_JUMP_MORE]
338
+ })
339
+ : null,
340
+ h('i', {
341
+ class: ['vxe-pager--jump-icon', props.iconJumpNext || getIcon().PAGER_JUMP_NEXT]
342
+ })
343
+ ])
328
344
  }
329
345
 
330
346
  // 下一页
331
347
  const renderNextPage = () => {
348
+ const { currentPage } = props
349
+ const nextPageSlot = slots.nextPage || slots['next-page']
332
350
  const pageCount = computePageCount.value
333
351
  return h('button', {
334
352
  class: ['vxe-pager--next-btn', {
335
- 'is--disabled': props.currentPage >= pageCount
353
+ 'is--disabled': currentPage >= pageCount
336
354
  }],
337
355
  type: 'button',
338
356
  title: getI18n('vxe.pager.nextPageTitle'),
339
357
  onClick: handleNextPage
340
- }, [
341
- h('i', {
342
- class: ['vxe-pager--btn-icon', props.iconNextPage || getIcon().PAGER_NEXT_PAGE]
343
- })
344
- ])
358
+ }, nextPageSlot
359
+ ? nextPageSlot({ currentPage })
360
+ : [
361
+ h('i', {
362
+ class: ['vxe-pager--btn-icon', props.iconNextPage || getIcon().PAGER_NEXT_PAGE]
363
+ })
364
+ ])
345
365
  }
346
366
 
347
367
  // 最后一页
348
368
  const renderEndPage = () => {
369
+ const { currentPage } = props
370
+ const endPageSlot = slots.endPage || slots['end-page']
349
371
  const pageCount = computePageCount.value
350
372
  return h('button', {
351
373
  class: ['vxe-pager--prev-btn', {
352
- 'is--disabled': props.currentPage >= pageCount
374
+ 'is--disabled': currentPage >= pageCount
353
375
  }],
354
376
  type: 'button',
355
377
  title: getI18n('vxe.pager.endPageTitle'),
356
378
  onClick: handleEndPage
357
- }, [
358
- h('i', {
359
- class: ['vxe-pager--btn-icon', props.iconEndPage || getIcon().PAGER_END]
360
- })
361
- ])
379
+ }, endPageSlot
380
+ ? endPageSlot({ currentPage })
381
+ : [
382
+ h('i', {
383
+ class: ['vxe-pager--btn-icon', props.iconEndPage || getIcon().PAGER_END]
384
+ })
385
+ ])
362
386
  }
363
387
 
364
388
  // 页数
365
389
  const renderNumber = (showJump?: boolean) => {
366
390
  const { currentPage, pagerCount } = props
391
+ const numberSlot = showJump ? (slots.jumpNumber || slots['jump-number']) : slots.number
367
392
  const nums = []
368
393
  const pageCount = computePageCount.value
369
394
  const numList = computeNumList.value
@@ -372,6 +397,7 @@ export default defineComponent({
372
397
  const isLt = isOv && currentPage > offsetNumber + 1
373
398
  const isGt = isOv && currentPage < pageCount - offsetNumber
374
399
  let startNumber = 1
400
+
375
401
  if (isOv) {
376
402
  if (currentPage >= pageCount - offsetNumber) {
377
403
  startNumber = Math.max(pageCount - numList.length + 1, 1)
@@ -379,6 +405,13 @@ export default defineComponent({
379
405
  startNumber = Math.max(currentPage - offsetNumber, 1)
380
406
  }
381
407
  }
408
+
409
+ if (numberSlot) {
410
+ return h('span', {
411
+ class: 'vxe-pager--btn-wrapper'
412
+ }, numberSlot({ numList, currentPage, pageCount, startNumber }))
413
+ }
414
+
382
415
  if (showJump && isLt) {
383
416
  nums.push(
384
417
  h('button', {
@@ -426,12 +459,19 @@ export default defineComponent({
426
459
 
427
460
  // sizes
428
461
  const renderSizes = () => {
462
+ const { pageSize, pageSizePlacement, transfer } = props
463
+ const sizesSlot = slots.sizes
429
464
  const sizeList = computeSizeList.value
465
+ if (sizesSlot) {
466
+ return h('span', {
467
+ class: 'vxe-pager--sizes'
468
+ }, sizesSlot({ pageSize, options: sizeList }))
469
+ }
430
470
  return h(VxeSelectComponent, {
431
471
  class: 'vxe-pager--sizes',
432
- modelValue: props.pageSize,
433
- placement: props.pageSizePlacement,
434
- transfer: props.transfer,
472
+ modelValue: pageSize,
473
+ placement: pageSizePlacement,
474
+ transfer: transfer,
435
475
  options: sizeList,
436
476
  onChange: pageSizeEvent
437
477
  })
@@ -439,36 +479,40 @@ export default defineComponent({
439
479
 
440
480
  // Jump
441
481
  const renderJump = (isFull?: boolean) => {
482
+ const { inpCurrPage } = reactData
483
+ const jumpSlot = isFull ? (slots.fullJump || slots['full-jump']) : slots.jump
442
484
  const pageCount = computePageCount.value
443
485
  return h('span', {
444
486
  class: 'vxe-pager--jump'
445
- }, [
446
- isFull
447
- ? h('span', {
448
- class: 'vxe-pager--goto-text'
449
- }, getI18n('vxe.pager.goto'))
450
- : null,
451
- h(VxeInputComponent, {
452
- class: 'vxe-pager--goto',
453
- modelValue: reactData.inpCurrPage,
454
- placeholder: getI18n('vxe.pager.gotoTitle'),
455
- align: 'center',
456
- type: 'integer',
457
- max: pageCount,
458
- min: 1,
459
- controls: false,
460
- onKeydown: jumpKeydownEvent,
461
- onBlur: triggerJumpEvent,
462
- 'onUpdate:modelValue' (val) {
463
- reactData.inpCurrPage = val
464
- }
465
- }),
466
- isFull
467
- ? h('span', {
468
- class: 'vxe-pager--classifier-text'
469
- }, getI18n('vxe.pager.pageClassifier'))
470
- : null
471
- ])
487
+ }, jumpSlot
488
+ ? jumpSlot({ currentPage: inpCurrPage, pageCount })
489
+ : [
490
+ isFull
491
+ ? h('span', {
492
+ class: 'vxe-pager--goto-text'
493
+ }, getI18n('vxe.pager.goto'))
494
+ : null,
495
+ h(VxeInputComponent, {
496
+ class: 'vxe-pager--goto',
497
+ modelValue: reactData.inpCurrPage,
498
+ placeholder: getI18n('vxe.pager.gotoTitle'),
499
+ align: 'center',
500
+ type: 'integer',
501
+ max: pageCount,
502
+ min: 1,
503
+ controls: false,
504
+ onKeydown: jumpKeydownEvent,
505
+ onBlur: triggerJumpEvent,
506
+ 'onUpdate:modelValue' (val) {
507
+ reactData.inpCurrPage = val
508
+ }
509
+ }),
510
+ isFull
511
+ ? h('span', {
512
+ class: 'vxe-pager--classifier-text'
513
+ }, getI18n('vxe.pager.pageClassifier'))
514
+ : null
515
+ ])
472
516
  }
473
517
 
474
518
  // FullJump
@@ -478,22 +522,28 @@ export default defineComponent({
478
522
 
479
523
  // PageCount
480
524
  const renderPageCount = () => {
525
+ const { currentPage } = props
526
+ const pageCountSlot = slots.pageCount || slots['page-count']
481
527
  const pageCount = computePageCount.value
482
528
  return h('span', {
483
529
  class: 'vxe-pager--count'
484
- }, [
485
- h('span', {
486
- class: 'vxe-pager--separator'
487
- }),
488
- h('span', pageCount)
489
- ])
530
+ }, pageCountSlot
531
+ ? pageCountSlot({ currentPage, pageCount })
532
+ : [
533
+ h('span', {
534
+ class: 'vxe-pager--separator'
535
+ }),
536
+ h('span', pageCount)
537
+ ])
490
538
  }
491
539
 
492
540
  // total
493
541
  const renderTotal = () => {
542
+ const { currentPage, total } = props
543
+ const totalSlot = slots.total
494
544
  return h('span', {
495
545
  class: 'vxe-pager--total'
496
- }, getI18n('vxe.pager.total', [props.total]))
546
+ }, totalSlot ? totalSlot({ total, currentPage }) : getI18n('vxe.pager.total', [total]))
497
547
  }
498
548
 
499
549
  const dispatchEvent = (type: ValueOf<VxePagerEmits>, params: Record<string, any>, evnt: Event | null) => {
@@ -106,13 +106,14 @@ export default defineComponent({
106
106
  Object.assign($xeCol, colMethods, colPrivateMethods)
107
107
 
108
108
  const renderVN = () => {
109
- const { span, fill, align, ellipsis } = props
109
+ const { span, fill, align, width, ellipsis } = props
110
110
  const colStyle = computeColStyle.value
111
111
  const defaultSlot = slots.default
112
112
  return h('div', {
113
113
  ref: refElem,
114
114
  class: ['vxe-col', span ? `span${span}` : '', align ? `align--${align}` : '', {
115
- 'is--span': span,
115
+ 'is--span': !!span,
116
+ 'is--width': !!width,
116
117
  'is--fill': fill,
117
118
  'is--ellipsis': ellipsis
118
119
  }],
@@ -32,8 +32,30 @@ $colSpanList: 4.16667%, 8.33333%, 12.5%, 16.66667%, 20.83333%, 25%, 29.16667%, 3
32
32
  }
33
33
  }
34
34
  }
35
+
35
36
  .vxe-col--inner {
36
37
  display: flex;
37
38
  flex-direction: column;
38
39
  width: 100%;
39
- }
40
+ }
41
+
42
+ .vxe-col {
43
+ &.is--span,
44
+ &.is--width {
45
+ & > .vxe-col--inner {
46
+ & > .vxe-default-textarea,
47
+ & > .vxe-default-select,
48
+ & > .vxe-input,
49
+ & > .vxe-number-input,
50
+ & > .vxe-password-input,
51
+ & > .vxe-date-picker,
52
+ & > .vxe-textarea,
53
+ & > .vxe-select,
54
+ & > .vxe-tree-select,
55
+ & > .vxe-table-select,
56
+ & > .vxe-ico-picker {
57
+ width: 100%;
58
+ }
59
+ }
60
+ }
61
+ }
@@ -164,7 +164,7 @@
164
164
  }
165
165
 
166
166
  .vxe-date-picker--panel-layout-wrapper {
167
- display: flex;
167
+ display: inline-flex;
168
168
  flex-direction: column;
169
169
  pointer-events: auto;
170
170
  background-color: var(--vxe-ui-layout-background-color);
@@ -201,11 +201,87 @@ export namespace VxePagerSlotTypes {
201
201
  export interface DefaultSlotParams {
202
202
  [key: string]: any
203
203
  }
204
+ export interface HomePageSlotParams {
205
+ currentPage: number
206
+ }
207
+ export interface PrevPageSlotParams {
208
+ currentPage: number
209
+ }
210
+ export interface JumpPrevSlotParams {
211
+ currentPage: number
212
+ }
213
+ export interface JumpNextSlotParams {
214
+ currentPage: number
215
+ }
216
+ export interface NextPageSlotParams {
217
+ currentPage: number
218
+ }
219
+ export interface EndPageSlotParams {
220
+ currentPage: number
221
+ }
222
+ export interface JumpNumberSlotParams {
223
+ numList: number[]
224
+ currentPage: number
225
+ pageCount: number
226
+ }
227
+ export interface SizesSlotParams {
228
+ currentPage: number
229
+ options: {
230
+ label: number | string
231
+ value: number | string
232
+ }[]
233
+ }
234
+ export interface FullJumpSlotParams {
235
+ currentPage: number
236
+ pageCount: number
237
+ }
238
+ export interface PageCountSlotParams {
239
+ currentPage: number
240
+ pageCount: number
241
+ }
242
+ export interface TotalSlotParams {
243
+ currentPage: number
244
+ total: number
245
+ }
204
246
  }
205
247
 
206
248
  export interface VxePagerSlots {
207
249
  left?: (params: VxePagerSlotTypes.DefaultSlotParams) => any
250
+
208
251
  right?: (params: VxePagerSlotTypes.DefaultSlotParams) => any
252
+
253
+ homePage?: (params: VxePagerSlotTypes.HomePageSlotParams) => any
254
+ 'home-page'?: (params: VxePagerSlotTypes.HomePageSlotParams) => any
255
+
256
+ prevPage?: (params: VxePagerSlotTypes.PrevPageSlotParams) => any
257
+ 'prev-page'?: (params: VxePagerSlotTypes.PrevPageSlotParams) => any
258
+
259
+ jumpPrev?: (params: VxePagerSlotTypes.JumpPrevSlotParams) => any
260
+ 'jump-prev'?: (params: VxePagerSlotTypes.JumpPrevSlotParams) => any
261
+
262
+ jumpNext?: (params: VxePagerSlotTypes.JumpNextSlotParams) => any
263
+ 'jump-next'?: (params: VxePagerSlotTypes.JumpNextSlotParams) => any
264
+
265
+ nextPage?: (params: VxePagerSlotTypes.NextPageSlotParams) => any
266
+ 'next-page'?: (params: VxePagerSlotTypes.NextPageSlotParams) => any
267
+
268
+ endPage?: (params: VxePagerSlotTypes.EndPageSlotParams) => any
269
+ 'end-page'?: (params: VxePagerSlotTypes.EndPageSlotParams) => any
270
+
271
+ number?: (params: VxePagerSlotTypes.JumpNumberSlotParams) => any
272
+ jumpNumber?: (params: VxePagerSlotTypes.JumpNumberSlotParams) => any
273
+ 'jump-number'?: (params: VxePagerSlotTypes.JumpNumberSlotParams) => any
274
+
275
+ sizes?: (params: VxePagerSlotTypes.SizesSlotParams) => any
276
+
277
+ fullJump?: (params: VxePagerSlotTypes.FullJumpSlotParams) => any
278
+ 'full-jump'?: (params: VxePagerSlotTypes.FullJumpSlotParams) => any
279
+ jump?: (params: VxePagerSlotTypes.FullJumpSlotParams) => any
280
+
281
+ pageCount?: (params: VxePagerSlotTypes.PageCountSlotParams) => any
282
+ 'page-count'?: (params: VxePagerSlotTypes.PageCountSlotParams) => any
283
+
284
+ total?: (params: VxePagerSlotTypes.TotalSlotParams) => any
209
285
  }
210
286
 
211
287
  export const Pager: typeof VxePager
@@ -3115,6 +3115,12 @@ export interface TableReactData<D = any> {
3115
3115
  }
3116
3116
 
3117
3117
  scrollVMLoading: boolean
3118
+ scrollYHeight: number
3119
+ scrollYTop: number
3120
+ isScrollYBig: boolean
3121
+ scrollXLeft: number
3122
+ scrollXWidth: number
3123
+ isScrollXBig: boolean
3118
3124
 
3119
3125
  rowExpandHeightFlag: number
3120
3126
  calcCellHeightFlag: number
@@ -4329,6 +4335,7 @@ export namespace VxeTableDefines {
4329
4335
  items: VxeTableDefines.ColumnInfo<D>[]
4330
4336
  parent: VxeTableDefines.ColumnInfo<D> | null
4331
4337
  width: number
4338
+ oLeft: number
4332
4339
  }
4333
4340
 
4334
4341
  /**