@opendesign-plus-test/components 0.0.1-rc.63 → 0.0.1-rc.65
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 +2 -2
- package/dist/components/events/types.d.ts +4 -0
- package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +1 -0
- package/dist/components/meeting/types.d.ts +4 -2
- package/dist/components.cjs.js +34 -34
- package/dist/components.css +1 -1
- package/dist/components.es.js +6745 -6708
- package/package.json +2 -2
- package/src/assets/meeting/svg-icons/icon-all.svg +2 -1
- package/src/assets/meeting/svg-icons/icon-event.svg +2 -1
- package/src/assets/meeting/svg-icons/icon-meet.svg +2 -1
- package/src/assets/meeting/svg-icons/icon-summit.svg +2 -1
- package/src/components/activity/OActivityMyCalendar.vue +18 -11
- package/src/components/events/OEventsApply.vue +0 -2
- package/src/components/events/OEventsList.vue +66 -39
- package/src/components/events/types.ts +1 -0
- package/src/components/meeting/OMeetingCalendar.vue +30 -20
- package/src/components/meeting/OMeetingForm.vue +5 -11
- package/src/components/meeting/OMeetingMyCalendar.vue +25 -26
- package/src/components/meeting/OMeetingSigCalendar.vue +43 -20
- package/src/components/meeting/components/OMeetingCalendarList.vue +36 -23
- package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +1 -1
- package/src/components/meeting/components/OMeetingSigAside.vue +11 -6
- package/src/components/meeting/types.ts +3 -1
- package/src/i18n/en.ts +1 -1
- package/src/i18n/zh.ts +1 -1
|
@@ -58,7 +58,6 @@ const emits = defineEmits(['edit']);
|
|
|
58
58
|
// -------------------- 自动加载下一页 --------------------
|
|
59
59
|
const nextLoading = ref(false);
|
|
60
60
|
const bottomReached = ref(false);
|
|
61
|
-
const headerRef = ref();
|
|
62
61
|
|
|
63
62
|
const getList = async () => {
|
|
64
63
|
if (!props.getMeetingListRequest) {
|
|
@@ -628,6 +627,8 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
628
627
|
:value="row.sub_id || row.id"
|
|
629
628
|
:class="{
|
|
630
629
|
'last-item': idx === groupList.length - 1 && rowIdx === group.list.length - 1,
|
|
630
|
+
'is-delete': row.is_delete,
|
|
631
|
+
'is-end': row.isExpired,
|
|
631
632
|
}"
|
|
632
633
|
>
|
|
633
634
|
<template #title>
|
|
@@ -635,7 +636,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
635
636
|
<div
|
|
636
637
|
class="meeting-icon"
|
|
637
638
|
:style="{
|
|
638
|
-
backgroundColor: `${getConfig(CalendarDataType.MEETING, 'color')}`
|
|
639
|
+
backgroundColor: `${row.is_delete ? 'var(--o-color-info4)' : getConfig(CalendarDataType.MEETING, 'color')}`
|
|
639
640
|
}"
|
|
640
641
|
>
|
|
641
642
|
<OIcon>
|
|
@@ -643,13 +644,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
643
644
|
</OIcon>
|
|
644
645
|
</div>
|
|
645
646
|
<div class="header-info">
|
|
646
|
-
<div
|
|
647
|
-
:class="{
|
|
648
|
-
'meeting-title': true,
|
|
649
|
-
'is-delete': row.is_delete,
|
|
650
|
-
'is-end': row.isExpired,
|
|
651
|
-
}"
|
|
652
|
-
>
|
|
647
|
+
<div class="meeting-title">
|
|
653
648
|
<div v-if="row.is_delete">{{ t('meeting.meetingCancelled') }}</div>
|
|
654
649
|
<div class="title-wrapper">
|
|
655
650
|
<div class="title-text">{{ row.topic }}</div>
|
|
@@ -1002,7 +997,8 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1002
997
|
|
|
1003
998
|
&.is-today {
|
|
1004
999
|
.date-cell-text {
|
|
1005
|
-
color:
|
|
1000
|
+
color: var(--o-color-primary1);
|
|
1001
|
+
font-weight: bold;
|
|
1006
1002
|
background-color: var(--o-color-control3-light);
|
|
1007
1003
|
}
|
|
1008
1004
|
}
|
|
@@ -1029,9 +1025,6 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1029
1025
|
}
|
|
1030
1026
|
}
|
|
1031
1027
|
|
|
1032
|
-
.is-today {
|
|
1033
|
-
color: inherit;
|
|
1034
|
-
}
|
|
1035
1028
|
}
|
|
1036
1029
|
}
|
|
1037
1030
|
}
|
|
@@ -1072,14 +1065,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1072
1065
|
padding-left: 24px;
|
|
1073
1066
|
position: relative;
|
|
1074
1067
|
|
|
1075
|
-
&.last-item {
|
|
1076
|
-
flex-grow: 1;
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
1068
|
@include respond('phone') {
|
|
1080
1069
|
padding-left: var(--o-gap-2);
|
|
1081
1070
|
}
|
|
1082
1071
|
|
|
1072
|
+
&.last-item {
|
|
1073
|
+
flex-grow: 1;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1083
1076
|
.group-bar {
|
|
1084
1077
|
position: absolute;
|
|
1085
1078
|
left: 0;
|
|
@@ -1261,6 +1254,19 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1261
1254
|
border-bottom: none;
|
|
1262
1255
|
}
|
|
1263
1256
|
}
|
|
1257
|
+
|
|
1258
|
+
&.is-delete,
|
|
1259
|
+
&.is-end {
|
|
1260
|
+
|
|
1261
|
+
.meeting-title {
|
|
1262
|
+
color: var(--o-color-info4);
|
|
1263
|
+
|
|
1264
|
+
.title-text {
|
|
1265
|
+
color: var(--o-color-info4);
|
|
1266
|
+
}
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1264
1270
|
&.o-collapse-item-expanded {
|
|
1265
1271
|
border-bottom: none;
|
|
1266
1272
|
background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
|
|
@@ -1329,8 +1335,10 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1329
1335
|
align-items: center;
|
|
1330
1336
|
justify-content: center;
|
|
1331
1337
|
flex-shrink: 0;
|
|
1338
|
+
--icon-size2: var(--icon-size);
|
|
1332
1339
|
|
|
1333
1340
|
.o-icon {
|
|
1341
|
+
font-size: calc(var(--icon-size2) - 2px);
|
|
1334
1342
|
svg path {
|
|
1335
1343
|
fill: currentColor;
|
|
1336
1344
|
}
|
|
@@ -1348,15 +1356,6 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1348
1356
|
margin-bottom: var(--o-gap-2);
|
|
1349
1357
|
@include text2;
|
|
1350
1358
|
|
|
1351
|
-
&.is-delete,
|
|
1352
|
-
&.is-end {
|
|
1353
|
-
color: var(--o-color-info4);
|
|
1354
|
-
|
|
1355
|
-
.title-text {
|
|
1356
|
-
color: var(--o-color-info4) !important;
|
|
1357
|
-
}
|
|
1358
|
-
}
|
|
1359
|
-
|
|
1360
1359
|
.tag-wrapper {
|
|
1361
1360
|
flex: 10;
|
|
1362
1361
|
margin-left: var(--o-gap-2);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ref, onMounted, computed, nextTick, watch } from 'vue';
|
|
3
3
|
import { ODivider, OPopover, OIcon, OTabPane, OTab, OScroller } from '@opensig/opendesign';
|
|
4
|
+
import { ElSelect, ElOption } from 'element-plus';
|
|
4
5
|
import dayjs from 'dayjs';
|
|
5
6
|
import IconTips from '~icons/components/icon-tips.svg';
|
|
6
7
|
import OMeetingSigAside from './components/OMeetingSigAside.vue';
|
|
@@ -8,6 +9,7 @@ import { CalendarDataType, MeetingEventsItemT, MeetingItemT } from './types.ts';
|
|
|
8
9
|
import { useScreen } from '@opendesign-plus/composables';
|
|
9
10
|
import { useMeetingConfig } from './composables/useMeetingConfig';
|
|
10
11
|
import OMeetingCalendarList from '@/components/meeting/components/OMeetingCalendarList.vue';
|
|
12
|
+
import { formatDate } from '@/components/meeting/utils.ts';
|
|
11
13
|
|
|
12
14
|
const props = defineProps<{
|
|
13
15
|
sigName: String;
|
|
@@ -21,7 +23,7 @@ const { lePadV } = useScreen();
|
|
|
21
23
|
const selectDate = ref<string>('');
|
|
22
24
|
|
|
23
25
|
const loading = ref(false); // 数据加载状态
|
|
24
|
-
const
|
|
26
|
+
const meetingData = ref<MeetingItemT[]>([]); // 某天的会议列表
|
|
25
27
|
const calendarRows = computed(() => (lePadV.value ? 100 : 5)); // 日历行数
|
|
26
28
|
|
|
27
29
|
const latestDate = ref<string>('');
|
|
@@ -44,7 +46,7 @@ const clickDateCell = async (date: string) => {
|
|
|
44
46
|
loading.value = true;
|
|
45
47
|
selectDate.value = dayjs(date).format('YYYY-MM-DD');
|
|
46
48
|
const res = await props.getMeetingListRequest(selectDate.value, props.sigName);
|
|
47
|
-
|
|
49
|
+
meetingData.value = res.map((v: MeetingItemT) => {
|
|
48
50
|
return {
|
|
49
51
|
...v,
|
|
50
52
|
time: `${ v.start }-${ v.end }`,
|
|
@@ -54,11 +56,6 @@ const clickDateCell = async (date: string) => {
|
|
|
54
56
|
});
|
|
55
57
|
} finally {
|
|
56
58
|
loading.value = false;
|
|
57
|
-
eventsData.value.forEach((v) => {
|
|
58
|
-
if (v.dates?.includes(selectDate.value)) {
|
|
59
|
-
list.value.push(v);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
59
|
}
|
|
63
60
|
};
|
|
64
61
|
|
|
@@ -68,7 +65,12 @@ const getDates = async () => {
|
|
|
68
65
|
meetingDates.value = await props.getDateListRequest();
|
|
69
66
|
}
|
|
70
67
|
if (props.getEventsListRequest) {
|
|
71
|
-
eventsData.value = await props.getEventsListRequest()
|
|
68
|
+
eventsData.value = (await props.getEventsListRequest(selectDate.value, props.sigName)).map((v: any) => {
|
|
69
|
+
return {
|
|
70
|
+
...v,
|
|
71
|
+
type: CalendarDataType.EVENTS,
|
|
72
|
+
};
|
|
73
|
+
});
|
|
72
74
|
eventsDates.value = (eventsData.value || []).map(v => v.dates || []).flat();
|
|
73
75
|
}
|
|
74
76
|
};
|
|
@@ -94,13 +96,15 @@ const getMonthAndDay = (date: string) => {
|
|
|
94
96
|
};
|
|
95
97
|
|
|
96
98
|
const dateList = computed(() => {
|
|
97
|
-
let list
|
|
99
|
+
let list: any[];
|
|
98
100
|
if (tabType.value === CalendarDataType.ALL) {
|
|
99
101
|
list = [...(meetingDates.value || []), ...eventsDates.value];
|
|
100
102
|
} else if (tabType.value === CalendarDataType.MEETING) {
|
|
101
103
|
list = meetingDates.value || [];
|
|
104
|
+
} else if (tabType.value === CalendarDataType.EVENTS) {
|
|
105
|
+
list = eventsDates.value || [];
|
|
102
106
|
} else {
|
|
103
|
-
list =
|
|
107
|
+
list = [];
|
|
104
108
|
}
|
|
105
109
|
return [...new Set(list)].sort((a, b) => !dayjs(a).isAfter(dayjs(b)) ? -1 : 1).map(v => dayjs(v).format('YYYY-MM-DD'));
|
|
106
110
|
});
|
|
@@ -235,11 +239,25 @@ const changeMonthIdx = (step: number) => {
|
|
|
235
239
|
onMounted(() => {
|
|
236
240
|
getDates();
|
|
237
241
|
});
|
|
242
|
+
|
|
243
|
+
const list = computed(() => {
|
|
244
|
+
let list: any[];
|
|
245
|
+
if (tabType.value === CalendarDataType.ALL) {
|
|
246
|
+
list = [...(meetingData.value || []), ...eventsData.value];
|
|
247
|
+
} else if (tabType.value === CalendarDataType.MEETING) {
|
|
248
|
+
list = meetingData.value || [];
|
|
249
|
+
} else if (tabType.value === CalendarDataType.EVENTS) {
|
|
250
|
+
list = eventsData.value || [];
|
|
251
|
+
} else {
|
|
252
|
+
list = [];
|
|
253
|
+
}
|
|
254
|
+
return list;
|
|
255
|
+
});
|
|
238
256
|
</script>
|
|
239
257
|
|
|
240
258
|
<template>
|
|
241
259
|
<div class="o-sig-meeting-calendar">
|
|
242
|
-
<div class="meeting-card-header"
|
|
260
|
+
<div class="meeting-card-header">
|
|
243
261
|
<div class="header-left" v-if="latestDate">
|
|
244
262
|
<span>{{ t('meeting.latestMeeting') }} </span>
|
|
245
263
|
<span>{{ dayjs(latestDate).format('YYYY/MM/DD') }}</span>
|
|
@@ -268,12 +286,12 @@ onMounted(() => {
|
|
|
268
286
|
<template v-if="lePadV && dateList.length">
|
|
269
287
|
<div class="date-select">
|
|
270
288
|
<ElSelect v-model="selectDate" @change="changeSelect">
|
|
271
|
-
<template #label>{{ t('meeting.latestMeeting') }} {{ selectDate }}</template>
|
|
289
|
+
<template #label>{{ t('meeting.latestMeeting') }} {{ formatDate(selectDate) }}</template>
|
|
272
290
|
<ElOption
|
|
273
291
|
v-for="date in dateList"
|
|
274
292
|
:key="date"
|
|
275
293
|
:value="date"
|
|
276
|
-
:label="
|
|
294
|
+
:label="formatDate(date)"
|
|
277
295
|
/>
|
|
278
296
|
</ElSelect>
|
|
279
297
|
</div>
|
|
@@ -317,7 +335,7 @@ onMounted(() => {
|
|
|
317
335
|
margin-top: var(--o-gap-5);
|
|
318
336
|
@include respond('phone') {
|
|
319
337
|
.meeting-card-header {
|
|
320
|
-
padding:
|
|
338
|
+
padding: var(--o-gap-3) var(--o-gap-4) 0;
|
|
321
339
|
|
|
322
340
|
.el-input {
|
|
323
341
|
flex-grow: 1;
|
|
@@ -329,7 +347,7 @@ onMounted(() => {
|
|
|
329
347
|
}
|
|
330
348
|
|
|
331
349
|
.date-select {
|
|
332
|
-
padding:
|
|
350
|
+
padding: var(--o-gap-4);
|
|
333
351
|
|
|
334
352
|
.o-select {
|
|
335
353
|
width: 100%;
|
|
@@ -340,10 +358,13 @@ onMounted(() => {
|
|
|
340
358
|
font-weight: 500;
|
|
341
359
|
display: flex;
|
|
342
360
|
align-items: center;
|
|
343
|
-
padding:
|
|
361
|
+
padding: var(--o-gap-3) var(--o-gap-6) 0;
|
|
344
362
|
@include text1;
|
|
345
363
|
@include respond('<=pad') {
|
|
346
|
-
padding:
|
|
364
|
+
padding: var(--o-gap-3) var(--o-gap-4) 0;
|
|
365
|
+
}
|
|
366
|
+
@include respond('<=pad_v') {
|
|
367
|
+
display: none;
|
|
347
368
|
}
|
|
348
369
|
|
|
349
370
|
.date-meeting {
|
|
@@ -353,8 +374,9 @@ onMounted(() => {
|
|
|
353
374
|
|
|
354
375
|
.header-left {
|
|
355
376
|
width: 35%;
|
|
356
|
-
padding-bottom:
|
|
377
|
+
padding-bottom: var(--o-gap-3);
|
|
357
378
|
color: var(--o-color-info1);
|
|
379
|
+
@include text1;
|
|
358
380
|
}
|
|
359
381
|
|
|
360
382
|
.o-tab {
|
|
@@ -365,7 +387,7 @@ onMounted(() => {
|
|
|
365
387
|
position: relative;
|
|
366
388
|
|
|
367
389
|
.o-tab-nav {
|
|
368
|
-
padding-bottom:
|
|
390
|
+
padding-bottom: var(--o-gap-3);
|
|
369
391
|
|
|
370
392
|
svg path {
|
|
371
393
|
fill: currentColor;
|
|
@@ -406,8 +428,9 @@ onMounted(() => {
|
|
|
406
428
|
}
|
|
407
429
|
|
|
408
430
|
.list-content {
|
|
431
|
+
min-width: 0;
|
|
409
432
|
flex-grow: 1;
|
|
410
|
-
height:
|
|
433
|
+
height: 360px;
|
|
411
434
|
@include respond('<=pad_v') {
|
|
412
435
|
height: auto;
|
|
413
436
|
}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
isClient,
|
|
4
|
+
OCollapse,
|
|
5
|
+
OCollapseItem,
|
|
6
|
+
ODivider,
|
|
7
|
+
OIcon,
|
|
8
|
+
OButton,
|
|
9
|
+
OTag,
|
|
10
|
+
useMessage,
|
|
11
|
+
} from '@opensig/opendesign';
|
|
3
12
|
import OMeetingDetail from './OMeetingDetail.vue';
|
|
4
13
|
import { computed, nextTick, ref, watch } from 'vue';
|
|
5
14
|
import IconCopy from '~icons/meeting/icon-copy.svg';
|
|
@@ -15,6 +24,7 @@ const { activityTypeMap } = useActivityConfig();
|
|
|
15
24
|
const props = withDefaults(defineProps<{
|
|
16
25
|
list: MeetingItemT[];
|
|
17
26
|
groupType?: MeetingGroupType;
|
|
27
|
+
disableFormat?: boolean;
|
|
18
28
|
}>(), {
|
|
19
29
|
list: () => [],
|
|
20
30
|
});
|
|
@@ -85,15 +95,15 @@ const computedList = computed<any[]>(() => {
|
|
|
85
95
|
let activity_type = activityTypeMap.value.get(v.activity_type)?.label;
|
|
86
96
|
if (v.start && v.end) {
|
|
87
97
|
if (v.end_date === v.start_date) {
|
|
88
|
-
dateRange = `${ formatDate(v.start_date) } ${ v.start }
|
|
98
|
+
dateRange = `${ props.disableFormat ? v.start_date : formatDate(v.start_date) } ${ v.start } - ${ v.end }`;
|
|
89
99
|
} else {
|
|
90
|
-
dateRange = `${ formatDate(v.start_date) } ${ v.start }
|
|
100
|
+
dateRange = `${ props.disableFormat ? v.start_date : formatDate(v.start_date) } ${ v.start } - ${ props.disableFormat ? v.end_date : formatDate(v.end_date) } ${ v.end }`;
|
|
91
101
|
}
|
|
92
102
|
} else {
|
|
93
103
|
if (v.start_date === v.end_date) {
|
|
94
|
-
dateRange = formatDate(v.start_date);
|
|
104
|
+
dateRange = props.disableFormat ? v.start_date : formatDate(v.start_date);
|
|
95
105
|
} else {
|
|
96
|
-
dateRange = `${ formatDate(v.start_date) }
|
|
106
|
+
dateRange = `${ props.disableFormat ? v.start_date : formatDate(v.start_date) } - ${ props.disableFormat ? v.end_date : formatDate(v.end_date) }`;
|
|
97
107
|
}
|
|
98
108
|
}
|
|
99
109
|
|
|
@@ -116,9 +126,9 @@ const computedList = computed<any[]>(() => {
|
|
|
116
126
|
cycle_interval,
|
|
117
127
|
cycle_point,
|
|
118
128
|
} = v;
|
|
119
|
-
dateRange = `${ formatDate(date) } ${ start } - ${ end }`;
|
|
129
|
+
dateRange = `${ props.disableFormat ? date : formatDate(date) } ${ start } - ${ end }`;
|
|
120
130
|
if (is_cycle) {
|
|
121
|
-
dateRange = `${ formatDate(cycle_start_date) } - ${ formatDate(cycle_end_date) }`;
|
|
131
|
+
dateRange = `${ props.disableFormat ? cycle_start_date : formatDate(cycle_start_date) } - ${ props.disableFormat ? cycle_end_date : formatDate(cycle_end_date) }`;
|
|
122
132
|
}
|
|
123
133
|
|
|
124
134
|
let timeRange = `${ start } - ${ end }`;
|
|
@@ -198,8 +208,8 @@ const computedList = computed<any[]>(() => {
|
|
|
198
208
|
<template v-if="item.activity_type">{{ item.activity_type }}</template>
|
|
199
209
|
</div>
|
|
200
210
|
</div>
|
|
201
|
-
<
|
|
202
|
-
|
|
211
|
+
<OButton
|
|
212
|
+
variant="text"
|
|
203
213
|
v-if="item.url"
|
|
204
214
|
:href="item.url"
|
|
205
215
|
target="_blank"
|
|
@@ -211,9 +221,9 @@ const computedList = computed<any[]>(() => {
|
|
|
211
221
|
<IconChevronRight />
|
|
212
222
|
</OIcon>
|
|
213
223
|
</template>
|
|
214
|
-
</
|
|
215
|
-
<
|
|
216
|
-
|
|
224
|
+
</OButton>
|
|
225
|
+
<OButton
|
|
226
|
+
variant="text"
|
|
217
227
|
v-if="item.join_url"
|
|
218
228
|
:href="item.join_url"
|
|
219
229
|
target="_blank"
|
|
@@ -225,9 +235,9 @@ const computedList = computed<any[]>(() => {
|
|
|
225
235
|
<IconChevronRight />
|
|
226
236
|
</OIcon>
|
|
227
237
|
</template>
|
|
228
|
-
</
|
|
229
|
-
<
|
|
230
|
-
|
|
238
|
+
</OButton>
|
|
239
|
+
<OButton
|
|
240
|
+
variant="text"
|
|
231
241
|
v-if="item.content_url"
|
|
232
242
|
:href="item.content_url"
|
|
233
243
|
target="_blank"
|
|
@@ -239,9 +249,9 @@ const computedList = computed<any[]>(() => {
|
|
|
239
249
|
<IconChevronRight />
|
|
240
250
|
</OIcon>
|
|
241
251
|
</template>
|
|
242
|
-
</
|
|
243
|
-
<
|
|
244
|
-
|
|
252
|
+
</OButton>
|
|
253
|
+
<OButton
|
|
254
|
+
variant="text"
|
|
245
255
|
v-if="item.register_url"
|
|
246
256
|
:href="item.register_url"
|
|
247
257
|
target="_blank"
|
|
@@ -253,7 +263,7 @@ const computedList = computed<any[]>(() => {
|
|
|
253
263
|
<IconChevronRight />
|
|
254
264
|
</OIcon>
|
|
255
265
|
</template>
|
|
256
|
-
</
|
|
266
|
+
</OButton>
|
|
257
267
|
</div>
|
|
258
268
|
<OIcon @click.stop="() => copyInfo(index)" class="copy-icon">
|
|
259
269
|
<IconCopy />
|
|
@@ -374,12 +384,13 @@ const computedList = computed<any[]>(() => {
|
|
|
374
384
|
|
|
375
385
|
.o-collapse-item-title {
|
|
376
386
|
flex-grow: 1;
|
|
387
|
+
min-width: 0;
|
|
377
388
|
margin-bottom: 0;
|
|
378
389
|
display: flex;
|
|
379
390
|
align-items: center;
|
|
380
391
|
justify-content: center;
|
|
381
392
|
gap: var(--o-gap-4);
|
|
382
|
-
padding-right: var(--o-gap-
|
|
393
|
+
padding-right: var(--o-gap-5);
|
|
383
394
|
|
|
384
395
|
.meet-title-left {
|
|
385
396
|
flex-grow: 1;
|
|
@@ -457,7 +468,7 @@ const computedList = computed<any[]>(() => {
|
|
|
457
468
|
|
|
458
469
|
.jump-detail-link {
|
|
459
470
|
padding-left: calc(var(--icon-right) + var(--icon-size2));
|
|
460
|
-
margin-top: var(--o-gap-
|
|
471
|
+
margin-top: var(--o-gap-1);
|
|
461
472
|
color: var(--o-color-info2);
|
|
462
473
|
font-weight: 400;
|
|
463
474
|
@include tip1;
|
|
@@ -508,7 +519,7 @@ const computedList = computed<any[]>(() => {
|
|
|
508
519
|
margin-right: var(--icon-right);
|
|
509
520
|
width: var(--icon-size2);
|
|
510
521
|
height: var(--icon-size2);
|
|
511
|
-
font-size: calc(var(--icon-size2) -
|
|
522
|
+
font-size: calc(var(--icon-size2) - 2px);
|
|
512
523
|
|
|
513
524
|
svg path {
|
|
514
525
|
fill: currentColor;
|
|
@@ -518,14 +529,16 @@ const computedList = computed<any[]>(() => {
|
|
|
518
529
|
.text {
|
|
519
530
|
display: block;
|
|
520
531
|
font-weight: 600;
|
|
532
|
+
min-width: 0;
|
|
533
|
+
flex: 1;
|
|
521
534
|
@include text-truncate(1);
|
|
522
535
|
}
|
|
523
536
|
}
|
|
524
537
|
|
|
525
538
|
.meet-info {
|
|
539
|
+
display: flex;
|
|
526
540
|
margin-left: calc(var(--icon-right) + var(--icon-size2));
|
|
527
541
|
margin-top: var(--o-gap-2);
|
|
528
|
-
display: flex;
|
|
529
542
|
flex-wrap: wrap;
|
|
530
543
|
align-items: center;
|
|
531
544
|
color: var(--o-color-info3);
|
|
@@ -333,7 +333,7 @@ watch(
|
|
|
333
333
|
<OTabPane :value="0" :label="t('meeting.audioToText')">
|
|
334
334
|
<OScroller v-if="computedCaptions.length" id="captionsScrollDom" class="captions-scroller" show-type="hover"
|
|
335
335
|
size="small" disabled-x>
|
|
336
|
-
<ORow gap="0
|
|
336
|
+
<ORow gap="0 8px" wrap="wrap">
|
|
337
337
|
<OCol flex="0 0 100%" v-for="(item, i) in computedCaptions" :key="i">
|
|
338
338
|
<div class="captions-item" :class="{ 'captions-item-active': currentIndex === i + 1 }"
|
|
339
339
|
@click="videoPosition(item.start_time)">
|
|
@@ -80,12 +80,14 @@ const changeMonth = (step: number) => {
|
|
|
80
80
|
.o-sig-meeting-aside {
|
|
81
81
|
width: 35%;
|
|
82
82
|
flex-shrink: 0;
|
|
83
|
-
padding: var(--o-gap-4)
|
|
83
|
+
padding: var(--o-gap-4);
|
|
84
84
|
display: flex;
|
|
85
85
|
flex-direction: column;
|
|
86
86
|
border-right: 1px solid var(--o-color-control4);
|
|
87
87
|
@include respond('<=pad') {
|
|
88
88
|
padding: var(--o-gap-4);
|
|
89
|
+
}
|
|
90
|
+
@include respond('<=pad_v') {
|
|
89
91
|
border-right: none;
|
|
90
92
|
}
|
|
91
93
|
@include respond('phone') {
|
|
@@ -104,7 +106,8 @@ const changeMonth = (step: number) => {
|
|
|
104
106
|
.month {
|
|
105
107
|
color: var(--o-color-info3);
|
|
106
108
|
margin-bottom: var(--o-gap-2);
|
|
107
|
-
|
|
109
|
+
font-weight: bold;
|
|
110
|
+
@include text1;
|
|
108
111
|
}
|
|
109
112
|
|
|
110
113
|
.days {
|
|
@@ -124,9 +127,11 @@ const changeMonth = (step: number) => {
|
|
|
124
127
|
cursor: pointer;
|
|
125
128
|
border: 1px solid transparent;
|
|
126
129
|
|
|
127
|
-
&:hover
|
|
128
|
-
&.active {
|
|
130
|
+
&:hover {
|
|
129
131
|
background-color: var(--o-color-control3-light);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&.active {
|
|
130
135
|
border-color: var(--o-color-primary1);
|
|
131
136
|
}
|
|
132
137
|
|
|
@@ -144,7 +149,8 @@ const changeMonth = (step: number) => {
|
|
|
144
149
|
.o-icon {
|
|
145
150
|
width: 20px;
|
|
146
151
|
height: 20px;
|
|
147
|
-
font-size:
|
|
152
|
+
font-size: 18px;
|
|
153
|
+
padding: 1px;
|
|
148
154
|
line-height: 1em;
|
|
149
155
|
position: relative;
|
|
150
156
|
border-radius: 50%;
|
|
@@ -164,7 +170,6 @@ const changeMonth = (step: number) => {
|
|
|
164
170
|
}
|
|
165
171
|
|
|
166
172
|
.arrow-wrapper {
|
|
167
|
-
margin-top: auto;
|
|
168
173
|
display: flex;
|
|
169
174
|
align-items: center;
|
|
170
175
|
justify-content: space-between;
|
|
@@ -42,7 +42,6 @@ export type PlatformT = 'welink' | 'tencent' | 'zoom' | 'WELINK' | 'TENCENT' | '
|
|
|
42
42
|
export enum MeetingGroupType {
|
|
43
43
|
SIG = 'sig',
|
|
44
44
|
GROUP = 'group',
|
|
45
|
-
NONE = 'none',
|
|
46
45
|
}
|
|
47
46
|
|
|
48
47
|
export interface MeetingCalendarPropsT {
|
|
@@ -56,12 +55,15 @@ export interface MeetingCalendarPropsT {
|
|
|
56
55
|
hiddenSummit?: boolean;
|
|
57
56
|
groupType: MeetingGroupType;
|
|
58
57
|
groups: string[];
|
|
58
|
+
disableFormat?: boolean; //是否禁用日期格式化
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
// 会议新增、修改
|
|
62
62
|
export interface MeetingPostT {
|
|
63
63
|
id?: number; // 会议id
|
|
64
64
|
topic: string; // 会议主题 128
|
|
65
|
+
name?: string; // 会议主题 128
|
|
66
|
+
title?: string; // 会议主题 128
|
|
65
67
|
sponsor?: string; // 会议发起人 20
|
|
66
68
|
group_name: string; // 所属SIG 64
|
|
67
69
|
platform: PlatformT | string; // 会议平台
|
package/src/i18n/en.ts
CHANGED
|
@@ -115,7 +115,7 @@ export default {
|
|
|
115
115
|
'meeting.meetingDate': 'Date',
|
|
116
116
|
'meeting.startTime': 'Start time',
|
|
117
117
|
'meeting.endTime': 'End time',
|
|
118
|
-
'meeting.meetingRecord': '
|
|
118
|
+
'meeting.meetingRecord': 'Recording',
|
|
119
119
|
'meeting.meetingRecordDesc': 'Enables auto screen recording. This service is provided by {0} Meeting. AI-powered playback will be automatically uploaded within one working day.',
|
|
120
120
|
'meeting.meetingRecordDesc1': '1. Meeting AI recording is now enabled. Turning on Meeting AI Listen automatically activates cloud recording as well. After the meeting, you can replay the recording, and voice-to-text transcripts along with AI meeting minutes will be automatically generated.',
|
|
121
121
|
'meeting.meetingRecordDesc2': '2. The AI-generated meeting replay link will be automatically generated and uploaded within 1 business day.',
|
package/src/i18n/zh.ts
CHANGED
|
@@ -115,7 +115,7 @@ export default {
|
|
|
115
115
|
'meeting.meetingDate': '会议日期',
|
|
116
116
|
'meeting.startTime': '开始时间',
|
|
117
117
|
'meeting.endTime': '结束时间',
|
|
118
|
-
'meeting.meetingRecord': '
|
|
118
|
+
'meeting.meetingRecord': '会议录制',
|
|
119
119
|
'meeting.meetingRecordDesc1': '1、会议AI录制已开启,开启会议AI听即开启云录制,会后可回放会议录制并生成语音文字和AI纪要。',
|
|
120
120
|
'meeting.meetingRecordDesc2': '2、AI生成的会议回放链接将在 1 个工作日内自动生成并上传。',
|
|
121
121
|
'meeting.day0': '天',
|