@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
|
@@ -244,7 +244,7 @@ const getDetailRefs = (insRef: any, id: number) => {
|
|
|
244
244
|
detailRefs.value[id] = insRef;
|
|
245
245
|
}
|
|
246
246
|
};
|
|
247
|
-
const copyInfo = async (idx: number) => {
|
|
247
|
+
const copyInfo = async (idx: number | string) => {
|
|
248
248
|
const instance = detailRefs.value[idx];
|
|
249
249
|
await instance.copyInfo();
|
|
250
250
|
message.success({
|
|
@@ -632,81 +632,83 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
632
632
|
}"
|
|
633
633
|
>
|
|
634
634
|
<template #title>
|
|
635
|
-
<div class="item-header
|
|
636
|
-
<div
|
|
637
|
-
|
|
638
|
-
|
|
635
|
+
<div class="item-header">
|
|
636
|
+
<div class="item-header-left">
|
|
637
|
+
<div
|
|
638
|
+
class="meeting-icon"
|
|
639
|
+
:style="{
|
|
639
640
|
backgroundColor: `${row.is_delete ? 'var(--o-color-info4)' : getConfig(CalendarDataType.MEETING, 'color')}`
|
|
640
641
|
}"
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
</div>
|
|
646
|
-
<div class="header-info">
|
|
647
|
-
<div class="meeting-title">
|
|
648
|
-
<div v-if="row.is_delete">{{ t('meeting.meetingCancelled') }}</div>
|
|
649
|
-
<div class="title-wrapper">
|
|
650
|
-
<div class="title-text">{{ row.topic }}</div>
|
|
651
|
-
</div>
|
|
652
|
-
<div class="tag-wrapper" v-if="row.is_cycle">
|
|
653
|
-
<OTag color="primary" variant="outline">{{ t('meeting.cycle') }}</OTag>
|
|
654
|
-
</div>
|
|
642
|
+
>
|
|
643
|
+
<OIcon>
|
|
644
|
+
<component :is="getConfig(CalendarDataType.MEETING, 'icon')" />
|
|
645
|
+
</OIcon>
|
|
655
646
|
</div>
|
|
656
|
-
<div class="
|
|
657
|
-
<
|
|
658
|
-
|
|
659
|
-
|
|
647
|
+
<div class="header-info">
|
|
648
|
+
<div class="meeting-title">
|
|
649
|
+
<div v-if="row.is_delete">{{ t('meeting.meetingCancelled') }}</div>
|
|
650
|
+
<div class="title-wrapper">
|
|
651
|
+
<div class="title-text">{{ row.topic }}</div>
|
|
652
|
+
</div>
|
|
653
|
+
<div class="tag-wrapper" v-if="row.is_cycle">
|
|
654
|
+
<OTag color="primary" variant="outline">{{ t('meeting.cycle') }}</OTag>
|
|
655
|
+
</div>
|
|
656
|
+
</div>
|
|
657
|
+
<div class="meeting-info">
|
|
658
|
+
<span>{{ row.dateRange }}</span>
|
|
659
|
+
<ODivider direction="v" />
|
|
660
|
+
<span>
|
|
660
661
|
{{ groupType === MeetingGroupType.GROUP ? t('meeting.groups') : t('meeting.sigs')
|
|
661
|
-
|
|
662
|
+
}}: {{ row.group_name }}
|
|
662
663
|
</span>
|
|
664
|
+
</div>
|
|
663
665
|
</div>
|
|
664
666
|
</div>
|
|
665
|
-
|
|
666
|
-
<div class="item-header-right" v-if="!row.is_delete">
|
|
667
|
-
<OLink
|
|
668
|
-
:hover-underline="false"
|
|
669
|
-
v-if="!row.isExpired"
|
|
670
|
-
target="_blank"
|
|
671
|
-
:href="row.join_url"
|
|
672
|
-
rel="noopener noreferrer"
|
|
673
|
-
>
|
|
674
|
-
{{ t('meeting.joinMeeting') }}
|
|
675
|
-
<template #suffix>
|
|
676
|
-
<OIcon>
|
|
677
|
-
<OIconChevronRight></OIconChevronRight>
|
|
678
|
-
</OIcon>
|
|
679
|
-
</template>
|
|
680
|
-
</OLink>
|
|
681
|
-
<template v-else>
|
|
667
|
+
<div class="item-header-right" v-if="!row.is_delete">
|
|
682
668
|
<OLink
|
|
683
669
|
:hover-underline="false"
|
|
670
|
+
v-if="!row.isExpired"
|
|
684
671
|
target="_blank"
|
|
685
|
-
|
|
686
|
-
|
|
672
|
+
:href="row.join_url"
|
|
673
|
+
rel="noopener noreferrer"
|
|
687
674
|
>
|
|
688
|
-
{{ t('meeting.
|
|
675
|
+
{{ t('meeting.joinMeeting') }}
|
|
689
676
|
<template #suffix>
|
|
690
677
|
<OIcon>
|
|
691
678
|
<OIconChevronRight></OIconChevronRight>
|
|
692
679
|
</OIcon>
|
|
693
680
|
</template>
|
|
694
681
|
</OLink>
|
|
695
|
-
<
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
682
|
+
<template v-else>
|
|
683
|
+
<OLink
|
|
684
|
+
:hover-underline="false"
|
|
685
|
+
target="_blank"
|
|
686
|
+
v-if="row.etherpad"
|
|
687
|
+
:href="row.etherpad"
|
|
688
|
+
>
|
|
689
|
+
{{ t('meeting.meetingSummary') }}
|
|
690
|
+
<template #suffix>
|
|
691
|
+
<OIcon>
|
|
692
|
+
<OIconChevronRight></OIconChevronRight>
|
|
693
|
+
</OIcon>
|
|
694
|
+
</template>
|
|
695
|
+
</OLink>
|
|
696
|
+
<OLink
|
|
697
|
+
:hover-underline="false"
|
|
698
|
+
target="_blank"
|
|
699
|
+
:href="`/${locale}/video/${row.group_name}/${row.mid}/${row.date}`"
|
|
700
|
+
v-if="row.hasObsData">
|
|
701
|
+
{{ t('meeting.viewRecord') }}
|
|
702
|
+
<template #suffix>
|
|
703
|
+
<OIcon>
|
|
704
|
+
<OIconChevronRight></OIconChevronRight>
|
|
705
|
+
</OIcon>
|
|
706
|
+
</template>
|
|
707
|
+
</OLink>
|
|
708
|
+
</template>
|
|
709
|
+
</div>
|
|
708
710
|
</div>
|
|
709
|
-
<OIcon @click.stop="() => copyInfo(
|
|
711
|
+
<OIcon @click.stop="() => copyInfo(row.sub_id || row.id)" class="copy-icon">
|
|
710
712
|
<IconCopy />
|
|
711
713
|
</OIcon>
|
|
712
714
|
</template>
|
|
@@ -714,7 +716,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
714
716
|
<OMeetingDetail
|
|
715
717
|
:show="expanded.includes(row.sub_id || row.id)"
|
|
716
718
|
:data="row"
|
|
717
|
-
:ref="(insRef) => getDetailRefs(insRef, row.id)"
|
|
719
|
+
:ref="(insRef) => getDetailRefs(insRef, row.sub_id || row.id)"
|
|
718
720
|
from="my"
|
|
719
721
|
/>
|
|
720
722
|
<div class="meeting-btn" v-if="!row.isExpired && !row.is_delete">
|
|
@@ -922,9 +924,10 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
922
924
|
display: table;
|
|
923
925
|
|
|
924
926
|
th {
|
|
925
|
-
text-align:
|
|
927
|
+
text-align: left;
|
|
926
928
|
border: none;
|
|
927
929
|
--o-color-control3-light: transparent;
|
|
930
|
+
padding-left: calc(17px - 0.5em);
|
|
928
931
|
}
|
|
929
932
|
|
|
930
933
|
tr {
|
|
@@ -1230,7 +1233,6 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1230
1233
|
border-top: none;
|
|
1231
1234
|
border-radius: var(--meeting-card-radius);
|
|
1232
1235
|
transition: margin var(--o-easing-standard) var(--o-duration-s);
|
|
1233
|
-
--copy-display: none;
|
|
1234
1236
|
--icon-size: 24px;
|
|
1235
1237
|
@include respond('<=pad_v') {
|
|
1236
1238
|
padding: var(--o-gap-3) var(--o-gap-4);
|
|
@@ -1244,8 +1246,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1244
1246
|
.title-text {
|
|
1245
1247
|
color: var(--o-color-primary1);
|
|
1246
1248
|
}
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
+
|
|
1250
|
+
.o-collapse-item-title {
|
|
1251
|
+
.copy-icon {
|
|
1252
|
+
opacity: 1;
|
|
1253
|
+
visibility: visible;
|
|
1254
|
+
}
|
|
1249
1255
|
}
|
|
1250
1256
|
}
|
|
1251
1257
|
|
|
@@ -1271,12 +1277,26 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1271
1277
|
border-bottom: none;
|
|
1272
1278
|
background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
|
|
1273
1279
|
|
|
1274
|
-
@include respond('<=pad_v') {
|
|
1275
|
-
--copy-display: inline-flex;
|
|
1276
|
-
}
|
|
1277
|
-
|
|
1278
1280
|
.o-collapse-item-header {
|
|
1279
|
-
|
|
1281
|
+
padding-bottom: var(--o-gap-2);
|
|
1282
|
+
position: relative;
|
|
1283
|
+
|
|
1284
|
+
&::after {
|
|
1285
|
+
content: '';
|
|
1286
|
+
position: absolute;
|
|
1287
|
+
left: calc(var(--o-gap-3) + var(--icon-size));
|
|
1288
|
+
right: 0;
|
|
1289
|
+
bottom: 0;
|
|
1290
|
+
height: 1px;
|
|
1291
|
+
background-color: var(--o-color-control4);
|
|
1292
|
+
}
|
|
1293
|
+
|
|
1294
|
+
.o-collapse-item-title {
|
|
1295
|
+
.copy-icon {
|
|
1296
|
+
opacity: 1;
|
|
1297
|
+
visibility: visible;
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1280
1300
|
}
|
|
1281
1301
|
}
|
|
1282
1302
|
}
|
|
@@ -1284,35 +1304,37 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1284
1304
|
.o-collapse-item-header {
|
|
1285
1305
|
border-bottom: none;
|
|
1286
1306
|
padding-top: 0;
|
|
1287
|
-
padding-bottom:
|
|
1307
|
+
padding-bottom: 0;
|
|
1288
1308
|
display: flex;
|
|
1289
1309
|
align-items: center;
|
|
1290
1310
|
gap: var(--o-gap-4);
|
|
1291
|
-
|
|
1311
|
+
|
|
1312
|
+
@include respond('laptop') {
|
|
1313
|
+
gap: var(--o-gap-3);
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
@include respond('<=pad') {
|
|
1317
|
+
gap: var(--o-gap-2);
|
|
1318
|
+
}
|
|
1292
1319
|
|
|
1293
1320
|
.o-collapse-item-icon {
|
|
1294
|
-
position: relative;
|
|
1295
|
-
top: 4px;
|
|
1296
1321
|
flex-shrink: 0;
|
|
1297
|
-
@include respond('phone') {
|
|
1298
|
-
position: absolute;
|
|
1299
|
-
right: 0;
|
|
1300
|
-
width: 20px;
|
|
1301
|
-
height: 20px;
|
|
1302
|
-
font-size: 20px;
|
|
1303
|
-
top: 50%;
|
|
1304
|
-
transform: translateY(-50%);
|
|
1305
|
-
}
|
|
1306
1322
|
}
|
|
1307
1323
|
|
|
1308
1324
|
.o-collapse-item-title {
|
|
1309
1325
|
flex: 1;
|
|
1310
1326
|
width: 0;
|
|
1327
|
+
min-width: 0;
|
|
1311
1328
|
display: flex;
|
|
1312
|
-
|
|
1313
|
-
align-items: flex-start;
|
|
1329
|
+
align-items: center;
|
|
1314
1330
|
justify-content: space-between;
|
|
1315
1331
|
margin-bottom: 0;
|
|
1332
|
+
gap: var(--o-gap-4);
|
|
1333
|
+
|
|
1334
|
+
.item-header {
|
|
1335
|
+
flex: 1;
|
|
1336
|
+
min-width: 0;
|
|
1337
|
+
}
|
|
1316
1338
|
.item-header-left {
|
|
1317
1339
|
display: flex;
|
|
1318
1340
|
align-items: flex-start;
|
|
@@ -1336,6 +1358,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1336
1358
|
justify-content: center;
|
|
1337
1359
|
flex-shrink: 0;
|
|
1338
1360
|
--icon-size2: var(--icon-size);
|
|
1361
|
+
padding: 1px;
|
|
1339
1362
|
|
|
1340
1363
|
.o-icon {
|
|
1341
1364
|
font-size: calc(var(--icon-size2) - 2px);
|
|
@@ -1347,7 +1370,8 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1347
1370
|
}
|
|
1348
1371
|
|
|
1349
1372
|
.header-info {
|
|
1350
|
-
width:
|
|
1373
|
+
min-width: 0;
|
|
1374
|
+
flex: 1;
|
|
1351
1375
|
|
|
1352
1376
|
.meeting-title {
|
|
1353
1377
|
font-weight: 500;
|
|
@@ -1383,12 +1407,28 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1383
1407
|
display: flex;
|
|
1384
1408
|
align-items: center;
|
|
1385
1409
|
font-weight: 400;
|
|
1386
|
-
|
|
1410
|
+
font-size: 14px;
|
|
1411
|
+
line-height: 22px;
|
|
1412
|
+
@include respond('<=pad_v') {
|
|
1413
|
+
@include tip1;
|
|
1414
|
+
}
|
|
1415
|
+
@include respond('phone') {
|
|
1416
|
+
flex-direction: column;
|
|
1417
|
+
align-items: flex-start;
|
|
1418
|
+
}
|
|
1387
1419
|
|
|
1420
|
+
.o-divider {
|
|
1421
|
+
@include respond('phone') {
|
|
1422
|
+
display: none;
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1388
1425
|
span:last-child {
|
|
1389
1426
|
width: 0;
|
|
1390
1427
|
flex: 1;
|
|
1391
1428
|
@include text-truncate(1);
|
|
1429
|
+
@include respond('phone') {
|
|
1430
|
+
width: fit-content;
|
|
1431
|
+
}
|
|
1392
1432
|
}
|
|
1393
1433
|
}
|
|
1394
1434
|
}
|
|
@@ -1413,18 +1453,17 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1413
1453
|
}
|
|
1414
1454
|
|
|
1415
1455
|
.copy-icon {
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
font-size: 18px;
|
|
1421
|
-
height: 18px;
|
|
1422
|
-
width: 18px;
|
|
1423
|
-
display: var(--copy-display);
|
|
1456
|
+
flex-shrink: 0;
|
|
1457
|
+
font-size: 24px;
|
|
1458
|
+
visibility: hidden;
|
|
1459
|
+
opacity: 0;
|
|
1424
1460
|
color: var(--o-color-info1);
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1461
|
+
height: 1em;
|
|
1462
|
+
@include respond('<=laptop') {
|
|
1463
|
+
font-size: 20px;
|
|
1464
|
+
}
|
|
1465
|
+
@include respond('<=pad_v') {
|
|
1466
|
+
font-size: 24px;
|
|
1428
1467
|
}
|
|
1429
1468
|
|
|
1430
1469
|
&:hover {
|
|
@@ -1441,7 +1480,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1441
1480
|
|
|
1442
1481
|
.o-collapse-item-body {
|
|
1443
1482
|
margin-bottom: 0;
|
|
1444
|
-
padding: var(--o-gap-
|
|
1483
|
+
padding: var(--o-gap-2) 0 0;
|
|
1445
1484
|
|
|
1446
1485
|
.meeting-detail {
|
|
1447
1486
|
padding-left: calc(var(--o-gap-3) + var(--icon-size));
|
|
@@ -1452,13 +1491,23 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1452
1491
|
|
|
1453
1492
|
.meeting-btn {
|
|
1454
1493
|
border-top: 1px solid var(--o-color-control4);
|
|
1455
|
-
margin-top: var(--o-gap-
|
|
1494
|
+
margin-top: var(--o-gap-4);
|
|
1456
1495
|
padding-top: var(--o-gap-4);
|
|
1457
|
-
padding-bottom: var(--o-gap-4);
|
|
1496
|
+
padding-bottom: calc(var(--o-gap-4) - var(--o-gap-2));
|
|
1458
1497
|
display: flex;
|
|
1459
1498
|
align-items: center;
|
|
1460
1499
|
justify-content: flex-end;
|
|
1461
1500
|
gap: var(--o-gap-5);
|
|
1501
|
+
@include respond('pad_h') {
|
|
1502
|
+
margin-top: var(--o-gap-3);
|
|
1503
|
+
padding-top: var(--o-gap-3);
|
|
1504
|
+
padding-bottom: calc(var(--o-gap-3) - var(--o-gap-2));
|
|
1505
|
+
}
|
|
1506
|
+
@include respond('<=pad_v') {
|
|
1507
|
+
margin-top: var(--o-gap-2);
|
|
1508
|
+
padding-top: var(--o-gap-2);
|
|
1509
|
+
padding-bottom: 0;
|
|
1510
|
+
}
|
|
1462
1511
|
|
|
1463
1512
|
.o-link {
|
|
1464
1513
|
--link-color: inherit;
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ref, onMounted, computed, nextTick, watch } from 'vue';
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import {
|
|
4
|
+
ODivider,
|
|
5
|
+
OPopover,
|
|
6
|
+
OIcon,
|
|
7
|
+
OTabPane,
|
|
8
|
+
OTab,
|
|
9
|
+
OScroller,
|
|
10
|
+
OSelect,
|
|
11
|
+
OOption,
|
|
12
|
+
OFigure,
|
|
13
|
+
OResult,
|
|
14
|
+
} from '@opensig/opendesign';
|
|
5
15
|
import dayjs from 'dayjs';
|
|
6
16
|
import IconTips from '~icons/components/icon-tips.svg';
|
|
7
17
|
import OMeetingSigAside from './components/OMeetingSigAside.vue';
|
|
@@ -10,6 +20,7 @@ import { useScreen } from '@opendesign-plus/composables';
|
|
|
10
20
|
import { useMeetingConfig } from './composables/useMeetingConfig';
|
|
11
21
|
import OMeetingCalendarList from '@/components/meeting/components/OMeetingCalendarList.vue';
|
|
12
22
|
import { formatDate } from '@/components/meeting/utils.ts';
|
|
23
|
+
import emptyDefaultImg from '@/assets/meeting/empty.png';
|
|
13
24
|
|
|
14
25
|
const props = defineProps<{
|
|
15
26
|
sigName: String;
|
|
@@ -17,6 +28,8 @@ const props = defineProps<{
|
|
|
17
28
|
getDateListRequest: any;
|
|
18
29
|
getEventsListRequest: any;
|
|
19
30
|
dates: String[];
|
|
31
|
+
emptyImg?: any;
|
|
32
|
+
emptyText?: string;
|
|
20
33
|
}>();
|
|
21
34
|
const { t, meetingTabs } = useMeetingConfig();
|
|
22
35
|
const { lePadV } = useScreen();
|
|
@@ -34,7 +47,7 @@ const monthIdx = ref(-1);
|
|
|
34
47
|
const clickDateCell2 = (date: string) => {
|
|
35
48
|
clickDateCell(date);
|
|
36
49
|
};
|
|
37
|
-
const changeSelect = (v:
|
|
50
|
+
const changeSelect = (v: any) => {
|
|
38
51
|
clickDateCell(v);
|
|
39
52
|
};
|
|
40
53
|
// 获取所选日期的会议列表
|
|
@@ -79,15 +92,6 @@ const selectTab = () => {
|
|
|
79
92
|
getDates();
|
|
80
93
|
};
|
|
81
94
|
|
|
82
|
-
watch(
|
|
83
|
-
() => lePadV.value,
|
|
84
|
-
() => {
|
|
85
|
-
if (lePadV.value) {
|
|
86
|
-
tabType.value = CalendarDataType.ALL;
|
|
87
|
-
selectTab();
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
);
|
|
91
95
|
// -------------------- 获取有会议的日期 --------------------
|
|
92
96
|
|
|
93
97
|
const getMonthAndDay = (date: string) => {
|
|
@@ -284,16 +288,26 @@ const list = computed(() => {
|
|
|
284
288
|
</OTab>
|
|
285
289
|
</div>
|
|
286
290
|
<template v-if="lePadV && dateList.length">
|
|
287
|
-
<div class="
|
|
288
|
-
<
|
|
289
|
-
<
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
291
|
+
<div class="phone-filter-wrapper">
|
|
292
|
+
<div class="date-select">
|
|
293
|
+
<OSelect v-model="selectDate" @change="changeSelect">
|
|
294
|
+
<OOption
|
|
295
|
+
v-for="date in dateList"
|
|
296
|
+
:key="date"
|
|
297
|
+
:value="date"
|
|
298
|
+
:label="formatDate(date)"
|
|
299
|
+
/>
|
|
300
|
+
</OSelect>
|
|
301
|
+
</div>
|
|
302
|
+
<div>
|
|
303
|
+
<OTab v-model="tabType" @change="selectTab" :line="false" :max-show="9999">
|
|
304
|
+
<OTabPane v-for="item in meetingTabs.slice(0, -1)" :key="item.value" :value="item.value">
|
|
305
|
+
<template #nav>
|
|
306
|
+
{{ item.label }}
|
|
307
|
+
</template>
|
|
308
|
+
</OTabPane>
|
|
309
|
+
</OTab>
|
|
310
|
+
</div>
|
|
297
311
|
</div>
|
|
298
312
|
</template>
|
|
299
313
|
<ODivider class="meeting-divider" v-if="!lePadV || (lePadV && dateList.length)" />
|
|
@@ -316,7 +330,14 @@ const list = computed(() => {
|
|
|
316
330
|
:rows="calendarRows"
|
|
317
331
|
>
|
|
318
332
|
<template #empty>
|
|
319
|
-
<slot name="empty"
|
|
333
|
+
<slot name="empty">
|
|
334
|
+
<OResult class="empty-result">
|
|
335
|
+
<template #image>
|
|
336
|
+
<OFigure class="img" :src="emptyImg ?? emptyDefaultImg" />
|
|
337
|
+
</template>
|
|
338
|
+
<template #description>{{ emptyText ?? t('meeting.meetingEmptyText') }}</template>
|
|
339
|
+
</OResult>
|
|
340
|
+
</slot>
|
|
320
341
|
</template>
|
|
321
342
|
</OMeetingCalendarList>
|
|
322
343
|
</OScroller>
|
|
@@ -335,8 +356,6 @@ const list = computed(() => {
|
|
|
335
356
|
margin-top: var(--o-gap-5);
|
|
336
357
|
@include respond('phone') {
|
|
337
358
|
.meeting-card-header {
|
|
338
|
-
padding: var(--o-gap-3) var(--o-gap-4) 0;
|
|
339
|
-
|
|
340
359
|
.el-input {
|
|
341
360
|
flex-grow: 1;
|
|
342
361
|
}
|
|
@@ -346,11 +365,44 @@ const list = computed(() => {
|
|
|
346
365
|
}
|
|
347
366
|
}
|
|
348
367
|
|
|
349
|
-
.
|
|
350
|
-
|
|
368
|
+
.phone-filter-wrapper {
|
|
369
|
+
display: flex;
|
|
370
|
+
align-items: center;
|
|
371
|
+
justify-content: space-between;
|
|
372
|
+
gap: var(--o-gap-4);
|
|
373
|
+
padding: var(--o-gap-4) var(--o-gap-3) 0 var(--o-gap-3);
|
|
374
|
+
flex-wrap: nowrap;
|
|
375
|
+
@include respond('phone') {
|
|
376
|
+
flex-wrap: wrap;
|
|
377
|
+
flex-direction: column;
|
|
378
|
+
align-items: center;
|
|
379
|
+
gap: var(--o-gap-2);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.date-select {
|
|
383
|
+
padding-bottom: var(--o-gap-2);
|
|
384
|
+
max-width: 240px;
|
|
385
|
+
@include respond('phone') {
|
|
386
|
+
max-width: 100%;
|
|
387
|
+
width: 100%;
|
|
388
|
+
padding-bottom: 0;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
.o-select {
|
|
392
|
+
width: 100%;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.o-tab {
|
|
397
|
+
flex-shrink: 0;
|
|
398
|
+
--tab-text-height: calc(var(--tab-nav-text-height) + var(--o-gap-2) + 2px);
|
|
399
|
+
@include respond('phone') {
|
|
400
|
+
--tab-text-height: var(--tab-nav-text-height);
|
|
401
|
+
}
|
|
351
402
|
|
|
352
|
-
|
|
353
|
-
|
|
403
|
+
.o-tab-head {
|
|
404
|
+
line-height: var(--tab-text-height);
|
|
405
|
+
}
|
|
354
406
|
}
|
|
355
407
|
}
|
|
356
408
|
|
|
@@ -358,7 +410,7 @@ const list = computed(() => {
|
|
|
358
410
|
font-weight: 500;
|
|
359
411
|
display: flex;
|
|
360
412
|
align-items: center;
|
|
361
|
-
padding: var(--o-gap-3) var(--o-gap-
|
|
413
|
+
padding: var(--o-gap-3) var(--o-gap-5) 0;
|
|
362
414
|
@include text1;
|
|
363
415
|
@include respond('<=pad') {
|
|
364
416
|
padding: var(--o-gap-3) var(--o-gap-4) 0;
|
|
@@ -435,5 +487,14 @@ const list = computed(() => {
|
|
|
435
487
|
height: auto;
|
|
436
488
|
}
|
|
437
489
|
}
|
|
490
|
+
|
|
491
|
+
.empty-result {
|
|
492
|
+
--result-image-width: 200px;
|
|
493
|
+
--result-image-height: 175px;
|
|
494
|
+
|
|
495
|
+
.o-result-description {
|
|
496
|
+
@include tip1;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
438
499
|
}
|
|
439
500
|
</style>
|
|
@@ -332,6 +332,10 @@ const computedList = computed<any[]>(() => {
|
|
|
332
332
|
display: flex;
|
|
333
333
|
align-items: center;
|
|
334
334
|
justify-content: center;
|
|
335
|
+
@include respond('<=pad_v') {
|
|
336
|
+
min-height: auto;
|
|
337
|
+
padding: var(--o-gap-5) 0;
|
|
338
|
+
}
|
|
335
339
|
}
|
|
336
340
|
|
|
337
341
|
|
|
@@ -368,11 +372,6 @@ const computedList = computed<any[]>(() => {
|
|
|
368
372
|
display: none;
|
|
369
373
|
}
|
|
370
374
|
|
|
371
|
-
@include hover {
|
|
372
|
-
.text {
|
|
373
|
-
color: var(--o-color-primary1);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
375
|
@include respond('<=pad_v') {
|
|
377
376
|
&::after {
|
|
378
377
|
width: calc(100% - 2 * 16px);
|
|
@@ -405,9 +404,14 @@ const computedList = computed<any[]>(() => {
|
|
|
405
404
|
|
|
406
405
|
.o-collapse-item-header {
|
|
407
406
|
align-items: center;
|
|
408
|
-
padding: var(--o-gap-4) var(--o-gap-
|
|
407
|
+
padding: var(--o-gap-4) var(--o-gap-4) var(--o-gap-3) var(--o-gap-4);
|
|
409
408
|
position: relative;
|
|
410
409
|
|
|
410
|
+
@include hover {
|
|
411
|
+
.text {
|
|
412
|
+
color: var(--o-color-primary1);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
411
415
|
@include respond('>pad_v') {
|
|
412
416
|
&:hover {
|
|
413
417
|
.o-collapse-item-title {
|
|
@@ -419,7 +423,7 @@ const computedList = computed<any[]>(() => {
|
|
|
419
423
|
}
|
|
420
424
|
}
|
|
421
425
|
@include respond('<=pad_v') {
|
|
422
|
-
padding:
|
|
426
|
+
padding: var(--o-gap-4) var(--o-gap-3) var(--o-gap-2) var(--o-gap-3);
|
|
423
427
|
}
|
|
424
428
|
|
|
425
429
|
.o-collapse-item-title {
|
|
@@ -430,7 +434,13 @@ const computedList = computed<any[]>(() => {
|
|
|
430
434
|
align-items: center;
|
|
431
435
|
justify-content: center;
|
|
432
436
|
gap: var(--o-gap-4);
|
|
433
|
-
padding-right: var(--o-gap-
|
|
437
|
+
padding-right: var(--o-gap-4);
|
|
438
|
+
@include respond('laptop') {
|
|
439
|
+
padding-right: var(--o-gap-3);
|
|
440
|
+
}
|
|
441
|
+
@include respond('<=pad') {
|
|
442
|
+
padding-right: var(--o-gap-2);
|
|
443
|
+
}
|
|
434
444
|
|
|
435
445
|
.meet-title-left {
|
|
436
446
|
flex-grow: 1;
|
|
@@ -438,11 +448,18 @@ const computedList = computed<any[]>(() => {
|
|
|
438
448
|
}
|
|
439
449
|
|
|
440
450
|
.copy-icon {
|
|
451
|
+
font-size: 24px;
|
|
441
452
|
flex-shrink: 0;
|
|
442
453
|
display: inline-flex;
|
|
443
454
|
opacity: 0;
|
|
444
455
|
visibility: hidden;
|
|
445
456
|
color: var(--o-color-info1);
|
|
457
|
+
@include respond('<=laptop') {
|
|
458
|
+
font-size: 20px;
|
|
459
|
+
}
|
|
460
|
+
@include respond('<=pad_v') {
|
|
461
|
+
font-size: 24px;
|
|
462
|
+
}
|
|
446
463
|
|
|
447
464
|
&:hover {
|
|
448
465
|
color: var(--o-color-primary1);
|
|
@@ -569,8 +586,6 @@ const computedList = computed<any[]>(() => {
|
|
|
569
586
|
.text {
|
|
570
587
|
display: block;
|
|
571
588
|
font-weight: 600;
|
|
572
|
-
min-width: 0;
|
|
573
|
-
flex: 1;
|
|
574
589
|
@include text-truncate(1);
|
|
575
590
|
}
|
|
576
591
|
}
|