@opendesign-plus/components 0.0.1-rc.25 → 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.
- package/dist/chunk-OElCookieNotice.cjs.js +1 -1
- package/dist/chunk-OElCookieNotice.es.js +111 -88
- package/dist/components/OHeaderSearch.vue.d.ts +814 -534
- package/dist/components/OHeaderUser.vue.d.ts +1 -1
- package/dist/components/OLanguageSwitcher.vue.d.ts +49 -0
- package/dist/components/OThemeSwitcher.vue.d.ts +1 -1
- package/dist/components/activity/OActivityMyCalendar.vue.d.ts +4 -4
- package/dist/components/activity/index.d.ts +2 -2
- package/dist/components/banner/OBanner.vue.d.ts +13 -0
- package/dist/components/banner/OBannerContent.vue.d.ts +7 -0
- package/dist/components/banner/index.d.ts +68 -0
- package/dist/components/banner/types.d.ts +31 -0
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +5 -3
- package/dist/components/meeting/OMeetingMyCalendar.vue.d.ts +4 -4
- package/dist/components/meeting/OMeetingPlayback.vue.d.ts +50 -1
- package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +1 -1
- package/dist/components/meeting/components/OMeetingPlaybackSubtitles.vue.d.ts +16 -1
- package/dist/components/meeting/composables/useMeetingConfig.d.ts +1 -1
- package/dist/components/meeting/index.d.ts +17 -7
- package/dist/components/meeting/types.d.ts +1 -1
- package/dist/components/search/OSearchInput.vue.d.ts +1005 -0
- package/dist/components/search/composables/useImageSearch.d.ts +48 -0
- package/dist/components/search/composables/useKeywordHighlight.d.ts +2 -0
- package/dist/components/search/composables/useSearchHistory.d.ts +14 -0
- package/dist/components/search/index.d.ts +590 -0
- package/dist/components/search/internal/HighlightText.vue.d.ts +9 -0
- package/dist/components/search/internal/SearchImageInput.vue.d.ts +716 -0
- package/dist/components/search/internal/SearchPanel.vue.d.ts +100 -0
- package/dist/components/search/types.d.ts +20 -0
- package/dist/components.cjs.js +41 -41
- package/dist/components.css +1 -1
- package/dist/components.es.js +11383 -10083
- package/dist/index.d.ts +4 -2
- package/package.json +2 -2
- package/scripts/generate-components-index.js +1 -1
- package/src/assets/styles/element-plus.scss +16 -9
- package/src/assets/svg-icons/icon-delete-hover.svg +4 -0
- package/src/assets/svg-icons/icon-delete.svg +5 -1
- package/src/assets/svg-icons/icon-image-close.svg +4 -0
- package/src/assets/svg-icons/icon-image-upload.svg +3 -0
- package/src/assets/svg-icons/icon-image-zoomin.svg +3 -0
- package/src/assets/svg-icons/icon-refresh.svg +3 -0
- package/src/components/OHeaderSearch.vue +445 -418
- package/src/components/OLanguageSwitcher.vue +211 -0
- package/src/components/OPlusConfigProvider.vue +2 -2
- package/src/components/activity/OActivityForm.vue +7 -3
- package/src/components/activity/OActivityMyCalendar.vue +16 -7
- package/src/components/banner/OBanner.vue +288 -0
- package/src/components/banner/OBannerContent.vue +175 -0
- package/src/components/banner/index.ts +18 -0
- package/src/components/banner/types.ts +39 -0
- package/src/components/header/OHeader.vue +1 -1
- package/src/components/meeting/OMeetingCalendar.vue +11 -6
- package/src/components/meeting/OMeetingForm.vue +55 -9
- package/src/components/meeting/OMeetingMyCalendar.vue +17 -14
- package/src/components/meeting/OMeetingPlayback.vue +10 -4
- package/src/components/meeting/OMeetingSigCalendar.vue +1 -1
- package/src/components/meeting/components/OMeetingCalendarList.vue +57 -21
- package/src/components/meeting/components/OMeetingCalendarSelector.vue +11 -8
- package/src/components/meeting/components/OMeetingDetail.vue +1 -1
- package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +7 -4
- package/src/components/meeting/composables/useMeetingConfig.ts +5 -5
- package/src/components/meeting/types.ts +1 -1
- package/src/components/search/OSearchInput.vue +526 -0
- package/src/components/search/composables/useImageSearch.ts +157 -0
- package/src/components/search/composables/useKeywordHighlight.ts +30 -0
- package/src/components/search/composables/useSearchHistory.ts +75 -0
- package/src/components/search/index.ts +23 -0
- package/src/components/search/internal/HighlightText.vue +37 -0
- package/src/components/search/internal/SearchImageInput.vue +498 -0
- package/src/components/search/internal/SearchPanel.vue +431 -0
- package/src/components/search/types.ts +25 -0
- package/src/i18n/en.ts +13 -1
- package/src/i18n/zh.ts +14 -3
- package/src/index.ts +5 -3
- package/vite.config.ts +4 -0
- package/dist/components/OBanner.vue.d.ts +0 -11
- 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
|
-
|
|
66
|
-
|
|
67
|
-
resizeObserver
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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)"
|
|
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:
|
|
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
|
|
110
|
-
.calendar-selector {
|
|
109
|
+
<style lang="scss">
|
|
110
|
+
.o-meeting-calendar-selector {
|
|
111
111
|
width: 100%;
|
|
112
112
|
|
|
113
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -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>
|
|
354
|
-
|
|
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'));
|