@opendesign-plus/components 0.0.1-rc.24 → 0.0.1-rc.26

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 (80) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +111 -88
  3. package/dist/components/OHeaderSearch.vue.d.ts +814 -534
  4. package/dist/components/OHeaderUser.vue.d.ts +1 -1
  5. package/dist/components/OLanguageSwitcher.vue.d.ts +49 -0
  6. package/dist/components/OThemeSwitcher.vue.d.ts +2 -5
  7. package/dist/components/activity/OActivityMyCalendar.vue.d.ts +4 -4
  8. package/dist/components/activity/index.d.ts +2 -2
  9. package/dist/components/banner/OBanner.vue.d.ts +13 -0
  10. package/dist/components/banner/OBannerContent.vue.d.ts +7 -0
  11. package/dist/components/banner/index.d.ts +68 -0
  12. package/dist/components/banner/types.d.ts +31 -0
  13. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +5 -3
  14. package/dist/components/meeting/OMeetingMyCalendar.vue.d.ts +4 -4
  15. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +50 -1
  16. package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +1 -1
  17. package/dist/components/meeting/components/OMeetingPlaybackSubtitles.vue.d.ts +16 -1
  18. package/dist/components/meeting/composables/useMeetingConfig.d.ts +1 -1
  19. package/dist/components/meeting/index.d.ts +347 -20
  20. package/dist/components/meeting/types.d.ts +1 -1
  21. package/dist/components/search/OSearchInput.vue.d.ts +1005 -0
  22. package/dist/components/search/composables/useImageSearch.d.ts +48 -0
  23. package/dist/components/search/composables/useKeywordHighlight.d.ts +2 -0
  24. package/dist/components/search/composables/useSearchHistory.d.ts +14 -0
  25. package/dist/components/search/index.d.ts +590 -0
  26. package/dist/components/search/internal/HighlightText.vue.d.ts +9 -0
  27. package/dist/components/search/internal/SearchImageInput.vue.d.ts +716 -0
  28. package/dist/components/search/internal/SearchPanel.vue.d.ts +100 -0
  29. package/dist/components/search/types.d.ts +20 -0
  30. package/dist/components.cjs.js +40 -40
  31. package/dist/components.css +1 -1
  32. package/dist/components.es.js +11352 -10056
  33. package/dist/index.d.ts +4 -2
  34. package/package.json +4 -4
  35. package/scripts/generate-components-index.js +1 -1
  36. package/src/assets/styles/element-plus.scss +16 -9
  37. package/src/assets/svg-icons/icon-delete-hover.svg +4 -0
  38. package/src/assets/svg-icons/icon-delete.svg +5 -1
  39. package/src/assets/svg-icons/icon-image-close.svg +4 -0
  40. package/src/assets/svg-icons/icon-image-upload.svg +3 -0
  41. package/src/assets/svg-icons/icon-image-zoomin.svg +3 -0
  42. package/src/assets/svg-icons/icon-refresh.svg +3 -0
  43. package/src/components/OHeaderSearch.vue +445 -418
  44. package/src/components/OLanguageSwitcher.vue +211 -0
  45. package/src/components/OPlusConfigProvider.vue +2 -2
  46. package/src/components/OThemeSwitcher.vue +51 -27
  47. package/src/components/activity/OActivityForm.vue +7 -3
  48. package/src/components/activity/OActivityMyCalendar.vue +16 -7
  49. package/src/components/banner/OBanner.vue +288 -0
  50. package/src/components/banner/OBannerContent.vue +175 -0
  51. package/src/components/banner/index.ts +18 -0
  52. package/src/components/banner/types.ts +39 -0
  53. package/src/components/header/OHeader.vue +1 -1
  54. package/src/components/meeting/OMeetingCalendar.vue +11 -6
  55. package/src/components/meeting/OMeetingForm.vue +55 -9
  56. package/src/components/meeting/OMeetingMyCalendar.vue +17 -14
  57. package/src/components/meeting/OMeetingPlayback.vue +10 -4
  58. package/src/components/meeting/OMeetingSigCalendar.vue +1 -1
  59. package/src/components/meeting/components/OMeetingCalendarList.vue +57 -21
  60. package/src/components/meeting/components/OMeetingCalendarSelector.vue +11 -8
  61. package/src/components/meeting/components/OMeetingDetail.vue +1 -1
  62. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +7 -4
  63. package/src/components/meeting/composables/useMeetingConfig.ts +5 -5
  64. package/src/components/meeting/index.ts +2 -2
  65. package/src/components/meeting/types.ts +1 -1
  66. package/src/components/search/OSearchInput.vue +526 -0
  67. package/src/components/search/composables/useImageSearch.ts +157 -0
  68. package/src/components/search/composables/useKeywordHighlight.ts +30 -0
  69. package/src/components/search/composables/useSearchHistory.ts +75 -0
  70. package/src/components/search/index.ts +23 -0
  71. package/src/components/search/internal/HighlightText.vue +37 -0
  72. package/src/components/search/internal/SearchImageInput.vue +498 -0
  73. package/src/components/search/internal/SearchPanel.vue +431 -0
  74. package/src/components/search/types.ts +25 -0
  75. package/src/i18n/en.ts +13 -1
  76. package/src/i18n/zh.ts +14 -3
  77. package/src/index.ts +5 -3
  78. package/vite.config.ts +4 -0
  79. package/dist/components/OBanner.vue.d.ts +0 -11
  80. package/src/components/OBanner.vue +0 -398
@@ -45,7 +45,7 @@ const intervalTypeMax = computed(() => {
45
45
  return findLabelFromOptions(form.value.cycle_type, cycleTypeOptions.value, 'max');
46
46
  });
47
47
  const initForm: MeetingPostT = {
48
- is_record: false,
48
+ is_record: true,
49
49
  agenda: '',
50
50
  email_list: '',
51
51
  platform: 'WELINK',
@@ -265,15 +265,48 @@ const getPlatformOptions = async () => {
265
265
  };
266
266
 
267
267
  const emits = defineEmits(['confirm', 'cancel']);
268
+
269
+ const getPropData = () => {
270
+ if (!props.data) {
271
+ return {};
272
+ }
273
+ const {
274
+ start,
275
+ end,
276
+ is_cycle,
277
+ cycle_start_date,
278
+ cycle_end_date,
279
+ cycle_point,
280
+ cycle_interval,
281
+ cycle_start,
282
+ cycle_end,
283
+ } = props.data;
284
+ return {
285
+ ...props.data,
286
+ time: `${ start }-${ end }`,
287
+ ...(is_cycle
288
+ ? {
289
+ date_range: [cycle_start_date, cycle_end_date],
290
+ cycle_point: cycle_point?.map((v) => parseInt(v)) || [],
291
+ cycle_interval: cycle_interval || 1,
292
+ time: `${ cycle_start }-${ cycle_end }`,
293
+ start: cycle_start,
294
+ end: cycle_end,
295
+ }
296
+ : {}),
297
+ };
298
+ };
299
+
268
300
  watch(
269
301
  () => props.data,
270
302
  (data) => {
271
303
  if (data) {
272
- const sub = data?.cycle_sub?.find((v) => v.sub_id === props.subId) || {} as unknown as CycleSubItemT;
304
+ const propData = getPropData() as unknown as CycleSubItemT;
305
+ const sub = propData?.cycle_sub?.find((v) => v.sub_id === (props.subId || propData.sub_id)) || {} as unknown as CycleSubItemT;
273
306
  const { mid, date, start, end, sub_id } = sub;
274
307
  Object.assign(
275
308
  form.value,
276
- data,
309
+ propData,
277
310
  props.isSub
278
311
  ? {
279
312
  is_cycle: false,
@@ -373,6 +406,7 @@ const confirm = async () => {
373
406
  platform,
374
407
  is_cycle,
375
408
  } as MeetingPostT as unknown as any;
409
+ let flag = undefined;
376
410
  if (is_cycle) {
377
411
  params = {
378
412
  ...params,
@@ -401,7 +435,7 @@ const confirm = async () => {
401
435
  if (props.isSub) {
402
436
  const { mid, sub_id } = form.value;
403
437
  const { date, start, end } = params;
404
- await props?.editSubMeetingRequest(sub_id, {
438
+ flag = await props?.editSubMeetingRequest(sub_id, {
405
439
  mid,
406
440
  date,
407
441
  start,
@@ -416,17 +450,21 @@ const confirm = async () => {
416
450
  etherpad: _etherpad,
417
451
  ...data
418
452
  } = params;
419
- await props?.editMeetingRequest(props.data?.id as unknown as number, {
453
+ flag = await props?.editMeetingRequest(props.data?.id as unknown as number, {
420
454
  ...data,
421
455
  is_notify: true,
422
456
  });
423
457
  }
424
458
  } else {
425
- await props?.createMeetingRequest({
459
+ flag = await props?.createMeetingRequest({
426
460
  ...params,
427
461
  email_list: form.value.email_list.replaceAll(' ', ''),
428
462
  });
429
463
  }
464
+ // 如果返回的是boolean,只有true表示回调成功
465
+ if (typeof flag === 'boolean' && !flag) {
466
+ return;
467
+ }
430
468
  const msg = t('meeting.meetingHandleSuccess', [form.value.topic, type]);
431
469
  message.success({
432
470
  content: msg,
@@ -651,7 +689,11 @@ defineExpose({
651
689
  <OIcon>
652
690
  <IconTip />
653
691
  </OIcon>
654
- <span>{{ t('meeting.meetingRecordDesc', [getPlatformLabel(form.platform)]) }}</span>
692
+ <div>
693
+ <span>{{ t('meeting.meetingRecordDesc1') }}</span>
694
+ <br>
695
+ <span>{{ t('meeting.meetingRecordDesc2') }}</span>
696
+ </div>
655
697
  </div>
656
698
  </div>
657
699
  </template>
@@ -663,7 +705,11 @@ defineExpose({
663
705
  <OIcon>
664
706
  <IconTip />
665
707
  </OIcon>
666
- <span>{{ t('meeting.meetingRecordDesc', [getPlatformLabel(form.platform)]) }}</span>
708
+ <div>
709
+ <span>{{ t('meeting.meetingRecordDesc1') }}</span>
710
+ <br>
711
+ <span>{{ t('meeting.meetingRecordDesc2') }}</span>
712
+ </div>
667
713
  </div>
668
714
  </div>
669
715
  </template>
@@ -695,7 +741,7 @@ defineExpose({
695
741
  </OForm>
696
742
  <div class="form-btns" v-if="showBtns">
697
743
  <OButton color="primary" variant="solid" size="large" @click="confirm" :loading="loading">
698
- {{ isEdit ? t('common.save') : (bookText || t('meeting.book')) }}
744
+ {{ isEdit ? t('common.save') : (confirmText || t('meeting.book')) }}
699
745
  </OButton>
700
746
  <OButton color="primary" variant="outline" size="large" @click="cancel">{{ t('common.cancel') }}</OButton>
701
747
  </div>
@@ -22,7 +22,6 @@ import { computed, nextTick, onMounted, ref, onUnmounted, watch } from 'vue';
22
22
  import OMeetingDetail from './components/OMeetingDetail.vue';
23
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';
@@ -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);
348
+ }
349
+ if (typeof flag === 'boolean' && !flag) {
350
+ return;
351
351
  }
352
+ message.success({
353
+ content: `${ t('meeting.meetingCancel', [row.topic]) }`,
354
+ });
352
355
  cancelHandleItem();
353
356
  reloadAll.value = true;
354
357
  getList();
@@ -968,14 +971,13 @@ const cancelActions = computed<DialogActionT[]>(() => {
968
971
 
969
972
  .date-cell {
970
973
  height: 56px;
971
- width: 42px;
972
- padding: var(--o-gap-1);
974
+ width: 34px;
973
975
  position: relative;
974
976
  cursor: default !important;
975
977
 
976
978
  .date-cell-text {
977
979
  font-size: 14px;
978
- line-height: 36px;
980
+ line-height: 34px;
979
981
  border-radius: var(--meeting-cell-radius);
980
982
  background-color: var(--o-color-control2-light);
981
983
  border: 1px solid transparent;
@@ -1000,7 +1002,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1000
1002
  &::after {
1001
1003
  content: '';
1002
1004
  position: absolute;
1003
- bottom: 2px;
1005
+ bottom: 5px;
1004
1006
  left: 50%;
1005
1007
  transform: translateX(-50%);
1006
1008
  width: 8px;
@@ -1057,6 +1059,7 @@ const cancelActions = computed<DialogActionT[]>(() => {
1057
1059
  display: flex;
1058
1060
  align-items: center;
1059
1061
  justify-content: center;
1062
+ min-height: 600px;
1060
1063
  }
1061
1064
 
1062
1065
 
@@ -200,7 +200,7 @@ 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
206
  <OScroller :class="['tab-content', `tab-content-${tab}`]" show-type="hover">
@@ -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>
@@ -319,8 +324,9 @@ onUnmounted(() => {
319
324
 
320
325
  .o-tab {
321
326
  --tab-nav-justify: flex-start;
322
- .o-tab-navs {
323
- justify-content: flex-start;
327
+
328
+ .o-tab-nav-list {
329
+ width: 100%;
324
330
  }
325
331
 
326
332
  .o-tab-nav {
@@ -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>
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { OCollapse, OCollapseItem, ODivider, OIcon, OLink, OTag, useMessage } from '@opensig/opendesign';
2
+ import { isClient, OCollapse, OCollapseItem, ODivider, OIcon, OLink, OTag, useMessage } from '@opensig/opendesign';
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';
@@ -44,29 +44,36 @@ const i18n = computed(() => {
44
44
 
45
45
  // -------------------- 监听尺寸变化 --------------------
46
46
  const meetInfoRef = ref<HTMLDivElement[]>();
47
- const resizeObserver = new ResizeObserver((entries) => {
48
- for (let entry of entries) {
49
- const { height } = entry.contentRect;
50
- entry.target.classList.remove('hidden-divider');
51
- if (height >= 30) {
52
- entry.target.classList.add('hidden-divider');
53
- }
54
- }
55
- });
56
47
 
48
+ let resizeObserver: ResizeObserver | null = null;
57
49
  watch(
58
- () => props.list,
50
+ [() => props.list, () => isClient],
59
51
  () => {
60
52
  if (props.list.length === 1) {
61
53
  collapseNames.value = [props.list[0].id];
62
54
  } else {
63
55
  collapseNames.value = [];
64
56
  }
65
- nextTick(() => {
66
- meetInfoRef.value?.forEach((targetDiv) => {
67
- resizeObserver.observe(targetDiv);
57
+ if (isClient) {
58
+ nextTick(() => {
59
+ if (!resizeObserver) {
60
+ resizeObserver = new ResizeObserver((entries) => {
61
+ for (let entry of entries) {
62
+ const { height } = entry.contentRect;
63
+ entry.target.classList.remove('hidden-divider');
64
+ if (height >= 30) {
65
+ entry.target.classList.add('hidden-divider');
66
+ }
67
+ }
68
+ });
69
+ } else {
70
+ resizeObserver.disconnect();
71
+ }
72
+ meetInfoRef.value?.forEach((targetDiv) => {
73
+ resizeObserver!.observe(targetDiv);
74
+ });
68
75
  });
69
- });
76
+ }
70
77
  },
71
78
  );
72
79
 
@@ -187,7 +194,13 @@ const computedList = computed<any[]>(() => {
187
194
  <template v-if="item.activity_type">{{ item.activity_type }}</template>
188
195
  </div>
189
196
  </div>
190
- <OLink v-if="item.url" :href="item.url" target="_blank" class="jump-detail-link">
197
+ <OLink
198
+ :hover-underline="false"
199
+ v-if="item.url"
200
+ :href="item.url"
201
+ target="_blank"
202
+ class="jump-detail-link"
203
+ >
191
204
  <span>{{ i18n.LEARN_MORE }}</span>
192
205
  <template #suffix>
193
206
  <OIcon>
@@ -195,7 +208,13 @@ const computedList = computed<any[]>(() => {
195
208
  </OIcon>
196
209
  </template>
197
210
  </OLink>
198
- <OLink v-if="item.join_url" :href="item.join_url" target="_blank" class="jump-detail-link">
211
+ <OLink
212
+ :hover-underline="false"
213
+ v-if="item.join_url"
214
+ :href="item.join_url"
215
+ target="_blank"
216
+ class="jump-detail-link"
217
+ >
199
218
  <span>{{ i18n.JOIN_MEETING }}</span>
200
219
  <template #suffix>
201
220
  <OIcon>
@@ -203,7 +222,13 @@ const computedList = computed<any[]>(() => {
203
222
  </OIcon>
204
223
  </template>
205
224
  </OLink>
206
- <OLink v-if="item.content_url" :href="item.content_url" target="_blank" class="jump-detail-link">
225
+ <OLink
226
+ :hover-underline="false"
227
+ v-if="item.content_url"
228
+ :href="item.content_url"
229
+ target="_blank"
230
+ class="jump-detail-link"
231
+ >
207
232
  <span>{{ i18n.DETAILS }}</span>
208
233
  <template #suffix>
209
234
  <OIcon>
@@ -211,7 +236,13 @@ const computedList = computed<any[]>(() => {
211
236
  </OIcon>
212
237
  </template>
213
238
  </OLink>
214
- <OLink v-if="item.register_url" :href="item.register_url" target="_blank" class="jump-detail-link">
239
+ <OLink
240
+ :hover-underline="false"
241
+ v-if="item.register_url"
242
+ :href="item.register_url"
243
+ target="_blank"
244
+ class="jump-detail-link"
245
+ >
215
246
  <span>{{ i18n.SIGN }}</span>
216
247
  <template #suffix>
217
248
  <OIcon>
@@ -226,7 +257,8 @@ const computedList = computed<any[]>(() => {
226
257
  </template>
227
258
  <div class="calendar-info">
228
259
  <OMeetingDetail
229
- :show="collapseNames.includes(item.id)" :data="item"
260
+ :show="collapseNames.includes(item.id)"
261
+ :data="item"
230
262
  :ref="(insRef) => (detailRefs[index] = insRef)"
231
263
  from="home"
232
264
  />
@@ -241,6 +273,7 @@ const computedList = computed<any[]>(() => {
241
273
 
242
274
 
243
275
  &.is-empty {
276
+ min-height: 400px;
244
277
  height: 100%;
245
278
  display: flex;
246
279
  align-items: center;
@@ -264,6 +297,7 @@ const computedList = computed<any[]>(() => {
264
297
  .o-collapse-item {
265
298
  position: relative;
266
299
  border-top: none;
300
+ border-bottom: none;
267
301
 
268
302
  &::after {
269
303
  position: absolute;
@@ -353,6 +387,7 @@ const computedList = computed<any[]>(() => {
353
387
  display: inline-flex;
354
388
  opacity: 0;
355
389
  visibility: hidden;
390
+ color: var(--o-color-info1);
356
391
 
357
392
  &:hover {
358
393
  color: var(--o-color-primary1);
@@ -420,6 +455,7 @@ const computedList = computed<any[]>(() => {
420
455
  padding-left: calc(var(--icon-right) + var(--icon-size2));
421
456
  margin-top: var(--o-gap-2);
422
457
  color: var(--o-color-info2);
458
+ font-weight: 400;
423
459
  @include tip1;
424
460
 
425
461
  &:hover {
@@ -442,7 +478,7 @@ const computedList = computed<any[]>(() => {
442
478
  .meet-title {
443
479
  display: flex;
444
480
  align-items: center;
445
- width: calc(100% - 48px);
481
+ width: 100%;
446
482
  color: var(--o-color-info2);
447
483
  @include text2;
448
484
 
@@ -79,10 +79,10 @@ const removeTag = (val: number) => {
79
79
  </script>
80
80
 
81
81
  <template>
82
- <div class="calendar-selector" :class="!multiple && 'is-single'">
82
+ <div class="o-meeting-calendar-selector" :class="!multiple && 'is-single'">
83
83
  <ElSelect
84
84
  ref="selectorRef"
85
- popper-class="calendar-selector-popper"
85
+ popper-class="o-meeting-calendar-selector-popper"
86
86
  :placeholder="t('meeting.selectRepeatDate')"
87
87
  size="large"
88
88
  multiple
@@ -106,11 +106,11 @@ const removeTag = (val: number) => {
106
106
  </div>
107
107
  </template>
108
108
 
109
- <style scoped lang="scss">
110
- .calendar-selector {
109
+ <style lang="scss">
110
+ .o-meeting-calendar-selector {
111
111
  width: 100%;
112
112
 
113
- :deep(.el-select) {
113
+ .el-select {
114
114
  .el-select__placeholder {
115
115
  @include text1;
116
116
  }
@@ -134,7 +134,7 @@ const removeTag = (val: number) => {
134
134
  }
135
135
 
136
136
  &.is-single {
137
- :deep(.el-select) {
137
+ .el-select {
138
138
  .el-select__selection {
139
139
  margin-left: 0;
140
140
  }
@@ -154,8 +154,11 @@ const removeTag = (val: number) => {
154
154
  }
155
155
  </style>
156
156
  <style lang="scss">
157
- .calendar-selector-popper {
158
- padding: 0 24px;
157
+ .o-meeting-calendar-selector-popper {
158
+ --meeting-card-radius: var(--o-radius-xs);
159
+ --meeting-input-radius: var(--o-radius-xs);
160
+ --meeting-cell-radius: var(--o-radius-xs);
161
+ padding: 0 var(--o-gap-5);
159
162
 
160
163
  .el-select-dropdown__list {
161
164
  padding: 16px 0;
@@ -146,7 +146,7 @@ defineExpose({ copyInfo });
146
146
 
147
147
  </template>
148
148
 
149
- <style scoped lang="scss">
149
+ <style lang="scss">
150
150
  .o-meeting-detail {
151
151
  position: relative;
152
152
  .label-item {
@@ -329,7 +329,7 @@ watch(
329
329
  </ElSelect>
330
330
  </div>
331
331
  </div>
332
- <OTab v-model="activeTab" variant="text" class="captions-tab" @change="changeTab">
332
+ <OTab v-model="activeTab" variant="text" class="captions-tab" @change="changeTab" :max-show="9999">
333
333
  <OTabPane :value="0" :label="t('meeting.audioToText')">
334
334
  <OScroller v-if="computedCaptions.length" id="captionsScrollDom" class="captions-scroller" show-type="hover"
335
335
  size="small" disabled-x>
@@ -350,8 +350,9 @@ watch(
350
350
  </OCol>
351
351
  </ORow>
352
352
  </OScroller>
353
- <div v-else>111</div>
354
- <!-- <AppEmpty v-else height="100%" />-->
353
+ <div v-else>
354
+ <slot name="empty"></slot>
355
+ </div>
355
356
  </OTabPane>
356
357
  </OTab>
357
358
  </div>
@@ -445,8 +446,10 @@ watch(
445
446
  height: calc(100% - 64px);
446
447
  --tab-nav-justify: flex-start;
447
448
 
449
+ .o-tab-nav-list {
450
+ width: 100%;
451
+ }
448
452
  .o-tab-navs {
449
- justify-content: flex-start;
450
453
 
451
454
  .o-tab-nav {
452
455
  padding-bottom: var(--o-gap-4);
@@ -49,16 +49,16 @@ export const useMeetingConfig = () => {
49
49
  return list;
50
50
  });
51
51
 
52
- const getPointStr = (cycleType: number, points: number[]) => {
52
+ const getPointStr = (cycleType: number, points: (number | string)[]) => {
53
53
  if (cycleType === INTERVAL_WEEK) {
54
54
  return points
55
55
  .sort((a, b) => {
56
- const aIdx = intervalWeekOptions.value.findIndex((v) => v.value === a);
57
- const bIdx = intervalWeekOptions.value.findIndex((v) => v.value === b);
56
+ const aIdx = intervalWeekOptions.value.findIndex((v) => v.value === a || v.value.toString() === a);
57
+ const bIdx = intervalWeekOptions.value.findIndex((v) => v.value === b || v.value.toString() === b);
58
58
  return aIdx - bIdx;
59
59
  })
60
- .map((point: number) => {
61
- const opt = intervalWeekOptions.value.find((v) => v.value === point);
60
+ .map((point: number | string) => {
61
+ const opt = intervalWeekOptions.value.find((v) => v.value === point || v.value.toString() === point);
62
62
  return opt?.label || String(point);
63
63
  })
64
64
  .join(t('meeting.cycleSplit'));
@@ -24,11 +24,11 @@ const OMeetingPlayback = Object.assign(_OMeetingPlayback, {
24
24
 
25
25
  const OMeetingSigCalendar = Object.assign(_OMeetingSigCalendar, {
26
26
  install(app: App) {
27
- app.component('OMeetingSigCalendar', _OMeetingMyCalendar);
27
+ app.component('OMeetingSigCalendar', _OMeetingSigCalendar);
28
28
  },
29
29
  });
30
30
 
31
- const OMeetingMyCalendar = Object.assign(_OMeetingSigCalendar, {
31
+ const OMeetingMyCalendar = Object.assign(_OMeetingMyCalendar, {
32
32
  install(app: App) {
33
33
  app.component('OMeetingMyCalendar', _OMeetingMyCalendar);
34
34
  },
@@ -98,7 +98,7 @@ export interface MeetingFormPropsT {
98
98
  getGroupsRequest: any;
99
99
  showBtns?: boolean;
100
100
  groupType: MeetingGroupType;
101
- bookText?: string
101
+ confirmText?: string
102
102
  }
103
103
 
104
104
  export interface ObsDataItemT {