@opendesign-plus-test/components 0.0.1-rc.51 → 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.
Files changed (73) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +49 -69
  3. package/dist/components/OHeaderSearch.vue.d.ts +534 -814
  4. package/dist/components/OThemeSwitcher.vue.d.ts +2 -5
  5. package/dist/components/activity/index.d.ts +2 -2
  6. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +3 -1
  7. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +50 -1
  8. package/dist/components/meeting/components/OMeetingPlaybackSubtitles.vue.d.ts +16 -1
  9. package/dist/components/meeting/composables/useMeetingConfig.d.ts +1 -1
  10. package/dist/components/meeting/index.d.ts +17 -7
  11. package/dist/components/meeting/types.d.ts +1 -1
  12. package/dist/components.cjs.js +43 -43
  13. package/dist/components.css +1 -1
  14. package/dist/components.es.js +10946 -11901
  15. package/dist/index.d.ts +0 -1
  16. package/package.json +2 -4
  17. package/src/assets/styles/element-plus.scss +211 -0
  18. package/src/assets/svg-icons/icon-delete.svg +1 -5
  19. package/src/components/OHeaderSearch.vue +415 -437
  20. package/src/components/OThemeSwitcher.vue +51 -27
  21. package/src/components/activity/OActivityApproval.vue +10 -6
  22. package/src/components/activity/OActivityForm.vue +12 -6
  23. package/src/components/activity/{OMyActivityCalendar.vue → OActivityMyCalendar.vue} +59 -28
  24. package/src/components/activity/index.ts +4 -4
  25. package/src/components/events/OEventsApply.vue +2 -1
  26. package/src/components/events/OEventsCalendar.vue +7 -5
  27. package/src/components/events/OEventsList.vue +6 -4
  28. package/src/components/meeting/OMeetingCalendar.vue +26 -18
  29. package/src/components/meeting/OMeetingForm.vue +65 -17
  30. package/src/components/meeting/{OMyMeetingCalendar.vue → OMeetingMyCalendar.vue} +87 -46
  31. package/src/components/meeting/OMeetingPlayback.vue +42 -12
  32. package/src/components/meeting/{OSigMeetingCalendar.vue → OMeetingSigCalendar.vue} +7 -4
  33. package/src/components/meeting/components/OMeetingCalendarList.vue +56 -24
  34. package/src/components/meeting/components/OMeetingCalendarSelector.vue +12 -9
  35. package/src/components/meeting/components/OMeetingDetail.vue +1 -1
  36. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +17 -13
  37. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +6 -6
  38. package/src/components/meeting/components/{OSigMeetingAside.vue → OMeetingSigAside.vue} +1 -1
  39. package/src/components/meeting/composables/useMeetingConfig.ts +5 -5
  40. package/src/components/meeting/config.ts +1 -1
  41. package/src/components/meeting/index.ts +8 -8
  42. package/src/components/meeting/types.ts +1 -1
  43. package/src/i18n/en.ts +2 -12
  44. package/src/i18n/zh.ts +1 -11
  45. package/src/index.ts +0 -1
  46. package/vite.config.ts +1 -5
  47. package/dist/components/search/OSearchInput.vue.d.ts +0 -1003
  48. package/dist/components/search/composables/useImageSearch.d.ts +0 -48
  49. package/dist/components/search/composables/useKeywordHighlight.d.ts +0 -2
  50. package/dist/components/search/composables/useSearchHistory.d.ts +0 -14
  51. package/dist/components/search/index.d.ts +0 -590
  52. package/dist/components/search/internal/HighlightText.vue.d.ts +0 -9
  53. package/dist/components/search/internal/SearchImageInput.vue.d.ts +0 -716
  54. package/dist/components/search/internal/SearchPanel.vue.d.ts +0 -100
  55. package/dist/components/search/types.d.ts +0 -20
  56. package/src/assets/svg-icons/icon-delete-hover.svg +0 -4
  57. package/src/assets/svg-icons/icon-image-close.svg +0 -4
  58. package/src/assets/svg-icons/icon-image-upload.svg +0 -3
  59. package/src/assets/svg-icons/icon-image-zoomin.svg +0 -3
  60. package/src/assets/svg-icons/icon-refresh.svg +0 -3
  61. package/src/components/search/OSearchInput.vue +0 -463
  62. package/src/components/search/composables/useImageSearch.ts +0 -157
  63. package/src/components/search/composables/useKeywordHighlight.ts +0 -30
  64. package/src/components/search/composables/useSearchHistory.ts +0 -75
  65. package/src/components/search/index.ts +0 -23
  66. package/src/components/search/internal/HighlightText.vue +0 -37
  67. package/src/components/search/internal/SearchImageInput.vue +0 -488
  68. package/src/components/search/internal/SearchPanel.vue +0 -430
  69. package/src/components/search/types.ts +0 -25
  70. /package/dist/components/activity/{OMyActivityCalendar.vue.d.ts → OActivityMyCalendar.vue.d.ts} +0 -0
  71. /package/dist/components/meeting/{OMyMeetingCalendar.vue.d.ts → OMeetingMyCalendar.vue.d.ts} +0 -0
  72. /package/dist/components/meeting/{OSigMeetingCalendar.vue.d.ts → OMeetingSigCalendar.vue.d.ts} +0 -0
  73. /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,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();
@@ -578,6 +584,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
578
584
  expired: dayjs(formatDate()).isAfter(dayjs(data.day)),
579
585
  'all-deleted': calcIfAllDeleted(data.day),
580
586
  }"
587
+ :style="{
588
+ '--dot-bg': `${getConfig(CalendarDataType.MEETING, 'color')}`
589
+ }"
581
590
  >
582
591
  <div class="date-cell-text">
583
592
  {{ Number(data.day.split('-')[2]) }}
@@ -634,9 +643,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
634
643
  >
635
644
  <template #title>
636
645
  <div class="item-header-left">
637
- <div class="meeting-icon">
646
+ <div
647
+ class="meeting-icon"
648
+ :style="{
649
+ backgroundColor: `${getConfig(CalendarDataType.MEETING, 'color')}`
650
+ }"
651
+ >
638
652
  <OIcon>
639
- <IconMeeting />
653
+ <component :is="getConfig(CalendarDataType.MEETING, 'icon')" />
640
654
  </OIcon>
641
655
  </div>
642
656
  <div class="header-info">
@@ -667,6 +681,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
667
681
  </div>
668
682
  <div class="item-header-right" v-if="!row.is_delete">
669
683
  <OLink
684
+ :hover-underline="false"
670
685
  v-if="!row.isExpired"
671
686
  target="_blank"
672
687
  :href="row.join_url"
@@ -680,7 +695,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
680
695
  </template>
681
696
  </OLink>
682
697
  <template v-else>
683
- <OLink target="_blank" v-if="row.etherpad" :href="row.etherpad">
698
+ <OLink
699
+ :hover-underline="false"
700
+ target="_blank"
701
+ v-if="row.etherpad"
702
+ :href="row.etherpad"
703
+ >
684
704
  {{ t('meeting.meetingSummary') }}
685
705
  <template #suffix>
686
706
  <OIcon>
@@ -689,6 +709,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
689
709
  </template>
690
710
  </OLink>
691
711
  <OLink
712
+ :hover-underline="false"
692
713
  target="_blank"
693
714
  :href="`/${locale}/video/${row.group_name}/${row.mid}/${row.date}`"
694
715
  v-if="row.hasObsData">
@@ -713,10 +734,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
713
734
  from="my"
714
735
  />
715
736
  <div class="meeting-btn" v-if="!row.isExpired && !row.is_delete">
716
- <OLink @click="handleItem(row, 'edit')">{{ t('meeting.editMeeting') }}
717
- </OLink>
718
- <OLink @click="handleItem(row, 'cancel')">{{ t('meeting.cancelMeeting') }}
719
- </OLink>
737
+ <OButton color="normal" variant="text" @click="handleItem(row, 'edit')">
738
+ {{ t('meeting.editMeeting') }}
739
+ </OButton>
740
+ <OButton color="normal" variant="text" @click="handleItem(row, 'cancel')">
741
+ {{ t('meeting.cancelMeeting') }}
742
+ </OButton>
720
743
  </div>
721
744
  </div>
722
745
  </OCollapseItem>
@@ -745,7 +768,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
745
768
  >
746
769
  <template #header>
747
770
  {{
748
- t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel2')])
771
+ t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel')])
749
772
  }}
750
773
  </template>
751
774
  <ORadioGroup v-model="handleType">
@@ -762,6 +785,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
762
785
 
763
786
  <style lang="scss">
764
787
  .o-my-meeting-calendar {
788
+ --meeting-card-radius: var(--o-radius-xs);
789
+ --meeting-input-radius: var(--o-radius-xs);
790
+ --meeting-cell-radius: var(--o-radius-xs);
765
791
 
766
792
  .header {
767
793
  display: flex;
@@ -877,7 +903,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
877
903
  .el-calendar {
878
904
  min-height: 460px;
879
905
  height: calc(100% - 54px);
880
- border-radius: var(--o-radius-xs);
906
+ border-radius: var(--meeting-card-radius);
881
907
  background-color: transparent;
882
908
 
883
909
  .el-calendar__header {
@@ -911,6 +937,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
911
937
 
912
938
  .el-calendar__body {
913
939
  .el-calendar-table {
940
+ display: table;
914
941
 
915
942
  th {
916
943
  text-align: center;
@@ -947,16 +974,16 @@ const cancelActions = computed<DialogActionT[]>(() => {
947
974
 
948
975
  .date-cell {
949
976
  height: 56px;
950
- width: 42px;
951
- padding: var(--o-gap-1);
977
+ width: 34px;
952
978
  position: relative;
953
979
  cursor: default !important;
954
980
 
955
981
  .date-cell-text {
956
982
  font-size: 14px;
957
- line-height: 36px;
958
- border-radius: var(--o-radius-xs);
983
+ line-height: 34px;
984
+ border-radius: var(--meeting-cell-radius);
959
985
  background-color: var(--o-color-control2-light);
986
+ border: 1px solid transparent;
960
987
  }
961
988
 
962
989
  .date-cell-text {
@@ -978,7 +1005,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
978
1005
  &::after {
979
1006
  content: '';
980
1007
  position: absolute;
981
- bottom: 2px;
1008
+ bottom: 5px;
982
1009
  left: 50%;
983
1010
  transform: translateX(-50%);
984
1011
  width: 8px;
@@ -995,14 +1022,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
995
1022
 
996
1023
  &.is-selected {
997
1024
  .date-cell-text {
998
- color: #fff;
999
- background-color: var(--o-color-primary1);
1025
+ background-color: var(--o-color-control3-light);
1026
+ border: 1px solid var(--o-color-primary1);
1000
1027
  }
1001
1028
  }
1002
1029
 
1003
1030
  &.clickable {
1004
1031
  &::after {
1005
- background-color: var(--o-color-primary1);
1032
+ background-color: var(--dot-bg);
1006
1033
  }
1007
1034
 
1008
1035
  &.expired::after {
@@ -1035,6 +1062,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1035
1062
  display: flex;
1036
1063
  align-items: center;
1037
1064
  justify-content: center;
1065
+ min-height: 600px;
1038
1066
  }
1039
1067
 
1040
1068
 
@@ -1207,31 +1235,20 @@ const cancelActions = computed<DialogActionT[]>(() => {
1207
1235
  display: flex;
1208
1236
  flex-direction: column;
1209
1237
 
1210
- .o-collapse-item {
1211
- &.last-item {
1212
- .o-collapse-item-header {
1213
- border-bottom: none;
1214
- }
1215
- }
1216
- }
1217
-
1218
1238
  .o-collapse-item-expanded + .o-collapse-item-expanded {
1219
1239
  margin-top: var(--o-gap-4);
1220
1240
  }
1221
1241
 
1222
1242
  .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
1243
  height: var(--o-gap-4);
1229
1244
  }
1230
1245
 
1246
+
1231
1247
  .o-collapse-item {
1232
1248
  padding: var(--o-gap-4) var(--o-gap-5);
1249
+ padding-bottom: calc(var(--o-gap-5) - var(--o-gap-4));
1233
1250
  border-top: none;
1234
- border-radius: var(--o-radius-xs);
1251
+ border-radius: var(--meeting-card-radius);
1235
1252
  transition: margin var(--o-easing-standard) var(--o-duration-s);
1236
1253
  --copy-display: none;
1237
1254
  --icon-size: 24px;
@@ -1239,30 +1256,42 @@ const cancelActions = computed<DialogActionT[]>(() => {
1239
1256
  padding: var(--o-gap-3) var(--o-gap-4);
1240
1257
  }
1241
1258
 
1259
+ @include respond('phone') {
1260
+ --icon-size: 20px;
1261
+ }
1262
+
1242
1263
  &:hover {
1264
+ .title-text {
1265
+ color: var(--o-color-primary1);
1266
+ }
1243
1267
  @include respond('>pad_v') {
1244
1268
  --copy-display: inline-flex;
1245
1269
  }
1246
1270
  }
1247
1271
 
1248
- @include respond('phone') {
1249
- --icon-size: 20px;
1272
+ &.last-item {
1273
+ .o-collapse-item-header {
1274
+ border-bottom: none;
1275
+ }
1250
1276
  }
1251
1277
  &.o-collapse-item-expanded {
1278
+ border-bottom: none;
1279
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1280
+
1252
1281
  @include respond('<=pad_v') {
1253
1282
  --copy-display: inline-flex;
1254
1283
  }
1255
- }
1256
1284
 
1257
- &.o-collapse-item-expanded {
1258
- background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1285
+ .o-collapse-item-header {
1286
+ border-bottom: 1px solid var(--o-color-control4);
1287
+ }
1259
1288
  }
1260
1289
  }
1261
1290
 
1262
1291
  .o-collapse-item-header {
1263
- border-bottom: 1px solid var(--o-color-control4);
1292
+ border-bottom: none;
1264
1293
  padding-top: 0;
1265
- padding-bottom: var(--o-gap-2);
1294
+ padding-bottom: var(--o-gap-4);
1266
1295
  display: flex;
1267
1296
  align-items: center;
1268
1297
  gap: var(--o-gap-4);
@@ -1334,7 +1363,11 @@ const cancelActions = computed<DialogActionT[]>(() => {
1334
1363
 
1335
1364
  &.is-delete,
1336
1365
  &.is-end {
1337
- color: var(--o-color-info3);
1366
+ color: var(--o-color-info4);
1367
+
1368
+ .title-text {
1369
+ color: var(--o-color-info4) !important;
1370
+ }
1338
1371
  }
1339
1372
 
1340
1373
  .tag-wrapper {
@@ -1380,10 +1413,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
1380
1413
  padding-left: calc(var(--o-gap-3) + var(--icon-size));
1381
1414
  gap: var(--o-gap-4);
1382
1415
  width: 100%;
1416
+ font-weight: 400;
1383
1417
 
1384
1418
  .o-link {
1385
1419
  font-size: 14px;
1386
1420
  line-height: 21px;
1421
+ --link-color: var(--o-color-info2);
1387
1422
  }
1388
1423
  .o-icon {
1389
1424
  font-size: 16px;
@@ -1399,6 +1434,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1399
1434
  height: 18px;
1400
1435
  width: 18px;
1401
1436
  display: var(--copy-display);
1437
+ color: var(--o-color-info1);
1402
1438
  @include respond('phone') {
1403
1439
  bottom: var(--o-gap-2);
1404
1440
  right: calc(20px + var(--o-gap-2))
@@ -1431,10 +1467,15 @@ const cancelActions = computed<DialogActionT[]>(() => {
1431
1467
  border-top: 1px solid var(--o-color-control4);
1432
1468
  margin-top: var(--o-gap-5);
1433
1469
  padding-top: var(--o-gap-4);
1470
+ padding-bottom: var(--o-gap-4);
1434
1471
  display: flex;
1435
1472
  align-items: center;
1436
1473
  justify-content: flex-end;
1437
1474
  gap: var(--o-gap-5);
1475
+
1476
+ .o-link {
1477
+ --link-color: inherit;
1478
+ }
1438
1479
  }
1439
1480
  }
1440
1481
  }
@@ -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
- <div class="tab-content">
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
- </div>
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(--o-radius-xs);
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
- .o-tab-navs {
315
- justify-content: flex-start;
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
- @include tip1;
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(--o-radius-xs);
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-fill1);
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(--o-radius-xs);
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 OSigMeetingAside from './components/OSigMeetingAside.vue';
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
- <OSigMeetingAside
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(--o-radius-xs);
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 {