@opendesign-plus-test/components 0.0.1-rc.51 → 0.0.1-rc.53
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 +49 -69
- package/dist/components/OHeaderSearch.vue.d.ts +534 -814
- package/dist/components/OThemeSwitcher.vue.d.ts +2 -5
- package/dist/components/activity/index.d.ts +2 -2
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +3 -1
- package/dist/components/meeting/OMeetingPlayback.vue.d.ts +50 -1
- package/dist/components/meeting/components/OMeetingPlaybackSubtitles.vue.d.ts +16 -1
- package/dist/components/meeting/composables/useMeetingConfig.d.ts +1 -1
- package/dist/components/meeting/index.d.ts +17 -7
- package/dist/components/meeting/types.d.ts +1 -1
- package/dist/components.cjs.js +42 -42
- package/dist/components.css +1 -1
- package/dist/components.es.js +10590 -11551
- package/dist/index.d.ts +0 -1
- package/package.json +2 -4
- package/src/assets/styles/element-plus.scss +211 -0
- package/src/assets/svg-icons/icon-delete.svg +1 -5
- package/src/components/OHeaderSearch.vue +415 -437
- package/src/components/OThemeSwitcher.vue +51 -27
- package/src/components/activity/OActivityApproval.vue +10 -6
- package/src/components/activity/OActivityForm.vue +12 -6
- package/src/components/activity/{OMyActivityCalendar.vue → OActivityMyCalendar.vue} +59 -28
- package/src/components/activity/index.ts +4 -4
- package/src/components/events/OEventsApply.vue +2 -1
- package/src/components/events/OEventsCalendar.vue +7 -5
- package/src/components/events/OEventsList.vue +6 -4
- package/src/components/meeting/OMeetingCalendar.vue +26 -18
- package/src/components/meeting/OMeetingForm.vue +61 -17
- package/src/components/meeting/{OMyMeetingCalendar.vue → OMeetingMyCalendar.vue} +90 -52
- package/src/components/meeting/OMeetingPlayback.vue +42 -12
- package/src/components/meeting/{OSigMeetingCalendar.vue → OMeetingSigCalendar.vue} +7 -4
- package/src/components/meeting/components/OMeetingCalendarList.vue +60 -24
- package/src/components/meeting/components/OMeetingCalendarSelector.vue +12 -9
- package/src/components/meeting/components/OMeetingDetail.vue +1 -1
- package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +17 -13
- package/src/components/meeting/components/OMeetingPlaybackVideo.vue +6 -6
- package/src/components/meeting/components/{OSigMeetingAside.vue → OMeetingSigAside.vue} +1 -1
- package/src/components/meeting/composables/useMeetingConfig.ts +5 -5
- package/src/components/meeting/config.ts +1 -1
- package/src/components/meeting/index.ts +8 -8
- package/src/components/meeting/types.ts +1 -1
- package/src/i18n/en.ts +2 -12
- package/src/i18n/zh.ts +1 -11
- package/src/index.ts +0 -1
- package/vite.config.ts +1 -5
- package/dist/components/search/OSearchInput.vue.d.ts +0 -1003
- package/dist/components/search/composables/useImageSearch.d.ts +0 -48
- package/dist/components/search/composables/useKeywordHighlight.d.ts +0 -2
- package/dist/components/search/composables/useSearchHistory.d.ts +0 -14
- package/dist/components/search/index.d.ts +0 -590
- package/dist/components/search/internal/HighlightText.vue.d.ts +0 -9
- package/dist/components/search/internal/SearchImageInput.vue.d.ts +0 -716
- package/dist/components/search/internal/SearchPanel.vue.d.ts +0 -100
- package/dist/components/search/types.d.ts +0 -20
- package/src/assets/svg-icons/icon-delete-hover.svg +0 -4
- package/src/assets/svg-icons/icon-image-close.svg +0 -4
- package/src/assets/svg-icons/icon-image-upload.svg +0 -3
- package/src/assets/svg-icons/icon-image-zoomin.svg +0 -3
- package/src/assets/svg-icons/icon-refresh.svg +0 -3
- package/src/components/search/OSearchInput.vue +0 -463
- package/src/components/search/composables/useImageSearch.ts +0 -157
- package/src/components/search/composables/useKeywordHighlight.ts +0 -30
- package/src/components/search/composables/useSearchHistory.ts +0 -75
- package/src/components/search/index.ts +0 -23
- package/src/components/search/internal/HighlightText.vue +0 -37
- package/src/components/search/internal/SearchImageInput.vue +0 -488
- package/src/components/search/internal/SearchPanel.vue +0 -430
- package/src/components/search/types.ts +0 -25
- /package/dist/components/activity/{OMyActivityCalendar.vue.d.ts → OActivityMyCalendar.vue.d.ts} +0 -0
- /package/dist/components/meeting/{OMyMeetingCalendar.vue.d.ts → OMeetingMyCalendar.vue.d.ts} +0 -0
- /package/dist/components/meeting/{OSigMeetingCalendar.vue.d.ts → OMeetingSigCalendar.vue.d.ts} +0 -0
- /package/dist/components/meeting/components/{OSigMeetingAside.vue.d.ts → OMeetingSigAside.vue.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import {
|
|
3
|
-
DialogActionT,
|
|
3
|
+
DialogActionT, OButton,
|
|
4
4
|
OCollapse,
|
|
5
5
|
OCollapseItem,
|
|
6
6
|
ODialog,
|
|
@@ -20,9 +20,8 @@ import {
|
|
|
20
20
|
import { ElCalendar } from 'element-plus';
|
|
21
21
|
import { computed, nextTick, onMounted, ref, onUnmounted, watch } from 'vue';
|
|
22
22
|
import OMeetingDetail from './components/OMeetingDetail.vue';
|
|
23
|
-
import { MeetingGroupType, MeetingItemT, PageParamsT } from './types.ts';
|
|
23
|
+
import { CalendarDataType, MeetingGroupType, MeetingItemT, PageParamsT } from './types.ts';
|
|
24
24
|
import dayjs from 'dayjs';
|
|
25
|
-
import IconMeeting from '~icons/meeting/icon-meet.svg';
|
|
26
25
|
import { INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK } from './config.ts';
|
|
27
26
|
import { formatDate, getDateNumber } from './utils.ts';
|
|
28
27
|
import { useMeetingConfig } from './composables/useMeetingConfig';
|
|
@@ -40,7 +39,7 @@ const list = ref<MeetingItemT[]>([]); // 列表数据
|
|
|
40
39
|
const originList = ref<MeetingItemT[]>([]); // 原始数据
|
|
41
40
|
const canLoadMore = computed(() => total.value === null || originList.value.length < total.value);
|
|
42
41
|
const reloadAll = ref(false); // 是否需要清空数据
|
|
43
|
-
const { t, locale, getPointStr, getWeekFromDate } = useMeetingConfig();
|
|
42
|
+
const { t, locale, getPointStr, getConfig, getWeekFromDate } = useMeetingConfig();
|
|
44
43
|
const isEn = computed(() => locale.value === Locales.EN);
|
|
45
44
|
|
|
46
45
|
const props = withDefaults(defineProps<{
|
|
@@ -279,7 +278,10 @@ const confirmCancel = async () => {
|
|
|
279
278
|
}
|
|
280
279
|
try {
|
|
281
280
|
dialogLoading.value = true;
|
|
282
|
-
await props.deleteMeetingRequest(currentRow.value.id);
|
|
281
|
+
const flag = await props.deleteMeetingRequest(currentRow.value.id);
|
|
282
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
283
285
|
cancelVisible.value = false;
|
|
284
286
|
message.success({
|
|
285
287
|
content: `${ t('meeting.meetingCancel', [currentRow.value.topic]) }`,
|
|
@@ -331,24 +333,25 @@ const confirmHandleItem = async () => {
|
|
|
331
333
|
}
|
|
332
334
|
if (handleDialogType.value === 'cancel') {
|
|
333
335
|
try {
|
|
336
|
+
let flag = undefined;
|
|
334
337
|
dialogLoading.value = true;
|
|
335
338
|
if (handleType.value === 'single' && row.is_cycle) {
|
|
336
339
|
if (!props.cancelSubMeetingRequest) {
|
|
337
340
|
return;
|
|
338
341
|
}
|
|
339
|
-
await props.cancelSubMeetingRequest(row.sub_id);
|
|
340
|
-
message.success({
|
|
341
|
-
content: `${ t('meeting.meetingCancel', [row.topic]) }`,
|
|
342
|
-
});
|
|
342
|
+
flag = await props.cancelSubMeetingRequest(row.sub_id);
|
|
343
343
|
} else {
|
|
344
344
|
if (!props.deleteMeetingRequest) {
|
|
345
345
|
return;
|
|
346
346
|
}
|
|
347
|
-
await props.deleteMeetingRequest(row.id);
|
|
348
|
-
message.success({
|
|
349
|
-
content: `${ t('meeting.meetingCancel', [row.topic]) }`,
|
|
350
|
-
});
|
|
347
|
+
flag = await props.deleteMeetingRequest(row.id);
|
|
351
348
|
}
|
|
349
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
message.success({
|
|
353
|
+
content: `${ t('meeting.meetingCancel', [row.topic]) }`,
|
|
354
|
+
});
|
|
352
355
|
cancelHandleItem();
|
|
353
356
|
reloadAll.value = true;
|
|
354
357
|
getList();
|
|
@@ -578,6 +581,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
578
581
|
expired: dayjs(formatDate()).isAfter(dayjs(data.day)),
|
|
579
582
|
'all-deleted': calcIfAllDeleted(data.day),
|
|
580
583
|
}"
|
|
584
|
+
:style="{
|
|
585
|
+
'--dot-bg': `${getConfig(CalendarDataType.MEETING, 'color')}`
|
|
586
|
+
}"
|
|
581
587
|
>
|
|
582
588
|
<div class="date-cell-text">
|
|
583
589
|
{{ Number(data.day.split('-')[2]) }}
|
|
@@ -634,9 +640,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
634
640
|
>
|
|
635
641
|
<template #title>
|
|
636
642
|
<div class="item-header-left">
|
|
637
|
-
<div
|
|
643
|
+
<div
|
|
644
|
+
class="meeting-icon"
|
|
645
|
+
:style="{
|
|
646
|
+
backgroundColor: `${getConfig(CalendarDataType.MEETING, 'color')}`
|
|
647
|
+
}"
|
|
648
|
+
>
|
|
638
649
|
<OIcon>
|
|
639
|
-
<
|
|
650
|
+
<component :is="getConfig(CalendarDataType.MEETING, 'icon')" />
|
|
640
651
|
</OIcon>
|
|
641
652
|
</div>
|
|
642
653
|
<div class="header-info">
|
|
@@ -667,6 +678,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
667
678
|
</div>
|
|
668
679
|
<div class="item-header-right" v-if="!row.is_delete">
|
|
669
680
|
<OLink
|
|
681
|
+
:hover-underline="false"
|
|
670
682
|
v-if="!row.isExpired"
|
|
671
683
|
target="_blank"
|
|
672
684
|
:href="row.join_url"
|
|
@@ -680,7 +692,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
680
692
|
</template>
|
|
681
693
|
</OLink>
|
|
682
694
|
<template v-else>
|
|
683
|
-
<OLink
|
|
695
|
+
<OLink
|
|
696
|
+
:hover-underline="false"
|
|
697
|
+
target="_blank"
|
|
698
|
+
v-if="row.etherpad"
|
|
699
|
+
:href="row.etherpad"
|
|
700
|
+
>
|
|
684
701
|
{{ t('meeting.meetingSummary') }}
|
|
685
702
|
<template #suffix>
|
|
686
703
|
<OIcon>
|
|
@@ -689,6 +706,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
689
706
|
</template>
|
|
690
707
|
</OLink>
|
|
691
708
|
<OLink
|
|
709
|
+
:hover-underline="false"
|
|
692
710
|
target="_blank"
|
|
693
711
|
:href="`/${locale}/video/${row.group_name}/${row.mid}/${row.date}`"
|
|
694
712
|
v-if="row.hasObsData">
|
|
@@ -713,10 +731,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
713
731
|
from="my"
|
|
714
732
|
/>
|
|
715
733
|
<div class="meeting-btn" v-if="!row.isExpired && !row.is_delete">
|
|
716
|
-
<
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
734
|
+
<OButton color="normal" variant="text" @click="handleItem(row, 'edit')">
|
|
735
|
+
{{ t('meeting.editMeeting') }}
|
|
736
|
+
</OButton>
|
|
737
|
+
<OButton color="normal" variant="text" @click="handleItem(row, 'cancel')">
|
|
738
|
+
{{ t('meeting.cancelMeeting') }}
|
|
739
|
+
</OButton>
|
|
720
740
|
</div>
|
|
721
741
|
</div>
|
|
722
742
|
</OCollapseItem>
|
|
@@ -745,7 +765,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
745
765
|
>
|
|
746
766
|
<template #header>
|
|
747
767
|
{{
|
|
748
|
-
t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.
|
|
768
|
+
t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel')])
|
|
749
769
|
}}
|
|
750
770
|
</template>
|
|
751
771
|
<ORadioGroup v-model="handleType">
|
|
@@ -762,6 +782,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
762
782
|
|
|
763
783
|
<style lang="scss">
|
|
764
784
|
.o-my-meeting-calendar {
|
|
785
|
+
--meeting-card-radius: var(--o-radius-xs);
|
|
786
|
+
--meeting-input-radius: var(--o-radius-xs);
|
|
787
|
+
--meeting-cell-radius: var(--o-radius-xs);
|
|
765
788
|
|
|
766
789
|
.header {
|
|
767
790
|
display: flex;
|
|
@@ -877,7 +900,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
877
900
|
.el-calendar {
|
|
878
901
|
min-height: 460px;
|
|
879
902
|
height: calc(100% - 54px);
|
|
880
|
-
border-radius: var(--
|
|
903
|
+
border-radius: var(--meeting-card-radius);
|
|
881
904
|
background-color: transparent;
|
|
882
905
|
|
|
883
906
|
.el-calendar__header {
|
|
@@ -911,6 +934,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
911
934
|
|
|
912
935
|
.el-calendar__body {
|
|
913
936
|
.el-calendar-table {
|
|
937
|
+
display: table;
|
|
914
938
|
|
|
915
939
|
th {
|
|
916
940
|
text-align: center;
|
|
@@ -947,16 +971,16 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
947
971
|
|
|
948
972
|
.date-cell {
|
|
949
973
|
height: 56px;
|
|
950
|
-
width:
|
|
951
|
-
padding: var(--o-gap-1);
|
|
974
|
+
width: 34px;
|
|
952
975
|
position: relative;
|
|
953
976
|
cursor: default !important;
|
|
954
977
|
|
|
955
978
|
.date-cell-text {
|
|
956
979
|
font-size: 14px;
|
|
957
|
-
line-height:
|
|
958
|
-
border-radius: var(--
|
|
980
|
+
line-height: 34px;
|
|
981
|
+
border-radius: var(--meeting-cell-radius);
|
|
959
982
|
background-color: var(--o-color-control2-light);
|
|
983
|
+
border: 1px solid transparent;
|
|
960
984
|
}
|
|
961
985
|
|
|
962
986
|
.date-cell-text {
|
|
@@ -978,7 +1002,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
978
1002
|
&::after {
|
|
979
1003
|
content: '';
|
|
980
1004
|
position: absolute;
|
|
981
|
-
bottom:
|
|
1005
|
+
bottom: 5px;
|
|
982
1006
|
left: 50%;
|
|
983
1007
|
transform: translateX(-50%);
|
|
984
1008
|
width: 8px;
|
|
@@ -995,14 +1019,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
995
1019
|
|
|
996
1020
|
&.is-selected {
|
|
997
1021
|
.date-cell-text {
|
|
998
|
-
color:
|
|
999
|
-
|
|
1022
|
+
background-color: var(--o-color-control3-light);
|
|
1023
|
+
border: 1px solid var(--o-color-primary1);
|
|
1000
1024
|
}
|
|
1001
1025
|
}
|
|
1002
1026
|
|
|
1003
1027
|
&.clickable {
|
|
1004
1028
|
&::after {
|
|
1005
|
-
background-color: var(--
|
|
1029
|
+
background-color: var(--dot-bg);
|
|
1006
1030
|
}
|
|
1007
1031
|
|
|
1008
1032
|
&.expired::after {
|
|
@@ -1035,6 +1059,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1035
1059
|
display: flex;
|
|
1036
1060
|
align-items: center;
|
|
1037
1061
|
justify-content: center;
|
|
1062
|
+
min-height: 600px;
|
|
1038
1063
|
}
|
|
1039
1064
|
|
|
1040
1065
|
|
|
@@ -1207,31 +1232,20 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1207
1232
|
display: flex;
|
|
1208
1233
|
flex-direction: column;
|
|
1209
1234
|
|
|
1210
|
-
.o-collapse-item {
|
|
1211
|
-
&.last-item {
|
|
1212
|
-
.o-collapse-item-header {
|
|
1213
|
-
border-bottom: none;
|
|
1214
|
-
}
|
|
1215
|
-
}
|
|
1216
|
-
}
|
|
1217
|
-
|
|
1218
1235
|
.o-collapse-item-expanded + .o-collapse-item-expanded {
|
|
1219
1236
|
margin-top: var(--o-gap-4);
|
|
1220
1237
|
}
|
|
1221
1238
|
|
|
1222
1239
|
.height-placeholder {
|
|
1223
|
-
height: 0;
|
|
1224
|
-
transition: margin var(--o-easing-standard) var(--o-duration-s);
|
|
1225
|
-
}
|
|
1226
|
-
|
|
1227
|
-
.o-collapse-item-expanded + .height-placeholder {
|
|
1228
1240
|
height: var(--o-gap-4);
|
|
1229
1241
|
}
|
|
1230
1242
|
|
|
1243
|
+
|
|
1231
1244
|
.o-collapse-item {
|
|
1232
1245
|
padding: var(--o-gap-4) var(--o-gap-5);
|
|
1246
|
+
padding-bottom: calc(var(--o-gap-5) - var(--o-gap-4));
|
|
1233
1247
|
border-top: none;
|
|
1234
|
-
border-radius: var(--
|
|
1248
|
+
border-radius: var(--meeting-card-radius);
|
|
1235
1249
|
transition: margin var(--o-easing-standard) var(--o-duration-s);
|
|
1236
1250
|
--copy-display: none;
|
|
1237
1251
|
--icon-size: 24px;
|
|
@@ -1239,30 +1253,42 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1239
1253
|
padding: var(--o-gap-3) var(--o-gap-4);
|
|
1240
1254
|
}
|
|
1241
1255
|
|
|
1256
|
+
@include respond('phone') {
|
|
1257
|
+
--icon-size: 20px;
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1242
1260
|
&:hover {
|
|
1261
|
+
.title-text {
|
|
1262
|
+
color: var(--o-color-primary1);
|
|
1263
|
+
}
|
|
1243
1264
|
@include respond('>pad_v') {
|
|
1244
1265
|
--copy-display: inline-flex;
|
|
1245
1266
|
}
|
|
1246
1267
|
}
|
|
1247
1268
|
|
|
1248
|
-
|
|
1249
|
-
|
|
1269
|
+
&.last-item {
|
|
1270
|
+
.o-collapse-item-header {
|
|
1271
|
+
border-bottom: none;
|
|
1272
|
+
}
|
|
1250
1273
|
}
|
|
1251
1274
|
&.o-collapse-item-expanded {
|
|
1275
|
+
border-bottom: none;
|
|
1276
|
+
background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
|
|
1277
|
+
|
|
1252
1278
|
@include respond('<=pad_v') {
|
|
1253
1279
|
--copy-display: inline-flex;
|
|
1254
1280
|
}
|
|
1255
|
-
}
|
|
1256
1281
|
|
|
1257
|
-
|
|
1258
|
-
|
|
1282
|
+
.o-collapse-item-header {
|
|
1283
|
+
border-bottom: 1px solid var(--o-color-control4);
|
|
1284
|
+
}
|
|
1259
1285
|
}
|
|
1260
1286
|
}
|
|
1261
1287
|
|
|
1262
1288
|
.o-collapse-item-header {
|
|
1263
|
-
border-bottom:
|
|
1289
|
+
border-bottom: none;
|
|
1264
1290
|
padding-top: 0;
|
|
1265
|
-
padding-bottom: var(--o-gap-
|
|
1291
|
+
padding-bottom: var(--o-gap-4);
|
|
1266
1292
|
display: flex;
|
|
1267
1293
|
align-items: center;
|
|
1268
1294
|
gap: var(--o-gap-4);
|
|
@@ -1334,7 +1360,11 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1334
1360
|
|
|
1335
1361
|
&.is-delete,
|
|
1336
1362
|
&.is-end {
|
|
1337
|
-
color: var(--o-color-
|
|
1363
|
+
color: var(--o-color-info4);
|
|
1364
|
+
|
|
1365
|
+
.title-text {
|
|
1366
|
+
color: var(--o-color-info4) !important;
|
|
1367
|
+
}
|
|
1338
1368
|
}
|
|
1339
1369
|
|
|
1340
1370
|
.tag-wrapper {
|
|
@@ -1380,10 +1410,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1380
1410
|
padding-left: calc(var(--o-gap-3) + var(--icon-size));
|
|
1381
1411
|
gap: var(--o-gap-4);
|
|
1382
1412
|
width: 100%;
|
|
1413
|
+
font-weight: 400;
|
|
1383
1414
|
|
|
1384
1415
|
.o-link {
|
|
1385
1416
|
font-size: 14px;
|
|
1386
1417
|
line-height: 21px;
|
|
1418
|
+
--link-color: var(--o-color-info2);
|
|
1387
1419
|
}
|
|
1388
1420
|
.o-icon {
|
|
1389
1421
|
font-size: 16px;
|
|
@@ -1399,6 +1431,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1399
1431
|
height: 18px;
|
|
1400
1432
|
width: 18px;
|
|
1401
1433
|
display: var(--copy-display);
|
|
1434
|
+
color: var(--o-color-info1);
|
|
1402
1435
|
@include respond('phone') {
|
|
1403
1436
|
bottom: var(--o-gap-2);
|
|
1404
1437
|
right: calc(20px + var(--o-gap-2))
|
|
@@ -1431,10 +1464,15 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1431
1464
|
border-top: 1px solid var(--o-color-control4);
|
|
1432
1465
|
margin-top: var(--o-gap-5);
|
|
1433
1466
|
padding-top: var(--o-gap-4);
|
|
1467
|
+
padding-bottom: var(--o-gap-4);
|
|
1434
1468
|
display: flex;
|
|
1435
1469
|
align-items: center;
|
|
1436
1470
|
justify-content: flex-end;
|
|
1437
1471
|
gap: var(--o-gap-5);
|
|
1472
|
+
|
|
1473
|
+
.o-link {
|
|
1474
|
+
--link-color: inherit;
|
|
1475
|
+
}
|
|
1438
1476
|
}
|
|
1439
1477
|
}
|
|
1440
1478
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, onMounted, onUnmounted, ref, watchEffect } from 'vue';
|
|
3
3
|
import { speakerNum, transformSeconds, transformTime } from './utils';
|
|
4
|
-
import { OOption, OSelect, OTab, OTabPane, type SelectValueT } from '@opensig/opendesign';
|
|
4
|
+
import { OOption, OScroller, OSelect, OTab, OTabPane, type SelectValueT } from '@opensig/opendesign';
|
|
5
5
|
import OMeetingPlaybackSubtitles from './components/OMeetingPlaybackSubtitles.vue';
|
|
6
6
|
import OMeetingPlaybackVideo from './components/OMeetingPlaybackVideo.vue';
|
|
7
7
|
import { useI18n } from '@/i18n';
|
|
@@ -200,10 +200,10 @@ onUnmounted(() => {
|
|
|
200
200
|
/>
|
|
201
201
|
</div>
|
|
202
202
|
<div class="info-wrapper">
|
|
203
|
-
<OTab v-model="tab">
|
|
203
|
+
<OTab v-model="tab" :max-show="9999">
|
|
204
204
|
<OTabPane v-for="t in tabOptions" :key="t.value" :value="t.value" :label="t.label" />
|
|
205
205
|
</OTab>
|
|
206
|
-
<
|
|
206
|
+
<OScroller :class="['tab-content', `tab-content-${tab}`]" show-type="hover">
|
|
207
207
|
<div class="base-info" v-if="tab === tabOptions[0].value">
|
|
208
208
|
<div class="info-item">
|
|
209
209
|
<span>{{ t('meeting.item1') }}</span>
|
|
@@ -252,7 +252,7 @@ onUnmounted(() => {
|
|
|
252
252
|
</div>
|
|
253
253
|
</div>
|
|
254
254
|
</div>
|
|
255
|
-
</
|
|
255
|
+
</OScroller>
|
|
256
256
|
</div>
|
|
257
257
|
</div>
|
|
258
258
|
<div class="right-card card-wrapper" :style="{
|
|
@@ -261,7 +261,12 @@ onUnmounted(() => {
|
|
|
261
261
|
<OMeetingPlaybackSubtitles
|
|
262
262
|
:captions="captionsList"
|
|
263
263
|
:trackIdx="trackIdx"
|
|
264
|
-
:instance="playbackInstance"
|
|
264
|
+
:instance="playbackInstance"
|
|
265
|
+
>
|
|
266
|
+
<template #empty>
|
|
267
|
+
<slot name="empty"></slot>
|
|
268
|
+
</template>
|
|
269
|
+
</OMeetingPlaybackSubtitles>
|
|
265
270
|
</div>
|
|
266
271
|
</div>
|
|
267
272
|
</template>
|
|
@@ -271,15 +276,22 @@ onUnmounted(() => {
|
|
|
271
276
|
display: flex;
|
|
272
277
|
gap: var(--grid-column-gutter);
|
|
273
278
|
align-items: flex-start;
|
|
279
|
+
--meeting-card-radius: var(--o-radius-xs);
|
|
280
|
+
--meeting-input-radius: var(--o-radius-xs);
|
|
281
|
+
--meeting-cell-radius: var(--o-radius-xs);
|
|
274
282
|
|
|
275
283
|
@include respond('<=pad_v') {
|
|
276
284
|
flex-wrap: wrap;
|
|
277
285
|
}
|
|
278
286
|
|
|
279
287
|
.card-wrapper {
|
|
280
|
-
border-radius: var(--
|
|
288
|
+
border-radius: var(--meeting-card-radius);
|
|
281
289
|
background-color: var(--o-color-fill2);
|
|
282
290
|
padding: var(--o-gap-5);
|
|
291
|
+
|
|
292
|
+
&.left-card {
|
|
293
|
+
padding-bottom: 0;
|
|
294
|
+
}
|
|
283
295
|
}
|
|
284
296
|
|
|
285
297
|
.left-card {
|
|
@@ -311,8 +323,10 @@ onUnmounted(() => {
|
|
|
311
323
|
margin-top: var(--o-gap-5);
|
|
312
324
|
|
|
313
325
|
.o-tab {
|
|
314
|
-
|
|
315
|
-
|
|
326
|
+
--tab-nav-justify: flex-start;
|
|
327
|
+
|
|
328
|
+
.o-tab-nav-list {
|
|
329
|
+
width: 100%;
|
|
316
330
|
}
|
|
317
331
|
|
|
318
332
|
.o-tab-nav {
|
|
@@ -325,9 +339,23 @@ onUnmounted(() => {
|
|
|
325
339
|
|
|
326
340
|
.tab-content {
|
|
327
341
|
padding-top: var(--o-gap-4);
|
|
342
|
+
height: 280px;
|
|
343
|
+
padding-bottom: 0;
|
|
344
|
+
position: relative;
|
|
345
|
+
|
|
346
|
+
&::after {
|
|
347
|
+
height: 24px;
|
|
348
|
+
content: '';
|
|
349
|
+
position: absolute;
|
|
350
|
+
bottom: 0;
|
|
351
|
+
left: 0;
|
|
352
|
+
right: 0;
|
|
353
|
+
background: linear-gradient(180deg, rgba(var(--o-grey-1), 0), rgba(var(--o-grey-1), 1) 100%);
|
|
354
|
+
}
|
|
328
355
|
|
|
329
356
|
.base-info {
|
|
330
|
-
|
|
357
|
+
padding-bottom: var(--o-gap-5);
|
|
358
|
+
@include text1;
|
|
331
359
|
|
|
332
360
|
.info-item {
|
|
333
361
|
display: flex;
|
|
@@ -340,6 +368,7 @@ onUnmounted(() => {
|
|
|
340
368
|
span:first-child {
|
|
341
369
|
width: 6em;
|
|
342
370
|
flex-shrink: 0;
|
|
371
|
+
color: var(--o-color-info3);
|
|
343
372
|
}
|
|
344
373
|
|
|
345
374
|
span:last-child {
|
|
@@ -355,6 +384,7 @@ onUnmounted(() => {
|
|
|
355
384
|
.subject-list {
|
|
356
385
|
counter-reset: itemIndex;
|
|
357
386
|
position: relative;
|
|
387
|
+
padding-bottom: var(--o-gap-5);
|
|
358
388
|
|
|
359
389
|
.mouse-current-time {
|
|
360
390
|
position: absolute;
|
|
@@ -362,7 +392,7 @@ onUnmounted(() => {
|
|
|
362
392
|
padding: var(--o-gap-1);
|
|
363
393
|
box-shadow: var(--o-shadow-1);
|
|
364
394
|
z-index: 10;
|
|
365
|
-
border-radius: var(--
|
|
395
|
+
border-radius: var(--meeting-cell-radius);
|
|
366
396
|
transform: translateY(calc(0px - 100% - 4px));
|
|
367
397
|
color: var(--o-color-info2);
|
|
368
398
|
@include tip1;
|
|
@@ -402,7 +432,7 @@ onUnmounted(() => {
|
|
|
402
432
|
right: 0;
|
|
403
433
|
height: 4px;
|
|
404
434
|
border-radius: 2px;
|
|
405
|
-
background-color: var(--o-color-
|
|
435
|
+
background-color: var(--o-color-fill3);
|
|
406
436
|
}
|
|
407
437
|
|
|
408
438
|
.subject-progress {
|
|
@@ -417,7 +447,7 @@ onUnmounted(() => {
|
|
|
417
447
|
position: absolute;
|
|
418
448
|
top: 0;
|
|
419
449
|
bottom: 0;
|
|
420
|
-
border-radius: var(--
|
|
450
|
+
border-radius: var(--meeting-cell-radius);
|
|
421
451
|
left: calc(var(--start) * 100%);
|
|
422
452
|
right: calc((1 - var(--end)) * 100%);
|
|
423
453
|
z-index: 9;
|
|
@@ -3,7 +3,7 @@ import { ref, onMounted, computed, nextTick, watch } from 'vue';
|
|
|
3
3
|
import { ODivider, OPopover, OIcon, OTabPane, OTab, OScroller } from '@opensig/opendesign';
|
|
4
4
|
import dayjs from 'dayjs';
|
|
5
5
|
import IconTips from '~icons/components/icon-tips.svg';
|
|
6
|
-
import
|
|
6
|
+
import OMeetingSigAside from './components/OMeetingSigAside.vue';
|
|
7
7
|
import { CalendarDataType, MeetingEventsItemT, MeetingItemT } from './types.ts';
|
|
8
8
|
import { useScreen } from '@opendesign-plus/composables';
|
|
9
9
|
import { useMeetingConfig } from './composables/useMeetingConfig';
|
|
@@ -254,7 +254,7 @@ onMounted(() => {
|
|
|
254
254
|
</div>
|
|
255
255
|
</OPopover>
|
|
256
256
|
</div>
|
|
257
|
-
<OTab v-model="tabType" @change="selectTab" :line="false">
|
|
257
|
+
<OTab v-model="tabType" @change="selectTab" :line="false" :max-show="9999">
|
|
258
258
|
<OTabPane v-for="item in meetingTabs.slice(0, -1)" :key="item.value" :value="item.value">
|
|
259
259
|
<template #nav>
|
|
260
260
|
<OIcon>
|
|
@@ -281,7 +281,7 @@ onMounted(() => {
|
|
|
281
281
|
<ODivider class="meeting-divider" v-if="!lePadV || (lePadV && dateList.length)" />
|
|
282
282
|
<div class="meeting-card-content">
|
|
283
283
|
<template v-if="!lePadV && monthIdx !== -1">
|
|
284
|
-
<
|
|
284
|
+
<OMeetingSigAside
|
|
285
285
|
:data="dateMapList.slice(monthIdx, monthIdx + 1)"
|
|
286
286
|
:meetingDates="tabType !== CalendarDataType.EVENTS ? meetingDates :[] "
|
|
287
287
|
:eventsDates="tabType !== CalendarDataType.MEETING ? eventsDates : []"
|
|
@@ -308,9 +308,12 @@ onMounted(() => {
|
|
|
308
308
|
|
|
309
309
|
<style lang="scss">
|
|
310
310
|
.o-sig-meeting-calendar {
|
|
311
|
+
--meeting-card-radius: var(--o-radius-xs);
|
|
312
|
+
--meeting-input-radius: var(--o-radius-xs);
|
|
313
|
+
--meeting-cell-radius: var(--o-radius-xs);
|
|
311
314
|
width: 100%;
|
|
312
315
|
background-color: var(--o-color-fill2);
|
|
313
|
-
border-radius: var(--
|
|
316
|
+
border-radius: var(--meeting-card-radius);
|
|
314
317
|
margin-top: var(--o-gap-5);
|
|
315
318
|
@include respond('phone') {
|
|
316
319
|
.meeting-card-header {
|