@utogether/udp-core 1.0.1-beta.15 → 1.0.1-beta.17

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 (126) hide show
  1. package/build/plugins.ts +39 -39
  2. package/dist/{403-DpJevH-h.js → 403-C3cfjZIT.js} +1 -1
  3. package/dist/{404-BpqJK3YD.js → 404-Bg3j7QIo.js} +1 -1
  4. package/dist/{500-DyvRbMD_.js → 500-CMT7Zyy7.js} +1 -1
  5. package/dist/{AuthorityInfo-Cyu4XHXx.js → AuthorityInfo-B1mvqs4x.js} +1 -1
  6. package/dist/{AuthorityInfo.vue_vue_type_style_index_0_lang-BxmnEEFq.js → AuthorityInfo.vue_vue_type_style_index_0_lang-DwoW7QWO.js} +3 -3
  7. package/dist/{Company-BLygcYrI.js → Company-qTguidK8.js} +3 -3
  8. package/dist/{CompanyPanel-D5Tgw6LF.js → CompanyPanel-BBC-o-k3.js} +17 -17
  9. package/dist/{Department-qI9OninZ.js → Department-C3mKZOnK.js} +3 -3
  10. package/dist/{DepartmentPanel-P-P8fPZQ.js → DepartmentPanel-CNdpOHBT.js} +25 -25
  11. package/dist/{DesignPanel-BxjD0AZi.js → DesignPanel-D9jrRCoG.js} +1 -1
  12. package/dist/{DesignPanel.vue_vue_type_style_index_0_lang-DN_OKxCu.js → DesignPanel.vue_vue_type_style_index_0_lang-A-Aj1Hl0.js} +6 -6
  13. package/dist/{DictView-PWL_Vf0T.js → DictView-CgdVkSiP.js} +15 -16
  14. package/dist/{InvOrganization-JXBXyn3G.js → InvOrganization-RE7s3vBq.js} +1 -1
  15. package/dist/{Org-DcTJn6YQ.js → Org-wXDGvTrS.js} +3 -3
  16. package/dist/{Preview-IKvbHI8a.js → Preview-Pvt1__BV.js} +1 -1
  17. package/dist/{ReportDefine-_G7ts7Ch.js → ReportDefine-xEQsgFyv.js} +1 -1
  18. package/dist/{ReportDesign-7h5oFklh.js → ReportDesign-jOSuEFH9.js} +9 -9
  19. package/dist/{ReportQuery-dj0BQUyi.js → ReportQuery-DxEmmGiN.js} +1 -1
  20. package/dist/{ReportQueryFrom-6WaZPg9i.js → ReportQueryFrom-CFlxfS5M.js} +1 -1
  21. package/dist/{ReportQueryFrom.vue_vue_type_style_index_0_lang-ChhcBPqa.js → ReportQueryFrom.vue_vue_type_style_index_0_lang-iHpiYz8f.js} +1 -1
  22. package/dist/{ReportTemplate-DIvJ3RrB.js → ReportTemplate-Dtz3aet7.js} +11 -11
  23. package/dist/{Role-ia_3qAZU.js → Role-B_NsHIyE.js} +3 -3
  24. package/dist/{RoleAssign-D0zVl4y3.js → RoleAssign-C9wm4zq4.js} +8 -8
  25. package/dist/{RolePanel-CQxOiAzj.js → RolePanel-BlHidBR0.js} +1 -1
  26. package/dist/{RolePanel-BiGGmP2w.js → RolePanel-DWM9mfNs.js} +1 -1
  27. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-BYDLRS_x.js → RolePanel.vue_vue_type_script_setup_true_lang-Cn4RRzXm.js} +1 -1
  28. package/dist/{RolePanel.vue_vue_type_script_setup_true_lang-Dwv5LFbf.js → RolePanel.vue_vue_type_script_setup_true_lang-DVQ9aqb1.js} +9 -9
  29. package/dist/{ScrollPanel.vue_vue_type_style_index_0_lang-gPP4duO8.js → ScrollPanel.vue_vue_type_style_index_0_lang-CCm-_i8O.js} +8 -8
  30. package/dist/{Staff-Bf_oUqF6.js → Staff-BfDc61QS.js} +3 -3
  31. package/dist/{StaffInfo-D5aisjx2.js → StaffInfo-BaJFo4mg.js} +1 -1
  32. package/dist/{StaffInfo.vue_vue_type_script_setup_true_lang-6PX7Bx6A.js → StaffInfo.vue_vue_type_script_setup_true_lang-Bwj4x1wu.js} +7 -7
  33. package/dist/{StaffPanel--zKzd4rt.js → StaffPanel-B6I2ZS6A.js} +1 -1
  34. package/dist/{StaffPanel.vue_vue_type_script_setup_true_lang-BWZSIFpq.js → StaffPanel.vue_vue_type_script_setup_true_lang-vbyS4w3V.js} +2 -2
  35. package/dist/{SysUser-BelbESLR.js → SysUser-B_r9LYc5.js} +2 -2
  36. package/dist/{SysUserPanel-BixKqQcA.js → SysUserPanel-C4ajcHPV.js} +1 -1
  37. package/dist/{SysUserPanel.vue_vue_type_script_setup_true_lang-BhaWZEfo.js → SysUserPanel.vue_vue_type_script_setup_true_lang-8Q0VvC9B.js} +41 -37
  38. package/dist/{SystemMenu-D40tzcSj.js → SystemMenu-CyPG23uP.js} +10 -10
  39. package/dist/{UserInfo-DTyk071j.js → UserInfo-BkoGt4ib.js} +1 -1
  40. package/dist/{UserInfo.vue_vue_type_style_index_0_lang-p9MByikC.js → UserInfo.vue_vue_type_style_index_0_lang-DrzF1YYG.js} +10 -10
  41. package/dist/{childView-so5qSxr0.js → childView-9vEO8ymO.js} +1 -1
  42. package/dist/{childView-xL3iE1yN.js → childView-Dh0NyiQe.js} +1 -1
  43. package/dist/{childView.vue_vue_type_style_index_0_lang-CKcXpSqa.js → childView.vue_vue_type_style_index_0_lang-BOeoZuAK.js} +7 -7
  44. package/dist/{childView.vue_vue_type_style_index_0_lang-DK1ei5uM.js → childView.vue_vue_type_style_index_0_lang-CMOjfXBX.js} +1 -1
  45. package/dist/{code-rule-DC35y76w.js → code-rule-C7jI_1gJ.js} +6 -6
  46. package/dist/core.es.js +17 -12
  47. package/dist/{cron-task-BhjQ4S68.js → cron-task-Dg9DJXvv.js} +11 -11
  48. package/dist/{frameView-G_zhG9pf.js → frameView-CeR-_hjB.js} +1 -1
  49. package/dist/{index-C6ehxLLO.js → index-Bb7gIEvu.js} +739 -496
  50. package/dist/{layoutView-CO2U8qCQ.js → layoutView-wsLHrEeX.js} +1347 -1346
  51. package/dist/login-CluzzdqH.js +249 -0
  52. package/dist/{lov-view-Cr929NMD.js → lov-view-BvQCvwbW.js} +5 -5
  53. package/dist/{menuInfo-BWuROp7u.js → menuInfo-B8RLelIC.js} +1 -1
  54. package/dist/{menuInfo.vue_vue_type_style_index_0_lang-9nouHUjO.js → menuInfo.vue_vue_type_style_index_0_lang-DvkapEZr.js} +7 -7
  55. package/dist/{pda-app-CQP1sMAI.js → pda-app-D3LNmD9a.js} +19 -19
  56. package/dist/{resource-BDQLrMpK.js → resource-D8JA_03-.js} +7 -7
  57. package/dist/{su-welcome-CZysrZQ1.js → su-welcome-BjxeEKSo.js} +88 -88
  58. package/dist/{sys-config-BiGNMYSA.js → sys-config-sbeLk9bP.js} +6 -6
  59. package/dist/udp-core.css +1 -9
  60. package/dist/utogether-MlnyYtNS.js +4 -0
  61. package/index.ts +48 -40
  62. package/package.json +1 -1
  63. package/src/App.vue +65 -65
  64. package/src/components/SuCharts/src/UserInfo.vue +78 -78
  65. package/src/components/SuScrollTree/ScrollPanel.vue +170 -175
  66. package/src/components/udp/{grid.vue → grid/index.vue} +27 -24
  67. package/src/components/udp/index.ts +2 -9
  68. package/src/components/udp/utils.ts +60 -107
  69. package/src/layout/components/lay-navbar/index.vue +239 -239
  70. package/src/layout/components/lay-panel/index.vue +150 -150
  71. package/src/layout/components/lay-search/index.vue +25 -25
  72. package/src/layout/components/lay-select-org/index.vue +64 -64
  73. package/src/layout/components/lay-sidebar/horizontal.vue +190 -190
  74. package/src/layout/components/lay-sidebar/mixNav.vue +260 -260
  75. package/src/layout/components/lay-sidebar/sidebar-logo.vue +92 -92
  76. package/src/layout/components/lay-tag/index.vue +20 -48
  77. package/src/layout/hooks/useNav.ts +173 -173
  78. package/src/layout/hooks/useTag.ts +223 -233
  79. package/src/layout/types.ts +3 -2
  80. package/src/main.ts +117 -113
  81. package/src/plugins/i18n/en.ts +302 -302
  82. package/src/plugins/i18n/zh.ts +356 -354
  83. package/src/plugins/vxe-table/index.ts +116 -53
  84. package/src/plugins/vxe-table/render.tsx +956 -956
  85. package/src/router/index.ts +186 -177
  86. package/src/router/modules/remaining.ts +58 -58
  87. package/src/router/utils.ts +393 -377
  88. package/src/store/modules/app.ts +1 -3
  89. package/src/store/modules/multiTags.ts +110 -109
  90. package/src/store/modules/permission.ts +113 -100
  91. package/src/style/button.scss +85 -85
  92. package/src/style/login.css +1 -1
  93. package/src/style/vxetable.scss +25 -2
  94. package/src/utils/index.ts +3 -1
  95. package/src/views/organization/company/CompanyPanel.vue +259 -259
  96. package/src/views/organization/department/DepartmentPanel.vue +269 -283
  97. package/src/views/system/menu/SystemMenu.vue +183 -183
  98. package/src/views/system/menu/menuInfo.vue +363 -363
  99. package/src/views/system/role/UserInfo.vue +195 -195
  100. package/src/views/system/role-assign/RoleAssign.vue +57 -57
  101. package/src/views/system/role-assign/RolePanel.vue +139 -139
  102. package/src/views/system/sys/sys-config.vue +336 -336
  103. package/src/views/system/sysUser/SysUserPanel.vue +279 -278
  104. package/src/views/uapp/pda/pda-app.vue +208 -208
  105. package/src/views/udev/dict/DictView.vue +118 -118
  106. package/src/views/udev/dict/childView.vue +1 -1
  107. package/src/views/udev/lov/lov-view.vue +91 -91
  108. package/src/views/ulogin/login.vue +2 -2
  109. package/src/views/upms/interface/log-out.vue +101 -101
  110. package/src/views/urpt/design/DesignPanel.vue +507 -507
  111. package/types/global.d.ts +2 -8
  112. package/dist/login-DzyK2soP.js +0 -278
  113. package/dist/utogether-BRirriOz.js +0 -182
  114. package/src/components/udp/count-down.vue +0 -536
  115. package/src/components/udp/flip-down/FlipCard/flip-card.vue +0 -251
  116. package/src/components/udp/flip-down/FlipCard/interfaces.ts +0 -4
  117. package/src/components/udp/flip-down/FlipClock/flip-clock.vue +0 -113
  118. package/src/components/udp/form-upload.vue +0 -482
  119. package/src/components/udp/form.vue +0 -112
  120. package/src/components/udp/lov.vue +0 -388
  121. package/src/components/udp/modal-form.vue +0 -190
  122. package/src/components/udp/modal-grid.vue +0 -298
  123. package/src/components/udp/upload.vue +0 -423
  124. package/src/utils/udp/http/index.ts +0 -294
  125. package/src/utils/udp/http/types.d.ts +0 -49
  126. package/src/utils/udp/useRender.ts +0 -431
@@ -1,536 +0,0 @@
1
- <template>
2
- <div class="flip-clock">
3
- <template v-for="data in timeData" :key="data.label">
4
- <span v-show="data.show" :id="data.elementId" class="flip-clock__piece">
5
- <div v-if="flipAnimation">
6
- <span
7
- class="flip-clock__card flip-card"
8
- :style="countdownSize ? `font-size:${countdownSize}` : ''"
9
- >
10
- <b class="flip-card__top">{{ twoDigits(data.current) }}</b>
11
- <b class="flip-card__bottom" :data-value="twoDigits(data.current)" />
12
- <b class="flip-card__back" :data-value="twoDigits(data.previous)" />
13
- <b class="flip-card__back-bottom" :data-value="twoDigits(data.previous)" />
14
- </span>
15
- </div>
16
- <div v-else>
17
- <span class="no-animation__card">{{ twoDigits(data.current) }}</span>
18
- </div>
19
- <span
20
- v-if="showLabels"
21
- class="flip-clock__slot"
22
- :style="labelSize ? `font-size:${labelSize}` : ''"
23
- >{{ data.label }}</span
24
- >
25
- </span>
26
- </template>
27
- </div>
28
- </template>
29
-
30
- <script lang="ts">
31
- export default {
32
- name: 'SuCountdown'
33
- };
34
- </script>
35
-
36
- <script setup lang="ts">
37
- import { computed, onBeforeMount, onMounted, onUnmounted, ref, watch } from 'vue';
38
- import dayjs from 'dayjs';
39
-
40
- const props = defineProps({
41
- countdown: {
42
- type: Boolean,
43
- default: false
44
- },
45
- deadline: {
46
- type: String,
47
- required: false,
48
- default: dayjs().add(5, 'days').format('YYYY-MM-DD HH:mm:ss')
49
- },
50
- deadlineISO: {
51
- type: String,
52
- required: false
53
- },
54
- deadlineDate: {
55
- type: Date,
56
- required: false
57
- },
58
- countdownSize: {
59
- type: String,
60
- required: false
61
- // default:"2.2rem"
62
- },
63
-
64
- labelSize: {
65
- type: String,
66
- required: false
67
- // default:"2.2rem"
68
- },
69
- stop: {
70
- type: Boolean,
71
- required: false
72
- },
73
- flipAnimation: {
74
- type: Boolean,
75
- required: false,
76
- default: true
77
- },
78
- showDays: {
79
- type: Boolean,
80
- required: false,
81
- default: true
82
- },
83
- showHours: {
84
- type: Boolean,
85
- required: false,
86
- default: true
87
- },
88
- showMinutes: {
89
- type: Boolean,
90
- required: false,
91
- default: true
92
- },
93
- showSeconds: {
94
- type: Boolean,
95
- required: false,
96
- default: true
97
- },
98
- showLabels: {
99
- type: Boolean,
100
- required: false,
101
- default: true
102
- },
103
- labels: {
104
- type: Object,
105
- required: false,
106
- default: function () {
107
- return {
108
- days: 'Days',
109
- hours: 'Hours',
110
- minutes: 'Minutes',
111
- seconds: 'Seconds'
112
- };
113
- }
114
- },
115
- mainColor: {
116
- type: String,
117
- default: '#EC685C'
118
- },
119
- secondFlipColor: {
120
- type: String,
121
- default: props => props.mainColor
122
- },
123
- mainFlipBackgroundColor: {
124
- type: String,
125
- default: '#222222'
126
- },
127
- secondFlipBackgroundColor: {
128
- type: String,
129
- default: '#393939'
130
- },
131
- labelColor: {
132
- type: String,
133
- default: '#222222'
134
- }
135
- });
136
-
137
- const now = ref(Math.trunc(new Date().getTime() / 1000));
138
- const date = ref<number>(0);
139
- const interval = ref();
140
- const diff = ref(0);
141
- const show = ref(false);
142
- const timeData = ref([
143
- {
144
- current: 0,
145
- previous: 0,
146
- label: props.labels.days,
147
- elementId: 'flip-card-days-' + Date.now(),
148
- show: props.showDays
149
- },
150
- {
151
- current: 0,
152
- previous: 0,
153
- label: props.labels.hours,
154
- elementId: 'flip-card-hours-' + Date.now(),
155
- show: props.showHours
156
- },
157
- {
158
- current: 0,
159
- previous: 0,
160
- label: props.labels.minutes,
161
- elementId: 'flip-card-minutes-' + Date.now(),
162
- show: props.showMinutes
163
- },
164
- {
165
- current: 0,
166
- previous: 0,
167
- label: props.labels.seconds,
168
- elementId: 'flip-card-seconds-' + Date.now(),
169
- show: props.showSeconds
170
- }
171
- ]);
172
-
173
- const updateAllCards = () => {
174
- updateTime(0, days);
175
- updateTime(1, hours);
176
- updateTime(2, minutes);
177
- updateTime(3, seconds);
178
- };
179
-
180
- const twoDigits = value => {
181
- if (value != undefined) {
182
- if (value.toString().length <= 1) {
183
- return '0' + value.toString();
184
- }
185
- return value.toString();
186
- } else {
187
- return '00';
188
- }
189
- };
190
-
191
- const updateTime = (idx, newValue) => {
192
- if (idx >= timeData.value.length || newValue === undefined) {
193
- return;
194
- }
195
-
196
- // if (window['requestAnimationFrame']) {
197
- // frame = requestAnimationFrame(updateTime.bind(this));
198
- // }
199
-
200
- const d = timeData.value[idx];
201
- const val = newValue.value < 0 ? 0 : newValue.value;
202
- const el = document.querySelector(`#${d.elementId}`);
203
-
204
- if (val !== d.current) {
205
- d.previous = d.current;
206
- d.current = val;
207
-
208
- if (el) {
209
- el.classList.remove('flip');
210
- // @ts-ignore
211
- void el.offsetWidth;
212
- el.classList.add('flip');
213
- }
214
-
215
- if (idx === 0) {
216
- const els = el!.querySelectorAll('span b');
217
- if (els) {
218
- //@ts-ignore
219
- for (const e of els) {
220
- const cls = e.classList[0];
221
- if (newValue.value / 1000 >= 1) {
222
- if (!cls.includes('-4digits')) {
223
- const newCls = cls + '-4digits';
224
- e.classList.add(newCls);
225
- e.classList.remove(cls);
226
- }
227
- } else {
228
- if (cls.includes('-4digits')) {
229
- const newCls = cls.replace('-4digits', '');
230
- e.classList.add(newCls);
231
- e.classList.remove(cls);
232
- }
233
- }
234
- }
235
- } else {
236
- console.log('....');
237
- }
238
- }
239
- }
240
- };
241
-
242
- const seconds = computed(() => {
243
- if (props.countdown) {
244
- return Math.trunc(diff.value) % 60;
245
- }
246
- return Math.trunc(now.value) % 60;
247
- });
248
-
249
- const minutes = computed(() => {
250
- if (props.countdown) {
251
- return Math.trunc(diff.value / 60) % 60;
252
- }
253
- return Math.trunc(now.value / 60) % 60;
254
- });
255
- const hours = computed(() => {
256
- if (props.countdown) {
257
- return Math.trunc(diff.value / 60 / 60) % 24;
258
- }
259
- return new Date(now.value * 1000).getHours();
260
- // return Math.trunc(now.value / 60 / 60) % 24;
261
- });
262
- const days = computed(() => {
263
- if (props.countdown) {
264
- return Math.trunc(diff.value / 60 / 60 / 24);
265
- }
266
- return Math.trunc(now.value / 60 / 60 / 24);
267
- });
268
-
269
- watch(
270
- () => props.deadline,
271
- newVal => {
272
- const endTime = newVal as unknown as String;
273
- date.value = Math.trunc(Date.parse(endTime.replace(/-/g, '/')) / 1000);
274
- if (!date.value) {
275
- throw new Error("Invalid props value, correct the 'deadline'");
276
- }
277
- }
278
- );
279
-
280
- watch(now, () => {
281
- if (props.countdown) {
282
- diff.value = date.value - now.value;
283
- if (diff.value <= 0 || props.stop) {
284
- diff.value = 0;
285
- updateTime(3, 0);
286
- } else {
287
- updateAllCards();
288
- }
289
- } else {
290
- updateAllCards();
291
- }
292
- });
293
-
294
- watch(diff, newVal => {
295
- if (newVal == 0) {
296
- // emit('timeElapsed');
297
- updateAllCards();
298
- }
299
- });
300
-
301
- onMounted(() => {
302
- if (diff.value !== 0) {
303
- show.value = true;
304
- }
305
- });
306
-
307
- onBeforeMount(() => {
308
- if (props.countdown) {
309
- if (!props.deadline) {
310
- throw new Error("Missing props 'deadline'");
311
- }
312
- const endTime = props.deadline;
313
- let epoch = Date.parse(endTime.replace(/-/g, '/'));
314
- if (props.deadlineDate != null) {
315
- epoch = Date.parse(props.deadlineDate.toDateString());
316
- }
317
- if (props.deadlineISO) {
318
- epoch = Date.parse(props.deadlineISO);
319
- }
320
- date.value = Math.trunc(epoch / 1000);
321
- if (!date.value) {
322
- throw new Error("Invalid props value, correct the 'deadline'");
323
- }
324
- }
325
- interval.value = setInterval(() => {
326
- now.value = Math.trunc(new Date().getTime() / 1000);
327
- }, 1000);
328
- });
329
-
330
- onUnmounted(() => {
331
- // if (window['cancelAnimationFrame']) {
332
- // cancelAnimationFrame(frame);
333
- // }
334
- clearInterval(interval.value);
335
- });
336
- </script>
337
-
338
- <style lang="scss">
339
- .no-animation__card {
340
- font-weight: 500;
341
- font-size: 2rem;
342
- line-height: 1.5;
343
- display: block;
344
- color: v-bind(mainColor);
345
- }
346
-
347
- .flip-clock {
348
- text-align: center;
349
- perspective: 600px;
350
- margin: 0 auto;
351
-
352
- *,
353
- *:before,
354
- *:after {
355
- box-sizing: border-box;
356
- }
357
- }
358
-
359
- .flip-clock__piece {
360
- display: inline-block;
361
- margin: 0 0.2vw;
362
-
363
- @media (min-width: 1000px) {
364
- margin: 0 5px;
365
- }
366
- }
367
-
368
- .flip-clock__slot {
369
- font-size: 1rem;
370
- line-height: 1.5;
371
- display: block;
372
- color: v-bind(labelColor);
373
- }
374
-
375
- $halfHeight: 0.72em;
376
- $borderRadius: 0.15em;
377
-
378
- .flip-card {
379
- display: block;
380
- position: relative;
381
- padding-bottom: $halfHeight;
382
- font-size: 2.25rem;
383
- line-height: 0.95;
384
- }
385
-
386
- @media (min-width: 1000px) {
387
- .flip-clock__slot {
388
- font-size: 1.2rem;
389
- }
390
-
391
- .flip-card {
392
- font-size: 3rem;
393
- }
394
- }
395
-
396
- .flip-card__top,
397
- .flip-card__bottom,
398
- .flip-card__back-bottom,
399
- .flip-card__back::before,
400
- .flip-card__back::after {
401
- display: block;
402
- height: $halfHeight;
403
- color: v-bind(mainColor);
404
- background: v-bind(mainFlipBackgroundColor);
405
- padding: 0.23em 0.15em 0.4em;
406
- border-radius: $borderRadius $borderRadius 0 0;
407
- backface-visibility: hidden;
408
- -webkit-backface-visibility: hidden;
409
- transform-style: preserve-3d;
410
- width: 2.1em;
411
- height: $halfHeight;
412
- }
413
-
414
- .flip-card__top-4digits,
415
- .flip-card__bottom-4digits,
416
- .flip-card__back-bottom-4digits,
417
- .flip-card__back-4digits::before,
418
- .flip-card__back-4digits::after {
419
- display: block;
420
- height: $halfHeight;
421
- color: v-bind(mainColor);
422
- background: v-bind(mainFlipBackgroundColor);
423
- padding: 0.23em 0.15em 0.4em;
424
- border-radius: $borderRadius $borderRadius 0 0;
425
- backface-visibility: hidden;
426
- -webkit-backface-visibility: hidden;
427
- transform-style: preserve-3d;
428
- width: 2.65em;
429
- height: $halfHeight;
430
- }
431
-
432
- .flip-card__bottom,
433
- .flip-card__back-bottom,
434
- .flip-card__bottom-4digits,
435
- .flip-card__back-bottom-4digits {
436
- color: v-bind(secondFlipColor);
437
- position: absolute;
438
- top: 50%;
439
- left: 0;
440
- border-top: solid 1px #000;
441
- background: v-bind(secondFlipBackgroundColor);
442
- border-radius: 0 0 $borderRadius $borderRadius;
443
- pointer-events: none;
444
- overflow: hidden;
445
- z-index: 2;
446
- }
447
-
448
- .flip-card__back-bottom,
449
- .flip-card__back-bottom-4digits {
450
- z-index: 1;
451
- }
452
-
453
- .flip-card__bottom::after,
454
- .flip-card__back-bottom::after,
455
- .flip-card__bottom-4digits::after,
456
- .flip-card__back-bottom-4digits::after {
457
- display: block;
458
- margin-top: -$halfHeight;
459
- }
460
-
461
- .flip-card__back::before,
462
- .flip-card__bottom::after,
463
- .flip-card__back-bottom::after,
464
- .flip-card__back-4digits::before,
465
- .flip-card__bottom-4digits::after,
466
- .flip-card__back-bottom-4digits::after {
467
- content: attr(data-value);
468
- }
469
-
470
- .flip-card__back,
471
- .flip-card__back-4digits {
472
- position: absolute;
473
- top: 0;
474
- height: 100%;
475
- left: 0%;
476
- pointer-events: none;
477
- }
478
-
479
- .flip-card__back::before,
480
- .flip-card__back-4digits::before {
481
- position: relative;
482
- overflow: hidden;
483
- z-index: -1;
484
- }
485
-
486
- .flip .flip-card__back::before,
487
- .flip .flip-card__back-4digits::before {
488
- z-index: 1;
489
- animation: flipTop 0.3s cubic-bezier(0.37, 0.01, 0.94, 0.35);
490
- animation-fill-mode: both;
491
- transform-origin: center bottom;
492
- }
493
-
494
- .flip .flip-card__bottom,
495
- .flip .flip-card__bottom-4digits {
496
- transform-origin: center top;
497
- animation-fill-mode: both;
498
- animation: flipBottom 0.6s cubic-bezier(0.15, 0.45, 0.28, 1);
499
- }
500
-
501
- @keyframes flipTop {
502
- 0% {
503
- transform: rotateX(0deg);
504
- z-index: 2;
505
- }
506
-
507
- 0%,
508
- 99% {
509
- opacity: 1;
510
- }
511
-
512
- 100% {
513
- transform: rotateX(-90deg);
514
- opacity: 0;
515
- }
516
- }
517
-
518
- @keyframes flipBottom {
519
- 0%,
520
- 50% {
521
- z-index: -1;
522
- transform: rotateX(90deg);
523
- opacity: 0;
524
- }
525
-
526
- 51% {
527
- opacity: 1;
528
- }
529
-
530
- 100% {
531
- opacity: 1;
532
- transform: rotateX(0deg);
533
- z-index: 5;
534
- }
535
- }
536
- </style>