@opendesign-plus/components 0.0.1-rc.31 → 0.0.1-rc.33
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.
- package/dist/chunk-OElCookieNotice.cjs.js +1 -1
- package/dist/chunk-OElCookieNotice.es.js +50 -46
- package/dist/components/header-language-switcher/OHeaderLanguageSwitcher.vue.d.ts +9 -0
- package/dist/components/header-language-switcher/index.d.ts +15 -0
- package/dist/components/meeting/OMeetingPlayback.vue.d.ts +4 -4
- package/dist/components/meeting/OMeetingSigCalendar.vue.d.ts +2 -0
- package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
- package/dist/components/meeting/index.d.ts +8 -2
- package/dist/components/meeting/types.d.ts +2 -0
- package/dist/components.cjs.js +38 -38
- package/dist/components.css +1 -1
- package/dist/components.es.js +8112 -8043
- package/package.json +3 -3
- package/src/assets/meeting/empty.png +0 -0
- package/src/assets/meeting/svg-icons/icon-copy.svg +3 -2
- package/src/assets/meeting/svg-icons/icon-empty.svg +65 -31
- package/src/assets/styles/element-plus.scss +32 -2
- package/src/components/events/OEventsApply.vue +8 -2
- package/src/components/events/OEventsList.vue +1 -3
- package/src/components/header-language-switcher/OHeaderLanguageSwitcher.vue +45 -3
- package/src/components/meeting/OMeetingCalendar.vue +81 -48
- package/src/components/meeting/OMeetingMyCalendar.vue +148 -99
- package/src/components/meeting/OMeetingSigCalendar.vue +91 -30
- package/src/components/meeting/components/OMeetingCalendarList.vue +25 -10
- package/src/components/meeting/components/OMeetingDetail.vue +45 -26
- package/src/components/meeting/components/OMeetingSigAside.vue +6 -5
- package/src/components/meeting/types.ts +2 -0
- package/src/i18n/en.ts +6 -4
- package/src/i18n/zh.ts +2 -0
- package/src/assets/meeting/svg-icons/icon-empty_dark.svg +0 -49
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendesign-plus/components",
|
|
3
|
-
"version": "0.0.1-rc.
|
|
3
|
+
"version": "0.0.1-rc.33",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"vue-dompurify-html": "^3.1.2",
|
|
35
35
|
"vue": "^3.5.13",
|
|
36
36
|
"element-plus": "2.13.1",
|
|
37
|
-
"@opendesign-plus/
|
|
38
|
-
"@opendesign-plus/
|
|
37
|
+
"@opendesign-plus/styles": "0.0.1-rc.2",
|
|
38
|
+
"@opendesign-plus/composables": "0.0.1-rc.9"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
Binary file
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="
|
|
2
|
-
<path opacity="0.8" fill="#000"
|
|
1
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
|
2
|
+
<path opacity="0.8" fill="#000"
|
|
3
|
+
d="M8.313 5.002h1.414c0.068-0.256 0.302-0.445 0.58-0.445h7.464c0.331 0 0.6 0.269 0.6 0.6v10.132c0 0.331-0.269 0.6-0.6 0.6h-1.455c-0.387 0-0.7 0.313-0.7 0.7s0.313 0.7 0.7 0.7h1.455c1.104 0 2-0.895 2-2v-10.132c0-1.105-0.895-2-2-2h-7.464c-1.052 0-1.915 0.813-1.994 1.845zM10.303 6.102c0.192 0 0.375 0.079 0.508 0.218l3.695 3.891c0.086 0.091 0.146 0.202 0.174 0.321 0.027 0.074 0.042 0.155 0.042 0.238 0 0.062-0.008 0.122-0.023 0.178v7.833c0 1.105-0.895 2-2 2h-7.479c-1.105 0-2-0.895-2-2v-10.68c0-1.105 0.895-2 2-2h5.084zM9.527 9.512l-0.042-2.010h-4.266c-0.331 0-0.6 0.269-0.6 0.6v10.68c0 0.331 0.269 0.6 0.6 0.6h7.479c0.331 0 0.6-0.269 0.6-0.6l-0.001-7.311h-1.77c-1.089 0-1.977-0.87-2-1.959zM10.905 8.453l0.021 1.030c0.007 0.326 0.273 0.588 0.6 0.588h0.915l-1.536-1.617zM11.506 13.554c0 0.276-0.224 0.5-0.5 0.5h-4.98c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h4.98c0.276 0 0.5 0.224 0.5 0.5zM10.315 15.554c0 0.276-0.224 0.5-0.5 0.5h-3.793c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h3.793c0.276 0 0.5 0.224 0.5 0.5zM9 17.554c0 0.276-0.224 0.5-0.5 0.5h-2.493c-0.276 0-0.5-0.224-0.5-0.5s0.224-0.5 0.5-0.5h2.493c0.276 0 0.5 0.224 0.5 0.5z"></path>
|
|
3
4
|
</svg>
|
|
@@ -1,31 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
<svg width="320.000000" height="280.000000" viewBox="0 0 320 280" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2
|
+
<defs>
|
|
3
|
+
<clipPath id="clip832_47109">
|
|
4
|
+
<rect id="空内容" width="320.000000" height="280.000000" fill="white" fill-opacity="0"/>
|
|
5
|
+
</clipPath>
|
|
6
|
+
<linearGradient x1="160.000000" y1="203.999634" x2="160.000000" y2="250.525574" id="paint_linear_832_47113_0" gradientUnits="userSpaceOnUse">
|
|
7
|
+
<stop stop-color="#d3d4d8" stop-opacity="0.200000"/>
|
|
8
|
+
<stop offset="1.000000" stop-color="#d3d4d8" stop-opacity="0.000000"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
</defs>
|
|
11
|
+
<g clip-path="url(#clip832_47109)">
|
|
12
|
+
<mask id="mask832_47110" mask-type="alpha" maskUnits="userSpaceOnUse" x="0.000000" y="0.000000" width="320.000000" height="280.000000">
|
|
13
|
+
<rect id="蒙版" width="320.000000" height="280.000000" fill="#D8D8D8" fill-opacity="1.000000"/>
|
|
14
|
+
<rect id="蒙版" x="0.500000" y="0.500000" width="319.000000" height="279.000000" stroke="#979797" stroke-opacity="0" stroke-width="1.000000"/>
|
|
15
|
+
</mask>
|
|
16
|
+
<g mask="url(#mask832_47110)">
|
|
17
|
+
<path id="形状结合" d="M82.5635 204C16.7947 217.145 -29 246.52 -29 280.648L349 280.648C349 246.52 303.205 217.145 237.437 204C235.692 207.917 231.765 210.648 227.2 210.648L92.8 210.648C88.2349 210.648 84.3079 207.917 82.5635 204Z" clip-rule="evenodd" fill="url(#paint_linear_832_47113_0)" fill-opacity="1.000000" fill-rule="evenodd"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g mask="url(#mask832_47110)">
|
|
20
|
+
<g opacity="0.800000">
|
|
21
|
+
<g opacity="0.400000">
|
|
22
|
+
<path id="形状结合备份 2"
|
|
23
|
+
d="M238.41 123.892L81.6099 123.892L81.6099 199.492C81.6099 205.678 86.6243 210.692 92.8098 210.692L227.21 210.692C233.396 210.692 238.41 205.678 238.41 199.492L238.41 123.892ZM185.2 147.692L134.8 147.692C131.707 147.692 129.2 150.2 129.2 153.292C129.2 156.385 131.707 158.892 134.8 158.892L185.2 158.892C188.293 158.892 190.8 156.385 190.8 153.292C190.8 150.2 188.293 147.692 185.2 147.692Z"
|
|
24
|
+
clip-rule="evenodd" fill="#d3d4d8" fill-opacity="1.000000" fill-rule="evenodd"/>
|
|
25
|
+
</g>
|
|
26
|
+
<g opacity="0.500000">
|
|
27
|
+
<path id="形状结合备份 3"
|
|
28
|
+
d="M101.21 79.0912L218.81 79.0912L238.41 123.891L218.8 123.891L218.8 79.0925L101.209 79.0925L101.21 79.0912ZM101.2 79.1135L81.6099 123.891L101.2 123.891L101.2 101.492L101.2 79.1135Z"
|
|
29
|
+
clip-rule="evenodd" fill="#d3d4d8" fill-opacity="1.000000" fill-rule="evenodd"/>
|
|
30
|
+
</g>
|
|
31
|
+
<g opacity="0.600000">
|
|
32
|
+
<rect id="矩形备份 2" x="101.209961" y="79.092285" width="117.599998" height="44.799999"
|
|
33
|
+
fill="#d3d4d8" fill-opacity="1.000000"/>
|
|
34
|
+
</g>
|
|
35
|
+
<g opacity="0.500000">
|
|
36
|
+
<path id="路径 8备份"
|
|
37
|
+
d="M141.41 53.84L150.21 49.68L118.01 30.09L121.36 61.06L130.58 57.2L137.3 65.09L137.3 55.39L123.04 36.7L141.41 53.84Z"
|
|
38
|
+
fill="#d3d4d8" fill-opacity="1.000000" fill-rule="evenodd"/>
|
|
39
|
+
</g>
|
|
40
|
+
<g opacity="0.500000">
|
|
41
|
+
<path id="路径 9备份" d="M137.1 69.36L137.08 69.34C137.05 69.05 137.25 68.79 137.55 68.76C137.84 68.73 138.1 68.93 138.13 69.23L138.12 69.25L137.62 69.31L164.2 97.36C162.45 98.04 160.51 98.43 158.38 98.43C141.01 98.43 137.7 70.16 137.61 69.31L137.1 69.36ZM167.76 95.4C166.68 96.19 165.49 96.85 164.2 97.36L195.59 130.5C195.49 130.6 195.43 130.74 195.43 130.89C195.43 131.19 195.67 131.42 195.97 131.42L195.99 131.4L195.98 130.89C207.36 130.74 224.93 106.21 188.78 102.28C179.4 101.26 172.54 98.67 167.76 95.4ZM167.76 95.4C154.13 86.07 157.47 71.22 167.51 71.42C178.24 71.63 177.32 88.38 167.76 95.4Z" fill="#D8D8D8" fill-opacity="0" fill-rule="evenodd"/>
|
|
42
|
+
<path id="路径 9备份"
|
|
43
|
+
d="M137.61 69.29C137.61 69.29 140.74 98.43 158.38 98.43C176.02 98.43 181.08 71.68 167.51 71.42C153.94 71.15 152.62 98.34 188.78 102.28C224.95 106.21 207.34 130.76 195.96 130.89"
|
|
44
|
+
stroke="#d3d4d8" stroke-opacity="0.800000" stroke-width="1.062340" stroke-linejoin="round"
|
|
45
|
+
stroke-linecap="round" stroke-dasharray="4.24936 4.24936"/>
|
|
46
|
+
</g>
|
|
47
|
+
<g opacity="0.300000">
|
|
48
|
+
<path id="路径-14备份"
|
|
49
|
+
d="M263.56 176.16C262.39 178.17 261.51 179.39 260.94 179.81C259.29 181.01 257.77 181.34 256.73 181.4C254.34 181.52 259.23 180.69 260.87 178.65C261.97 177.29 263.25 175.25 264.7 172.53L263.38 172.6L262.01 174.52C261.52 173.96 260.91 173.7 260.19 173.74C259.1 173.8 256.31 174.42 255.39 177.56C254.78 179.65 253.4 181.53 251.24 183.21C254.56 184.69 257.7 184.52 260.66 182.72C263.62 180.91 264.58 178.72 263.56 176.16Z"
|
|
50
|
+
fill="#d3d4d8" fill-opacity="1.000000" fill-rule="evenodd"/>
|
|
51
|
+
</g>
|
|
52
|
+
<g opacity="0.300000">
|
|
53
|
+
<path id="路径-14备份"
|
|
54
|
+
d="M70.75 101.63C68.76 105.14 67.27 107.27 66.29 108.01C63.5 110.11 60.91 110.69 59.14 110.78C55.08 110.99 63.39 109.54 66.18 105.98C68.04 103.6 70.21 100.03 72.68 95.28L70.42 95.4L68.1 98.75C67.27 97.77 66.23 97.32 65 97.38C63.15 97.48 58.41 98.57 56.86 104.05C55.82 107.71 53.48 111 49.82 113.93C55.46 116.53 60.8 116.25 65.82 113.1C70.85 109.94 72.49 106.12 70.75 101.63Z"
|
|
55
|
+
fill="#d3d4d8" fill-opacity="1.000000" fill-rule="evenodd"/>
|
|
56
|
+
</g>
|
|
57
|
+
<g opacity="0.300000">
|
|
58
|
+
<path id="路径"
|
|
59
|
+
d="M281.54 142.79C281.93 142.77 282.25 143.07 282.27 143.45C282.74 153.32 277.51 160.9 266.71 166.14C266.36 166.31 265.94 166.16 265.78 165.81C265.61 165.47 265.75 165.05 266.1 164.88C276.43 159.87 281.31 152.78 280.87 143.52C280.85 143.13 281.15 142.81 281.54 142.79Z"
|
|
60
|
+
fill="#d3d4d8" fill-opacity="1.000000" fill-rule="evenodd"/>
|
|
61
|
+
</g>
|
|
62
|
+
</g>
|
|
63
|
+
</g>
|
|
64
|
+
</g>
|
|
65
|
+
</svg>
|
|
@@ -144,13 +144,13 @@
|
|
|
144
144
|
|
|
145
145
|
&.start-date {
|
|
146
146
|
.el-date-table-cell {
|
|
147
|
-
border-radius: var(--cell-radius)
|
|
147
|
+
border-radius: var(--cell-radius);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
&.end-date {
|
|
152
152
|
.el-date-table-cell {
|
|
153
|
-
border-radius:
|
|
153
|
+
border-radius: var(--cell-radius);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
}
|
|
@@ -177,6 +177,36 @@
|
|
|
177
177
|
border: 1px solid var(--el-input-border-color);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
+
.el-date-editor {
|
|
181
|
+
&.is-focus {
|
|
182
|
+
|
|
183
|
+
.el-input__wrapper {
|
|
184
|
+
box-shadow: none;
|
|
185
|
+
--el-input-border-color: var(--o-color-primary3);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
&:hover {
|
|
190
|
+
|
|
191
|
+
.el-input__wrapper {
|
|
192
|
+
box-shadow: none;
|
|
193
|
+
--el-input-border-color: var(--o-color-primary2);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
&.el-input__wrapper {
|
|
198
|
+
&:hover {
|
|
199
|
+
box-shadow: none;
|
|
200
|
+
--el-input-border-color: var(--o-color-primary2);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
&.is-active {
|
|
204
|
+
--el-input-border-color: var(--o-color-primary3);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
|
|
180
210
|
.el-select__wrapper {
|
|
181
211
|
background: var(--o-color-fill2);
|
|
182
212
|
}
|
|
@@ -221,7 +221,7 @@ defineProps<EventsApplyPropsT>();
|
|
|
221
221
|
background-color: var(--o-color-primary1);
|
|
222
222
|
color: #fff;
|
|
223
223
|
text-align: center;
|
|
224
|
-
font-weight:
|
|
224
|
+
font-weight: 600;
|
|
225
225
|
@include respond('pad_v') {
|
|
226
226
|
display: none;
|
|
227
227
|
}
|
|
@@ -438,11 +438,17 @@ defineProps<EventsApplyPropsT>();
|
|
|
438
438
|
padding-right: 192px;
|
|
439
439
|
}
|
|
440
440
|
@include respond('<=pad_v') {
|
|
441
|
-
padding-right:
|
|
441
|
+
padding-right: 0;
|
|
442
442
|
}
|
|
443
443
|
|
|
444
444
|
.step-desc {
|
|
445
445
|
padding-bottom: var(--o-gap-5);
|
|
446
|
+
@include respond('laptop') {
|
|
447
|
+
padding-bottom: var(--o-gap-4);
|
|
448
|
+
}
|
|
449
|
+
@include respond('<=pad') {
|
|
450
|
+
padding-bottom: var(--o-gap-3);
|
|
451
|
+
}
|
|
446
452
|
}
|
|
447
453
|
|
|
448
454
|
.img-wrapper {
|
|
@@ -229,6 +229,7 @@ const list = computed(() => {
|
|
|
229
229
|
align-items: center;
|
|
230
230
|
flex-wrap: wrap;
|
|
231
231
|
justify-content: space-between;
|
|
232
|
+
gap: var(--o-gap-4);
|
|
232
233
|
|
|
233
234
|
.filter-left {
|
|
234
235
|
display: flex;
|
|
@@ -271,9 +272,6 @@ const list = computed(() => {
|
|
|
271
272
|
.o-input {
|
|
272
273
|
.o-icon-search {
|
|
273
274
|
font-size: 24px;
|
|
274
|
-
@include respond('<=pad_v') {
|
|
275
|
-
font-size: 16px;
|
|
276
|
-
}
|
|
277
275
|
}
|
|
278
276
|
}
|
|
279
277
|
}
|
|
@@ -29,6 +29,10 @@ const props = defineProps({
|
|
|
29
29
|
type: Boolean,
|
|
30
30
|
default: true,
|
|
31
31
|
},
|
|
32
|
+
disabled: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: false,
|
|
35
|
+
},
|
|
32
36
|
});
|
|
33
37
|
|
|
34
38
|
const { changeLocale, locale } = useLocale();
|
|
@@ -66,12 +70,15 @@ const isCommon = computed(() => {
|
|
|
66
70
|
<template>
|
|
67
71
|
<div
|
|
68
72
|
v-if="isCommon"
|
|
69
|
-
:class="options.length <= 1 ? 'hide-lang' : 'header-lang'"
|
|
73
|
+
:class="[options.length <= 1 ? 'hide-lang' : 'header-lang', disabled ? 'is-disabled' : '']"
|
|
70
74
|
>
|
|
71
75
|
<ODropdown
|
|
72
76
|
trigger="hover"
|
|
73
77
|
optionPosition="bottom"
|
|
74
|
-
|
|
78
|
+
:optionWrapClass="{
|
|
79
|
+
'dropdown':true,
|
|
80
|
+
'is-disabled': disabled,
|
|
81
|
+
}"
|
|
75
82
|
>
|
|
76
83
|
<div class="info-wrap">
|
|
77
84
|
<OIcon class="icon">
|
|
@@ -95,7 +102,7 @@ const isCommon = computed(() => {
|
|
|
95
102
|
|
|
96
103
|
<div
|
|
97
104
|
v-else
|
|
98
|
-
:class="options.length <= 1 ? 'hide-lang' : 'mobile-change-language'"
|
|
105
|
+
:class="[options.length <= 1 ? 'hide-lang' : 'mobile-change-language', disabled ? 'is-disabled' : '']"
|
|
99
106
|
>
|
|
100
107
|
<span
|
|
101
108
|
v-for="item in options"
|
|
@@ -150,6 +157,21 @@ const isCommon = computed(() => {
|
|
|
150
157
|
}
|
|
151
158
|
}
|
|
152
159
|
}
|
|
160
|
+
|
|
161
|
+
&.is-disabled {
|
|
162
|
+
.info-wrap {
|
|
163
|
+
color: var(--o-color-info4);
|
|
164
|
+
cursor: not-allowed;
|
|
165
|
+
|
|
166
|
+
&:hover {
|
|
167
|
+
color: var(--o-color-info4);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.o-icon {
|
|
171
|
+
color: inherit;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
153
175
|
.list {
|
|
154
176
|
background: var(--o-color-fill2);
|
|
155
177
|
cursor: pointer;
|
|
@@ -207,5 +229,25 @@ const isCommon = computed(() => {
|
|
|
207
229
|
}
|
|
208
230
|
}
|
|
209
231
|
}
|
|
232
|
+
|
|
233
|
+
&.is-disabled {
|
|
234
|
+
span {
|
|
235
|
+
color: var(--o-color-info4);
|
|
236
|
+
cursor: not-allowed;
|
|
237
|
+
@include hover {
|
|
238
|
+
color: var(--o-color-info4);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
&:after {
|
|
242
|
+
color: inherit;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
</style>
|
|
248
|
+
|
|
249
|
+
<style lang="scss">
|
|
250
|
+
.o-dropdown-list.is-disabled {
|
|
251
|
+
display: none;
|
|
210
252
|
}
|
|
211
253
|
</style>
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import { computed, nextTick, onMounted, ref, watch } from 'vue';
|
|
3
3
|
import {
|
|
4
4
|
isClient,
|
|
5
|
+
OFigure,
|
|
5
6
|
OIcon,
|
|
6
7
|
OIconChevronLeft,
|
|
7
8
|
OIconChevronRight,
|
|
8
|
-
OOption,
|
|
9
|
+
OOption, OResult,
|
|
9
10
|
OScroller,
|
|
10
11
|
OSelect,
|
|
11
12
|
OTab,
|
|
@@ -17,6 +18,7 @@ import OMeetingCalendarList from './components/OMeetingCalendarList.vue';
|
|
|
17
18
|
import IconEvent from '~icons/meeting/icon-event.svg';
|
|
18
19
|
import IconSummit from '~icons/meeting/icon-summit.svg';
|
|
19
20
|
import IconMeeting from '~icons/meeting/icon-meet.svg';
|
|
21
|
+
import emptyDefaultImg from '@/assets/meeting/empty.png';
|
|
20
22
|
import { Locales } from '@/i18n';
|
|
21
23
|
import { useMeetingConfig } from './composables/useMeetingConfig';
|
|
22
24
|
import {
|
|
@@ -41,13 +43,11 @@ const props = withDefaults(defineProps<MeetingCalendarPropsT>(), {
|
|
|
41
43
|
const { t, locale, meetingTabs, getConfig } = useMeetingConfig();
|
|
42
44
|
const isEn = computed(() => locale.value === Locales.EN);
|
|
43
45
|
|
|
44
|
-
const latestDay = ref<string>('');
|
|
45
46
|
const dateList = ref<string[]>([]);
|
|
46
47
|
const summitData = ref<SummitItemT[]>([]);
|
|
47
48
|
const summitDates = ref<string[]>([]);
|
|
48
49
|
const eventsData = ref<MeetingEventsItemT[]>([]);
|
|
49
50
|
const eventsDates = ref<string[]>([]);
|
|
50
|
-
const allDates = ref<string[]>([]);
|
|
51
51
|
const meetingData = ref<MeetingItemT[]>([]);
|
|
52
52
|
const limitTime = '2021-01-01';
|
|
53
53
|
const tabType = ref<CalendarDataType>(CalendarDataType.ALL);
|
|
@@ -167,25 +167,28 @@ const getDateData = async (day?: string) => {
|
|
|
167
167
|
getActivityData(date);
|
|
168
168
|
getDateList(date);
|
|
169
169
|
|
|
170
|
-
allDates.value = [...new Set([...dateList.value, ...summitDates.value, ...eventsDates.value])]
|
|
171
|
-
.flat()
|
|
172
|
-
.sort((a: string, b: string) => dayjs(a).isAfter(dayjs(b)) ? 1 : -1);
|
|
173
|
-
if (!day) {
|
|
174
|
-
if (!allDates.value.length) {
|
|
175
|
-
latestDay.value = formatDate(new Date());
|
|
176
|
-
} else {
|
|
177
|
-
let find = [...allDates.value].reverse().find((v) => dayjs().isAfter(dayjs(v)));
|
|
178
|
-
if (!find) {
|
|
179
|
-
find = allDates.value.find((v) => dayjs(v).isAfter(dayjs()));
|
|
180
|
-
}
|
|
181
|
-
latestDay.value = formatDate(find);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
170
|
paramGetDaysData({
|
|
185
171
|
date: date,
|
|
186
172
|
type: tabType.value,
|
|
187
173
|
});
|
|
188
174
|
};
|
|
175
|
+
const allDates = computed<string[]>(() => {
|
|
176
|
+
return [...new Set([...dateList.value, ...summitDates.value, ...eventsDates.value])]
|
|
177
|
+
.flat()
|
|
178
|
+
.sort((a: string, b: string) => dayjs(a).isAfter(dayjs(b)) ? 1 : -1);
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
const latestDay = computed(() => {
|
|
182
|
+
if (!allDates.value.length) {
|
|
183
|
+
return formatDate(new Date());
|
|
184
|
+
} else {
|
|
185
|
+
let find = allDates.value.find((v) => dayjs(v).isAfter(dayjs()));
|
|
186
|
+
if (!find) {
|
|
187
|
+
find = [...allDates.value].reverse().find((v) => dayjs().isAfter(dayjs(v)));
|
|
188
|
+
}
|
|
189
|
+
return formatDate(find);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
189
192
|
|
|
190
193
|
const changeMeetingDay = useDebounceFn((day: string, event?: Event) => {
|
|
191
194
|
if (isAutoClick.value) {
|
|
@@ -200,6 +203,15 @@ const changeMeetingDay = useDebounceFn((day: string, event?: Event) => {
|
|
|
200
203
|
}, 300)
|
|
201
204
|
|
|
202
205
|
|
|
206
|
+
watch(() => latestDay.value,
|
|
207
|
+
() => {
|
|
208
|
+
changeMeetingDay(latestDay.value);
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
immediate: true,
|
|
212
|
+
},
|
|
213
|
+
);
|
|
214
|
+
|
|
203
215
|
const selectDate = (val: string, date: string) => {
|
|
204
216
|
if (formatDate(date) === formatDate(limitTime) && val === 'prev-month') {
|
|
205
217
|
isLimit.value = true;
|
|
@@ -246,7 +258,6 @@ const getCalendarHeight = async () => {
|
|
|
246
258
|
|
|
247
259
|
onMounted(() => {
|
|
248
260
|
getCalendarHeight();
|
|
249
|
-
getDateData();
|
|
250
261
|
});
|
|
251
262
|
|
|
252
263
|
const stopWatchData = watch(
|
|
@@ -364,7 +375,7 @@ defineExpose({
|
|
|
364
375
|
<div class="detail-list">
|
|
365
376
|
<div class="current-day">
|
|
366
377
|
{{ t('meeting.latestMeeting') }}
|
|
367
|
-
<span>{{ formatDate(dayjs(
|
|
378
|
+
<span>{{ formatDate(dayjs(latestDay)) }}</span>
|
|
368
379
|
</div>
|
|
369
380
|
<div class="right-title">
|
|
370
381
|
<div class="title-list">
|
|
@@ -399,7 +410,14 @@ defineExpose({
|
|
|
399
410
|
:disableFormat="disableFormat"
|
|
400
411
|
>
|
|
401
412
|
<template #empty>
|
|
402
|
-
<slot name="empty"
|
|
413
|
+
<slot name="empty">
|
|
414
|
+
<OResult class="empty-result">
|
|
415
|
+
<template #image>
|
|
416
|
+
<OFigure class="img" :src="emptyImg ?? emptyDefaultImg" />
|
|
417
|
+
</template>
|
|
418
|
+
<template #description>{{ emptyText ?? t('meeting.meetingEmptyText') }}</template>
|
|
419
|
+
</OResult>
|
|
420
|
+
</slot>
|
|
403
421
|
</template>
|
|
404
422
|
</OMeetingCalendarList>
|
|
405
423
|
</OScroller>
|
|
@@ -451,7 +469,7 @@ defineExpose({
|
|
|
451
469
|
display: flex;
|
|
452
470
|
align-items: center;
|
|
453
471
|
justify-content: space-between;
|
|
454
|
-
height:
|
|
472
|
+
height: 58px;
|
|
455
473
|
padding: 0 var(--o-gap-6);
|
|
456
474
|
gap: var(--o-gap-6);
|
|
457
475
|
border-bottom: 1px solid var(--o-color-control4);
|
|
@@ -801,24 +819,22 @@ defineExpose({
|
|
|
801
819
|
}
|
|
802
820
|
|
|
803
821
|
.title-list {
|
|
804
|
-
|
|
805
|
-
align-items: center;
|
|
806
|
-
justify-content: center;
|
|
807
|
-
padding: 14px 24px;
|
|
822
|
+
padding: 16px 0;
|
|
808
823
|
position: relative;
|
|
809
|
-
height:
|
|
824
|
+
height: 58px;
|
|
810
825
|
|
|
811
826
|
@include respond('<=pad_v') {
|
|
812
827
|
justify-content: space-between;
|
|
813
828
|
padding: 0 16px;
|
|
814
|
-
gap:
|
|
829
|
+
gap: var(--o-gap-4);
|
|
815
830
|
height: auto;
|
|
816
831
|
align-items: flex-start;
|
|
832
|
+
display: flex;
|
|
817
833
|
}
|
|
818
834
|
@include respond('phone') {
|
|
819
835
|
flex-direction: column;
|
|
820
836
|
align-items: center;
|
|
821
|
-
gap:
|
|
837
|
+
gap: var(--o-gap-2);
|
|
822
838
|
}
|
|
823
839
|
|
|
824
840
|
&::after {
|
|
@@ -837,6 +853,9 @@ defineExpose({
|
|
|
837
853
|
@include respond('<=pad_v') {
|
|
838
854
|
display: inline-flex;
|
|
839
855
|
}
|
|
856
|
+
@include respond('pad_v') {
|
|
857
|
+
max-width: 160px;
|
|
858
|
+
}
|
|
840
859
|
@include respond('phone') {
|
|
841
860
|
display: flex;
|
|
842
861
|
width: 100%;
|
|
@@ -848,38 +867,30 @@ defineExpose({
|
|
|
848
867
|
}
|
|
849
868
|
|
|
850
869
|
.o-tab {
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
870
|
+
--tab-nav-padding: 0 0 16px;
|
|
871
|
+
@include respond('laptop') {
|
|
872
|
+
--tab-nav-padding: 0 0 18px;
|
|
873
|
+
}
|
|
855
874
|
@include respond('pad_h') {
|
|
856
875
|
--tab-nav-gap: 24px;
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
@include respond-to('pad_v') {
|
|
860
|
-
--tab-nav-justify: flex-end;
|
|
876
|
+
--tab-nav-padding: 0 0 18px;
|
|
861
877
|
}
|
|
862
878
|
|
|
863
|
-
@include respond('pad_v-laptop') {
|
|
864
|
-
--tab-nav-padding: 0 0 14px;
|
|
865
|
-
}
|
|
866
879
|
@include respond('<=pad_v') {
|
|
867
880
|
border-bottom: none;
|
|
868
881
|
height: auto;
|
|
869
882
|
.o-icon {
|
|
870
883
|
display: none;
|
|
871
884
|
}
|
|
872
|
-
.o-tab-navs-container {
|
|
873
|
-
|
|
874
|
-
.o-tab-nav {
|
|
875
|
-
line-height: 32px;
|
|
876
|
-
}
|
|
877
|
-
}
|
|
878
885
|
}
|
|
886
|
+
@include respond-to('pad_v') {
|
|
887
|
+
--tab-nav-justify: flex-end;
|
|
888
|
+
width: 50%;
|
|
889
|
+
--tab-nav-padding: 0 0 14px;
|
|
890
|
+
}
|
|
891
|
+
|
|
879
892
|
@include respond('phone') {
|
|
880
|
-
|
|
881
|
-
line-height: 2;
|
|
882
|
-
}
|
|
893
|
+
--tab-nav-padding: 0 0 4px;
|
|
883
894
|
}
|
|
884
895
|
|
|
885
896
|
.o-icon {
|
|
@@ -905,5 +916,27 @@ defineExpose({
|
|
|
905
916
|
}
|
|
906
917
|
}
|
|
907
918
|
}
|
|
919
|
+
|
|
920
|
+
.empty-result {
|
|
921
|
+
--result-image-width: 240px;
|
|
922
|
+
--result-image-height: 210px;
|
|
923
|
+
--result-desc-gap: var(--o-gap-4);
|
|
924
|
+
|
|
925
|
+
@include respond('laptop') {
|
|
926
|
+
--result-image-width: 200px;
|
|
927
|
+
--result-image-height: 175px;
|
|
928
|
+
--result-desc-gap: var(--o-gap-3);
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
@include respond('<=pad') {
|
|
932
|
+
--result-image-width: 160px;
|
|
933
|
+
--result-image-height: 140px;
|
|
934
|
+
--result-desc-gap: var(--o-gap-2);
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
.o-result-description {
|
|
938
|
+
@include tip1;
|
|
939
|
+
}
|
|
940
|
+
}
|
|
908
941
|
}
|
|
909
942
|
</style>
|