@opendesign-plus/components 0.0.1-rc.21 → 0.0.1-rc.23

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 (65) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +3 -3
  3. package/dist/components/OHeaderSearch.vue.d.ts +58 -14
  4. package/dist/components/OThemeSwitcher.vue.d.ts +2 -5
  5. package/dist/components/activity/{OMyActivityCalendar.vue.d.ts → OActivityMyCalendar.vue.d.ts} +86 -24
  6. package/dist/components/activity/index.d.ts +45 -14
  7. package/dist/components/meeting/{OMyMeetingCalendar.vue.d.ts → OMeetingMyCalendar.vue.d.ts} +86 -24
  8. package/dist/components/meeting/index.d.ts +15 -301
  9. package/dist/components.cjs.js +36 -36
  10. package/dist/components.css +1 -1
  11. package/dist/components.es.js +7156 -7126
  12. package/package.json +3 -3
  13. package/src/assets/styles/element-plus.scss +204 -0
  14. package/src/components/OBanner.vue +18 -18
  15. package/src/components/OCookieNotice.vue +21 -21
  16. package/src/components/OFooter.vue +18 -17
  17. package/src/components/OHeaderSearch.vue +19 -19
  18. package/src/components/OHeaderUser.vue +3 -2
  19. package/src/components/OSection.vue +4 -4
  20. package/src/components/OThemeSwitcher.vue +51 -27
  21. package/src/components/activity/OActivityApproval.vue +14 -10
  22. package/src/components/activity/OActivityForm.vue +7 -5
  23. package/src/components/activity/{OMyActivityCalendar.vue → OActivityMyCalendar.vue} +69 -47
  24. package/src/components/activity/config.ts +1 -1
  25. package/src/components/activity/index.ts +4 -4
  26. package/src/components/common/ContentWrapper.vue +3 -3
  27. package/src/components/element-plus/OElCookieNotice.vue +26 -26
  28. package/src/components/events/OEventsApply.vue +46 -45
  29. package/src/components/events/OEventsCalendar.vue +21 -19
  30. package/src/components/events/OEventsList.vue +22 -20
  31. package/src/components/header/OHeader.vue +2 -2
  32. package/src/components/header/components/HeaderContent.vue +60 -60
  33. package/src/components/header/components/HeaderNav.vue +4 -4
  34. package/src/components/header/components/HeaderNavMobile.vue +3 -3
  35. package/src/components/meeting/OMeetingCalendar.vue +42 -39
  36. package/src/components/meeting/OMeetingForm.vue +32 -26
  37. package/src/components/meeting/{OMyMeetingCalendar.vue → OMeetingMyCalendar.vue} +97 -62
  38. package/src/components/meeting/OMeetingPlayback.vue +36 -12
  39. package/src/components/meeting/{OSigMeetingCalendar.vue → OMeetingSigCalendar.vue} +9 -6
  40. package/src/components/meeting/components/OMeetingCalendarList.vue +12 -12
  41. package/src/components/meeting/components/OMeetingCalendarSelector.vue +1 -1
  42. package/src/components/meeting/components/OMeetingDetail.vue +2 -2
  43. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +11 -10
  44. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +11 -11
  45. package/src/components/meeting/components/{OSigMeetingAside.vue → OMeetingSigAside.vue} +7 -7
  46. package/src/components/meeting/config.ts +1 -1
  47. package/src/components/meeting/index.ts +6 -6
  48. package/src/draft/Banner.vue +6 -6
  49. package/src/draft/ButtonCards.vue +1 -1
  50. package/src/draft/Feature.vue +6 -6
  51. package/src/draft/Footer.vue +29 -22
  52. package/src/draft/HorizontalAnchor.vue +4 -4
  53. package/src/draft/ItemSwiper.vue +2 -2
  54. package/src/draft/Logo.vue +3 -3
  55. package/src/draft/LogoCard.vue +2 -2
  56. package/src/draft/MultiCard.vue +1 -1
  57. package/src/draft/MultiIconCard.vue +1 -1
  58. package/src/draft/OInfoCard.vue +4 -4
  59. package/src/draft/Section.vue +4 -4
  60. package/src/draft/SingleTabCard.vue +1 -1
  61. package/src/draft/SliderCard.vue +4 -3
  62. package/src/i18n/en.ts +2 -2
  63. package/vite.config.ts +2 -2
  64. /package/dist/components/meeting/{OSigMeetingCalendar.vue.d.ts → OMeetingSigCalendar.vue.d.ts} +0 -0
  65. /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,7 +20,7 @@ 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
25
  import IconMeeting from '~icons/meeting/icon-meet.svg';
26
26
  import { INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK } from './config.ts';
@@ -40,7 +40,7 @@ const list = ref<MeetingItemT[]>([]); // 列表数据
40
40
  const originList = ref<MeetingItemT[]>([]); // 原始数据
41
41
  const canLoadMore = computed(() => total.value === null || originList.value.length < total.value);
42
42
  const reloadAll = ref(false); // 是否需要清空数据
43
- const { t, locale, getPointStr, getWeekFromDate } = useMeetingConfig();
43
+ const { t, locale, getPointStr, getConfig, getWeekFromDate } = useMeetingConfig();
44
44
  const isEn = computed(() => locale.value === Locales.EN);
45
45
 
46
46
  const props = withDefaults(defineProps<{
@@ -578,6 +578,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
578
578
  expired: dayjs(formatDate()).isAfter(dayjs(data.day)),
579
579
  'all-deleted': calcIfAllDeleted(data.day),
580
580
  }"
581
+ :style="{
582
+ '--dot-bg': `${getConfig(CalendarDataType.MEETING, 'color')}`
583
+ }"
581
584
  >
582
585
  <div class="date-cell-text">
583
586
  {{ Number(data.day.split('-')[2]) }}
@@ -634,9 +637,14 @@ const cancelActions = computed<DialogActionT[]>(() => {
634
637
  >
635
638
  <template #title>
636
639
  <div class="item-header-left">
637
- <div class="meeting-icon">
640
+ <div
641
+ class="meeting-icon"
642
+ :style="{
643
+ backgroundColor: `${getConfig(CalendarDataType.MEETING, 'color')}`
644
+ }"
645
+ >
638
646
  <OIcon>
639
- <IconMeeting />
647
+ <component :is="getConfig(CalendarDataType.MEETING, 'icon')" />
640
648
  </OIcon>
641
649
  </div>
642
650
  <div class="header-info">
@@ -667,6 +675,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
667
675
  </div>
668
676
  <div class="item-header-right" v-if="!row.is_delete">
669
677
  <OLink
678
+ :hover-underline="false"
670
679
  v-if="!row.isExpired"
671
680
  target="_blank"
672
681
  :href="row.join_url"
@@ -680,7 +689,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
680
689
  </template>
681
690
  </OLink>
682
691
  <template v-else>
683
- <OLink target="_blank" v-if="row.etherpad" :href="row.etherpad">
692
+ <OLink
693
+ :hover-underline="false"
694
+ target="_blank"
695
+ v-if="row.etherpad"
696
+ :href="row.etherpad"
697
+ >
684
698
  {{ t('meeting.meetingSummary') }}
685
699
  <template #suffix>
686
700
  <OIcon>
@@ -689,6 +703,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
689
703
  </template>
690
704
  </OLink>
691
705
  <OLink
706
+ :hover-underline="false"
692
707
  target="_blank"
693
708
  :href="`/${locale}/video/${row.group_name}/${row.mid}/${row.date}`"
694
709
  v-if="row.hasObsData">
@@ -713,10 +728,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
713
728
  from="my"
714
729
  />
715
730
  <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>
731
+ <OButton color="normal" variant="text" @click="handleItem(row, 'edit')">
732
+ {{ t('meeting.editMeeting') }}
733
+ </OButton>
734
+ <OButton color="normal" variant="text" @click="handleItem(row, 'cancel')">
735
+ {{ t('meeting.cancelMeeting') }}
736
+ </OButton>
720
737
  </div>
721
738
  </div>
722
739
  </OCollapseItem>
@@ -745,7 +762,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
745
762
  >
746
763
  <template #header>
747
764
  {{
748
- t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel2')])
765
+ t('meeting.meetingHandleText', [handleDialogType === 'edit' ? t('meeting.edit') : t('meeting.cancel')])
749
766
  }}
750
767
  </template>
751
768
  <ORadioGroup v-model="handleType">
@@ -762,6 +779,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
762
779
 
763
780
  <style lang="scss">
764
781
  .o-my-meeting-calendar {
782
+ --meeting-card-radius: var(--o-radius-xs);
783
+ --meeting-input-radius: var(--o-radius-xs);
784
+ --meeting-cell-radius: var(--o-radius-xs);
765
785
 
766
786
  .header {
767
787
  display: flex;
@@ -787,11 +807,11 @@ const cancelActions = computed<DialogActionT[]>(() => {
787
807
  gap: var(--o-gap-4);
788
808
  height: 100%;
789
809
  --phone-padding-top: 0;
790
- @include respond-to('pad_v') {
810
+ @include respond('pad_v') {
791
811
  flex-direction: column;
792
812
  gap: var(--o-gap-4);
793
813
  }
794
- @include respond-to('phone') {
814
+ @include respond('phone') {
795
815
  flex-direction: column;
796
816
  gap: var(--o-gap-3);
797
817
  --phone-padding-top: calc(var(--o-gap-5) + var(--o-gap-3) + var(--o-gap-3));
@@ -831,7 +851,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
831
851
  }
832
852
  }
833
853
 
834
- @include respond-to('phone') {
854
+ @include respond('phone') {
835
855
  padding-top: var(--o-gap-7);
836
856
  background-color: var(--o-color-fill1);
837
857
  padding-bottom: var(--o-gap-4);
@@ -850,7 +870,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
850
870
  width: 334px;
851
871
  background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent);
852
872
 
853
- @include respond-to('pad_h') {
873
+ @include respond('pad_h') {
854
874
  .el-calendar {
855
875
  .el-calendar__body {
856
876
  padding-left: 12px;
@@ -868,16 +888,16 @@ const cancelActions = computed<DialogActionT[]>(() => {
868
888
  }
869
889
  }
870
890
  }
871
- @include respond-to('pad_v') {
891
+ @include respond('pad_v') {
872
892
  width: 100%;
873
893
  }
874
- @include respond-to('phone') {
894
+ @include respond('phone') {
875
895
  display: none;
876
896
  }
877
897
  .el-calendar {
878
898
  min-height: 460px;
879
899
  height: calc(100% - 54px);
880
- border-radius: var(--o-radius-xs);
900
+ border-radius: var(--meeting-card-radius);
881
901
  background-color: transparent;
882
902
 
883
903
  .el-calendar__header {
@@ -911,6 +931,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
911
931
 
912
932
  .el-calendar__body {
913
933
  .el-calendar-table {
934
+ display: table;
914
935
 
915
936
  th {
916
937
  text-align: center;
@@ -955,8 +976,9 @@ const cancelActions = computed<DialogActionT[]>(() => {
955
976
  .date-cell-text {
956
977
  font-size: 14px;
957
978
  line-height: 36px;
958
- border-radius: var(--o-radius-xs);
979
+ border-radius: var(--meeting-cell-radius);
959
980
  background-color: var(--o-color-control2-light);
981
+ border: 1px solid transparent;
960
982
  }
961
983
 
962
984
  .date-cell-text {
@@ -995,22 +1017,22 @@ const cancelActions = computed<DialogActionT[]>(() => {
995
1017
 
996
1018
  &.is-selected {
997
1019
  .date-cell-text {
998
- color: #fff;
999
- background-color: var(--o-color-primary1);
1020
+ background-color: var(--o-color-control3-light);
1021
+ border: 1px solid var(--o-color-primary1);
1000
1022
  }
1001
1023
  }
1002
1024
 
1003
1025
  &.clickable {
1004
1026
  &::after {
1005
- background-color: var(--o-color-primary1);
1027
+ background-color: var(--dot-bg);
1006
1028
  }
1007
1029
 
1008
1030
  &.expired::after {
1009
- background-color: rgb(var(--o-mixedgray-6));
1031
+ background-color: rgb(var(--o-grey-6));
1010
1032
  }
1011
1033
 
1012
1034
  &.all-deleted::after {
1013
- background-color: rgb(var(--o-mixedgray-6));
1035
+ background-color: rgb(var(--o-grey-6));
1014
1036
  }
1015
1037
  }
1016
1038
  }
@@ -1028,7 +1050,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1028
1050
  flex-grow: 1;
1029
1051
  background-color: var(--o-color-fill2);
1030
1052
 
1031
- @include respond-to('phone') {
1053
+ @include respond('phone') {
1032
1054
  margin-top: calc(var(--phone-padding-top) - var(--o-gap-4));
1033
1055
  }
1034
1056
  &.is-empty {
@@ -1049,7 +1071,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1049
1071
  height: 100%;
1050
1072
  max-height: calc(var(--layout-left-height, 900px) - 4 * var(--o-gap-5) - var(--header-height) * 1px);
1051
1073
 
1052
- @include respond-to('phone') {
1074
+ @include respond('phone') {
1053
1075
  max-height: fit-content;
1054
1076
  }
1055
1077
 
@@ -1061,7 +1083,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1061
1083
  flex-grow: 1;
1062
1084
  }
1063
1085
 
1064
- @include respond-to('phone') {
1086
+ @include respond('phone') {
1065
1087
  padding-left: var(--o-gap-2);
1066
1088
  }
1067
1089
 
@@ -1090,13 +1112,13 @@ const cancelActions = computed<DialogActionT[]>(() => {
1090
1112
  width: 16px;
1091
1113
  height: 26px;
1092
1114
  position: relative;
1093
- @include respond-to('laptop') {
1115
+ @include respond('laptop') {
1094
1116
  height: 24px;
1095
1117
  }
1096
- @include respond-to('pad_h') {
1118
+ @include respond('pad_h') {
1097
1119
  height: 22px;
1098
1120
  }
1099
- @include respond-to('<=pad_v') {
1121
+ @include respond('<=pad_v') {
1100
1122
  height: 22px;
1101
1123
  }
1102
1124
 
@@ -1145,7 +1167,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1145
1167
  margin-bottom: var(--o-gap-2);
1146
1168
  color: var(--o-color-info1);
1147
1169
  @include text2;
1148
- @include respond-to('phone') {
1170
+ @include respond('phone') {
1149
1171
  padding-left: var(--o-gap-5);
1150
1172
  }
1151
1173
 
@@ -1160,7 +1182,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1160
1182
  .list-body {
1161
1183
  height: 100%;
1162
1184
 
1163
- @include respond-to('phone') {
1185
+ @include respond('phone') {
1164
1186
  height: fit-content;
1165
1187
  padding: var(--o-gap-4) !important;
1166
1188
  }
@@ -1176,7 +1198,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1176
1198
  --btn-color: var(--o-color-primary2);
1177
1199
  }
1178
1200
 
1179
- @include respond-to('phone') {
1201
+ @include respond('phone') {
1180
1202
  display: none;
1181
1203
  }
1182
1204
 
@@ -1207,62 +1229,63 @@ const cancelActions = computed<DialogActionT[]>(() => {
1207
1229
  display: flex;
1208
1230
  flex-direction: column;
1209
1231
 
1210
- .o-collapse-item {
1211
- &.last-item {
1212
- .o-collapse-item-header {
1213
- border-bottom: none;
1214
- }
1215
- }
1216
- }
1217
-
1218
1232
  .o-collapse-item-expanded + .o-collapse-item-expanded {
1219
1233
  margin-top: var(--o-gap-4);
1220
1234
  }
1221
1235
 
1222
1236
  .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
1237
  height: var(--o-gap-4);
1229
1238
  }
1230
1239
 
1240
+
1231
1241
  .o-collapse-item {
1232
1242
  padding: var(--o-gap-4) var(--o-gap-5);
1243
+ padding-bottom: calc(var(--o-gap-5) - var(--o-gap-4));
1233
1244
  border-top: none;
1234
- border-radius: var(--o-radius-xs);
1245
+ border-radius: var(--meeting-card-radius);
1235
1246
  transition: margin var(--o-easing-standard) var(--o-duration-s);
1236
1247
  --copy-display: none;
1237
1248
  --icon-size: 24px;
1238
- @include respond-to('<=pad_v') {
1249
+ @include respond('<=pad_v') {
1239
1250
  padding: var(--o-gap-3) var(--o-gap-4);
1240
1251
  }
1241
1252
 
1253
+ @include respond('phone') {
1254
+ --icon-size: 20px;
1255
+ }
1256
+
1242
1257
  &:hover {
1243
- @include respond-to('>pad_v') {
1258
+ .title-text {
1259
+ color: var(--o-color-primary1);
1260
+ }
1261
+ @include respond('>pad_v') {
1244
1262
  --copy-display: inline-flex;
1245
1263
  }
1246
1264
  }
1247
1265
 
1248
- @include respond-to('phone') {
1249
- --icon-size: 20px;
1266
+ &.last-item {
1267
+ .o-collapse-item-header {
1268
+ border-bottom: none;
1269
+ }
1250
1270
  }
1251
1271
  &.o-collapse-item-expanded {
1252
- @include respond-to('<=pad_v') {
1272
+ border-bottom: none;
1273
+ background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1274
+
1275
+ @include respond('<=pad_v') {
1253
1276
  --copy-display: inline-flex;
1254
1277
  }
1255
- }
1256
1278
 
1257
- &.o-collapse-item-expanded {
1258
- background-color: color-mix(in srgb, var(--o-color-control2-light) 40%, transparent) !important;
1279
+ .o-collapse-item-header {
1280
+ border-bottom: 1px solid var(--o-color-control4);
1281
+ }
1259
1282
  }
1260
1283
  }
1261
1284
 
1262
1285
  .o-collapse-item-header {
1263
- border-bottom: 1px solid var(--o-color-control4);
1286
+ border-bottom: none;
1264
1287
  padding-top: 0;
1265
- padding-bottom: var(--o-gap-2);
1288
+ padding-bottom: var(--o-gap-4);
1266
1289
  display: flex;
1267
1290
  align-items: center;
1268
1291
  gap: var(--o-gap-4);
@@ -1272,7 +1295,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1272
1295
  position: relative;
1273
1296
  top: 4px;
1274
1297
  flex-shrink: 0;
1275
- @include respond-to('phone') {
1298
+ @include respond('phone') {
1276
1299
  position: absolute;
1277
1300
  right: 0;
1278
1301
  width: 20px;
@@ -1297,7 +1320,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1297
1320
  gap: var(--o-gap-3);
1298
1321
  width: 100%;
1299
1322
  margin-bottom: var(--o-gap-2);
1300
- @include respond-to('phone') {
1323
+ @include respond('phone') {
1301
1324
  flex-grow: 1;
1302
1325
  width: 100%;
1303
1326
  align-self: stretch;
@@ -1334,7 +1357,11 @@ const cancelActions = computed<DialogActionT[]>(() => {
1334
1357
 
1335
1358
  &.is-delete,
1336
1359
  &.is-end {
1337
- color: var(--o-color-info3);
1360
+ color: var(--o-color-info4);
1361
+
1362
+ .title-text {
1363
+ color: var(--o-color-info4) !important;
1364
+ }
1338
1365
  }
1339
1366
 
1340
1367
  .tag-wrapper {
@@ -1380,10 +1407,12 @@ const cancelActions = computed<DialogActionT[]>(() => {
1380
1407
  padding-left: calc(var(--o-gap-3) + var(--icon-size));
1381
1408
  gap: var(--o-gap-4);
1382
1409
  width: 100%;
1410
+ font-weight: 400;
1383
1411
 
1384
1412
  .o-link {
1385
1413
  font-size: 14px;
1386
1414
  line-height: 21px;
1415
+ --link-color: var(--o-color-info2);
1387
1416
  }
1388
1417
  .o-icon {
1389
1418
  font-size: 16px;
@@ -1399,7 +1428,8 @@ const cancelActions = computed<DialogActionT[]>(() => {
1399
1428
  height: 18px;
1400
1429
  width: 18px;
1401
1430
  display: var(--copy-display);
1402
- @include respond-to('phone') {
1431
+ color: var(--o-color-info1);
1432
+ @include respond('phone') {
1403
1433
  bottom: var(--o-gap-2);
1404
1434
  right: calc(20px + var(--o-gap-2))
1405
1435
  }
@@ -1423,7 +1453,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1423
1453
  .meeting-detail {
1424
1454
  padding-left: calc(var(--o-gap-3) + var(--icon-size));
1425
1455
 
1426
- @include respond-to('phone') {
1456
+ @include respond('phone') {
1427
1457
  padding-left: 0;
1428
1458
  }
1429
1459
 
@@ -1431,10 +1461,15 @@ const cancelActions = computed<DialogActionT[]>(() => {
1431
1461
  border-top: 1px solid var(--o-color-control4);
1432
1462
  margin-top: var(--o-gap-5);
1433
1463
  padding-top: var(--o-gap-4);
1464
+ padding-bottom: var(--o-gap-4);
1434
1465
  display: flex;
1435
1466
  align-items: center;
1436
1467
  justify-content: flex-end;
1437
1468
  gap: var(--o-gap-5);
1469
+
1470
+ .o-link {
1471
+ --link-color: inherit;
1472
+ }
1438
1473
  }
1439
1474
  }
1440
1475
  }
@@ -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';
@@ -203,7 +203,7 @@ onUnmounted(() => {
203
203
  <OTab v-model="tab">
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="{
@@ -271,20 +271,27 @@ onUnmounted(() => {
271
271
  display: flex;
272
272
  gap: var(--grid-column-gutter);
273
273
  align-items: flex-start;
274
+ --meeting-card-radius: var(--o-radius-xs);
275
+ --meeting-input-radius: var(--o-radius-xs);
276
+ --meeting-cell-radius: var(--o-radius-xs);
274
277
 
275
- @include respond-to('<=pad_v') {
278
+ @include respond('<=pad_v') {
276
279
  flex-wrap: wrap;
277
280
  }
278
281
 
279
282
  .card-wrapper {
280
- border-radius: var(--o-radius-xs);
283
+ border-radius: var(--meeting-card-radius);
281
284
  background-color: var(--o-color-fill2);
282
285
  padding: var(--o-gap-5);
286
+
287
+ &.left-card {
288
+ padding-bottom: 0;
289
+ }
283
290
  }
284
291
 
285
292
  .left-card {
286
293
  width: 60%;
287
- @include respond-to('<=pad_v') {
294
+ @include respond('<=pad_v') {
288
295
  width: 100%;
289
296
  }
290
297
 
@@ -311,13 +318,14 @@ onUnmounted(() => {
311
318
  margin-top: var(--o-gap-5);
312
319
 
313
320
  .o-tab {
321
+ --tab-nav-justify: flex-start;
314
322
  .o-tab-navs {
315
323
  justify-content: flex-start;
316
324
  }
317
325
 
318
326
  .o-tab-nav {
319
327
  padding-bottom: var(--o-gap-4);
320
- @include respond-to('<=pad_v') {
328
+ @include respond('<=pad_v') {
321
329
  padding-bottom: var(--o-gap-2);
322
330
  }
323
331
  }
@@ -325,9 +333,23 @@ onUnmounted(() => {
325
333
 
326
334
  .tab-content {
327
335
  padding-top: var(--o-gap-4);
336
+ height: 280px;
337
+ padding-bottom: 0;
338
+ position: relative;
339
+
340
+ &::after {
341
+ height: 24px;
342
+ content: '';
343
+ position: absolute;
344
+ bottom: 0;
345
+ left: 0;
346
+ right: 0;
347
+ background: linear-gradient(180deg, rgba(var(--o-grey-1), 0), rgba(var(--o-grey-1), 1) 100%);
348
+ }
328
349
 
329
350
  .base-info {
330
- @include tip1;
351
+ padding-bottom: var(--o-gap-5);
352
+ @include text1;
331
353
 
332
354
  .info-item {
333
355
  display: flex;
@@ -340,6 +362,7 @@ onUnmounted(() => {
340
362
  span:first-child {
341
363
  width: 6em;
342
364
  flex-shrink: 0;
365
+ color: var(--o-color-info3);
343
366
  }
344
367
 
345
368
  span:last-child {
@@ -355,6 +378,7 @@ onUnmounted(() => {
355
378
  .subject-list {
356
379
  counter-reset: itemIndex;
357
380
  position: relative;
381
+ padding-bottom: var(--o-gap-5);
358
382
 
359
383
  .mouse-current-time {
360
384
  position: absolute;
@@ -362,7 +386,7 @@ onUnmounted(() => {
362
386
  padding: var(--o-gap-1);
363
387
  box-shadow: var(--o-shadow-1);
364
388
  z-index: 10;
365
- border-radius: var(--o-radius-xs);
389
+ border-radius: var(--meeting-cell-radius);
366
390
  transform: translateY(calc(0px - 100% - 4px));
367
391
  color: var(--o-color-info2);
368
392
  @include tip1;
@@ -402,7 +426,7 @@ onUnmounted(() => {
402
426
  right: 0;
403
427
  height: 4px;
404
428
  border-radius: 2px;
405
- background-color: var(--o-color-fill1);
429
+ background-color: var(--o-color-fill3);
406
430
  }
407
431
 
408
432
  .subject-progress {
@@ -417,7 +441,7 @@ onUnmounted(() => {
417
441
  position: absolute;
418
442
  top: 0;
419
443
  bottom: 0;
420
- border-radius: var(--o-radius-xs);
444
+ border-radius: var(--meeting-cell-radius);
421
445
  left: calc(var(--start) * 100%);
422
446
  right: calc((1 - var(--end)) * 100%);
423
447
  z-index: 9;
@@ -431,7 +455,7 @@ onUnmounted(() => {
431
455
 
432
456
  .right-card {
433
457
  width: 40%;
434
- @include respond-to('<=pad_v') {
458
+ @include respond('<=pad_v') {
435
459
  width: 100%;
436
460
  }
437
461
  }
@@ -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';
@@ -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,11 +308,14 @@ 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
- @include respond-to('phone') {
318
+ @include respond('phone') {
316
319
  .meeting-card-header {
317
320
  padding: 12px 16px 0;
318
321
 
@@ -339,7 +342,7 @@ onMounted(() => {
339
342
  align-items: center;
340
343
  padding: 12px 32px 0;
341
344
  @include text1;
342
- @include respond-to('<=pad') {
345
+ @include respond('<=pad') {
343
346
  padding: 12px 16px 0;
344
347
  }
345
348
 
@@ -405,7 +408,7 @@ onMounted(() => {
405
408
  .list-content {
406
409
  flex-grow: 1;
407
410
  height: 400px;
408
- @include respond-to('<=pad_v') {
411
+ @include respond('<=pad_v') {
409
412
  height: auto;
410
413
  }
411
414
  }