@opendesign-plus-test/components 0.0.1-rc.42 → 0.0.1-rc.45

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 (109) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +132 -112
  3. package/dist/components/OHeaderSearch.vue.d.ts +824 -506
  4. package/dist/components/OSourceCode.vue.d.ts +4 -6
  5. package/dist/components/activity/OActivityApproval.vue.d.ts +6 -10
  6. package/dist/components/activity/OActivityForm.vue.d.ts +3 -5
  7. package/dist/components/activity/OMyActivityCalendar.vue.d.ts +100 -46
  8. package/dist/components/activity/index.d.ts +56 -33
  9. package/dist/components/activity/types.d.ts +8 -1
  10. package/dist/components/events/config.d.ts +5 -18
  11. package/dist/components/events/types.d.ts +4 -1
  12. package/dist/components/header/OHeaderMobile.vue.d.ts +18 -11
  13. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +4 -1
  14. package/dist/components/header/index.d.ts +12 -5
  15. package/dist/components/header/types.d.ts +4 -0
  16. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +8 -12
  17. package/dist/components/meeting/OMeetingForm.vue.d.ts +3 -5
  18. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +45 -0
  19. package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +100 -46
  20. package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +1 -1
  21. package/dist/components/meeting/index.d.ts +817 -0
  22. package/dist/components/meeting/types.d.ts +82 -17
  23. package/dist/components/meeting/utils.d.ts +1 -1
  24. package/dist/components/search/OSearchInput.vue.d.ts +1003 -0
  25. package/dist/components/search/composables/useImageSearch.d.ts +48 -0
  26. package/dist/components/search/composables/useKeywordHighlight.d.ts +2 -0
  27. package/dist/components/search/composables/useSearchHistory.d.ts +14 -0
  28. package/dist/components/search/index.d.ts +590 -0
  29. package/dist/components/search/internal/HighlightText.vue.d.ts +9 -0
  30. package/dist/components/search/internal/SearchImageInput.vue.d.ts +716 -0
  31. package/dist/components/search/internal/SearchPanel.vue.d.ts +100 -0
  32. package/dist/components/search/types.d.ts +20 -0
  33. package/dist/components.cjs.js +43 -43
  34. package/dist/components.css +1 -1
  35. package/dist/components.es.js +11681 -10636
  36. package/dist/index.d.ts +1 -0
  37. package/package.json +3 -3
  38. package/src/assets/svg-icons/icon-delete-hover.svg +4 -0
  39. package/src/assets/svg-icons/icon-delete.svg +5 -1
  40. package/src/assets/svg-icons/icon-image-close.svg +4 -0
  41. package/src/assets/svg-icons/icon-image-upload.svg +3 -0
  42. package/src/assets/svg-icons/icon-image-zoomin.svg +3 -0
  43. package/src/assets/svg-icons/icon-refresh.svg +3 -0
  44. package/src/components/OBanner.vue +18 -18
  45. package/src/components/OCookieNotice.vue +21 -21
  46. package/src/components/OFooter.vue +18 -17
  47. package/src/components/OHeaderSearch.vue +402 -420
  48. package/src/components/OHeaderUser.vue +3 -2
  49. package/src/components/OSection.vue +4 -4
  50. package/src/components/OSourceCode.vue +8 -10
  51. package/src/components/activity/OActivityApproval.vue +32 -32
  52. package/src/components/activity/OActivityForm.vue +5 -5
  53. package/src/components/activity/OMyActivityCalendar.vue +66 -50
  54. package/src/components/activity/config.ts +1 -1
  55. package/src/components/activity/types.ts +8 -1
  56. package/src/components/common/ContentWrapper.vue +3 -3
  57. package/src/components/common/MoreText.vue +1 -1
  58. package/src/components/common/ThFilter.vue +7 -7
  59. package/src/components/element-plus/OElCookieNotice.vue +27 -27
  60. package/src/components/events/OEventsApply.vue +44 -44
  61. package/src/components/events/OEventsCalendar.vue +14 -14
  62. package/src/components/events/OEventsList.vue +53 -26
  63. package/src/components/events/config.ts +1 -1
  64. package/src/components/events/types.ts +4 -1
  65. package/src/components/header/OHeader.vue +2 -2
  66. package/src/components/header/OHeaderMobile.vue +8 -1
  67. package/src/components/header/components/HeaderContent.vue +67 -63
  68. package/src/components/header/components/HeaderNav.vue +4 -4
  69. package/src/components/header/components/HeaderNavMobile.vue +8 -5
  70. package/src/components/header/types.ts +4 -0
  71. package/src/components/meeting/OMeetingCalendar.vue +66 -54
  72. package/src/components/meeting/OMeetingForm.vue +70 -51
  73. package/src/components/meeting/OMeetingPlayback.vue +8 -8
  74. package/src/components/meeting/OMyMeetingCalendar.vue +56 -45
  75. package/src/components/meeting/OSigMeetingCalendar.vue +31 -28
  76. package/src/components/meeting/components/OMeetingCalendarList.vue +31 -26
  77. package/src/components/meeting/components/OMeetingCalendarSelector.vue +10 -6
  78. package/src/components/meeting/components/OMeetingDetail.vue +32 -18
  79. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +1 -1
  80. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +12 -12
  81. package/src/components/meeting/components/OSigMeetingAside.vue +8 -9
  82. package/src/components/meeting/types.ts +88 -17
  83. package/src/components/search/OSearchInput.vue +463 -0
  84. package/src/components/search/composables/useImageSearch.ts +157 -0
  85. package/src/components/search/composables/useKeywordHighlight.ts +30 -0
  86. package/src/components/search/composables/useSearchHistory.ts +75 -0
  87. package/src/components/search/index.ts +23 -0
  88. package/src/components/search/internal/HighlightText.vue +37 -0
  89. package/src/components/search/internal/SearchImageInput.vue +488 -0
  90. package/src/components/search/internal/SearchPanel.vue +430 -0
  91. package/src/components/search/types.ts +25 -0
  92. package/src/draft/Banner.vue +6 -6
  93. package/src/draft/ButtonCards.vue +1 -1
  94. package/src/draft/Feature.vue +6 -6
  95. package/src/draft/Footer.vue +29 -22
  96. package/src/draft/HorizontalAnchor.vue +4 -4
  97. package/src/draft/ItemSwiper.vue +2 -2
  98. package/src/draft/Logo.vue +3 -3
  99. package/src/draft/LogoCard.vue +2 -2
  100. package/src/draft/MultiCard.vue +1 -1
  101. package/src/draft/MultiIconCard.vue +1 -1
  102. package/src/draft/OInfoCard.vue +4 -4
  103. package/src/draft/Section.vue +4 -4
  104. package/src/draft/SingleTabCard.vue +1 -1
  105. package/src/draft/SliderCard.vue +4 -3
  106. package/src/i18n/en.ts +10 -0
  107. package/src/i18n/zh.ts +10 -0
  108. package/src/index.ts +1 -0
  109. package/vite.config.ts +4 -3
@@ -3,7 +3,7 @@ import { OCollapse, OCollapseItem, ODivider, OIcon, OLink, OTag, useMessage } fr
3
3
  import OMeetingDetail from './OMeetingDetail.vue';
4
4
  import { computed, nextTick, ref, watch } from 'vue';
5
5
  import IconCopy from '~icons/meeting/icon-copy.svg';
6
- import { MeetingGroupType, MeetingItemT } from '../types.ts';
6
+ import { CalendarDataType, CycleSubItemT, MeetingGroupType, MeetingItemT, ObsDataItemT } from '../types.ts';
7
7
  import IconChevronRight from '~icons/components/icon-chevron-right.svg';
8
8
  import { INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK } from '../config.ts';
9
9
  import { formatDate } from '../utils.ts';
@@ -14,14 +14,14 @@ const { activityTypeMap } = useActivityConfig();
14
14
 
15
15
  const props = withDefaults(defineProps<{
16
16
  list: MeetingItemT[];
17
- groupType: MeetingGroupType;
17
+ groupType?: MeetingGroupType;
18
18
  }>(), {
19
19
  list: () => [],
20
20
  });
21
21
  const { t, locale, getConfig, getPointStr } = useMeetingConfig();
22
- const detailRefs = ref([]);
22
+ const detailRefs = ref<any[]>([]);
23
23
  const message = useMessage(null);
24
- const copyInfo = async (idx) => {
24
+ const copyInfo = async (idx: number) => {
25
25
  const instance = detailRefs.value[idx];
26
26
  await instance.copyInfo();
27
27
  message.success({
@@ -29,7 +29,7 @@ const copyInfo = async (idx) => {
29
29
  });
30
30
  };
31
31
 
32
- const collapseNames = ref([]);
32
+ const collapseNames = ref<number[]>([]);
33
33
  const i18n = computed(() => {
34
34
  return {
35
35
  SIG_GROUP: `${ props.groupType === MeetingGroupType.GROUP ? t('meeting.groups') : t('meeting.sigs') }: `,
@@ -43,7 +43,7 @@ const i18n = computed(() => {
43
43
  });
44
44
 
45
45
  // -------------------- 监听尺寸变化 --------------------
46
- const meetInfoRef = ref();
46
+ const meetInfoRef = ref<HTMLDivElement[]>();
47
47
  const resizeObserver = new ResizeObserver((entries) => {
48
48
  for (let entry of entries) {
49
49
  const { height } = entry.contentRect;
@@ -70,11 +70,11 @@ watch(
70
70
  },
71
71
  );
72
72
 
73
- const computedList = computed(() => {
74
- return props.list.map((v) => {
73
+ const computedList = computed<any[]>(() => {
74
+ return props.list.map((v: any) => {
75
75
  const type = v.type;
76
76
  let dateRange = '';
77
- if (type !== 'meeting') {
77
+ if (type !== CalendarDataType.MEETING) {
78
78
  let activity_type = activityTypeMap.value.get(v.activity_type)?.label;
79
79
  if (v.start && v.end) {
80
80
  if (v.end_date === v.start_date) {
@@ -113,7 +113,7 @@ const computedList = computed(() => {
113
113
  let timeRange = `${ start } - ${ end }`;
114
114
  let replay_url = null;
115
115
  let hasObsData = false;
116
- const obsData = v.obs_data?.filter((v) => v.text_video_url) || [];
116
+ const obsData = v.obs_data?.filter((v: ObsDataItemT) => v.text_video_url) || [];
117
117
 
118
118
  if (is_cycle) {
119
119
  let cycleType = '';
@@ -122,13 +122,13 @@ const computedList = computed(() => {
122
122
  }
123
123
  if (cycle_type === INTERVAL_WEEK) {
124
124
  if (cycle_interval > 1) {
125
- cycleType = t('meeting.cycleWeek.other', [getPointStr(cycle_type, cycle_point), cycle_interval]);
125
+ cycleType = t('meeting.cycleWeek.other', [getPointStr(cycle_type, cycle_point as unknown as number[]), cycle_interval]);
126
126
  } else {
127
- cycleType = t('meeting.cycleWeek.one', [getPointStr(cycle_type, cycle_point)]);
127
+ cycleType = t('meeting.cycleWeek.one', [getPointStr(cycle_type, cycle_point as unknown as number[])]);
128
128
  }
129
129
  }
130
130
  if (cycle_type === INTERVAL_MONTH) {
131
- cycleType = t('meeting.cycleMonth', [getPointStr(cycle_type, cycle_point)]);
131
+ cycleType = t('meeting.cycleMonth', [getPointStr(cycle_type, cycle_point as unknown as number[])]);
132
132
  }
133
133
  timeRange = t('meeting.cycleMeetingText2', {
134
134
  startDate: cycle_start_date,
@@ -137,7 +137,7 @@ const computedList = computed(() => {
137
137
  endTime: cycle_end,
138
138
  cycleType,
139
139
  });
140
- hasObsData = obsData.some((t) => t.sub_id === v.cycle_sub.find((z) => z.date === date)?.sub_id);
140
+ hasObsData = obsData.some((t: ObsDataItemT) => t.sub_id === v.cycle_sub.find((z: CycleSubItemT) => z.date === date)?.sub_id);
141
141
  } else {
142
142
  hasObsData = obsData.length > 0;
143
143
  }
@@ -251,13 +251,13 @@ const computedList = computed(() => {
251
251
  .o-collapse {
252
252
  --icon-size2: 24px;
253
253
  --icon-right: 12px;
254
- @include respond-to('<=pad') {
254
+ @include respond('<=pad') {
255
255
  --icon-size2: 20px;
256
256
  }
257
- @include respond-to('<=pad_v') {
257
+ @include respond('<=pad_v') {
258
258
  --icon-right: 8px;
259
259
  }
260
- @include respond-to('phone') {
260
+ @include respond('phone') {
261
261
  --icon-right: 4px;
262
262
  }
263
263
 
@@ -285,7 +285,7 @@ const computedList = computed(() => {
285
285
  color: var(--o-color-primary1);
286
286
  }
287
287
  }
288
- @include respond-to('<=pad_v') {
288
+ @include respond('<=pad_v') {
289
289
  &::after {
290
290
  width: calc(100% - 2 * 16px);
291
291
  }
@@ -302,7 +302,8 @@ const computedList = computed(() => {
302
302
 
303
303
  .o-collapse-item-title {
304
304
  .copy-icon {
305
- display: inline-flex;
305
+ opacity: 1;
306
+ visibility: visible;
306
307
  }
307
308
  }
308
309
  }
@@ -319,16 +320,17 @@ const computedList = computed(() => {
319
320
  padding: var(--o-gap-4) var(--o-gap-5);
320
321
  position: relative;
321
322
 
322
- @include respond-to('>pad_v') {
323
+ @include respond('>pad_v') {
323
324
  &:hover {
324
325
  .o-collapse-item-title {
325
326
  .copy-icon {
326
- display: inline-flex;
327
+ opacity: 1;
328
+ visibility: visible;
327
329
  }
328
330
  }
329
331
  }
330
332
  }
331
- @include respond-to('<=pad_v') {
333
+ @include respond('<=pad_v') {
332
334
  padding: 12px 16px;
333
335
  }
334
336
 
@@ -343,11 +345,14 @@ const computedList = computed(() => {
343
345
 
344
346
  .meet-title-left {
345
347
  flex-grow: 1;
348
+ min-width: 0;
346
349
  }
347
350
 
348
351
  .copy-icon {
349
352
  flex-shrink: 0;
350
- display: none;
353
+ display: inline-flex;
354
+ opacity: 0;
355
+ visibility: hidden;
351
356
 
352
357
  &:hover {
353
358
  color: var(--o-color-primary1);
@@ -387,11 +392,11 @@ const computedList = computed(() => {
387
392
  border-radius: var(--o-radius-xs);
388
393
  @include tip1;
389
394
 
390
- @include respond-to('<=pad_v') {
395
+ @include respond('<=pad_v') {
391
396
  padding: 16px 16px 16px calc(var(--icon-right) + var(--icon-size2) + 16px - 12px);
392
397
 
393
398
  }
394
- @include respond-to('phone') {
399
+ @include respond('phone') {
395
400
  padding: 12px 16px;
396
401
  }
397
402
 
@@ -441,7 +446,7 @@ const computedList = computed(() => {
441
446
  color: var(--o-color-info2);
442
447
  @include text2;
443
448
 
444
- @include respond-to('<=pad_v') {
449
+ @include respond('<=pad_v') {
445
450
  @include h3;
446
451
  }
447
452
 
@@ -26,9 +26,9 @@ const getList = () => {
26
26
  };
27
27
 
28
28
  const list = computed(() => getList());
29
- const checked = ref([]);
30
- const temp = ref([]);
31
- const selectorRef = ref(null);
29
+ const checked = ref<number[]>([]);
30
+ const temp = ref<number[]>([]);
31
+ const selectorRef = ref<InstanceType<typeof ElSelect> | null>(null);
32
32
 
33
33
  const init = () => {
34
34
  checked.value = [...props.modelValue];
@@ -41,12 +41,16 @@ watchEffect(() => {
41
41
 
42
42
  const confirm = () => {
43
43
  emits('update:modelValue', temp.value);
44
- selectorRef.value.expanded = false;
44
+ if (selectorRef.value) {
45
+ selectorRef.value.expanded = false;
46
+ }
45
47
  };
46
48
 
47
49
  const cancel = () => {
48
50
  init();
49
- selectorRef.value.expanded = false;
51
+ if (selectorRef.value) {
52
+ selectorRef.value.expanded = false;
53
+ }
50
54
  };
51
55
 
52
56
  const clickItem = (val: number) => {
@@ -83,7 +87,7 @@ const removeTag = (val: number) => {
83
87
  size="large"
84
88
  multiple
85
89
  collapseTags
86
- maxCollapseTags="3"
90
+ :maxCollapseTags="3"
87
91
  :modelValue="checked"
88
92
  @remove-tag="removeTag"
89
93
  >
@@ -30,7 +30,7 @@ const infoList = computed(() =>
30
30
 
31
31
 
32
32
  const activityInfoList = computed(() => {
33
- const isLive = props.data.live_url?.length > 0;
33
+ const isLive = !!props.data.live_url?.length;
34
34
  return [
35
35
  { label: t('meeting.activityDetail2'), key: 'agenda', ellipsis: true },
36
36
  { label: t('meeting.startDate'), key: 'start_date_time' },
@@ -43,7 +43,7 @@ const activityInfoList = computed(() => {
43
43
  ].slice(0, props.from === 'home' ? 5 : 8);
44
44
  });
45
45
  const activityInfoApprovalList = computed(() => {
46
- const isLive = props.data.live_url?.length > 0;
46
+ const isLive = !!props.data.live_url?.length;
47
47
  return [
48
48
  { label: t('meeting.activityType'), key: 'activity_type', isType: true },
49
49
  { label: isLive ? t('meeting.livePlatform') : t('meeting.activityAddress'), key: isLive ? 'live_url' : 'address' },
@@ -57,14 +57,28 @@ const activityInfoApprovalList = computed(() => {
57
57
  ];
58
58
  });
59
59
 
60
- const columns = computed(() => {
61
- console.log(props.page);
60
+ interface ColumnItemT {
61
+ label: string;
62
+ key: string;
63
+ ellipsis?: boolean;
64
+ isLink?: boolean;
65
+ isRecord?: boolean;
66
+ isType?: boolean;
67
+ extra?: string;
68
+ }
69
+
70
+ const getField = (key: string) => (props.data as Record<string, any>)[key];
71
+
72
+ const columns = computed<ColumnItemT[]>(() => {
62
73
  if (props.data.type === CalendarDataType.EVENTS) {
63
74
  if (props.page === CalendarDataType.APPROVAL) {
64
75
  return activityInfoApprovalList.value;
65
76
  }
66
77
  return activityInfoList.value;
67
78
  }
79
+ if (props.data.type === CalendarDataType.SUMMIT) {
80
+ return activityInfoList.value;
81
+ }
68
82
  return infoList.value;
69
83
  });
70
84
 
@@ -73,7 +87,7 @@ const domRef = ref([]);
73
87
  const copyInfo = () => {
74
88
  try {
75
89
  let text = `${ t('meeting.meetingTopic') + props.data.topic }\n`;
76
- text += [...domRef.value].reduce((pre, cur) => `${ pre }${ cur.textContent }\n`, '');
90
+ text += [...domRef.value].reduce((pre, cur: HTMLDivElement) => `${ pre }${ cur.textContent }\n`, '');
77
91
  navigator.clipboard.writeText(text);
78
92
  return Promise.resolve();
79
93
  } catch (e) {
@@ -91,36 +105,36 @@ defineExpose({ copyInfo });
91
105
  v-for="(info, infoIdx) in columns"
92
106
  :key="infoIdx"
93
107
  :class="{
94
- 'record-item': info.isRecord && data[info.key]?.length,
108
+ 'record-item': info.isRecord && getField(info.key)?.length,
95
109
  'link-item': info.isLink,
96
- 'is-empty':!data[info.key]?.length,
110
+ 'is-empty':!getField(info.key)?.length,
97
111
  [`label-item_${data.id}`]: true,
98
112
  [`type_${data.type}`]: true,
99
113
  }"
100
114
  >
101
- <template v-if="data[info.key] && !info.isRecord">
115
+ <template v-if="getField(info.key) && !info.isRecord">
102
116
  <span class="label">{{ info.label }}</span>
103
- <MoreText :show="show" v-if="info.ellipsis" :text="data[info.key] || '-'" />
117
+ <MoreText :show="show" v-if="info.ellipsis" :text="getField(info.key) || '-'" />
104
118
  <OLink
105
119
  v-else-if="info.isLink"
106
120
  target="_blank"
107
121
  class="value"
108
122
  color="primary"
109
123
  hover-underline
110
- :href="data[info.key]"
124
+ :href="getField(info.key)"
111
125
  >
112
- {{ data[info.key] }}
126
+ {{ getField(info.key) }}
113
127
  </OLink>
114
- <span v-else-if="info.key === 'platform'">{{ getPlatformLabel(data[info.key]) }}</span>
128
+ <span v-else-if="info.key === 'platform'">{{ getPlatformLabel(getField(info.key)) }}</span>
115
129
  <span v-else class="value">
116
- <i v-if="info.extra" class="extra">{{ data[info.extra] }}</i>
117
- {{ data[info.key] || '-' }}
130
+ <i v-if="info.extra" class="extra">{{ getField(info.extra) }}</i>
131
+ {{ getField(info.key) || '-' }}
118
132
  </span>
119
133
  </template>
120
- <template v-if="info.isRecord && data[info.key]?.length">
134
+ <template v-if="info.isRecord && getField(info.key)?.length">
121
135
  <span class="label">{{ info.label }}</span>
122
136
  <div>
123
- <p v-for="re in data[info.key]" :key="re.create_time" class="value">
137
+ <p v-for="re in getField(info.key)" :key="re.create_time" class="value">
124
138
  {{ re.reason }}&nbsp;&nbsp;
125
139
  {{ formatDate(re.create_time, 'YYYY/MM/DD HH:mm:ss') }}
126
140
  {{ re.action === 1 ? t('meeting.approveReview') : t('meeting.rejectReview') }}
@@ -142,7 +156,7 @@ defineExpose({ copyInfo });
142
156
  font-size: 14px;
143
157
  gap: var(--o-gap-5);
144
158
 
145
- @include respond-to('<=pad_v') {
159
+ @include respond('<=pad_v') {
146
160
  font-size: 12px;
147
161
  gap: var(--o-gap-2);
148
162
  }
@@ -219,7 +233,7 @@ defineExpose({ copyInfo });
219
233
  justify-content: flex-end;
220
234
  gap: var(--o-gap-2);
221
235
 
222
- @include respond-to('phone') {
236
+ @include respond('phone') {
223
237
  border-top: 1px solid var(--o-color-control4);
224
238
  padding-top: var(--o-gap-2);
225
239
  position: static;
@@ -475,7 +475,7 @@ watch(
475
475
 
476
476
  .captions-tab {
477
477
  .captions-scroller {
478
- @include respond-to('<=pad_v') {
478
+ @include respond('<=pad_v') {
479
479
  max-height: 600px;
480
480
  }
481
481
  }
@@ -26,7 +26,7 @@ const closeSpeakerMenu = () => {
26
26
  speakerMenuVisible.value = false;
27
27
  };
28
28
 
29
- const handleCue = (textTrack, init = false) => {
29
+ const handleCue = (textTrack: any, init = false) => {
30
30
  const player = props.instance;
31
31
  if (!player) return;
32
32
  // 修改字幕
@@ -133,7 +133,7 @@ const videoInit = async () => {
133
133
  FullscreenToggle: true,
134
134
  },
135
135
  },
136
- });
136
+ }) as unknown as any;
137
137
  emits('getInstance', player);
138
138
  // 加载视频
139
139
  player.src(props.src);
@@ -150,10 +150,10 @@ const videoInit = async () => {
150
150
 
151
151
  // 添加自定义控制字幕的按钮
152
152
  class CustomSubsCapsButton extends videojs.getComponent('Button') {
153
- constructor(player, options) {
153
+ constructor(player: any, options: object) {
154
154
  super(player, options);
155
155
  this.addClass('vjs-subtitle-toggle-button', 'vjs-subtitle-hidden');
156
- this.controlText('Toggle Subtitles');
156
+ (this as any).controlText('Toggle Subtitles');
157
157
  }
158
158
 
159
159
  buildCSSClass() {
@@ -161,7 +161,7 @@ const videoInit = async () => {
161
161
  }
162
162
 
163
163
  handleClick() {
164
- const tracks = this.player().textTracks();
164
+ const tracks = this.player().textTracks() as unknown as any[];
165
165
  for (let i = 0; i < tracks.length; i++) {
166
166
  if (tracks[i].kind === 'subtitles') {
167
167
  handleCue(tracks[i], true);
@@ -181,14 +181,14 @@ const videoInit = async () => {
181
181
 
182
182
  if (props.vtt) {
183
183
  videojs.registerComponent('SubtitleToggleButton', CustomSubsCapsButton);
184
- if (!player.controlBar.children_.some((v) => v.name_ === 'SubtitleToggleButton')) {
184
+ if (!player.controlBar.children_.some((v: any) => v.name_ === 'SubtitleToggleButton')) {
185
185
  player.controlBar.addChild('SubtitleToggleButton', {}, 8);
186
186
  }
187
187
  }
188
188
 
189
189
  // 动态修改字幕
190
190
  const textTracks = player?.textTracks().tracks_;
191
- textTracks.forEach((textTrack) => {
191
+ textTracks.forEach((textTrack: any) => {
192
192
  textTrack?.addEventListener('cuechange', () => {
193
193
  handleCue(textTrack);
194
194
  });
@@ -652,12 +652,12 @@ defineExpose({
652
652
 
653
653
  .vjs-progress-holder {
654
654
  margin: 0;
655
- background: rgba(var(--o-mixedgray-1), 0.3);
655
+ background: rgba(var(--o-grey-1), 0.3);
656
656
  }
657
657
 
658
658
  .vjs-load-progress {
659
659
  div {
660
- background: rgba(var(--o-mixedgray-1), 0.5);
660
+ background: rgba(var(--o-grey-1), 0.5);
661
661
  }
662
662
  }
663
663
 
@@ -724,7 +724,7 @@ defineExpose({
724
724
  background-repeat: no-repeat;
725
725
  background-size: cover;
726
726
  border: 0.5px solid rgba(var(--o-white), 0.6);
727
- background-color: rgba(var(--o-mixedgray-1), 0.2);
727
+ background-color: rgba(var(--o-grey-1), 0.2);
728
728
 
729
729
  .vjs-icon-placeholder::before {
730
730
  content: none;
@@ -733,8 +733,8 @@ defineExpose({
733
733
 
734
734
  @include hover {
735
735
  .vjs-big-play-button {
736
- border: 0.5px solid rgba(var(--o-mixedgray-1), 0.6);
737
- background-color: rgba(var(--o-mixedgray-1), 0.2);
736
+ border: 0.5px solid rgba(var(--o-grey-1), 0.6);
737
+ background-color: rgba(var(--o-grey-1), 0.2);
738
738
  }
739
739
  }
740
740
  }
@@ -1,6 +1,5 @@
1
1
  <script setup lang="ts">
2
2
  import { OIcon, OIconArrowLeft, OIconArrowRight } from '@opensig/opendesign';
3
- import IconMeetinging from '~icons/meeting/icon-meet.svg';
4
3
  import { useMeetingConfig } from '@/components/meeting/composables/useMeetingConfig';
5
4
  import { CalendarDataType } from '@/components/meeting';
6
5
 
@@ -18,11 +17,11 @@ const props = defineProps<{
18
17
  const STEP = 1;
19
18
 
20
19
  const emits = defineEmits(['click-date', 'change-month']);
21
- const clickDate = (date) => {
20
+ const clickDate = (date: string) => {
22
21
  emits('click-date', date);
23
22
  };
24
23
 
25
- const changeMonth = (step) => {
24
+ const changeMonth = (step: number) => {
26
25
  if (props.current + step >= props.total || props.current + step < 0) return;
27
26
  emits('change-month', step);
28
27
  };
@@ -85,17 +84,17 @@ const changeMonth = (step) => {
85
84
  display: flex;
86
85
  flex-direction: column;
87
86
  border-right: 1px solid var(--o-color-control4);
88
- @include respond-to('<=pad') {
87
+ @include respond('<=pad') {
89
88
  padding: var(--o-gap-4);
90
89
  border-right: none;
91
90
  }
92
- @include respond-to('phone') {
91
+ @include respond('phone') {
93
92
  padding: 16px;
94
93
  .title {
95
94
  margin-bottom: var(--o-gap-2);
96
95
  }
97
96
  }
98
- @include respond-to('<=pad_v') {
97
+ @include respond('<=pad_v') {
99
98
  width: 100%;
100
99
  }
101
100
 
@@ -113,7 +112,7 @@ const changeMonth = (step) => {
113
112
  display: grid;
114
113
  grid-template-columns: repeat(2, 1fr);
115
114
 
116
- @include respond-to('<=pad_v') {
115
+ @include respond('<=pad_v') {
117
116
  display: flex;
118
117
  }
119
118
 
@@ -186,11 +185,11 @@ const changeMonth = (step) => {
186
185
  }
187
186
  }
188
187
 
189
- @include respond-to('<=pad_v') {
188
+ @include respond('<=pad_v') {
190
189
  .day-item {
191
190
  }
192
191
  }
193
- @include respond-to('<=pad_v') {
192
+ @include respond('<=pad_v') {
194
193
  .day-item {
195
194
  width: min(128px, calc((100% - var(--o-gap-2)) / 2));
196
195
  }