@opendesign-plus/components 0.0.1-rc.25 → 0.0.1-rc.27

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 (78) 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 +1 -1
  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 +17 -7
  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 +41 -41
  31. package/dist/components.css +1 -1
  32. package/dist/components.es.js +11383 -10083
  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/activity/OActivityForm.vue +7 -3
  47. package/src/components/activity/OActivityMyCalendar.vue +16 -7
  48. package/src/components/banner/OBanner.vue +288 -0
  49. package/src/components/banner/OBannerContent.vue +175 -0
  50. package/src/components/banner/index.ts +18 -0
  51. package/src/components/banner/types.ts +39 -0
  52. package/src/components/header/OHeader.vue +1 -1
  53. package/src/components/meeting/OMeetingCalendar.vue +11 -6
  54. package/src/components/meeting/OMeetingForm.vue +55 -9
  55. package/src/components/meeting/OMeetingMyCalendar.vue +17 -14
  56. package/src/components/meeting/OMeetingPlayback.vue +10 -4
  57. package/src/components/meeting/OMeetingSigCalendar.vue +1 -1
  58. package/src/components/meeting/components/OMeetingCalendarList.vue +57 -21
  59. package/src/components/meeting/components/OMeetingCalendarSelector.vue +11 -8
  60. package/src/components/meeting/components/OMeetingDetail.vue +1 -1
  61. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +7 -4
  62. package/src/components/meeting/composables/useMeetingConfig.ts +5 -5
  63. package/src/components/meeting/types.ts +1 -1
  64. package/src/components/search/OSearchInput.vue +526 -0
  65. package/src/components/search/composables/useImageSearch.ts +157 -0
  66. package/src/components/search/composables/useKeywordHighlight.ts +30 -0
  67. package/src/components/search/composables/useSearchHistory.ts +75 -0
  68. package/src/components/search/index.ts +23 -0
  69. package/src/components/search/internal/HighlightText.vue +37 -0
  70. package/src/components/search/internal/SearchImageInput.vue +498 -0
  71. package/src/components/search/internal/SearchPanel.vue +431 -0
  72. package/src/components/search/types.ts +25 -0
  73. package/src/i18n/en.ts +13 -1
  74. package/src/i18n/zh.ts +14 -3
  75. package/src/index.ts +5 -3
  76. package/vite.config.ts +4 -0
  77. package/dist/components/OBanner.vue.d.ts +0 -11
  78. package/src/components/OBanner.vue +0 -398
@@ -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'));
@@ -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 {