@opendesign-plus-test/components 0.0.1-rc.51 → 0.0.1-rc.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +42 -42
  13. package/dist/components.css +1 -1
  14. package/dist/components.es.js +10590 -11551
  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 +61 -17
  30. package/src/components/meeting/{OMyMeetingCalendar.vue → OMeetingMyCalendar.vue} +90 -52
  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 +60 -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,24 +333,25 @@ const confirmHandleItem = async () => {
331
333
  }
332
334
  if (handleDialogType.value === 'cancel') {
333
335
  try {
336
+ let flag = undefined;
334
337
  dialogLoading.value = true;
335
338
  if (handleType.value === 'single' && row.is_cycle) {
336
339
  if (!props.cancelSubMeetingRequest) {
337
340
  return;
338
341
  }
339
- await props.cancelSubMeetingRequest(row.sub_id);
340
- message.success({
341
- content: `${ t('meeting.meetingCancel', [row.topic]) }`,
342
- });
342
+ flag = await props.cancelSubMeetingRequest(row.sub_id);
343
343
  } else {
344
344
  if (!props.deleteMeetingRequest) {
345
345
  return;
346
346
  }
347
- await props.deleteMeetingRequest(row.id);
348
- message.success({
349
- content: `${ t('meeting.meetingCancel', [row.topic]) }`,
350
- });
347
+ flag = await props.deleteMeetingRequest(row.id);
351
348
  }
349
+ if (typeof flag === 'boolean' && !flag) {
350
+ return;
351
+ }
352
+ message.success({
353
+ content: `${ t('meeting.meetingCancel', [row.topic]) }`,
354
+ });
352
355
  cancelHandleItem();
353
356
  reloadAll.value = true;
354
357
  getList();
@@ -578,6 +581,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
578
581
  expired: dayjs(formatDate()).isAfter(dayjs(data.day)),
579
582
  'all-deleted': calcIfAllDeleted(data.day),
580
583
  }"
584
+ :style="{
585
+ '--dot-bg': `${getConfig(CalendarDataType.MEETING, 'color')}`
586
+ }"
581
587
  >
582
588
  <div class="date-cell-text">
583
589
  {{ Number(data.day.split('-')[2]) }}
@@ -634,9 +640,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
634
640
  >
635
641
  <template #title>
636
642
  <div class="item-header-left">
637
- <div class="meeting-icon">
643
+ <div
644
+ class="meeting-icon"
645
+ :style="{
646
+ backgroundColor: `${getConfig(CalendarDataType.MEETING, 'color')}`
647
+ }"
648
+ >
638
649
  <OIcon>
639
- <IconMeeting />
650
+ <component :is="getConfig(CalendarDataType.MEETING, 'icon')" />
640
651
  </OIcon>
641
652
  </div>
642
653
  <div class="header-info">
@@ -667,6 +678,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
667
678
  </div>
668
679
  <div class="item-header-right" v-if="!row.is_delete">
669
680
  <OLink
681
+ :hover-underline="false"
670
682
  v-if="!row.isExpired"
671
683
  target="_blank"
672
684
  :href="row.join_url"
@@ -680,7 +692,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
680
692
  </template>
681
693
  </OLink>
682
694
  <template v-else>
683
- <OLink target="_blank" v-if="row.etherpad" :href="row.etherpad">
695
+ <OLink
696
+ :hover-underline="false"
697
+ target="_blank"
698
+ v-if="row.etherpad"
699
+ :href="row.etherpad"
700
+ >
684
701
  {{ t('meeting.meetingSummary') }}
685
702
  <template #suffix>
686
703
  <OIcon>
@@ -689,6 +706,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
689
706
  </template>
690
707
  </OLink>
691
708
  <OLink
709
+ :hover-underline="false"
692
710
  target="_blank"
693
711
  :href="`/${locale}/video/${row.group_name}/${row.mid}/${row.date}`"
694
712
  v-if="row.hasObsData">
@@ -713,10 +731,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
713
731
  from="my"
714
732
  />
715
733
  <div class="meeting-btn" v-if="!row.isExpired && !row.is_delete">
716
- <OLink @click="handleItem(row, 'edit')">{{ t('meeting.editMeeting') }}
717
- </OLink>
718
- <OLink @click="handleItem(row, 'cancel')">{{ t('meeting.cancelMeeting') }}
719
- </OLink>
734
+ <OButton color="normal" variant="text" @click="handleItem(row, 'edit')">
735
+ {{ t('meeting.editMeeting') }}
736
+ </OButton>
737
+ <OButton color="normal" variant="text" @click="handleItem(row, 'cancel')">
738
+ {{ t('meeting.cancelMeeting') }}
739
+ </OButton>
720
740
  </div>
721
741
  </div>
722
742
  </OCollapseItem>
@@ -745,7 +765,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
745
765
  >
746
766
  <template #header>
747
767
  {{
748
- t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel2')])
768
+ t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel')])
749
769
  }}
750
770
  </template>
751
771
  <ORadioGroup v-model="handleType">
@@ -762,6 +782,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
762
782
 
763
783
  <style lang="scss">
764
784
  .o-my-meeting-calendar {
785
+ --meeting-card-radius: var(--o-radius-xs);
786
+ --meeting-input-radius: var(--o-radius-xs);
787
+ --meeting-cell-radius: var(--o-radius-xs);
765
788
 
766
789
  .header {
767
790
  display: flex;
@@ -877,7 +900,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
877
900
  .el-calendar {
878
901
  min-height: 460px;
879
902
  height: calc(100% - 54px);
880
- border-radius: var(--o-radius-xs);
903
+ border-radius: var(--meeting-card-radius);
881
904
  background-color: transparent;
882
905
 
883
906
  .el-calendar__header {
@@ -911,6 +934,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
911
934
 
912
935
  .el-calendar__body {
913
936
  .el-calendar-table {
937
+ display: table;
914
938
 
915
939
  th {
916
940
  text-align: center;
@@ -947,16 +971,16 @@ const cancelActions = computed<DialogActionT[]>(() => {
947
971
 
948
972
  .date-cell {
949
973
  height: 56px;
950
- width: 42px;
951
- padding: var(--o-gap-1);
974
+ width: 34px;
952
975
  position: relative;
953
976
  cursor: default !important;
954
977
 
955
978
  .date-cell-text {
956
979
  font-size: 14px;
957
- line-height: 36px;
958
- border-radius: var(--o-radius-xs);
980
+ line-height: 34px;
981
+ border-radius: var(--meeting-cell-radius);
959
982
  background-color: var(--o-color-control2-light);
983
+ border: 1px solid transparent;
960
984
  }
961
985
 
962
986
  .date-cell-text {
@@ -978,7 +1002,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
978
1002
  &::after {
979
1003
  content: '';
980
1004
  position: absolute;
981
- bottom: 2px;
1005
+ bottom: 5px;
982
1006
  left: 50%;
983
1007
  transform: translateX(-50%);
984
1008
  width: 8px;
@@ -995,14 +1019,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
995
1019
 
996
1020
  &.is-selected {
997
1021
  .date-cell-text {
998
- color: #fff;
999
- background-color: var(--o-color-primary1);
1022
+ background-color: var(--o-color-control3-light);
1023
+ border: 1px solid var(--o-color-primary1);
1000
1024
  }
1001
1025
  }
1002
1026
 
1003
1027
  &.clickable {
1004
1028
  &::after {
1005
- background-color: var(--o-color-primary1);
1029
+ background-color: var(--dot-bg);
1006
1030
  }
1007
1031
 
1008
1032
  &.expired::after {
@@ -1035,6 +1059,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1035
1059
  display: flex;
1036
1060
  align-items: center;
1037
1061
  justify-content: center;
1062
+ min-height: 600px;
1038
1063
  }
1039
1064
 
1040
1065
 
@@ -1207,31 +1232,20 @@ const cancelActions = computed<DialogActionT[]>(() => {
1207
1232
  display: flex;
1208
1233
  flex-direction: column;
1209
1234
 
1210
- .o-collapse-item {
1211
- &.last-item {
1212
- .o-collapse-item-header {
1213
- border-bottom: none;
1214
- }
1215
- }
1216
- }
1217
-
1218
1235
  .o-collapse-item-expanded + .o-collapse-item-expanded {
1219
1236
  margin-top: var(--o-gap-4);
1220
1237
  }
1221
1238
 
1222
1239
  .height-placeholder {
1223
- height: 0;
1224
- transition: margin var(--o-easing-standard) var(--o-duration-s);
1225
- }
1226
-
1227
- .o-collapse-item-expanded + .height-placeholder {
1228
1240
  height: var(--o-gap-4);
1229
1241
  }
1230
1242
 
1243
+
1231
1244
  .o-collapse-item {
1232
1245
  padding: var(--o-gap-4) var(--o-gap-5);
1246
+ padding-bottom: calc(var(--o-gap-5) - var(--o-gap-4));
1233
1247
  border-top: none;
1234
- border-radius: var(--o-radius-xs);
1248
+ border-radius: var(--meeting-card-radius);
1235
1249
  transition: margin var(--o-easing-standard) var(--o-duration-s);
1236
1250
  --copy-display: none;
1237
1251
  --icon-size: 24px;
@@ -1239,30 +1253,42 @@ const cancelActions = computed<DialogActionT[]>(() => {
1239
1253
  padding: var(--o-gap-3) var(--o-gap-4);
1240
1254
  }
1241
1255
 
1256
+ @include respond('phone') {
1257
+ --icon-size: 20px;
1258
+ }
1259
+
1242
1260
  &:hover {
1261
+ .title-text {
1262
+ color: var(--o-color-primary1);
1263
+ }
1243
1264
  @include respond('>pad_v') {
1244
1265
  --copy-display: inline-flex;
1245
1266
  }
1246
1267
  }
1247
1268
 
1248
- @include respond('phone') {
1249
- --icon-size: 20px;
1269
+ &.last-item {
1270
+ .o-collapse-item-header {
1271
+ border-bottom: none;
1272
+ }
1250
1273
  }
1251
1274
  &.o-collapse-item-expanded {
1275
+ border-bottom: none;
1276
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1277
+
1252
1278
  @include respond('<=pad_v') {
1253
1279
  --copy-display: inline-flex;
1254
1280
  }
1255
- }
1256
1281
 
1257
- &.o-collapse-item-expanded {
1258
- background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1282
+ .o-collapse-item-header {
1283
+ border-bottom: 1px solid var(--o-color-control4);
1284
+ }
1259
1285
  }
1260
1286
  }
1261
1287
 
1262
1288
  .o-collapse-item-header {
1263
- border-bottom: 1px solid var(--o-color-control4);
1289
+ border-bottom: none;
1264
1290
  padding-top: 0;
1265
- padding-bottom: var(--o-gap-2);
1291
+ padding-bottom: var(--o-gap-4);
1266
1292
  display: flex;
1267
1293
  align-items: center;
1268
1294
  gap: var(--o-gap-4);
@@ -1334,7 +1360,11 @@ const cancelActions = computed<DialogActionT[]>(() => {
1334
1360
 
1335
1361
  &.is-delete,
1336
1362
  &.is-end {
1337
- color: var(--o-color-info3);
1363
+ color: var(--o-color-info4);
1364
+
1365
+ .title-text {
1366
+ color: var(--o-color-info4) !important;
1367
+ }
1338
1368
  }
1339
1369
 
1340
1370
  .tag-wrapper {
@@ -1380,10 +1410,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
1380
1410
  padding-left: calc(var(--o-gap-3) + var(--icon-size));
1381
1411
  gap: var(--o-gap-4);
1382
1412
  width: 100%;
1413
+ font-weight: 400;
1383
1414
 
1384
1415
  .o-link {
1385
1416
  font-size: 14px;
1386
1417
  line-height: 21px;
1418
+ --link-color: var(--o-color-info2);
1387
1419
  }
1388
1420
  .o-icon {
1389
1421
  font-size: 16px;
@@ -1399,6 +1431,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1399
1431
  height: 18px;
1400
1432
  width: 18px;
1401
1433
  display: var(--copy-display);
1434
+ color: var(--o-color-info1);
1402
1435
  @include respond('phone') {
1403
1436
  bottom: var(--o-gap-2);
1404
1437
  right: calc(20px + var(--o-gap-2))
@@ -1431,10 +1464,15 @@ const cancelActions = computed<DialogActionT[]>(() => {
1431
1464
  border-top: 1px solid var(--o-color-control4);
1432
1465
  margin-top: var(--o-gap-5);
1433
1466
  padding-top: var(--o-gap-4);
1467
+ padding-bottom: var(--o-gap-4);
1434
1468
  display: flex;
1435
1469
  align-items: center;
1436
1470
  justify-content: flex-end;
1437
1471
  gap: var(--o-gap-5);
1472
+
1473
+ .o-link {
1474
+ --link-color: inherit;
1475
+ }
1438
1476
  }
1439
1477
  }
1440
1478
  }
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, onMounted, onUnmounted, ref, watchEffect } from 'vue';
3
3
  import { speakerNum, transformSeconds, transformTime } from './utils';
4
- import { OOption, OSelect, OTab, OTabPane, type SelectValueT } from '@opensig/opendesign';
4
+ import { OOption, OScroller, OSelect, OTab, OTabPane, type SelectValueT } from '@opensig/opendesign';
5
5
  import OMeetingPlaybackSubtitles from './components/OMeetingPlaybackSubtitles.vue';
6
6
  import OMeetingPlaybackVideo from './components/OMeetingPlaybackVideo.vue';
7
7
  import { useI18n } from '@/i18n';
@@ -200,10 +200,10 @@ onUnmounted(() => {
200
200
  />
201
201
  </div>
202
202
  <div class="info-wrapper">
203
- <OTab v-model="tab">
203
+ <OTab v-model="tab" :max-show="9999">
204
204
  <OTabPane v-for="t in tabOptions" :key="t.value" :value="t.value" :label="t.label" />
205
205
  </OTab>
206
- <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 {