@opendesign-plus-test/components 0.0.1-rc.50 → 0.0.1-rc.52
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 +1 -1
- 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 +14 -4
- package/dist/components/meeting/types.d.ts +1 -1
- package/dist/components.cjs.js +37 -37
- package/dist/components.css +1 -1
- package/dist/components.es.js +7041 -6980
- package/package.json +2 -2
- package/src/assets/styles/element-plus.scss +16 -9
- package/src/components/activity/OActivityForm.vue +7 -3
- package/src/components/activity/OActivityMyCalendar.vue +16 -7
- package/src/components/meeting/OMeetingCalendar.vue +11 -6
- package/src/components/meeting/OMeetingForm.vue +49 -7
- package/src/components/meeting/OMeetingMyCalendar.vue +14 -8
- package/src/components/meeting/OMeetingPlayback.vue +10 -4
- package/src/components/meeting/OMeetingSigCalendar.vue +1 -1
- package/src/components/meeting/components/OMeetingCalendarList.vue +53 -21
- package/src/components/meeting/components/OMeetingCalendarSelector.vue +11 -8
- package/src/components/meeting/components/OMeetingDetail.vue +1 -1
- package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +7 -4
- package/src/components/meeting/composables/useMeetingConfig.ts +5 -5
- package/src/components/meeting/types.ts +1 -1
- package/src/i18n/zh.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendesign-plus-test/components",
|
|
3
|
-
"version": "0.0.1-rc.
|
|
3
|
+
"version": "0.0.1-rc.52",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@opensig/opendesign": "1.2.3",
|
|
29
|
+
"@opensig/opendesign": "1.2.3-sp1",
|
|
30
30
|
"@vueuse/core": "10.11.1",
|
|
31
31
|
"aos": "^2.3.4",
|
|
32
32
|
"dayjs": "^1.11.13",
|
|
@@ -175,21 +175,28 @@
|
|
|
175
175
|
background: var(--o-color-fill2);
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
.el-calendar
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
178
|
+
.el-calendar {
|
|
179
|
+
.el-calendar-table {
|
|
180
|
+
width: 100%;
|
|
181
|
+
|
|
182
|
+
th {
|
|
183
|
+
color: var(--o-color-info3);
|
|
184
|
+
font-weight: 400;
|
|
185
|
+
padding: 4px 0 16px 0;
|
|
186
|
+
text-align: center;
|
|
187
|
+
}
|
|
183
188
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
189
|
+
td {
|
|
190
|
+
&.prev, &.next {
|
|
191
|
+
.date-calender {
|
|
192
|
+
color: var(--o-color-info4);
|
|
193
|
+
}
|
|
188
194
|
}
|
|
189
195
|
}
|
|
190
196
|
}
|
|
191
197
|
}
|
|
192
198
|
|
|
199
|
+
|
|
193
200
|
.el-select {
|
|
194
201
|
|
|
195
202
|
.el-select__placeholder {
|
|
@@ -297,13 +297,17 @@ const confirm = async (val: boolean) => {
|
|
|
297
297
|
}
|
|
298
298
|
loading.value = true;
|
|
299
299
|
form.value.is_publish = `${ val }`;
|
|
300
|
+
let flag = undefined;
|
|
300
301
|
if (isEdit.value && props.data?.status === 3) {
|
|
301
302
|
form.value.update_activity_id = props.data?.id;
|
|
302
|
-
await props.creatActivity?.(form.value);
|
|
303
|
+
flag = await props.creatActivity?.(form.value);
|
|
303
304
|
} else if (isEdit.value) {
|
|
304
|
-
await props.editActivity?.(props.data?.id, form.value);
|
|
305
|
+
flag = await props.editActivity?.(props.data?.id, form.value);
|
|
305
306
|
} else {
|
|
306
|
-
await props.creatActivity?.(form.value);
|
|
307
|
+
flag = await props.creatActivity?.(form.value);
|
|
308
|
+
}
|
|
309
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
310
|
+
return;
|
|
307
311
|
}
|
|
308
312
|
message.success({
|
|
309
313
|
content: t('meeting.activityActionSuccess', [form.value.title, type.toLowerCase()]),
|
|
@@ -329,7 +329,10 @@ const confirm = () => {
|
|
|
329
329
|
}
|
|
330
330
|
dialogLoading.value = true;
|
|
331
331
|
props.revokeActivityRequest(currentRow.value?.id)
|
|
332
|
-
.then(() => {
|
|
332
|
+
.then((flag: any) => {
|
|
333
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
333
336
|
message.success({
|
|
334
337
|
content: t('meeting.revokeActivitySuccess', [currentRow.value?.title]),
|
|
335
338
|
});
|
|
@@ -384,7 +387,10 @@ const handleSubmitReviewItem = (val: ActivityItemT) => {
|
|
|
384
387
|
is_publish: 'true',
|
|
385
388
|
} as ParamsItemT;
|
|
386
389
|
props.editActivityRequest(val.id, params)
|
|
387
|
-
.then(() => {
|
|
390
|
+
.then((flag: any) => {
|
|
391
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
392
|
+
return;
|
|
393
|
+
}
|
|
388
394
|
message.success({
|
|
389
395
|
content: t('meeting.submitReviewSuccess', [val.title]),
|
|
390
396
|
});
|
|
@@ -404,7 +410,10 @@ const confirmDelete = () => {
|
|
|
404
410
|
}
|
|
405
411
|
dialogLoading.value = true;
|
|
406
412
|
props.deleteActivityRequest(currentRow.value?.id)
|
|
407
|
-
.then(() => {
|
|
413
|
+
.then((flag) => {
|
|
414
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
408
417
|
message.success({
|
|
409
418
|
content: t('meeting.deleteActivitySuccess', [currentRow.value?.title]),
|
|
410
419
|
});
|
|
@@ -939,14 +948,13 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
939
948
|
|
|
940
949
|
.date-cell {
|
|
941
950
|
height: 56px;
|
|
942
|
-
width:
|
|
943
|
-
padding: var(--o-gap-1);
|
|
951
|
+
width: 34px;
|
|
944
952
|
position: relative;
|
|
945
953
|
cursor: default !important;
|
|
946
954
|
|
|
947
955
|
.date-cell-text {
|
|
948
956
|
font-size: 14px;
|
|
949
|
-
line-height:
|
|
957
|
+
line-height: 34px;
|
|
950
958
|
border-radius: var(--activity-cell-radius);
|
|
951
959
|
background-color: var(--o-color-control2-light);
|
|
952
960
|
border: 1px solid transparent;
|
|
@@ -971,7 +979,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
971
979
|
&::after {
|
|
972
980
|
content: '';
|
|
973
981
|
position: absolute;
|
|
974
|
-
bottom:
|
|
982
|
+
bottom: 5px;
|
|
975
983
|
left: 50%;
|
|
976
984
|
transform: translateX(-50%);
|
|
977
985
|
width: 8px;
|
|
@@ -1034,6 +1042,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
|
|
|
1034
1042
|
display: flex;
|
|
1035
1043
|
align-items: center;
|
|
1036
1044
|
justify-content: center;
|
|
1045
|
+
min-height: 600px;
|
|
1037
1046
|
}
|
|
1038
1047
|
|
|
1039
1048
|
.o-scroller {
|
|
@@ -286,6 +286,10 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
|
|
|
286
286
|
}
|
|
287
287
|
return false;
|
|
288
288
|
};
|
|
289
|
+
|
|
290
|
+
defineExpose({
|
|
291
|
+
refresh: getDateData,
|
|
292
|
+
});
|
|
289
293
|
</script>
|
|
290
294
|
<template>
|
|
291
295
|
<div class="o-meeting-calendar">
|
|
@@ -372,7 +376,7 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
|
|
|
372
376
|
>
|
|
373
377
|
<OOption v-for="t in groups" :value="t" :key="t">{{ t }}</OOption>
|
|
374
378
|
</OSelect>
|
|
375
|
-
<OTab v-model="tabType" :line="false">
|
|
379
|
+
<OTab v-model="tabType" :line="false" :max-show="9999">
|
|
376
380
|
<OTabPane v-for="item in tabs" :key="item.value" :value="item.value">
|
|
377
381
|
<template #nav>
|
|
378
382
|
<OIcon>
|
|
@@ -822,6 +826,7 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
|
|
|
822
826
|
|
|
823
827
|
.o-select {
|
|
824
828
|
display: none;
|
|
829
|
+
margin-bottom: var(--o-gap-2);
|
|
825
830
|
@include respond('<=pad_v') {
|
|
826
831
|
display: inline-flex;
|
|
827
832
|
}
|
|
@@ -829,6 +834,7 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
|
|
|
829
834
|
display: flex;
|
|
830
835
|
width: 100%;
|
|
831
836
|
max-width: 100%;
|
|
837
|
+
margin-bottom: 0;
|
|
832
838
|
}
|
|
833
839
|
}
|
|
834
840
|
|
|
@@ -857,17 +863,16 @@ const checkSelectedDay = (type: CalendarDataType, date: string) => {
|
|
|
857
863
|
.o-icon {
|
|
858
864
|
display: none;
|
|
859
865
|
}
|
|
860
|
-
.o-tab-navs-
|
|
861
|
-
height: 40px;
|
|
866
|
+
.o-tab-navs-container {
|
|
862
867
|
|
|
863
868
|
.o-tab-nav {
|
|
864
|
-
line-height:
|
|
869
|
+
line-height: 32px;
|
|
865
870
|
}
|
|
866
871
|
}
|
|
867
872
|
}
|
|
868
873
|
@include respond('phone') {
|
|
869
|
-
.o-tab-
|
|
870
|
-
height:
|
|
874
|
+
.o-tab-nav {
|
|
875
|
+
line-height: 2;
|
|
871
876
|
}
|
|
872
877
|
}
|
|
873
878
|
|
|
@@ -45,7 +45,7 @@ const intervalTypeMax = computed(() => {
|
|
|
45
45
|
return findLabelFromOptions(form.value.cycle_type, cycleTypeOptions.value, 'max');
|
|
46
46
|
});
|
|
47
47
|
const initForm: MeetingPostT = {
|
|
48
|
-
is_record:
|
|
48
|
+
is_record: true,
|
|
49
49
|
agenda: '',
|
|
50
50
|
email_list: '',
|
|
51
51
|
platform: 'WELINK',
|
|
@@ -265,15 +265,51 @@ const getPlatformOptions = async () => {
|
|
|
265
265
|
};
|
|
266
266
|
|
|
267
267
|
const emits = defineEmits(['confirm', 'cancel']);
|
|
268
|
+
|
|
269
|
+
const getPropData = () => {
|
|
270
|
+
if (!props.data) {
|
|
271
|
+
return {};
|
|
272
|
+
}
|
|
273
|
+
const {
|
|
274
|
+
start,
|
|
275
|
+
end,
|
|
276
|
+
is_cycle,
|
|
277
|
+
cycle_start_date,
|
|
278
|
+
cycle_end_date,
|
|
279
|
+
cycle_point,
|
|
280
|
+
cycle_interval,
|
|
281
|
+
cycle_start,
|
|
282
|
+
cycle_end,
|
|
283
|
+
} = props.data;
|
|
284
|
+
return {
|
|
285
|
+
...props.data,
|
|
286
|
+
time: `${ start }-${ end }`,
|
|
287
|
+
...(is_cycle
|
|
288
|
+
? {
|
|
289
|
+
date_range: [cycle_start_date, cycle_end_date],
|
|
290
|
+
cycle_point: cycle_point?.map((v) => parseInt(v)) || [],
|
|
291
|
+
cycle_interval: cycle_interval || 1,
|
|
292
|
+
time: `${ cycle_start }-${ cycle_end }`,
|
|
293
|
+
start: cycle_start,
|
|
294
|
+
end: cycle_end,
|
|
295
|
+
}
|
|
296
|
+
: {}),
|
|
297
|
+
};
|
|
298
|
+
};
|
|
299
|
+
|
|
268
300
|
watch(
|
|
269
301
|
() => props.data,
|
|
270
302
|
(data) => {
|
|
271
303
|
if (data) {
|
|
272
|
-
const
|
|
304
|
+
const propData = getPropData() as unknown as CycleSubItemT;
|
|
305
|
+
console.log(1, propData);
|
|
306
|
+
console.log(props.subId, propData.sub_id);
|
|
307
|
+
const sub = propData?.cycle_sub?.find((v) => v.sub_id === props.subId || propData.sub_id) || {} as unknown as CycleSubItemT;
|
|
308
|
+
console.log(2, sub);
|
|
273
309
|
const { mid, date, start, end, sub_id } = sub;
|
|
274
310
|
Object.assign(
|
|
275
311
|
form.value,
|
|
276
|
-
|
|
312
|
+
propData,
|
|
277
313
|
props.isSub
|
|
278
314
|
? {
|
|
279
315
|
is_cycle: false,
|
|
@@ -285,6 +321,7 @@ watch(
|
|
|
285
321
|
}
|
|
286
322
|
: {},
|
|
287
323
|
);
|
|
324
|
+
console.log(form.value);
|
|
288
325
|
} else {
|
|
289
326
|
const today = dayjs().format('YYYY-MM-DD');
|
|
290
327
|
const now = dayjs().format('HH:mm');
|
|
@@ -373,6 +410,7 @@ const confirm = async () => {
|
|
|
373
410
|
platform,
|
|
374
411
|
is_cycle,
|
|
375
412
|
} as MeetingPostT as unknown as any;
|
|
413
|
+
let flag = undefined;
|
|
376
414
|
if (is_cycle) {
|
|
377
415
|
params = {
|
|
378
416
|
...params,
|
|
@@ -401,7 +439,7 @@ const confirm = async () => {
|
|
|
401
439
|
if (props.isSub) {
|
|
402
440
|
const { mid, sub_id } = form.value;
|
|
403
441
|
const { date, start, end } = params;
|
|
404
|
-
await props?.editSubMeetingRequest(sub_id, {
|
|
442
|
+
flag = await props?.editSubMeetingRequest(sub_id, {
|
|
405
443
|
mid,
|
|
406
444
|
date,
|
|
407
445
|
start,
|
|
@@ -416,17 +454,21 @@ const confirm = async () => {
|
|
|
416
454
|
etherpad: _etherpad,
|
|
417
455
|
...data
|
|
418
456
|
} = params;
|
|
419
|
-
await props?.editMeetingRequest(props.data?.id as unknown as number, {
|
|
457
|
+
flag = await props?.editMeetingRequest(props.data?.id as unknown as number, {
|
|
420
458
|
...data,
|
|
421
459
|
is_notify: true,
|
|
422
460
|
});
|
|
423
461
|
}
|
|
424
462
|
} else {
|
|
425
|
-
await props?.createMeetingRequest({
|
|
463
|
+
flag = await props?.createMeetingRequest({
|
|
426
464
|
...params,
|
|
427
465
|
email_list: form.value.email_list.replaceAll(' ', ''),
|
|
428
466
|
});
|
|
429
467
|
}
|
|
468
|
+
// 如果返回的是boolean,只有true表示回调成功
|
|
469
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
430
472
|
const msg = t('meeting.meetingHandleSuccess', [form.value.topic, type]);
|
|
431
473
|
message.success({
|
|
432
474
|
content: msg,
|
|
@@ -695,7 +737,7 @@ defineExpose({
|
|
|
695
737
|
</OForm>
|
|
696
738
|
<div class="form-btns" v-if="showBtns">
|
|
697
739
|
<OButton color="primary" variant="solid" size="large" @click="confirm" :loading="loading">
|
|
698
|
-
{{ isEdit ? t('common.save') : (
|
|
740
|
+
{{ isEdit ? t('common.save') : (confirmText || t('meeting.book')) }}
|
|
699
741
|
</OButton>
|
|
700
742
|
<OButton color="primary" variant="outline" size="large" @click="cancel">{{ t('common.cancel') }}</OButton>
|
|
701
743
|
</div>
|
|
@@ -22,7 +22,6 @@ import { computed, nextTick, onMounted, ref, onUnmounted, watch } from 'vue';
|
|
|
22
22
|
import OMeetingDetail from './components/OMeetingDetail.vue';
|
|
23
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';
|
|
@@ -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,12 +333,13 @@ 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);
|
|
342
|
+
flag = await props.cancelSubMeetingRequest(row.sub_id);
|
|
340
343
|
message.success({
|
|
341
344
|
content: `${ t('meeting.meetingCancel', [row.topic]) }`,
|
|
342
345
|
});
|
|
@@ -344,11 +347,14 @@ const confirmHandleItem = async () => {
|
|
|
344
347
|
if (!props.deleteMeetingRequest) {
|
|
345
348
|
return;
|
|
346
349
|
}
|
|
347
|
-
await props.deleteMeetingRequest(row.id);
|
|
350
|
+
flag = await props.deleteMeetingRequest(row.id);
|
|
348
351
|
message.success({
|
|
349
352
|
content: `${ t('meeting.meetingCancel', [row.topic]) }`,
|
|
350
353
|
});
|
|
351
354
|
}
|
|
355
|
+
if (typeof flag === 'boolean' && !flag) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
352
358
|
cancelHandleItem();
|
|
353
359
|
reloadAll.value = true;
|
|
354
360
|
getList();
|
|
@@ -968,14 +974,13 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
968
974
|
|
|
969
975
|
.date-cell {
|
|
970
976
|
height: 56px;
|
|
971
|
-
width:
|
|
972
|
-
padding: var(--o-gap-1);
|
|
977
|
+
width: 34px;
|
|
973
978
|
position: relative;
|
|
974
979
|
cursor: default !important;
|
|
975
980
|
|
|
976
981
|
.date-cell-text {
|
|
977
982
|
font-size: 14px;
|
|
978
|
-
line-height:
|
|
983
|
+
line-height: 34px;
|
|
979
984
|
border-radius: var(--meeting-cell-radius);
|
|
980
985
|
background-color: var(--o-color-control2-light);
|
|
981
986
|
border: 1px solid transparent;
|
|
@@ -1000,7 +1005,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1000
1005
|
&::after {
|
|
1001
1006
|
content: '';
|
|
1002
1007
|
position: absolute;
|
|
1003
|
-
bottom:
|
|
1008
|
+
bottom: 5px;
|
|
1004
1009
|
left: 50%;
|
|
1005
1010
|
transform: translateX(-50%);
|
|
1006
1011
|
width: 8px;
|
|
@@ -1057,6 +1062,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
|
|
|
1057
1062
|
display: flex;
|
|
1058
1063
|
align-items: center;
|
|
1059
1064
|
justify-content: center;
|
|
1065
|
+
min-height: 600px;
|
|
1060
1066
|
}
|
|
1061
1067
|
|
|
1062
1068
|
|
|
@@ -200,7 +200,7 @@ 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">
|
|
@@ -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>
|
|
@@ -319,8 +324,9 @@ onUnmounted(() => {
|
|
|
319
324
|
|
|
320
325
|
.o-tab {
|
|
321
326
|
--tab-nav-justify: flex-start;
|
|
322
|
-
|
|
323
|
-
|
|
327
|
+
|
|
328
|
+
.o-tab-nav-list {
|
|
329
|
+
width: 100%;
|
|
324
330
|
}
|
|
325
331
|
|
|
326
332
|
.o-tab-nav {
|
|
@@ -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>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { OCollapse, OCollapseItem, ODivider, OIcon, OLink, OTag, useMessage } from '@opensig/opendesign';
|
|
2
|
+
import { isClient, OCollapse, OCollapseItem, ODivider, OIcon, OLink, OTag, useMessage } from '@opensig/opendesign';
|
|
3
3
|
import OMeetingDetail from './OMeetingDetail.vue';
|
|
4
4
|
import { computed, nextTick, ref, watch } from 'vue';
|
|
5
5
|
import IconCopy from '~icons/meeting/icon-copy.svg';
|
|
@@ -44,29 +44,32 @@ const i18n = computed(() => {
|
|
|
44
44
|
|
|
45
45
|
// -------------------- 监听尺寸变化 --------------------
|
|
46
46
|
const meetInfoRef = ref<HTMLDivElement[]>();
|
|
47
|
-
|
|
48
|
-
for (let entry of entries) {
|
|
49
|
-
const { height } = entry.contentRect;
|
|
50
|
-
entry.target.classList.remove('hidden-divider');
|
|
51
|
-
if (height >= 30) {
|
|
52
|
-
entry.target.classList.add('hidden-divider');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
});
|
|
47
|
+
|
|
56
48
|
|
|
57
49
|
watch(
|
|
58
|
-
() => props.list,
|
|
50
|
+
[() => props.list, () => isClient],
|
|
59
51
|
() => {
|
|
60
52
|
if (props.list.length === 1) {
|
|
61
53
|
collapseNames.value = [props.list[0].id];
|
|
62
54
|
} else {
|
|
63
55
|
collapseNames.value = [];
|
|
64
56
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
resizeObserver
|
|
57
|
+
if (isClient) {
|
|
58
|
+
nextTick(() => {
|
|
59
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
60
|
+
for (let entry of entries) {
|
|
61
|
+
const { height } = entry.contentRect;
|
|
62
|
+
entry.target.classList.remove('hidden-divider');
|
|
63
|
+
if (height >= 30) {
|
|
64
|
+
entry.target.classList.add('hidden-divider');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
meetInfoRef.value?.forEach((targetDiv) => {
|
|
69
|
+
resizeObserver!.observe(targetDiv);
|
|
70
|
+
});
|
|
68
71
|
});
|
|
69
|
-
}
|
|
72
|
+
}
|
|
70
73
|
},
|
|
71
74
|
);
|
|
72
75
|
|
|
@@ -187,7 +190,13 @@ const computedList = computed<any[]>(() => {
|
|
|
187
190
|
<template v-if="item.activity_type">{{ item.activity_type }}</template>
|
|
188
191
|
</div>
|
|
189
192
|
</div>
|
|
190
|
-
<OLink
|
|
193
|
+
<OLink
|
|
194
|
+
:hover-underline="false"
|
|
195
|
+
v-if="item.url"
|
|
196
|
+
:href="item.url"
|
|
197
|
+
target="_blank"
|
|
198
|
+
class="jump-detail-link"
|
|
199
|
+
>
|
|
191
200
|
<span>{{ i18n.LEARN_MORE }}</span>
|
|
192
201
|
<template #suffix>
|
|
193
202
|
<OIcon>
|
|
@@ -195,7 +204,13 @@ const computedList = computed<any[]>(() => {
|
|
|
195
204
|
</OIcon>
|
|
196
205
|
</template>
|
|
197
206
|
</OLink>
|
|
198
|
-
<OLink
|
|
207
|
+
<OLink
|
|
208
|
+
:hover-underline="false"
|
|
209
|
+
v-if="item.join_url"
|
|
210
|
+
:href="item.join_url"
|
|
211
|
+
target="_blank"
|
|
212
|
+
class="jump-detail-link"
|
|
213
|
+
>
|
|
199
214
|
<span>{{ i18n.JOIN_MEETING }}</span>
|
|
200
215
|
<template #suffix>
|
|
201
216
|
<OIcon>
|
|
@@ -203,7 +218,13 @@ const computedList = computed<any[]>(() => {
|
|
|
203
218
|
</OIcon>
|
|
204
219
|
</template>
|
|
205
220
|
</OLink>
|
|
206
|
-
<OLink
|
|
221
|
+
<OLink
|
|
222
|
+
:hover-underline="false"
|
|
223
|
+
v-if="item.content_url"
|
|
224
|
+
:href="item.content_url"
|
|
225
|
+
target="_blank"
|
|
226
|
+
class="jump-detail-link"
|
|
227
|
+
>
|
|
207
228
|
<span>{{ i18n.DETAILS }}</span>
|
|
208
229
|
<template #suffix>
|
|
209
230
|
<OIcon>
|
|
@@ -211,7 +232,13 @@ const computedList = computed<any[]>(() => {
|
|
|
211
232
|
</OIcon>
|
|
212
233
|
</template>
|
|
213
234
|
</OLink>
|
|
214
|
-
<OLink
|
|
235
|
+
<OLink
|
|
236
|
+
:hover-underline="false"
|
|
237
|
+
v-if="item.register_url"
|
|
238
|
+
:href="item.register_url"
|
|
239
|
+
target="_blank"
|
|
240
|
+
class="jump-detail-link"
|
|
241
|
+
>
|
|
215
242
|
<span>{{ i18n.SIGN }}</span>
|
|
216
243
|
<template #suffix>
|
|
217
244
|
<OIcon>
|
|
@@ -226,7 +253,8 @@ const computedList = computed<any[]>(() => {
|
|
|
226
253
|
</template>
|
|
227
254
|
<div class="calendar-info">
|
|
228
255
|
<OMeetingDetail
|
|
229
|
-
:show="collapseNames.includes(item.id)"
|
|
256
|
+
:show="collapseNames.includes(item.id)"
|
|
257
|
+
:data="item"
|
|
230
258
|
:ref="(insRef) => (detailRefs[index] = insRef)"
|
|
231
259
|
from="home"
|
|
232
260
|
/>
|
|
@@ -241,6 +269,7 @@ const computedList = computed<any[]>(() => {
|
|
|
241
269
|
|
|
242
270
|
|
|
243
271
|
&.is-empty {
|
|
272
|
+
min-height: 400px;
|
|
244
273
|
height: 100%;
|
|
245
274
|
display: flex;
|
|
246
275
|
align-items: center;
|
|
@@ -264,6 +293,7 @@ const computedList = computed<any[]>(() => {
|
|
|
264
293
|
.o-collapse-item {
|
|
265
294
|
position: relative;
|
|
266
295
|
border-top: none;
|
|
296
|
+
border-bottom: none;
|
|
267
297
|
|
|
268
298
|
&::after {
|
|
269
299
|
position: absolute;
|
|
@@ -353,6 +383,7 @@ const computedList = computed<any[]>(() => {
|
|
|
353
383
|
display: inline-flex;
|
|
354
384
|
opacity: 0;
|
|
355
385
|
visibility: hidden;
|
|
386
|
+
color: var(--o-color-info1);
|
|
356
387
|
|
|
357
388
|
&:hover {
|
|
358
389
|
color: var(--o-color-primary1);
|
|
@@ -420,6 +451,7 @@ const computedList = computed<any[]>(() => {
|
|
|
420
451
|
padding-left: calc(var(--icon-right) + var(--icon-size2));
|
|
421
452
|
margin-top: var(--o-gap-2);
|
|
422
453
|
color: var(--o-color-info2);
|
|
454
|
+
font-weight: 400;
|
|
423
455
|
@include tip1;
|
|
424
456
|
|
|
425
457
|
&:hover {
|
|
@@ -442,7 +474,7 @@ const computedList = computed<any[]>(() => {
|
|
|
442
474
|
.meet-title {
|
|
443
475
|
display: flex;
|
|
444
476
|
align-items: center;
|
|
445
|
-
width:
|
|
477
|
+
width: 100%;
|
|
446
478
|
color: var(--o-color-info2);
|
|
447
479
|
@include text2;
|
|
448
480
|
|
|
@@ -79,10 +79,10 @@ const removeTag = (val: number) => {
|
|
|
79
79
|
</script>
|
|
80
80
|
|
|
81
81
|
<template>
|
|
82
|
-
<div class="calendar-selector" :class="!multiple && 'is-single'">
|
|
82
|
+
<div class="o-meeting-calendar-selector" :class="!multiple && 'is-single'">
|
|
83
83
|
<ElSelect
|
|
84
84
|
ref="selectorRef"
|
|
85
|
-
popper-class="calendar-selector-popper"
|
|
85
|
+
popper-class="o-meeting-calendar-selector-popper"
|
|
86
86
|
:placeholder="t('meeting.selectRepeatDate')"
|
|
87
87
|
size="large"
|
|
88
88
|
multiple
|
|
@@ -106,11 +106,11 @@ const removeTag = (val: number) => {
|
|
|
106
106
|
</div>
|
|
107
107
|
</template>
|
|
108
108
|
|
|
109
|
-
<style
|
|
110
|
-
.calendar-selector {
|
|
109
|
+
<style lang="scss">
|
|
110
|
+
.o-meeting-calendar-selector {
|
|
111
111
|
width: 100%;
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
.el-select {
|
|
114
114
|
.el-select__placeholder {
|
|
115
115
|
@include text1;
|
|
116
116
|
}
|
|
@@ -134,7 +134,7 @@ const removeTag = (val: number) => {
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
&.is-single {
|
|
137
|
-
|
|
137
|
+
.el-select {
|
|
138
138
|
.el-select__selection {
|
|
139
139
|
margin-left: 0;
|
|
140
140
|
}
|
|
@@ -154,8 +154,11 @@ const removeTag = (val: number) => {
|
|
|
154
154
|
}
|
|
155
155
|
</style>
|
|
156
156
|
<style lang="scss">
|
|
157
|
-
.calendar-selector-popper {
|
|
158
|
-
|
|
157
|
+
.o-meeting-calendar-selector-popper {
|
|
158
|
+
--meeting-card-radius: var(--o-radius-xs);
|
|
159
|
+
--meeting-input-radius: var(--o-radius-xs);
|
|
160
|
+
--meeting-cell-radius: var(--o-radius-xs);
|
|
161
|
+
padding: 0 var(--o-gap-5);
|
|
159
162
|
|
|
160
163
|
.el-select-dropdown__list {
|
|
161
164
|
padding: 16px 0;
|