@pisell/materials 1.0.207 → 1.0.208

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.
@@ -330,6 +330,420 @@ export default {
330
330
  },
331
331
  },
332
332
  },
333
+ {
334
+ title: "视图",
335
+ display: "block",
336
+ type: "group",
337
+ items: [
338
+ {
339
+ name: "view.defaultViewMode",
340
+ title: {
341
+ label: "默认视图",
342
+ tip: "view.defaultViewMode | 组件默认展示视图",
343
+ },
344
+ propType: "string",
345
+ setter: {
346
+ componentName: "RadioGroupSetter",
347
+ props: {
348
+ options: [
349
+ {
350
+ title: "Grid",
351
+ value: "grid",
352
+ },
353
+ {
354
+ title: "Gallery",
355
+ value: "gallery",
356
+ },
357
+ {
358
+ title: "Kanban",
359
+ value: "kanban",
360
+ },
361
+ ],
362
+ },
363
+ },
364
+ },
365
+ {
366
+ name: "view.multiple",
367
+ title: {
368
+ label: "开启多视图",
369
+ tip: "view.multiple | 开启多视图后可以进行不同组件类型切换",
370
+ },
371
+ propType: "bool",
372
+ setter: "BoolSetter",
373
+ defaultValue: false,
374
+ },
375
+ {
376
+ name: "view.modeList",
377
+ title: {
378
+ label: "多视图",
379
+ tip: "view.modeList | 组件多视图选项",
380
+ },
381
+ condition(target) {
382
+ return !!target.getProps().getPropValue("view.multiple");
383
+ },
384
+ setter: {
385
+ componentName: "SelectSetter",
386
+ props: {
387
+ mode: "multiple",
388
+ options: [
389
+ {
390
+ title: "Grid",
391
+ value: "grid",
392
+ },
393
+ {
394
+ title: "Gallery",
395
+ value: "gallery",
396
+ },
397
+ {
398
+ title: "Kanban",
399
+ value: "kanban",
400
+ },
401
+ ],
402
+ },
403
+ },
404
+ },
405
+ ],
406
+ },
407
+ {
408
+ title: "Gallery",
409
+ display: "entry",
410
+ type: "group",
411
+ items: [
412
+ {
413
+ name: "gallery.cardMinWidth",
414
+ title: { label: "卡片最小宽度", tip: "卡片最小宽度,屏幕尺寸改变时卡片宽度始终保持在最大最小之间|gallery.cardMinWidth" },
415
+ setter: "NumberSetter",
416
+ defaultValue: 260,
417
+ },
418
+ {
419
+ name: "gallery.cardMaxWidth",
420
+ title: { label: "卡片最大宽度", tip: "卡片最大宽度,屏幕尺寸改变时卡片宽度始终保持在最大最小之间|gallery.cardMaxWidth" },
421
+ setter: "NumberSetter",
422
+ defaultValue: 340,
423
+ },
424
+ {
425
+ name: "gallery.horizontalGutter",
426
+ title: { label: "水平间隔", tip: "水平间隔|gallery.horizontalGutter" },
427
+ setter: "NumberSetter",
428
+ defaultValue: 32,
429
+ },
430
+ {
431
+ name: "gallery.verticalGutter",
432
+ title: { label: "垂直间隔", tip: "垂直间隔|gallery.verticalGutter" },
433
+ setter: "NumberSetter",
434
+ defaultValue: 32,
435
+ },
436
+ {
437
+ name: "gallery.fixedHeight",
438
+ title: { label: "高度固定", tip: "高度固定|gallery.fixedHeight" },
439
+ setter: "BoolSetter",
440
+ },
441
+ {
442
+ name: "gallery.cardHeight",
443
+ title: { label: "卡片高度", tip: "卡片高度|gallery.cardHeight" },
444
+ setter: "NumberSetter",
445
+ condition: {
446
+ type: "JSFunction",
447
+ value: 'target => !!target.getProps().getPropValue("gallery.fixedHeight")',
448
+ },
449
+ },
450
+ {
451
+ name: "gallery.fixedHeader",
452
+ title: { label: "固定顶部", tip: "是否固定顶部|gallery.fixedHeader" },
453
+ setter: "BoolSetter",
454
+ condition: {
455
+ type: "JSFunction",
456
+ value: 'target => !!target.getProps().getPropValue("gallery.fixedHeight")',
457
+ },
458
+ },
459
+ {
460
+ name: "gallery.fixedFooter",
461
+ title: { label: "固定底部", tip: "是否固定底部|gallery.fixedFooter" },
462
+ setter: "BoolSetter",
463
+ condition: {
464
+ type: "JSFunction",
465
+ value: 'target => !!target.getProps().getPropValue("gallery.fixedHeight")',
466
+ },
467
+ },
468
+ {
469
+ name: "gallery.footer.render",
470
+ title: {
471
+ label: "底部渲染函数",
472
+ tip: "底部渲染函数 |gallery.footer.render",
473
+ },
474
+ propType: "func",
475
+ setter: [
476
+ {
477
+ componentName: "SlotSetter",
478
+ title: "底部函数插槽",
479
+ initialValue: {
480
+ type: "JSSlot",
481
+ params: ["record", "index"],
482
+ value: [],
483
+ },
484
+ },
485
+ {
486
+ componentName: "FunctionSetter",
487
+ props: {
488
+ template: "footer(){\n// 自定义渲染底部\nreturn `Footer`;\n}",
489
+ },
490
+ },
491
+ "VariableSetter",
492
+ ],
493
+ },
494
+ {
495
+ name: "gallery.footer.height",
496
+ title: { label: "底部高度", tip: "底部高度|gallery.footer.height" },
497
+ setter: "NumberSetter",
498
+ condition: {
499
+ type: "JSFunction",
500
+ value: 'target => !!target.getProps().getPropValue("gallery.footer.render")',
501
+ },
502
+ },
503
+ {
504
+ title: "头部区域",
505
+ display: "block",
506
+ type: "group",
507
+ items: [
508
+ {
509
+ name: "gallery.cover.show",
510
+ title: { label: "封面开启", tip: "封面开启|gallery.cover.show" },
511
+ setter: "BoolSetter",
512
+ defaultValue: true,
513
+ },
514
+ {
515
+ name: "gallery.cover.fields",
516
+ title: {
517
+ label: "封面内容",
518
+ tip: "gallery.cover.fields | 封面内容字段",
519
+ },
520
+ setter: {
521
+ componentName: "SelectSetter",
522
+ props: (target) => {
523
+ const columns =
524
+ target.parent.parent.parent.getPropValue("columns");
525
+ return {
526
+ mode: "multiple",
527
+ options: columns.map((item) => ({
528
+ title:
529
+ typeof item.title === "string" ? item.title : item.key,
530
+ value: item.key,
531
+ })),
532
+ };
533
+ },
534
+ },
535
+ condition: {
536
+ type: "JSFunction",
537
+ value: 'target => !!target.getProps().getPropValue("gallery.cover.show")',
538
+ },
539
+ },
540
+ {
541
+ name: "gallery.cover.height",
542
+ title: {
543
+ label: "封面高度",
544
+ tip: "gallery.cover.height | 封面高度",
545
+ },
546
+ propType: "number",
547
+ setter: "NumberSetter",
548
+ defaultValue: 230,
549
+ condition: {
550
+ type: "JSFunction",
551
+ value: 'target => !!target.getProps().getPropValue("gallery.cover.show")',
552
+ },
553
+ },
554
+ {
555
+ name: "gallery.cover.objectFit",
556
+ title: {
557
+ label: "封面效果",
558
+ tip: "gallery.cover.objectFit | 封面效果",
559
+ },
560
+ propType: "string",
561
+ setter: {
562
+ componentName: "RadioGroupSetter",
563
+ props: {
564
+ options: [
565
+ {
566
+ title: "适应",
567
+ value: "fill",
568
+ },
569
+ {
570
+ title: "裁剪",
571
+ value: "cover",
572
+ },
573
+ ],
574
+ },
575
+ initialValue: 'fill'
576
+ },
577
+ condition: {
578
+ type: "JSFunction",
579
+ value: 'target => !!target.getProps().getPropValue("gallery.cover.show")',
580
+ },
581
+ },
582
+ {
583
+ name: "gallery.title.field",
584
+ title: {
585
+ label: "标题内容",
586
+ tip: "gallery.title.field | 标题内容",
587
+ },
588
+ propType: "string",
589
+ setter: {
590
+ componentName: "SelectSetter",
591
+ props: (target) => {
592
+ const columns =
593
+ target.parent.parent.parent.getPropValue("columns");
594
+ return {
595
+ mode: "single",
596
+ options: columns.map((item) => ({
597
+ title:
598
+ typeof item.title === "string" ? item.title : item.key,
599
+ value: item.key,
600
+ })),
601
+ };
602
+ },
603
+ },
604
+ },
605
+ {
606
+ name: "gallery.title.line",
607
+ title: {
608
+ label: "标题行数",
609
+ tip: "gallery.title.line | 标题行数",
610
+ },
611
+ propType: "number",
612
+ setter: "NumberSetter",
613
+ },
614
+ {
615
+ name: "gallery.header.slot",
616
+ title: {
617
+ label: "开启插槽",
618
+ tip: "gallery.header.slot | 开启插槽",
619
+ },
620
+ propType: "func",
621
+ setter: [
622
+ {
623
+ componentName: "SlotSetter",
624
+ title: "函数插槽",
625
+ initialValue: {
626
+ type: "JSSlot",
627
+ params: ["record", "index"],
628
+ value: [],
629
+ },
630
+ },
631
+ "VariableSetter",
632
+ ],
633
+ },
634
+ {
635
+ name: "gallery.header.fields.show",
636
+ title: {
637
+ label: "其他字段",
638
+ tip: "gallery.header.fields.show | 其他字段",
639
+ },
640
+ propType: "bool",
641
+ setter: "BoolSetter",
642
+ defaultValue: false,
643
+ },
644
+ {
645
+ name: "gallery.header.fields.list",
646
+ title: {
647
+ label: "其他字段",
648
+ tip: "gallery.header.fields.list | 选择字段渲染在上方",
649
+ },
650
+ condition: {
651
+ type: "JSFunction",
652
+ value: 'target => !!target.getProps().getPropValue("gallery.header.fields.show")',
653
+ },
654
+ setter: {
655
+ componentName: "SelectSetter",
656
+ props: (target) => {
657
+ const columns =
658
+ target.parent.parent.parent.getPropValue("columns");
659
+ return {
660
+ mode: "multiple",
661
+ options: columns.map((item) => ({
662
+ title:
663
+ typeof item.title === "string" ? item.title : item.key,
664
+ value: item.key,
665
+ })),
666
+ };
667
+ },
668
+ },
669
+ },
670
+ ],
671
+ },
672
+ {
673
+ title: "内容区域",
674
+ display: "block",
675
+ type: "group",
676
+ items: [
677
+ {
678
+ name: "gallery.content.fields",
679
+ title: "",
680
+ setter: {
681
+ componentName: "ArraySetter",
682
+ props: {
683
+ itemSetter: {
684
+ componentName: "ObjectSetter",
685
+ props: {
686
+ config: {
687
+ items: [
688
+ {
689
+ name: "columnKey",
690
+ title: { label: "渲染字段", tip: "渲染字段" },
691
+ isRequired: true,
692
+ setter: {
693
+ componentName: "SelectSetter",
694
+ props: (target) => {
695
+ const columns =
696
+ target.parent.parent.parent.getPropValue(
697
+ "columns"
698
+ );
699
+ const fieldsKey = target.parent.parent.parent
700
+ .getPropValue("gallery.content.fields")
701
+ .map((item) => item?.columnKey)
702
+ .filter(Boolean);
703
+ return {
704
+ mode: "single",
705
+ options: columns.map((item) => ({
706
+ title:
707
+ typeof item.title === "string"
708
+ ? item.title
709
+ : item.key,
710
+ value: item.key,
711
+ disabled: fieldsKey.includes(item.key),
712
+ })),
713
+ };
714
+ },
715
+ },
716
+ },
717
+ {
718
+ name: "show",
719
+ title: { label: "是否展示", tip: "是否展示" },
720
+ propType: "bool",
721
+ setter: "BoolSetter",
722
+ isRequired: true,
723
+ },
724
+ ],
725
+ },
726
+ },
727
+ initialValue: {
728
+ columnKey: "",
729
+ show: true,
730
+ },
731
+ },
732
+ },
733
+ initialValue: (target) => {
734
+ const columns =
735
+ target.parent.parent.parent.getPropValue("columns");
736
+ return columns.map((item) => ({
737
+ columnKey: item.key,
738
+ show: true,
739
+ }));
740
+ },
741
+ },
742
+ },
743
+ ],
744
+ },
745
+ ],
746
+ },
333
747
  {
334
748
  title: "外观",
335
749
  display: "block",
@@ -1416,7 +1830,6 @@ export default {
1416
1830
  },
1417
1831
  },
1418
1832
  },
1419
-
1420
1833
  {
1421
1834
  name: "sort.list",
1422
1835
  condition: {
@@ -1486,6 +1899,23 @@ export default {
1486
1899
  name: "name",
1487
1900
  title: { label: "字段", tip: "所排序的字段" },
1488
1901
  setter: [
1902
+ {
1903
+ componentName: "SelectSetter",
1904
+ mode: "single",
1905
+ props: (target) => {
1906
+ return {
1907
+ options: target.parent.parent.parent
1908
+ .getPropValue("columns")
1909
+ .map((item) => ({
1910
+ title:
1911
+ typeof item.title === "string"
1912
+ ? item.title
1913
+ : item.key,
1914
+ value: item.dataIndex,
1915
+ })),
1916
+ };
1917
+ },
1918
+ },
1489
1919
  "StringSetter",
1490
1920
  {
1491
1921
  componentName: "ArraySetter",