unika-components 1.0.340 → 1.0.342

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.
@@ -76,11 +76,7 @@ declare const _default: import("vue").DefineComponent<{
76
76
  id: number;
77
77
  }[];
78
78
  };
79
- shadowStyle: import("vue").ComputedRef<{
80
- textShadow?: undefined;
81
- } | {
82
- textShadow: string;
83
- }>;
79
+ boxShadowStyle: import("vue").ComputedRef<string>;
84
80
  animationStyle: import("vue").ComputedRef<{
85
81
  animation?: undefined;
86
82
  } | {
@@ -88,65 +84,39 @@ declare const _default: import("vue").DefineComponent<{
88
84
  }>;
89
85
  textAniClasses: import("vue").ComputedRef<string[]>;
90
86
  computedStyle: import("vue").ComputedRef<{
91
- animation?: undefined;
92
- textShadow?: undefined;
93
87
  position: string;
94
- fontSize: string;
95
- lineHeight: number;
96
- letterSpacing: string;
97
- width: string;
98
- height: string;
99
88
  left: string;
100
89
  top: string;
101
- transform: string;
102
- padding: string;
103
- textIndent: string;
104
- borderRadius: string;
105
- } | {
106
- animation: string;
107
- textShadow?: undefined;
108
- position: string;
109
- fontSize: string;
110
- lineHeight: number;
111
- letterSpacing: string;
112
90
  width: string;
113
91
  height: string;
114
- left: string;
115
- top: string;
116
92
  transform: string;
117
- padding: string;
118
- textIndent: string;
119
- borderRadius: string;
120
- } | {
121
- animation?: undefined;
122
- textShadow: string;
123
- position: string;
93
+ }>;
94
+ textCommonStyle: import("vue").ComputedRef<{
95
+ fontFamily: string;
124
96
  fontSize: string;
125
97
  lineHeight: number;
126
98
  letterSpacing: string;
127
- width: string;
128
- height: string;
129
- left: string;
130
- top: string;
131
- transform: string;
99
+ fontWeight: string;
100
+ textDecoration: string;
101
+ textAlign: string;
102
+ color: string;
103
+ opacity: number;
132
104
  padding: string;
133
105
  textIndent: string;
134
- borderRadius: string;
135
- } | {
136
- animation: string;
137
- textShadow: string;
138
- position: string;
106
+ }>;
107
+ textEditorStyle: import("vue").ComputedRef<{
108
+ display: string;
109
+ fontFamily: string;
139
110
  fontSize: string;
140
111
  lineHeight: number;
141
112
  letterSpacing: string;
142
- width: string;
143
- height: string;
144
- left: string;
145
- top: string;
146
- transform: string;
113
+ fontWeight: string;
114
+ textDecoration: string;
115
+ textAlign: string;
116
+ color: string;
117
+ opacity: number;
147
118
  padding: string;
148
119
  textIndent: string;
149
- borderRadius: string;
150
120
  }>;
151
121
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
152
122
  element: {
@@ -6,7 +6,17 @@
6
6
  display: inline-block;
7
7
  }
8
8
 
9
- .uni-text {
9
+ .ele-text {
10
+ position: relative;
11
+ }
12
+
13
+ .ani-wrap {
14
+ display: flex;
15
+ justify-content: center;
16
+ align-items: center;
17
+ }
18
+
19
+ .text-common {
10
20
  white-space: pre-wrap;
11
21
  word-break: break-all;
12
22
  transform-origin: center;
@@ -262,16 +272,26 @@
262
272
  will-change: transform;
263
273
  }
264
274
 
275
+ .like-button {
276
+ display: flex;
277
+ flex-direction: column;
278
+ align-items: center;
279
+ cursor: pointer;
280
+ }
265
281
 
266
- .uni-calendar-component {
282
+ .icon-heart {
283
+ font-size: 24px;
284
+ color: #e74c3c;
285
+ }
267
286
 
287
+ .liked {
288
+ color: #f00; /* 更改颜色以示已赞 */
268
289
  }
269
- .slot-number {
270
- position: absolute;
271
- bottom: 2px;
272
- left: 7px;
273
- font-size: 12px;
274
- color: #666
290
+
291
+ .like-count {
292
+ margin-top: 4px;
293
+ font-size: 16px;
294
+ color: #333;
275
295
  }
276
296
 
277
297
  .uni-video-component {
@@ -295,36 +315,16 @@
295
315
  background: rgba(0, 0, 0, 0.8);
296
316
  }
297
317
 
298
- .effect {
299
- width: 100%;
300
- height: 100%;
301
- }
302
-
303
- .uni-lotties-component {
304
- width: 100%;
305
- height: 100%;
306
- }
307
-
308
- .like-button {
309
- display: flex;
310
- flex-direction: column;
311
- align-items: center;
312
- cursor: pointer;
313
- }
314
318
 
315
- .icon-heart {
316
- font-size: 24px;
317
- color: #e74c3c;
318
- }
319
+ .uni-calendar-component {
319
320
 
320
- .liked {
321
- color: #f00; /* 更改颜色以示已赞 */
322
321
  }
323
-
324
- .like-count {
325
- margin-top: 4px;
326
- font-size: 16px;
327
- color: #333;
322
+ .slot-number {
323
+ position: absolute;
324
+ bottom: 2px;
325
+ left: 7px;
326
+ font-size: 12px;
327
+ color: #666
328
328
  }
329
329
 
330
330
  .ant-input-number {
@@ -361,13 +361,210 @@
361
361
  margin-bottom: 0px;
362
362
  vertical-align: top;
363
363
  }
364
+
365
+ .uni-lotties-component {
366
+ width: 100%;
367
+ height: 100%;
368
+ }
369
+
370
+ .effect {
371
+ width: 100%;
372
+ height: 100%;
373
+ }
374
+
375
+ .uni-build-up-component {
376
+ }
364
377
 
365
378
  .uni-svg-component {
366
379
  display: inline-block;
367
380
  }
368
381
 
369
- .uni-build-up-component {
382
+
383
+ .no-animation__card {
384
+ font-weight: 500;
385
+ font-size: var(--countdown-size, 2rem);
386
+ line-height: 1.5;
387
+ display: block;
388
+ color: var(--main-color, #EC685C);
389
+ }
390
+
391
+ .flip-clock {
392
+ text-align: center;
393
+ perspective: 600px;
394
+ margin: 0 auto;
395
+ }
396
+
397
+ .flip-clock *,
398
+ .flip-clock *:before,
399
+ .flip-clock *:after {
400
+ box-sizing: border-box;
401
+ }
402
+
403
+ .flip-clock__piece {
404
+ display: inline-block;
405
+ margin: 0 0.2vw;
406
+ }
407
+
408
+ @media (min-width: 1000px) {
409
+ .flip-clock__piece {
410
+ margin: 0 5px;
370
411
  }
412
+ }
413
+
414
+ .flip-clock__slot {
415
+ font-size: var(--label-size, 1rem);
416
+ line-height: 1.5;
417
+ display: block;
418
+ color: var(--label-color, #222222);
419
+ }
420
+
421
+ .flip-card {
422
+ display: block;
423
+ position: relative;
424
+ padding-bottom: 0.72em; /* halfHeight */
425
+ font-size: var(--countdown-size, 2.25rem);
426
+ line-height: 0.95;
427
+ }
428
+
429
+ @media (min-width: 1000px) {
430
+ .flip-clock__slot {
431
+ font-size: 1.2rem;
432
+ }
433
+
434
+ .flip-card {
435
+ font-size: 3rem;
436
+ }
437
+ }
438
+
439
+ .flip-card__top,
440
+ .flip-card__bottom,
441
+ .flip-card__back-bottom,
442
+ .flip-card__back::before,
443
+ .flip-card__back::after{
444
+ display: block;
445
+ height: 0.72em; /* halfHeight */
446
+ color: var(--main-color, #EC685C);
447
+ background: var(--main-flip-background-color, #222222);
448
+ padding: 0.23em 0.15em 0.4em;
449
+ border-radius: 0.15em 0.15em 0 0; /* borderRadius */
450
+ backface-visibility: hidden;
451
+ -webkit-backface-visibility: hidden;
452
+ transform-style: preserve-3d;
453
+ width: 2.1em;
454
+ }
455
+
456
+ .flip-card__top-4digits,
457
+ .flip-card__bottom-4digits,
458
+ .flip-card__back-bottom-4digits,
459
+ .flip-card__back-4digits::before,
460
+ .flip-card__back-4digits::after {
461
+ display: block;
462
+ height: 0.72em; /* halfHeight */
463
+ color: var(--main-color, #EC685C);
464
+ background: var(--main-flip-background-color, #222222);
465
+ padding: 0.23em 0.15em 0.4em;
466
+ border-radius: 0.15em 0.15em 0 0; /* borderRadius */
467
+ backface-visibility: hidden;
468
+ -webkit-backface-visibility: hidden;
469
+ transform-style: preserve-3d;
470
+ width: 2.65em;
471
+ }
472
+
473
+ .flip-card__bottom,
474
+ .flip-card__back-bottom,
475
+ .flip-card__bottom-4digits,
476
+ .flip-card__back-bottom-4digits {
477
+ color: var(--second-flip-color, #EC685C);
478
+ position: absolute;
479
+ top: 50%;
480
+ left: 0;
481
+ border-top: solid 1px var(--second-flip-background-color, #000);
482
+ background: var(--second-flip-background-color, #393939);
483
+ border-radius: 0 0 0.15em 0.15em; /* borderRadius */
484
+ pointer-events: none;
485
+ overflow: hidden;
486
+ z-index: 2;
487
+ }
488
+
489
+ .flip-card__back-bottom,
490
+ .flip-card__back-bottom-4digits {
491
+ z-index: 1;
492
+ }
493
+
494
+ .flip-card__bottom::after,
495
+ .flip-card__back-bottom::after,
496
+ .flip-card__bottom-4digits::after,
497
+ .flip-card__back-bottom-4digits::after {
498
+ display: block;
499
+ margin-top: -0.72em; /* Negative halfHeight */
500
+ }
501
+ .flip-card__back::before,
502
+ .flip-card__bottom::after,
503
+ .flip-card__back-bottom::after,
504
+ .flip-card__back-4digits::before,
505
+ .flip-card__bottom-4digits::after,
506
+ .flip-card__back-bottom-4digits::after {
507
+ content: attr(data-value);
508
+ }
509
+
510
+ .flip-card__back,
511
+ .flip-card__back-4digits {
512
+ position: absolute;
513
+ top: 0;
514
+ height: 100%;
515
+ left: 0%;
516
+ pointer-events: none;
517
+ }
518
+ .flip-card__back::before,
519
+ .flip-card__back-4digits::before {
520
+ position: relative;
521
+ overflow: hidden;
522
+ z-index: -1;
523
+ }
524
+
525
+ .flip .flip-card__back::before,
526
+ .flip .flip-card__back-4digits::before {
527
+ z-index: 1;
528
+ animation: flipTop 0.3s cubic-bezier(0.37, 0.01, 0.94, 0.35);
529
+ animation-fill-mode: both;
530
+ transform-origin: center bottom;
531
+ }
532
+
533
+ .flip .flip-card__bottom,
534
+ .flip .flip-card__bottom-4digits {
535
+ transform-origin: center top;
536
+ animation-fill-mode: both;
537
+ animation: flipBottom 0.6s cubic-bezier(0.15, 0.45, 0.28, 1);
538
+ }
539
+ @keyframes flipTop {
540
+ 0% {
541
+ transform: rotateX(0deg);
542
+ z-index: 2;
543
+ }
544
+ 0%, 99% {
545
+ opacity: 1;
546
+ }
547
+ 100% {
548
+ transform: rotateX(-90deg);
549
+ opacity: 0;
550
+ }
551
+ }
552
+
553
+ @keyframes flipBottom {
554
+ 0%, 50% {
555
+ z-index: -1;
556
+ transform: rotateX(90deg);
557
+ opacity: 0;
558
+ }
559
+ 51% {
560
+ opacity: 1;
561
+ }
562
+ 100% {
563
+ opacity: 1;
564
+ transform: rotateX(0deg);
565
+ z-index: 5;
566
+ }
567
+ }
371
568
 
372
569
  .unika-calendar-box {
373
570
  position: relative;
@@ -629,190 +826,3 @@
629
826
  padding: 0 0px;
630
827
  border-bottom: 1px solid
631
828
  }
632
-
633
-
634
- .no-animation__card {
635
- font-weight: 500;
636
- font-size: var(--countdown-size, 2rem);
637
- line-height: 1.5;
638
- display: block;
639
- color: var(--main-color, #EC685C);
640
- }
641
-
642
- .flip-clock {
643
- text-align: center;
644
- perspective: 600px;
645
- margin: 0 auto;
646
- }
647
-
648
- .flip-clock *,
649
- .flip-clock *:before,
650
- .flip-clock *:after {
651
- box-sizing: border-box;
652
- }
653
-
654
- .flip-clock__piece {
655
- display: inline-block;
656
- margin: 0 0.2vw;
657
- }
658
-
659
- @media (min-width: 1000px) {
660
- .flip-clock__piece {
661
- margin: 0 5px;
662
- }
663
- }
664
-
665
- .flip-clock__slot {
666
- font-size: var(--label-size, 1rem);
667
- line-height: 1.5;
668
- display: block;
669
- color: var(--label-color, #222222);
670
- }
671
-
672
- .flip-card {
673
- display: block;
674
- position: relative;
675
- padding-bottom: 0.72em; /* halfHeight */
676
- font-size: var(--countdown-size, 2.25rem);
677
- line-height: 0.95;
678
- }
679
-
680
- @media (min-width: 1000px) {
681
- .flip-clock__slot {
682
- font-size: 1.2rem;
683
- }
684
-
685
- .flip-card {
686
- font-size: 3rem;
687
- }
688
- }
689
-
690
- .flip-card__top,
691
- .flip-card__bottom,
692
- .flip-card__back-bottom,
693
- .flip-card__back::before,
694
- .flip-card__back::after{
695
- display: block;
696
- height: 0.72em; /* halfHeight */
697
- color: var(--main-color, #EC685C);
698
- background: var(--main-flip-background-color, #222222);
699
- padding: 0.23em 0.15em 0.4em;
700
- border-radius: 0.15em 0.15em 0 0; /* borderRadius */
701
- backface-visibility: hidden;
702
- -webkit-backface-visibility: hidden;
703
- transform-style: preserve-3d;
704
- width: 2.1em;
705
- }
706
-
707
- .flip-card__top-4digits,
708
- .flip-card__bottom-4digits,
709
- .flip-card__back-bottom-4digits,
710
- .flip-card__back-4digits::before,
711
- .flip-card__back-4digits::after {
712
- display: block;
713
- height: 0.72em; /* halfHeight */
714
- color: var(--main-color, #EC685C);
715
- background: var(--main-flip-background-color, #222222);
716
- padding: 0.23em 0.15em 0.4em;
717
- border-radius: 0.15em 0.15em 0 0; /* borderRadius */
718
- backface-visibility: hidden;
719
- -webkit-backface-visibility: hidden;
720
- transform-style: preserve-3d;
721
- width: 2.65em;
722
- }
723
-
724
- .flip-card__bottom,
725
- .flip-card__back-bottom,
726
- .flip-card__bottom-4digits,
727
- .flip-card__back-bottom-4digits {
728
- color: var(--second-flip-color, #EC685C);
729
- position: absolute;
730
- top: 50%;
731
- left: 0;
732
- border-top: solid 1px var(--second-flip-background-color, #000);
733
- background: var(--second-flip-background-color, #393939);
734
- border-radius: 0 0 0.15em 0.15em; /* borderRadius */
735
- pointer-events: none;
736
- overflow: hidden;
737
- z-index: 2;
738
- }
739
-
740
- .flip-card__back-bottom,
741
- .flip-card__back-bottom-4digits {
742
- z-index: 1;
743
- }
744
-
745
- .flip-card__bottom::after,
746
- .flip-card__back-bottom::after,
747
- .flip-card__bottom-4digits::after,
748
- .flip-card__back-bottom-4digits::after {
749
- display: block;
750
- margin-top: -0.72em; /* Negative halfHeight */
751
- }
752
- .flip-card__back::before,
753
- .flip-card__bottom::after,
754
- .flip-card__back-bottom::after,
755
- .flip-card__back-4digits::before,
756
- .flip-card__bottom-4digits::after,
757
- .flip-card__back-bottom-4digits::after {
758
- content: attr(data-value);
759
- }
760
-
761
- .flip-card__back,
762
- .flip-card__back-4digits {
763
- position: absolute;
764
- top: 0;
765
- height: 100%;
766
- left: 0%;
767
- pointer-events: none;
768
- }
769
- .flip-card__back::before,
770
- .flip-card__back-4digits::before {
771
- position: relative;
772
- overflow: hidden;
773
- z-index: -1;
774
- }
775
-
776
- .flip .flip-card__back::before,
777
- .flip .flip-card__back-4digits::before {
778
- z-index: 1;
779
- animation: flipTop 0.3s cubic-bezier(0.37, 0.01, 0.94, 0.35);
780
- animation-fill-mode: both;
781
- transform-origin: center bottom;
782
- }
783
-
784
- .flip .flip-card__bottom,
785
- .flip .flip-card__bottom-4digits {
786
- transform-origin: center top;
787
- animation-fill-mode: both;
788
- animation: flipBottom 0.6s cubic-bezier(0.15, 0.45, 0.28, 1);
789
- }
790
- @keyframes flipTop {
791
- 0% {
792
- transform: rotateX(0deg);
793
- z-index: 2;
794
- }
795
- 0%, 99% {
796
- opacity: 1;
797
- }
798
- 100% {
799
- transform: rotateX(-90deg);
800
- opacity: 0;
801
- }
802
- }
803
-
804
- @keyframes flipBottom {
805
- 0%, 50% {
806
- z-index: -1;
807
- transform: rotateX(90deg);
808
- opacity: 0;
809
- }
810
- 51% {
811
- opacity: 1;
812
- }
813
- 100% {
814
- opacity: 1;
815
- transform: rotateX(0deg);
816
- z-index: 5;
817
- }
818
- }
@@ -1,4 +1,4 @@
1
- import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, normalizeStyle as normalizeStyle$1, toDisplayString, createCommentVNode, ref, nextTick, withModifiers, createElementVNode, Fragment, renderList, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, watch, resolveComponent, createVNode, Transition, withCtx, withDirectives, vShow, createTextVNode, renderSlot, pushScopeId, popScopeId, toRefs, onMounted, onBeforeMount, onUnmounted, h as h$2, isVNode, Comment, Text, reactive, getCurrentInstance, onUpdated, inject, provide, unref, shallowRef, watchEffect, onBeforeUnmount, triggerRef, resolveDirective, cloneVNode, toRef, Teleport, isRef, toRaw, render as render$m, TransitionGroup, onBeforeUpdate, mergeProps } from 'vue';
1
+ import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, normalizeStyle as normalizeStyle$1, createElementVNode, toDisplayString, createCommentVNode, createStaticVNode, ref, nextTick, withModifiers, Fragment, renderList, createBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, watch, resolveComponent, createVNode, Transition, withCtx, withDirectives, vShow, createTextVNode, renderSlot, pushScopeId, popScopeId, toRefs, onMounted, onBeforeMount, onUnmounted, h as h$2, isVNode, Comment, Text, reactive, getCurrentInstance, onUpdated, inject, provide, unref, shallowRef, watchEffect, onBeforeUnmount, triggerRef, resolveDirective, cloneVNode, toRef, Teleport, isRef, toRaw, render as render$m, TransitionGroup, onBeforeUpdate, mergeProps } from 'vue';
2
2
  import crypto from 'crypto';
3
3
 
4
4
  var script$k = defineComponent({
@@ -10,17 +10,14 @@ var script$k = defineComponent({
10
10
  }
11
11
  },
12
12
  setup(props) {
13
- // 确保在解构之前检查 element 是否存在
14
13
  const element = props.element || {};
15
14
  const css = element.css || {};
16
15
  const properties = element.properties || {};
17
16
  // 计算阴影样式
18
- const shadowStyle = computed(() => {
17
+ const boxShadowStyle = computed(() => {
19
18
  if (!properties.shadowSize)
20
- return {};
21
- return {
22
- textShadow: `${properties.shadowX || 0}px ${properties.shadowY || 0}px ${properties.shadowBlur || 0}px ${properties.shadowColor || '#000'}`
23
- };
19
+ return 'none';
20
+ return `${properties.shadowX || 0}px ${properties.shadowY || 0}px ${properties.shadowBlur || 0}px ${properties.shadowColor || '#000'}`;
24
21
  });
25
22
  // 计算动画样式
26
23
  const animationStyle = computed(() => {
@@ -40,38 +37,83 @@ var script$k = defineComponent({
40
37
  // 计算样式
41
38
  const computedStyle = computed(() => ({
42
39
  position: 'absolute',
43
- fontSize: `${css.fontSize || 16}px`,
44
- lineHeight: css.lineHeight || 1,
45
- letterSpacing: `${css.letterSpacing || 0}px`,
46
- width: `${css.width || 100}px`,
47
- height: `${css.height || 0}px`,
48
40
  left: `${css.left || 0}px`,
49
41
  top: `${css.top || 0}px`,
42
+ width: `${css.width || 100}px`,
43
+ height: 'auto',
50
44
  transform: `rotate(${css.transform || 0}deg)`,
45
+ }));
46
+ // 计算文本样式
47
+ const textCommonStyle = computed(() => ({
48
+ fontFamily: css.fontFamily || '微软雅黑',
49
+ fontSize: `${css.fontSize || 16}px`,
50
+ lineHeight: css.lineHeight || 1,
51
+ letterSpacing: `${css.letterSpacing || 0}px`,
52
+ fontWeight: css.fontWeight || 'normal',
53
+ textDecoration: css.textDecoration || 'none',
54
+ textAlign: css.textAlign || 'center',
55
+ color: css.color || '#000',
56
+ opacity: properties.visible ? 1 : 0,
51
57
  padding: `${css.padding || 0}px`,
52
58
  textIndent: `${css.textIndent || 0}px`,
53
- borderRadius: `${css.borderRadius || 0}px`,
54
- ...shadowStyle.value,
55
- ...animationStyle.value
59
+ }));
60
+ const textEditorStyle = computed(() => ({
61
+ ...textCommonStyle.value,
62
+ display: 'block', // 确保文本编辑器可见
56
63
  }));
57
64
  return {
58
65
  css,
59
66
  properties,
60
- shadowStyle,
67
+ boxShadowStyle,
61
68
  animationStyle,
62
69
  textAniClasses,
63
- computedStyle
70
+ computedStyle,
71
+ textCommonStyle,
72
+ textEditorStyle
64
73
  };
65
74
  }
66
75
  });
67
76
 
77
+ const _hoisted_1$b = ["data-id", "data-pid", "data-type", "sign", "signsort", "layername"];
78
+ const _hoisted_2$3 = /*#__PURE__*/createStaticVNode("<div class=\"drag-point top-center\" data-v-55ed80cb></div><div class=\"drag-point bottom-center\" data-v-55ed80cb></div><div class=\"drag-point left-top\" data-v-55ed80cb></div><div class=\"drag-point left-center\" data-v-55ed80cb></div><div class=\"drag-point left-bottom\" data-v-55ed80cb></div><div class=\"drag-point right-top\" data-v-55ed80cb></div><div class=\"drag-point right-center\" data-v-55ed80cb></div><div class=\"drag-point right-bottom\" data-v-55ed80cb></div><div class=\"drag-point rotate-icon\" data-v-55ed80cb><i class=\"iconfont hb-xuanzhuan\" data-v-55ed80cb></i></div>", 9);
79
+
68
80
  function render$l(_ctx, _cache, $props, $setup, $data, $options) {
69
81
  return (_ctx.element && _ctx.properties.visible)
70
82
  ? (openBlock(), createElementBlock("div", {
71
83
  key: 0,
72
- class: normalizeClass(["uni-text", _ctx.textAniClasses]),
73
- style: normalizeStyle$1(_ctx.computedStyle)
74
- }, toDisplayString(_ctx.element.textContent), 7 /* TEXT, CLASS, STYLE */))
84
+ class: normalizeClass(['ele-text', 'eles']),
85
+ "data-id": _ctx.element.id,
86
+ "data-pid": _ctx.element.pid,
87
+ "data-type": _ctx.element.type,
88
+ style: normalizeStyle$1(_ctx.computedStyle),
89
+ sign: _ctx.element.sign,
90
+ signsort: _ctx.element.signSort,
91
+ layername: _ctx.element.layerName
92
+ }, [
93
+ createElementVNode("div", {
94
+ class: "ani-wrap",
95
+ style: normalizeStyle$1({
96
+ backgroundColor: _ctx.css.backgroundColor || 'transparent',
97
+ borderRadius: `${_ctx.css.borderRadius || 0}px`,
98
+ borderColor: _ctx.css.borderColor,
99
+ borderStyle: _ctx.css.borderStyle,
100
+ borderWidth: `${_ctx.css.borderWidth || 0}px`,
101
+ boxShadow: _ctx.boxShadowStyle,
102
+ opacity: _ctx.properties.visible ? 1 : 0
103
+ })
104
+ }, [
105
+ createElementVNode("div", {
106
+ class: "text-common text-ani",
107
+ style: normalizeStyle$1(_ctx.textCommonStyle)
108
+ }, null, 4 /* STYLE */),
109
+ createElementVNode("div", {
110
+ contenteditable: "false",
111
+ class: "text-common text-editor",
112
+ style: normalizeStyle$1(_ctx.textEditorStyle)
113
+ }, toDisplayString(_ctx.element.textContent), 5 /* TEXT, STYLE */)
114
+ ], 4 /* STYLE */),
115
+ _hoisted_2$3
116
+ ], 12 /* STYLE, PROPS */, _hoisted_1$b))
75
117
  : createCommentVNode("v-if", true)
76
118
  }
77
119
 
@@ -17,17 +17,14 @@
17
17
  }
18
18
  },
19
19
  setup(props) {
20
- // 确保在解构之前检查 element 是否存在
21
20
  const element = props.element || {};
22
21
  const css = element.css || {};
23
22
  const properties = element.properties || {};
24
23
  // 计算阴影样式
25
- const shadowStyle = vue.computed(() => {
24
+ const boxShadowStyle = vue.computed(() => {
26
25
  if (!properties.shadowSize)
27
- return {};
28
- return {
29
- textShadow: `${properties.shadowX || 0}px ${properties.shadowY || 0}px ${properties.shadowBlur || 0}px ${properties.shadowColor || '#000'}`
30
- };
26
+ return 'none';
27
+ return `${properties.shadowX || 0}px ${properties.shadowY || 0}px ${properties.shadowBlur || 0}px ${properties.shadowColor || '#000'}`;
31
28
  });
32
29
  // 计算动画样式
33
30
  const animationStyle = vue.computed(() => {
@@ -47,38 +44,83 @@
47
44
  // 计算样式
48
45
  const computedStyle = vue.computed(() => ({
49
46
  position: 'absolute',
50
- fontSize: `${css.fontSize || 16}px`,
51
- lineHeight: css.lineHeight || 1,
52
- letterSpacing: `${css.letterSpacing || 0}px`,
53
- width: `${css.width || 100}px`,
54
- height: `${css.height || 0}px`,
55
47
  left: `${css.left || 0}px`,
56
48
  top: `${css.top || 0}px`,
49
+ width: `${css.width || 100}px`,
50
+ height: 'auto',
57
51
  transform: `rotate(${css.transform || 0}deg)`,
52
+ }));
53
+ // 计算文本样式
54
+ const textCommonStyle = vue.computed(() => ({
55
+ fontFamily: css.fontFamily || '微软雅黑',
56
+ fontSize: `${css.fontSize || 16}px`,
57
+ lineHeight: css.lineHeight || 1,
58
+ letterSpacing: `${css.letterSpacing || 0}px`,
59
+ fontWeight: css.fontWeight || 'normal',
60
+ textDecoration: css.textDecoration || 'none',
61
+ textAlign: css.textAlign || 'center',
62
+ color: css.color || '#000',
63
+ opacity: properties.visible ? 1 : 0,
58
64
  padding: `${css.padding || 0}px`,
59
65
  textIndent: `${css.textIndent || 0}px`,
60
- borderRadius: `${css.borderRadius || 0}px`,
61
- ...shadowStyle.value,
62
- ...animationStyle.value
66
+ }));
67
+ const textEditorStyle = vue.computed(() => ({
68
+ ...textCommonStyle.value,
69
+ display: 'block', // 确保文本编辑器可见
63
70
  }));
64
71
  return {
65
72
  css,
66
73
  properties,
67
- shadowStyle,
74
+ boxShadowStyle,
68
75
  animationStyle,
69
76
  textAniClasses,
70
- computedStyle
77
+ computedStyle,
78
+ textCommonStyle,
79
+ textEditorStyle
71
80
  };
72
81
  }
73
82
  });
74
83
 
84
+ const _hoisted_1$b = ["data-id", "data-pid", "data-type", "sign", "signsort", "layername"];
85
+ const _hoisted_2$3 = /*#__PURE__*/vue.createStaticVNode("<div class=\"drag-point top-center\" data-v-55ed80cb></div><div class=\"drag-point bottom-center\" data-v-55ed80cb></div><div class=\"drag-point left-top\" data-v-55ed80cb></div><div class=\"drag-point left-center\" data-v-55ed80cb></div><div class=\"drag-point left-bottom\" data-v-55ed80cb></div><div class=\"drag-point right-top\" data-v-55ed80cb></div><div class=\"drag-point right-center\" data-v-55ed80cb></div><div class=\"drag-point right-bottom\" data-v-55ed80cb></div><div class=\"drag-point rotate-icon\" data-v-55ed80cb><i class=\"iconfont hb-xuanzhuan\" data-v-55ed80cb></i></div>", 9);
86
+
75
87
  function render$l(_ctx, _cache, $props, $setup, $data, $options) {
76
88
  return (_ctx.element && _ctx.properties.visible)
77
89
  ? (vue.openBlock(), vue.createElementBlock("div", {
78
90
  key: 0,
79
- class: vue.normalizeClass(["uni-text", _ctx.textAniClasses]),
80
- style: vue.normalizeStyle(_ctx.computedStyle)
81
- }, vue.toDisplayString(_ctx.element.textContent), 7 /* TEXT, CLASS, STYLE */))
91
+ class: vue.normalizeClass(['ele-text', 'eles']),
92
+ "data-id": _ctx.element.id,
93
+ "data-pid": _ctx.element.pid,
94
+ "data-type": _ctx.element.type,
95
+ style: vue.normalizeStyle(_ctx.computedStyle),
96
+ sign: _ctx.element.sign,
97
+ signsort: _ctx.element.signSort,
98
+ layername: _ctx.element.layerName
99
+ }, [
100
+ vue.createElementVNode("div", {
101
+ class: "ani-wrap",
102
+ style: vue.normalizeStyle({
103
+ backgroundColor: _ctx.css.backgroundColor || 'transparent',
104
+ borderRadius: `${_ctx.css.borderRadius || 0}px`,
105
+ borderColor: _ctx.css.borderColor,
106
+ borderStyle: _ctx.css.borderStyle,
107
+ borderWidth: `${_ctx.css.borderWidth || 0}px`,
108
+ boxShadow: _ctx.boxShadowStyle,
109
+ opacity: _ctx.properties.visible ? 1 : 0
110
+ })
111
+ }, [
112
+ vue.createElementVNode("div", {
113
+ class: "text-common text-ani",
114
+ style: vue.normalizeStyle(_ctx.textCommonStyle)
115
+ }, null, 4 /* STYLE */),
116
+ vue.createElementVNode("div", {
117
+ contenteditable: "false",
118
+ class: "text-common text-editor",
119
+ style: vue.normalizeStyle(_ctx.textEditorStyle)
120
+ }, vue.toDisplayString(_ctx.element.textContent), 5 /* TEXT, STYLE */)
121
+ ], 4 /* STYLE */),
122
+ _hoisted_2$3
123
+ ], 12 /* STYLE, PROPS */, _hoisted_1$b))
82
124
  : vue.createCommentVNode("v-if", true)
83
125
  }
84
126
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unika-components",
3
- "version": "1.0.340",
3
+ "version": "1.0.342",
4
4
  "private": false,
5
5
  "main": "dist/unika-components.umd.js",
6
6
  "module": "dist/unika-components.esm.js",