@opendesign-plus-test/components 0.0.1-rc.62 → 0.0.1-rc.64

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.
Files changed (62) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +2 -2
  3. package/dist/components/activity/OActivityMyCalendar.vue.d.ts +6 -2
  4. package/dist/components/activity/index.d.ts +3 -1
  5. package/dist/components/events/types.d.ts +4 -0
  6. package/dist/components/header/index.d.ts +1 -804
  7. package/dist/components/{header → header-language-switcher}/OHeaderLanguageSwitcher.vue.d.ts +1 -1
  8. package/dist/components/header-language-switcher/index.d.ts +90 -0
  9. package/dist/components/{header → header-search}/OHeaderSearch.vue.d.ts +24 -4
  10. package/dist/components/header-search/index.d.ts +607 -0
  11. package/dist/components/header-source-code/index.d.ts +23 -0
  12. package/dist/components/header-theme/index.d.ts +50 -0
  13. package/dist/components/header-user/index.d.ts +53 -0
  14. package/dist/components/meeting/OMeetingMyCalendar.vue.d.ts +6 -2
  15. package/dist/components/meeting/index.d.ts +3 -1
  16. package/dist/components/meeting/types.d.ts +3 -0
  17. package/dist/components/meeting/utils.d.ts +2 -1
  18. package/dist/components/search/OSearchInput.vue.d.ts +24 -4
  19. package/dist/components/search/index.d.ts +12 -2
  20. package/dist/components/search/internal/SearchImageInput.vue.d.ts +24 -4
  21. package/dist/components.cjs.js +33 -33
  22. package/dist/components.css +1 -1
  23. package/dist/components.es.js +8263 -8095
  24. package/dist/index.d.ts +5 -0
  25. package/package.json +8 -8
  26. package/src/assets/meeting/svg-icons/icon-all.svg +2 -1
  27. package/src/assets/meeting/svg-icons/icon-event.svg +2 -1
  28. package/src/assets/meeting/svg-icons/icon-meet.svg +2 -1
  29. package/src/assets/meeting/svg-icons/icon-summit.svg +2 -1
  30. package/src/assets/styles/element-plus.scss +2 -0
  31. package/src/components/activity/OActivityMyCalendar.vue +18 -11
  32. package/src/components/events/OEventsApply.vue +0 -2
  33. package/src/components/events/OEventsList.vue +66 -39
  34. package/src/components/events/types.ts +1 -0
  35. package/src/components/header/index.ts +1 -36
  36. package/src/components/header-language-switcher/index.ts +10 -0
  37. package/src/components/header-search/index.ts +10 -0
  38. package/src/components/header-source-code/index.ts +10 -0
  39. package/src/components/header-theme/index.ts +10 -0
  40. package/src/components/header-user/index.ts +10 -0
  41. package/src/components/meeting/OMeetingCalendar.vue +22 -14
  42. package/src/components/meeting/OMeetingForm.vue +17 -21
  43. package/src/components/meeting/OMeetingMyCalendar.vue +25 -29
  44. package/src/components/meeting/OMeetingSigCalendar.vue +43 -20
  45. package/src/components/meeting/components/OMeetingCalendarList.vue +31 -19
  46. package/src/components/meeting/components/OMeetingDetail.vue +2 -2
  47. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +1 -1
  48. package/src/components/meeting/components/OMeetingSigAside.vue +11 -6
  49. package/src/components/meeting/types.ts +4 -1
  50. package/src/components/meeting/utils.ts +4 -4
  51. package/src/i18n/en.ts +1 -1
  52. package/src/i18n/zh.ts +1 -1
  53. package/src/index.ts +5 -0
  54. package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +0 -664
  55. /package/dist/components/{header → header-source-code}/OHeaderSourceCode.vue.d.ts +0 -0
  56. /package/dist/components/{header → header-theme}/OHeaderTheme.vue.d.ts +0 -0
  57. /package/dist/components/{header → header-user}/OHeaderUser.vue.d.ts +0 -0
  58. /package/src/components/{header → header-language-switcher}/OHeaderLanguageSwitcher.vue +0 -0
  59. /package/src/components/{header → header-search}/OHeaderSearch.vue +0 -0
  60. /package/src/components/{header → header-source-code}/OHeaderSourceCode.vue +0 -0
  61. /package/src/components/{header → header-theme}/OHeaderTheme.vue +0 -0
  62. /package/src/components/{header → header-user}/OHeaderUser.vue +0 -0
@@ -514,7 +514,7 @@ defineExpose({
514
514
  <template>
515
515
  <div class="o-meeting-form">
516
516
  <OForm :model="form" ref="formRef" has-required :layout="lePadV ? 'v' : 'h'" class="form-wrapper">
517
- <OFormItem :rules="rules.topic" :label="t('meeting.meetingName')" field="topic">
517
+ <OFormItem :rules="rules.topic" :label="labelMap?.topic ?? t('meeting.meetingName')" field="topic">
518
518
  <OInput
519
519
  :disabled="isSub"
520
520
  size="large"
@@ -524,7 +524,7 @@ defineExpose({
524
524
  </OFormItem>
525
525
  <OFormItem
526
526
  :rules="rules.group_name"
527
- :label="groupType === MeetingGroupType.GROUP ? t('meeting.meetingGroup'):t('meeting.meetingSig')"
527
+ :label="labelMap?.group_name ?? (groupType === MeetingGroupType.GROUP ? t('meeting.meetingGroup') : t('meeting.meetingSig'))"
528
528
  field="group_name">
529
529
  <OSelect
530
530
  :disabled="isEdit"
@@ -539,7 +539,8 @@ defineExpose({
539
539
  </OFormItem>
540
540
  <OFormItem :rules="rules.etherpad" label="Etherpad" field="etherpad" v-if="form.group_name">
541
541
  <template #label>
542
- <div class="label-wrapper">
542
+ <template v-if="labelMap?.etherpad">{{ labelMap.etherpad }}</template>
543
+ <div v-else class="label-wrapper">
543
544
  <span>{{ t('meeting.etherpad') }}&nbsp;</span>
544
545
  <OPopover>
545
546
  <div class="o-meeting-form-popover-content etherpad">{{ t('meeting.etherpadDesc') }}</div>
@@ -560,9 +561,9 @@ defineExpose({
560
561
  />
561
562
  </OFormItem>
562
563
 
563
- <OFormItem :label="t('meeting.meetingTime')" field="time" :rules="rules.time" class="repeat-row" required>
564
+ <OFormItem :label="labelMap?.time ?? t('meeting.meetingTime')" field="time" :rules="rules.time" class="repeat-row" required>
564
565
  <div class="repeat-config-wrapper">
565
- <OFormItem field="repeat" class="repeat-item" v-if="!isSub">
566
+ <OFormItem field="repeat" class="repeat-radio-item" v-if="!isSub">
566
567
  <ORadioGroup v-model="form.is_cycle" @change="changeIsCycle" :disabled="isEdit">
567
568
  <ORadio :value="false">{{ t('meeting.nonRepeat') }}</ORadio>
568
569
  <ORadio :value="true">{{ t('meeting.isRepeat') }}</ORadio>
@@ -589,7 +590,7 @@ defineExpose({
589
590
  </div>
590
591
  </OFormItem>
591
592
  <OFormItem
592
- :label="t('meeting.in')"
593
+ :label="labelMap?.cycle_point ?? t('meeting.in')"
593
594
  field="cycle_point"
594
595
  class="point-item"
595
596
  v-if="form.cycle_type !== INTERVAL_DAY"
@@ -606,7 +607,7 @@ defineExpose({
606
607
  </OSelect>
607
608
  <OMeetingCalendarSelector v-if="form.cycle_type === INTERVAL_MONTH" v-model="form.cycle_point" />
608
609
  </OFormItem>
609
- <OFormItem :label="t('meeting.meetingDuration')" field="date_range">
610
+ <OFormItem :label="labelMap?.date_range ?? t('meeting.meetingDuration')" field="date_range">
610
611
  <ElDatePicker
611
612
  size="large"
612
613
  v-model="form.date_range"
@@ -622,7 +623,7 @@ defineExpose({
622
623
  </OFormItem>
623
624
  </template>
624
625
  <template v-else>
625
- <OFormItem :label="t('meeting.meetingDate')" field="date">
626
+ <OFormItem :label="labelMap?.date ?? t('meeting.meetingDate')" field="date">
626
627
  <ElDatePicker
627
628
  popper-class="o-meeting-form-date-picker-popper"
628
629
  size="large"
@@ -671,14 +672,14 @@ defineExpose({
671
672
  </div>
672
673
  </div>
673
674
  </OFormItem>
674
- <OFormItem :label="t('meeting.meetingPlatform')" field="platform" :rules="rules.platform" class="platform-item">
675
+ <OFormItem :label="labelMap?.platform ?? t('meeting.meetingPlatform')" field="platform" :rules="rules.platform" class="platform-item">
675
676
  <ORadioGroup v-model="form.platform" v-if="!data" :disabled="form.is_cycle">
676
677
  <ORadio v-for="item in typeOptions" :key="item.value" :value="item.value">{{ getPlatformLabel(item.label) }}
677
678
  </ORadio>
678
679
  </ORadioGroup>
679
680
  <span v-else>{{ getPlatformLabel(form.platform) }}</span>
680
681
  </OFormItem>
681
- <OFormItem field="agenda" :label="t('meeting.meetingAgenda')" :rules="rules.genda">
682
+ <OFormItem field="agenda" :label="labelMap?.agenda ?? t('meeting.meetingAgenda')" :rules="rules.genda">
682
683
  <OTextarea
683
684
  :disabled="isSub"
684
685
  size="large"
@@ -686,7 +687,7 @@ defineExpose({
686
687
  style="width: 100%"
687
688
  :rows="4" v-model="form.agenda" />
688
689
  </OFormItem>
689
- <OFormItem :label="t('meeting.meetingRecord')" field="is_record" class="record-item full-width-item">
690
+ <OFormItem :label="labelMap?.is_record ?? t('meeting.meetingRecord')" field="is_record" class="record-item full-width-item">
690
691
  <template v-if="lePadV">
691
692
  <OSwitch v-model="form.is_record" :disabled="isSub" />
692
693
  </template>
@@ -723,7 +724,8 @@ defineExpose({
723
724
  </template>
724
725
  <OFormItem field="email_list" :rules="rules.email_list">
725
726
  <template #label>
726
- <div class="label-wrapper">
727
+ <template v-if="labelMap?.email_list">{{ labelMap.email_list }}</template>
728
+ <div v-else class="label-wrapper">
727
729
  <span>{{ t('meeting.meetingEmail') }}&nbsp;</span>
728
730
  <OPopover>
729
731
  <div class="o-meeting-form-popover-content">
@@ -773,7 +775,7 @@ defineExpose({
773
775
  }
774
776
 
775
777
  .o-form {
776
- --o-input-color: var(--o-color-info2);
778
+ --o-input-color: var(--o-color-info1);
777
779
  --o-placeholder-color: var(--o-color-info4);
778
780
 
779
781
 
@@ -995,7 +997,8 @@ defineExpose({
995
997
  .repeat-config-wrapper {
996
998
  width: 100%;
997
999
 
998
- .repeat-item {
1000
+ .repeat-radio-item {
1001
+ margin-bottom: var(--o-gap-2);
999
1002
  .o-form-item-label {
1000
1003
  display: none;
1001
1004
  }
@@ -1003,13 +1006,6 @@ defineExpose({
1003
1006
  .o-form-item-main {
1004
1007
  margin-left: 0;
1005
1008
  }
1006
-
1007
- @include respond('pad_v') {
1008
- margin-bottom: var(--o-gap-4);
1009
- }
1010
- @include respond('phone') {
1011
- margin-bottom: var(--o-gap-3);
1012
- }
1013
1009
  }
1014
1010
 
1015
1011
  .repeat-config {
@@ -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) {
@@ -467,14 +466,11 @@ onMounted(() => {
467
466
  window.addEventListener('scroll', handleScroll);
468
467
  // 添加resize监听器
469
468
  window.addEventListener('resize', handleScroll);
470
- getHeaderHeight();
471
- window.addEventListener('resize', getHeaderHeight);
472
469
  });
473
470
 
474
471
  onUnmounted(() => {
475
472
  window.removeEventListener('scroll', handleScroll);
476
473
  window.removeEventListener('resize', handleScroll);
477
- window.removeEventListener('resize', getHeaderHeight);
478
474
  const scrollerContainerEl = scrollerRef.value?.getContainerEl();
479
475
  scrollerContainerEl?.removeEventListener('scroll', scrollerScroll);
480
476
  });
@@ -631,6 +627,8 @@ const cancelActions = computed<DialogActionT[]>(() => {
631
627
  :value="row.sub_id || row.id"
632
628
  :class="{
633
629
  'last-item': idx === groupList.length - 1 && rowIdx === group.list.length - 1,
630
+ 'is-delete': row.is_delete,
631
+ 'is-end': row.isExpired,
634
632
  }"
635
633
  >
636
634
  <template #title>
@@ -638,7 +636,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
638
636
  <div
639
637
  class="meeting-icon"
640
638
  :style="{
641
- backgroundColor: `${getConfig(CalendarDataType.MEETING, 'color')}`
639
+ backgroundColor: `${row.is_delete ? 'var(--o-color-info4)' : getConfig(CalendarDataType.MEETING, 'color')}`
642
640
  }"
643
641
  >
644
642
  <OIcon>
@@ -646,13 +644,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
646
644
  </OIcon>
647
645
  </div>
648
646
  <div class="header-info">
649
- <div
650
- :class="{
651
- 'meeting-title': true,
652
- 'is-delete': row.is_delete,
653
- 'is-end': row.isExpired,
654
- }"
655
- >
647
+ <div class="meeting-title">
656
648
  <div v-if="row.is_delete">{{ t('meeting.meetingCancelled') }}</div>
657
649
  <div class="title-wrapper">
658
650
  <div class="title-text">{{ row.topic }}</div>
@@ -1005,7 +997,8 @@ const cancelActions = computed<DialogActionT[]>(() => {
1005
997
 
1006
998
  &.is-today {
1007
999
  .date-cell-text {
1008
- color: #000;
1000
+ color: var(--o-color-primary1);
1001
+ font-weight: bold;
1009
1002
  background-color: var(--o-color-control3-light);
1010
1003
  }
1011
1004
  }
@@ -1032,9 +1025,6 @@ const cancelActions = computed<DialogActionT[]>(() => {
1032
1025
  }
1033
1026
  }
1034
1027
 
1035
- .is-today {
1036
- color: inherit;
1037
- }
1038
1028
  }
1039
1029
  }
1040
1030
  }
@@ -1075,14 +1065,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
1075
1065
  padding-left: 24px;
1076
1066
  position: relative;
1077
1067
 
1078
- &.last-item {
1079
- flex-grow: 1;
1080
- }
1081
-
1082
1068
  @include respond('phone') {
1083
1069
  padding-left: var(--o-gap-2);
1084
1070
  }
1085
1071
 
1072
+ &.last-item {
1073
+ flex-grow: 1;
1074
+ }
1075
+
1086
1076
  .group-bar {
1087
1077
  position: absolute;
1088
1078
  left: 0;
@@ -1264,6 +1254,19 @@ const cancelActions = computed<DialogActionT[]>(() => {
1264
1254
  border-bottom: none;
1265
1255
  }
1266
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
+
1267
1270
  &.o-collapse-item-expanded {
1268
1271
  border-bottom: none;
1269
1272
  background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
@@ -1332,8 +1335,10 @@ const cancelActions = computed<DialogActionT[]>(() => {
1332
1335
  align-items: center;
1333
1336
  justify-content: center;
1334
1337
  flex-shrink: 0;
1338
+ --icon-size2: var(--icon-size);
1335
1339
 
1336
1340
  .o-icon {
1341
+ font-size: calc(var(--icon-size2) - 2px);
1337
1342
  svg path {
1338
1343
  fill: currentColor;
1339
1344
  }
@@ -1351,15 +1356,6 @@ const cancelActions = computed<DialogActionT[]>(() => {
1351
1356
  margin-bottom: var(--o-gap-2);
1352
1357
  @include text2;
1353
1358
 
1354
- &.is-delete,
1355
- &.is-end {
1356
- color: var(--o-color-info4);
1357
-
1358
- .title-text {
1359
- color: var(--o-color-info4) !important;
1360
- }
1361
- }
1362
-
1363
1359
  .tag-wrapper {
1364
1360
  flex: 10;
1365
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 list = ref<(MeetingItemT | MeetingEventsItemT)[]>([]); // 某天的会议列表
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
- list.value = res.map((v: MeetingItemT) => {
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 = eventsDates.value;
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" v-if="!lePadV">
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="dayjs(date).format('YYYY/MM/DD')"
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: 12px 16px 0;
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: 16px;
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: 12px 32px 0;
361
+ padding: var(--o-gap-3) var(--o-gap-6) 0;
344
362
  @include text1;
345
363
  @include respond('<=pad') {
346
- padding: 12px 16px 0;
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: 12px;
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: 12px;
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: 400px;
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 { isClient, OCollapse, OCollapseItem, ODivider, OIcon, OLink, OTag, useMessage } from '@opensig/opendesign';
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';
@@ -91,9 +100,9 @@ const computedList = computed<any[]>(() => {
91
100
  }
92
101
  } else {
93
102
  if (v.start_date === v.end_date) {
94
- dateRange = formatDate(v.start_date, 'YYYY/MM/DD');
103
+ dateRange = formatDate(v.start_date);
95
104
  } else {
96
- dateRange = `${ formatDate(v.start_date, 'YYYY/MM/DD') }-${ formatDate(v.end_date, 'YYYY/MM/DD') }`;
105
+ dateRange = `${ formatDate(v.start_date) }-${ formatDate(v.end_date) }`;
97
106
  }
98
107
  }
99
108
 
@@ -198,8 +207,8 @@ const computedList = computed<any[]>(() => {
198
207
  <template v-if="item.activity_type">{{ item.activity_type }}</template>
199
208
  </div>
200
209
  </div>
201
- <OLink
202
- :hover-underline="false"
210
+ <OButton
211
+ variant="text"
203
212
  v-if="item.url"
204
213
  :href="item.url"
205
214
  target="_blank"
@@ -211,9 +220,9 @@ const computedList = computed<any[]>(() => {
211
220
  <IconChevronRight />
212
221
  </OIcon>
213
222
  </template>
214
- </OLink>
215
- <OLink
216
- :hover-underline="false"
223
+ </OButton>
224
+ <OButton
225
+ variant="text"
217
226
  v-if="item.join_url"
218
227
  :href="item.join_url"
219
228
  target="_blank"
@@ -225,9 +234,9 @@ const computedList = computed<any[]>(() => {
225
234
  <IconChevronRight />
226
235
  </OIcon>
227
236
  </template>
228
- </OLink>
229
- <OLink
230
- :hover-underline="false"
237
+ </OButton>
238
+ <OButton
239
+ variant="text"
231
240
  v-if="item.content_url"
232
241
  :href="item.content_url"
233
242
  target="_blank"
@@ -239,9 +248,9 @@ const computedList = computed<any[]>(() => {
239
248
  <IconChevronRight />
240
249
  </OIcon>
241
250
  </template>
242
- </OLink>
243
- <OLink
244
- :hover-underline="false"
251
+ </OButton>
252
+ <OButton
253
+ variant="text"
245
254
  v-if="item.register_url"
246
255
  :href="item.register_url"
247
256
  target="_blank"
@@ -253,7 +262,7 @@ const computedList = computed<any[]>(() => {
253
262
  <IconChevronRight />
254
263
  </OIcon>
255
264
  </template>
256
- </OLink>
265
+ </OButton>
257
266
  </div>
258
267
  <OIcon @click.stop="() => copyInfo(index)" class="copy-icon">
259
268
  <IconCopy />
@@ -374,12 +383,13 @@ const computedList = computed<any[]>(() => {
374
383
 
375
384
  .o-collapse-item-title {
376
385
  flex-grow: 1;
386
+ min-width: 0;
377
387
  margin-bottom: 0;
378
388
  display: flex;
379
389
  align-items: center;
380
390
  justify-content: center;
381
391
  gap: var(--o-gap-4);
382
- padding-right: var(--o-gap-4);
392
+ padding-right: var(--o-gap-5);
383
393
 
384
394
  .meet-title-left {
385
395
  flex-grow: 1;
@@ -457,7 +467,7 @@ const computedList = computed<any[]>(() => {
457
467
 
458
468
  .jump-detail-link {
459
469
  padding-left: calc(var(--icon-right) + var(--icon-size2));
460
- margin-top: var(--o-gap-2);
470
+ margin-top: var(--o-gap-1);
461
471
  color: var(--o-color-info2);
462
472
  font-weight: 400;
463
473
  @include tip1;
@@ -508,7 +518,7 @@ const computedList = computed<any[]>(() => {
508
518
  margin-right: var(--icon-right);
509
519
  width: var(--icon-size2);
510
520
  height: var(--icon-size2);
511
- font-size: calc(var(--icon-size2) - 4px);
521
+ font-size: calc(var(--icon-size2) - 2px);
512
522
 
513
523
  svg path {
514
524
  fill: currentColor;
@@ -518,14 +528,16 @@ const computedList = computed<any[]>(() => {
518
528
  .text {
519
529
  display: block;
520
530
  font-weight: 600;
531
+ min-width: 0;
532
+ flex: 1;
521
533
  @include text-truncate(1);
522
534
  }
523
535
  }
524
536
 
525
537
  .meet-info {
538
+ display: flex;
526
539
  margin-left: calc(var(--icon-right) + var(--icon-size2));
527
540
  margin-top: var(--o-gap-2);
528
- display: flex;
529
541
  flex-wrap: wrap;
530
542
  align-items: center;
531
543
  color: var(--o-color-info3);
@@ -161,11 +161,11 @@ defineExpose({ copyInfo });
161
161
  display: flex;
162
162
  align-items: flex-start;
163
163
  font-size: 14px;
164
- gap: var(--o-gap-5);
164
+ gap: var(--o-gap-2);
165
165
 
166
166
  @include respond('<=pad_v') {
167
167
  font-size: 12px;
168
- gap: var(--o-gap-2);
168
+ gap: var(--o-gap-1);
169
169
  }
170
170
 
171
171
  &:not(.is-empty) {
@@ -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 12px" wrap="wrap">
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) var(--o-gap-6);
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
- @include tip1;
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: 20px;
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;