@opendesign-plus-test/components 0.0.1-rc.82 → 0.0.1-rc.84

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 (210) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +10 -10
  3. package/dist/components/config-provider/OPlusConfigProvider.vue.d.ts +2 -2
  4. package/dist/components/config-provider/index.d.ts +3 -3
  5. package/dist/components/meeting/composables/useMeetingConfig.d.ts +1 -1
  6. package/dist/components.cjs.js +33 -33
  7. package/dist/components.css +1 -1
  8. package/dist/components.es.js +1511 -1504
  9. package/dist/treeshaking/components/banner/OBanner.css +37 -37
  10. package/dist/treeshaking/components/banner/OBanner.vue.mjs +1 -1
  11. package/dist/treeshaking/components/banner/OBanner.vue2.mjs +2 -1
  12. package/dist/treeshaking/components/banner/OBanner2.css +10 -10
  13. package/dist/treeshaking/components/config-provider/OPlusConfigProvider.vue.d.ts +2 -2
  14. package/dist/treeshaking/components/config-provider/index.d.ts +3 -3
  15. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue.mjs +1 -1
  16. package/dist/treeshaking/components/cookie-notice/OCookieNotice.vue2.mjs +1 -1
  17. package/dist/treeshaking/components/cookie-notice/OCookieNotice2.css +62 -62
  18. package/dist/treeshaking/components/events/OEventsApply.vue.mjs +1 -1
  19. package/dist/treeshaking/components/header/OHeader.css +12 -12
  20. package/dist/treeshaking/components/header/OHeader.vue.mjs +1 -1
  21. package/dist/treeshaking/components/header/OHeader.vue2.mjs +1 -1
  22. package/dist/treeshaking/components/header/components/HeaderContent.css +235 -235
  23. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +1 -1
  24. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +3 -2
  25. package/dist/treeshaking/components/header/components/HeaderNav.css +26 -26
  26. package/dist/treeshaking/components/header/components/HeaderNav.vue.mjs +1 -1
  27. package/dist/treeshaking/components/header/components/HeaderNav.vue2.mjs +1 -1
  28. package/dist/treeshaking/components/meeting/composables/useMeetingConfig.d.ts +1 -1
  29. package/dist/treeshaking/i18n/index.mjs +1 -1
  30. package/dist/treeshaking/shared/theme.mjs +13 -0
  31. package/package.json +4 -1
  32. package/docs/design.md +0 -27
  33. package/docs/design_banner.md +0 -41
  34. package/docs/design_section.md +0 -27
  35. package/plugins/css-inject-plugin.ts +0 -37
  36. package/scripts/build.js +0 -17
  37. package/scripts/generate-components-index.js +0 -62
  38. package/src/assets/events/svg-icons/icon-checked.svg +0 -3
  39. package/src/assets/events/svg-icons/icon-competition.svg +0 -7
  40. package/src/assets/events/svg-icons/icon-events.svg +0 -4
  41. package/src/assets/events/svg-icons/icon-release.svg +0 -4
  42. package/src/assets/events/svg-icons/icon-summit.svg +0 -4
  43. package/src/assets/meeting/empty.png +0 -0
  44. package/src/assets/meeting/svg-icons/icon-all.svg +0 -4
  45. package/src/assets/meeting/svg-icons/icon-backward.svg +0 -4
  46. package/src/assets/meeting/svg-icons/icon-calendar.svg +0 -3
  47. package/src/assets/meeting/svg-icons/icon-cancel.svg +0 -4
  48. package/src/assets/meeting/svg-icons/icon-captions.svg +0 -4
  49. package/src/assets/meeting/svg-icons/icon-close-captions.svg +0 -6
  50. package/src/assets/meeting/svg-icons/icon-close-fullscreen.svg +0 -6
  51. package/src/assets/meeting/svg-icons/icon-copy.svg +0 -4
  52. package/src/assets/meeting/svg-icons/icon-create.svg +0 -5
  53. package/src/assets/meeting/svg-icons/icon-delete.svg +0 -7
  54. package/src/assets/meeting/svg-icons/icon-empty.svg +0 -65
  55. package/src/assets/meeting/svg-icons/icon-event.svg +0 -4
  56. package/src/assets/meeting/svg-icons/icon-export.svg +0 -3
  57. package/src/assets/meeting/svg-icons/icon-forward.svg +0 -4
  58. package/src/assets/meeting/svg-icons/icon-fullscreen.svg +0 -6
  59. package/src/assets/meeting/svg-icons/icon-help.svg +0 -3
  60. package/src/assets/meeting/svg-icons/icon-important.svg +0 -4
  61. package/src/assets/meeting/svg-icons/icon-info.svg +0 -3
  62. package/src/assets/meeting/svg-icons/icon-meet.svg +0 -4
  63. package/src/assets/meeting/svg-icons/icon-meeting-message.svg +0 -5
  64. package/src/assets/meeting/svg-icons/icon-meeting.svg +0 -4
  65. package/src/assets/meeting/svg-icons/icon-play.svg +0 -5
  66. package/src/assets/meeting/svg-icons/icon-playing-tip.svg +0 -7
  67. package/src/assets/meeting/svg-icons/icon-playing.svg +0 -5
  68. package/src/assets/meeting/svg-icons/icon-question.svg +0 -4
  69. package/src/assets/meeting/svg-icons/icon-sound.svg +0 -5
  70. package/src/assets/meeting/svg-icons/icon-speaker.svg +0 -3
  71. package/src/assets/meeting/svg-icons/icon-summit.svg +0 -4
  72. package/src/assets/meeting/svg-icons/icon-telligent.svg +0 -3
  73. package/src/assets/meeting/svg-icons/icon-tip.svg +0 -3
  74. package/src/assets/meeting/svg-icons/icon-todo.svg +0 -4
  75. package/src/assets/meeting/transparent.png +0 -0
  76. package/src/assets/styles/element-plus.scss +0 -283
  77. package/src/assets/svg-icons/icon-arrow-left.svg +0 -3
  78. package/src/assets/svg-icons/icon-avatar-line.svg +0 -3
  79. package/src/assets/svg-icons/icon-caret-left.svg +0 -3
  80. package/src/assets/svg-icons/icon-caret-right.svg +0 -3
  81. package/src/assets/svg-icons/icon-chevron-down.svg +0 -3
  82. package/src/assets/svg-icons/icon-chevron-right.svg +0 -3
  83. package/src/assets/svg-icons/icon-chevron-up.svg +0 -3
  84. package/src/assets/svg-icons/icon-close.svg +0 -3
  85. package/src/assets/svg-icons/icon-delete-hover.svg +0 -4
  86. package/src/assets/svg-icons/icon-delete.svg +0 -7
  87. package/src/assets/svg-icons/icon-filter.svg +0 -3
  88. package/src/assets/svg-icons/icon-header-back.svg +0 -3
  89. package/src/assets/svg-icons/icon-header-delete.svg +0 -3
  90. package/src/assets/svg-icons/icon-header-menu.svg +0 -3
  91. package/src/assets/svg-icons/icon-header-person.svg +0 -3
  92. package/src/assets/svg-icons/icon-header-search.svg +0 -4
  93. package/src/assets/svg-icons/icon-image-close.svg +0 -4
  94. package/src/assets/svg-icons/icon-image-upload.svg +0 -3
  95. package/src/assets/svg-icons/icon-image-zoomin.svg +0 -3
  96. package/src/assets/svg-icons/icon-loading.svg +0 -4
  97. package/src/assets/svg-icons/icon-locale.svg +0 -3
  98. package/src/assets/svg-icons/icon-log-off.svg +0 -3
  99. package/src/assets/svg-icons/icon-message.svg +0 -3
  100. package/src/assets/svg-icons/icon-moon.svg +0 -3
  101. package/src/assets/svg-icons/icon-outlink.svg +0 -3
  102. package/src/assets/svg-icons/icon-overview.svg +0 -3
  103. package/src/assets/svg-icons/icon-refresh.svg +0 -3
  104. package/src/assets/svg-icons/icon-search.svg +0 -3
  105. package/src/assets/svg-icons/icon-setting.svg +0 -3
  106. package/src/assets/svg-icons/icon-sun.svg +0 -3
  107. package/src/assets/svg-icons/icon-tips.svg +0 -3
  108. package/src/components/activity/OActivityApproval.vue +0 -868
  109. package/src/components/activity/OActivityForm.vue +0 -548
  110. package/src/components/activity/OActivityMyCalendar.vue +0 -1540
  111. package/src/components/activity/composables/useActivityConfig.ts +0 -141
  112. package/src/components/activity/config.ts +0 -1
  113. package/src/components/activity/index.ts +0 -24
  114. package/src/components/activity/types.ts +0 -95
  115. package/src/components/banner/OBanner.vue +0 -288
  116. package/src/components/banner/OBannerContent.vue +0 -175
  117. package/src/components/banner/index.ts +0 -18
  118. package/src/components/banner/types.ts +0 -39
  119. package/src/components/common/AppAvatar.vue +0 -83
  120. package/src/components/common/ClientOnly.vue +0 -13
  121. package/src/components/common/ContentWrapper.vue +0 -82
  122. package/src/components/common/MoreText.vue +0 -124
  123. package/src/components/common/ThFilter.vue +0 -330
  124. package/src/components/config-provider/OPlusConfigProvider.vue +0 -32
  125. package/src/components/config-provider/index.ts +0 -10
  126. package/src/components/cookie-notice/OCookieNotice.vue +0 -575
  127. package/src/components/cookie-notice/index.ts +0 -10
  128. package/src/components/element-plus/OElCookieNotice.vue +0 -603
  129. package/src/components/element-plus/index.ts +0 -3
  130. package/src/components/events/OEventsApply.vue +0 -509
  131. package/src/components/events/OEventsCalendar.vue +0 -600
  132. package/src/components/events/OEventsList.vue +0 -461
  133. package/src/components/events/config.ts +0 -35
  134. package/src/components/events/index.ts +0 -24
  135. package/src/components/events/types.ts +0 -84
  136. package/src/components/events/utils.ts +0 -9
  137. package/src/components/footer/OFooter.vue +0 -577
  138. package/src/components/footer/index.ts +0 -10
  139. package/src/components/header/OHeader.vue +0 -157
  140. package/src/components/header/OHeaderMobile.vue +0 -184
  141. package/src/components/header/components/HeaderContent.vue +0 -1125
  142. package/src/components/header/components/HeaderNav.vue +0 -278
  143. package/src/components/header/components/HeaderNavMobile.vue +0 -380
  144. package/src/components/header/index.ts +0 -18
  145. package/src/components/header/types.ts +0 -96
  146. package/src/components/header-language-switcher/OHeaderLanguageSwitcher.vue +0 -249
  147. package/src/components/header-language-switcher/index.ts +0 -10
  148. package/src/components/header-search/OHeaderSearch.vue +0 -628
  149. package/src/components/header-search/index.ts +0 -10
  150. package/src/components/header-source-code/OHeaderSourceCode.vue +0 -151
  151. package/src/components/header-source-code/index.ts +0 -10
  152. package/src/components/header-theme/OHeaderTheme.vue +0 -132
  153. package/src/components/header-theme/index.ts +0 -10
  154. package/src/components/header-user/OHeaderUser.vue +0 -249
  155. package/src/components/header-user/index.ts +0 -10
  156. package/src/components/meeting/OMeetingCalendar.vue +0 -943
  157. package/src/components/meeting/OMeetingForm.vue +0 -1131
  158. package/src/components/meeting/OMeetingMyCalendar.vue +0 -1628
  159. package/src/components/meeting/OMeetingPlayback.vue +0 -469
  160. package/src/components/meeting/OMeetingSigCalendar.vue +0 -500
  161. package/src/components/meeting/components/OMeetingCalendarList.vue +0 -626
  162. package/src/components/meeting/components/OMeetingCalendarSelector.vue +0 -213
  163. package/src/components/meeting/components/OMeetingDetail.vue +0 -285
  164. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +0 -615
  165. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +0 -741
  166. package/src/components/meeting/components/OMeetingSigAside.vue +0 -205
  167. package/src/components/meeting/composables/useMeetingConfig.ts +0 -108
  168. package/src/components/meeting/config.ts +0 -48
  169. package/src/components/meeting/index.ts +0 -45
  170. package/src/components/meeting/types.ts +0 -270
  171. package/src/components/meeting/utils.ts +0 -70
  172. package/src/components/search/OSearchInput.vue +0 -526
  173. package/src/components/search/composables/useImageSearch.ts +0 -157
  174. package/src/components/search/composables/useKeywordHighlight.ts +0 -30
  175. package/src/components/search/composables/useSearchHistory.ts +0 -75
  176. package/src/components/search/index.ts +0 -23
  177. package/src/components/search/internal/HighlightText.vue +0 -37
  178. package/src/components/search/internal/SearchImageInput.vue +0 -498
  179. package/src/components/search/internal/SearchPanel.vue +0 -431
  180. package/src/components/search/types.ts +0 -25
  181. package/src/components/section/OSection.vue +0 -178
  182. package/src/components/section/index.ts +0 -10
  183. package/src/draft/Banner.vue +0 -265
  184. package/src/draft/ButtonCards.vue +0 -106
  185. package/src/draft/Feature.vue +0 -134
  186. package/src/draft/Footer.vue +0 -519
  187. package/src/draft/HorizontalAnchor.vue +0 -165
  188. package/src/draft/ItemSwiper.vue +0 -133
  189. package/src/draft/Logo.vue +0 -141
  190. package/src/draft/LogoCard.vue +0 -75
  191. package/src/draft/LogoV2.vue +0 -19
  192. package/src/draft/MainCard.vue +0 -38
  193. package/src/draft/MultiCard.vue +0 -95
  194. package/src/draft/MultiIconCard.vue +0 -74
  195. package/src/draft/OInfoCard.vue +0 -176
  196. package/src/draft/Process.vue +0 -81
  197. package/src/draft/Section.vue +0 -167
  198. package/src/draft/SingleTabCard.vue +0 -85
  199. package/src/draft/SliderCard.vue +0 -111
  200. package/src/env.d.ts +0 -16
  201. package/src/i18n/en.ts +0 -278
  202. package/src/i18n/index.ts +0 -56
  203. package/src/i18n/zh.ts +0 -268
  204. package/src/index.ts +0 -18
  205. package/src/shared/provide.ts +0 -6
  206. package/src/shims-vue-dompurify-html.d.ts +0 -17
  207. package/src/vue.d.ts +0 -10
  208. package/tsconfig.json +0 -37
  209. package/vite.config.ts +0 -123
  210. package/vite.treeshaking.config.ts +0 -127
@@ -1,205 +0,0 @@
1
- <script setup lang="ts">
2
- import { OIcon, OIconArrowLeft, OIconArrowRight } from '@opensig/opendesign';
3
- import { useMeetingConfig } from '@/components/meeting/composables/useMeetingConfig';
4
- import { CalendarDataType } from '@/components/meeting';
5
-
6
- const { getConfig } = useMeetingConfig();
7
-
8
- const props = defineProps<{
9
- data: any[];
10
- current: number;
11
- total: number;
12
- active: string;
13
- meetingDates: string[];// 会议日期列表
14
- eventsDates: string[];// 活动日期列表
15
- }>();
16
-
17
- const STEP = 1;
18
-
19
- const emits = defineEmits(['click-date', 'change-month']);
20
- const clickDate = (date: string) => {
21
- emits('click-date', date);
22
- };
23
-
24
- const changeMonth = (step: number) => {
25
- if (props.current + step >= props.total || props.current + step < 0) return;
26
- emits('change-month', step);
27
- };
28
- </script>
29
-
30
- <template>
31
- <div class="o-sig-meeting-aside">
32
- <template v-for="(d, dIdx) in data" :key="dIdx">
33
- <div v-for="m in d" :key="m.month" class="month-item">
34
- <div class="month">{{ m.month.replace(/-/g, '/') }}</div>
35
- <div class="days">
36
- <div
37
- class="day-item"
38
- v-for="d in m.days"
39
- :key="d"
40
- @click="clickDate(`${m.month}-${d}`)"
41
- :class="active === `${m.month}-${d}` && 'active'"
42
- >
43
- <div class="day-d">{{ d }}</div>
44
- <div class="day-c">
45
- <OIcon
46
- v-if="meetingDates.includes(`${m.month}-${d}`)"
47
- :style="{
48
- zIndex: getConfig(CalendarDataType.MEETING, 'zIndex'),
49
- backgroundColor: getConfig(CalendarDataType.MEETING, 'color'),
50
- }"
51
- >
52
- <component :is="getConfig(CalendarDataType.MEETING, 'icon')" />
53
- </OIcon>
54
- <OIcon
55
- v-if="eventsDates.includes(`${m.month}-${d}`)"
56
- :style="{
57
- zIndex: getConfig(CalendarDataType.EVENTS, 'zIndex'),
58
- backgroundColor: getConfig(CalendarDataType.EVENTS, 'color'),
59
- }"
60
- >
61
- <component :is="getConfig(CalendarDataType.EVENTS, 'icon')" />
62
- </OIcon>
63
- </div>
64
- </div>
65
- </div>
66
- </div>
67
- </template>
68
- <div class="arrow-wrapper">
69
- <OIcon @click="changeMonth(0 - STEP)" :class="current - STEP < 0 && 'disabled'">
70
- <OIconArrowLeft />
71
- </OIcon>
72
- <OIcon @click="changeMonth(STEP)" :class="current + STEP >= total && 'disabled'">
73
- <OIconArrowRight />
74
- </OIcon>
75
- </div>
76
- </div>
77
- </template>
78
-
79
- <style lang="scss">
80
- .o-sig-meeting-aside {
81
- width: 35%;
82
- flex-shrink: 0;
83
- padding: var(--o-gap-4) var(--o-gap-5);
84
- display: flex;
85
- flex-direction: column;
86
- border-right: 1px solid var(--o-color-control4);
87
- @include respond('<=pad') {
88
- padding: var(--o-gap-4);
89
- }
90
- @include respond('<=pad_v') {
91
- border-right: none;
92
- }
93
- @include respond('phone') {
94
- padding: var(--o-gap-4);
95
- .title {
96
- margin-bottom: var(--o-gap-2);
97
- }
98
- }
99
- @include respond('<=pad_v') {
100
- width: 100%;
101
- }
102
-
103
- .month-item {
104
- margin-bottom: var(--o-gap-3);
105
-
106
- .month {
107
- color: var(--o-color-info3);
108
- margin-bottom: var(--o-gap-2);
109
- font-weight: bold;
110
- @include text1;
111
- }
112
-
113
- .days {
114
- gap: var(--o-gap-2);
115
- display: grid;
116
- grid-template-columns: repeat(2, 1fr);
117
-
118
- @include respond('<=pad_v') {
119
- display: flex;
120
- }
121
-
122
- .day-item {
123
- height: 64px;
124
- border-radius: var(--meeting-cell-radius);
125
- background-color: var(--o-color-control2-light);
126
- padding: 8px 12px;
127
- cursor: pointer;
128
- border: 1px solid transparent;
129
-
130
- &:hover {
131
- background-color: var(--o-color-control3-light);
132
- }
133
-
134
- &.active {
135
- border-color: var(--o-color-primary1);
136
- }
137
-
138
- .day-d {
139
- font-weight: 500;
140
- margin-bottom: var(--o-gap-1);
141
- color: var(--o-color-info1);
142
- @include tip1;
143
- }
144
-
145
- .day-c {
146
- color: rgb(var(--o-white));
147
- display: flex;
148
- flex-wrap: nowrap;
149
-
150
- .o-icon {
151
- width: 16px;
152
- height: 16px;
153
- font-size: 14px;
154
- padding: 1px;
155
- line-height: 1em;
156
- position: relative;
157
- border-radius: 50%;
158
- margin-left: -6px;
159
-
160
- &:first-child {
161
- margin-left: 0;
162
- }
163
-
164
- svg path {
165
- fill: currentColor;
166
- }
167
- }
168
- }
169
- }
170
- }
171
- }
172
-
173
- .arrow-wrapper {
174
- display: flex;
175
- align-items: center;
176
- justify-content: space-between;
177
- color: var(--o-color-primary1);
178
-
179
- .o-icon {
180
- font-size: 24px;
181
- cursor: pointer;
182
-
183
- &.disabled {
184
- cursor: not-allowed;
185
- color: var(--o-color-primary4);
186
- }
187
-
188
- &:not(.disabled):hover {
189
- color: var(--o-color-primary2);
190
- }
191
- }
192
- }
193
-
194
- @include respond('<=pad_v') {
195
- .day-item {
196
- }
197
- }
198
- @include respond('<=pad_v') {
199
- .day-item {
200
- width: min(128px, calc((100% - var(--o-gap-2)) / 2));
201
- }
202
- }
203
- }
204
-
205
- </style>
@@ -1,108 +0,0 @@
1
- import { computed } from 'vue';
2
- import dayjs from 'dayjs';
3
- import { useI18n } from '@/i18n';
4
- import IconAll from '~icons/meeting/icon-all.svg';
5
- import IconEvent from '~icons/meeting/icon-event.svg';
6
- import IconMeeting from '~icons/meeting/icon-meet.svg';
7
- import IconSummit from '~icons/meeting/icon-summit.svg';
8
- import { CalendarDataType, meetingTabT, OptionItemT } from '../types';
9
- import { INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK, TYPE_COLOR_MAP } from '../config';
10
-
11
- export const useMeetingConfig = () => {
12
- const { t, locale } = useI18n();
13
-
14
- const meetingTabs = computed<meetingTabT[]>(() => [
15
- { label: t('meeting.meetingTypeAll'), value: CalendarDataType.ALL, icon: IconAll },
16
- { label: t('meeting.meetingTypeMeet'), value: CalendarDataType.MEETING, icon: IconMeeting, color: TYPE_COLOR_MAP.meeting, zIndex: 3 },
17
- { label: t('meeting.meetingTypeEvents'), value: CalendarDataType.EVENTS, icon: IconEvent, color: TYPE_COLOR_MAP.events, zIndex: 2 },
18
- { label: t('meeting.meetingTypeSummit'), value: CalendarDataType.SUMMIT, icon: IconSummit, color: TYPE_COLOR_MAP.summit, zIndex: 1 },
19
- ]);
20
-
21
- const cycleTypeOptions0 = computed<OptionItemT[]>(() => [
22
- { label: t('meeting.day0'), value: INTERVAL_DAY, max: 7 },
23
- { label: t('meeting.week0'), value: INTERVAL_WEEK, max: 2 },
24
- { label: t('meeting.month0'), value: INTERVAL_MONTH, max: 1 },
25
- ]);
26
-
27
- const cycleTypeOptions = computed<OptionItemT[]>(() => [
28
- { label: t('meeting.day'), value: INTERVAL_DAY, max: 7 },
29
- { label: t('meeting.week'), value: INTERVAL_WEEK, max: 2 },
30
- { label: t('meeting.month'), value: INTERVAL_MONTH, max: 1 },
31
- ]);
32
-
33
- const weekDay = computed(() => [
34
- t('meeting.sunday'),
35
- t('meeting.monday'),
36
- t('meeting.tuesday'),
37
- t('meeting.wednesday'),
38
- t('meeting.thursday'),
39
- t('meeting.friday'),
40
- t('meeting.saturday'),
41
- ]);
42
-
43
- const intervalWeekOptions = computed(() => {
44
- const list: OptionItemT[] = [];
45
- for (let i = 1; i <= 7; i++) {
46
- const idx = i % 7;
47
- list.push({ value: idx, label: weekDay.value[idx] });
48
- }
49
- return list;
50
- });
51
-
52
- const getPointStr = (cycleType: number, points: (number | string)[]) => {
53
- if (cycleType === INTERVAL_WEEK) {
54
- return points
55
- .sort((a, 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
- return aIdx - bIdx;
59
- })
60
- .map((point: number | string) => {
61
- const opt = intervalWeekOptions.value.find((v) => v.value === point || v.value.toString() === point);
62
- return opt?.label || String(point);
63
- })
64
- .join(t('meeting.cycleSplit'));
65
- }
66
- if (cycleType === INTERVAL_MONTH) {
67
- return points.join(t('meeting.cycleSplit'));
68
- }
69
- return '';
70
- };
71
-
72
- const getConfig = (val: CalendarDataType, key: keyof meetingTabT): string => {
73
- let value = val;
74
- const find: meetingTabT | undefined = meetingTabs.value.find(v => v.value === value);
75
- return find?.[key] || '';
76
- };
77
-
78
- const getPlatformLabel = (platform: string) => {
79
- switch (platform) {
80
- case 'WELINK':
81
- return 'WeLink';
82
- case 'ZOOM':
83
- return 'Zoom';
84
- case 'TENCENT':
85
- return locale.value === 'zh' ? '腾讯会议' : 'Tencent';
86
- default:
87
- return platform;
88
- }
89
- };
90
-
91
- const getWeekFromDate = (date: string | Date) => {
92
- return weekDay.value[dayjs(date).day()];
93
- };
94
-
95
- return {
96
- t,
97
- locale,
98
- meetingTabs,
99
- cycleTypeOptions0,
100
- cycleTypeOptions,
101
- weekDay,
102
- intervalWeekOptions,
103
- getPointStr,
104
- getConfig,
105
- getPlatformLabel,
106
- getWeekFromDate,
107
- };
108
- };
@@ -1,48 +0,0 @@
1
- import { CalendarDataType, meetingTabT } from './types.ts';
2
- import IconAll from '~icons/meeting/icon-all.svg';
3
- import IconEvent from '~icons/meeting/icon-event.svg';
4
- import IconMeeting from '~icons/meeting/icon-meet.svg';
5
- import IconSummit from '~icons/meeting/icon-summit.svg';
6
-
7
- export const TYPE_COLOR_MAP = {
8
- summit: 'rgba(var(--o-orange-6))',
9
- events: 'rgba(var(--o-cyan-6))',
10
- meeting: 'rgba(var(--o-deepblue-6))',
11
- };
12
-
13
- export const INTERVAL_DAY = 0;
14
- export const INTERVAL_WEEK = 1;
15
- export const INTERVAL_MONTH = 2;
16
-
17
- export const EMAIL_REGEX = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
18
-
19
- export const PROGRESS_COLORS = ['var(--o-color-primary1)', 'var(--o-color-warning1)', 'var(--o-color-success1)'];
20
-
21
- export const getMeetingTabs = (t: (key: string) => string): meetingTabT[] => [
22
- {
23
- label: t('meeting.meetingTypeAll'),
24
- value: CalendarDataType.ALL,
25
- icon: IconAll,
26
- },
27
- {
28
- label: t('meeting.meetingTypeMeet'),
29
- value: CalendarDataType.MEETING,
30
- icon: IconMeeting,
31
- color: TYPE_COLOR_MAP.meeting,
32
- zIndex: 3,
33
- },
34
- {
35
- label: t('meeting.meetingTypeEvents'),
36
- value: CalendarDataType.EVENTS,
37
- icon: IconEvent,
38
- color: TYPE_COLOR_MAP.events,
39
- zIndex: 2,
40
- },
41
- {
42
- label: t('meeting.meetingTypeSummit'),
43
- value: CalendarDataType.SUMMIT,
44
- icon: IconSummit,
45
- color: TYPE_COLOR_MAP.summit,
46
- zIndex: 1,
47
- },
48
- ];
@@ -1,45 +0,0 @@
1
- import type { App } from 'vue';
2
- import _OMeetingCalendar from './OMeetingCalendar.vue';
3
- import _OMeetingForm from './OMeetingForm.vue';
4
- import _OMeetingPlayback from './OMeetingPlayback.vue';
5
- import _OMeetingSigCalendar from './OMeetingSigCalendar.vue';
6
- import _OMeetingMyCalendar from './OMeetingMyCalendar.vue';
7
-
8
- const OMeetingCalendar = Object.assign(_OMeetingCalendar, {
9
- install(app: App) {
10
- app.component('OMeetingCalendar', _OMeetingCalendar);
11
- },
12
- });
13
- const OMeetingForm = Object.assign(_OMeetingForm, {
14
- install(app: App) {
15
- app.component('OMeetingForm', _OMeetingForm);
16
- },
17
- });
18
-
19
- const OMeetingPlayback = Object.assign(_OMeetingPlayback, {
20
- install(app: App) {
21
- app.component('OMeetingPlayback', _OMeetingPlayback);
22
- },
23
- });
24
-
25
- const OMeetingSigCalendar = Object.assign(_OMeetingSigCalendar, {
26
- install(app: App) {
27
- app.component('OMeetingSigCalendar', _OMeetingSigCalendar);
28
- },
29
- });
30
-
31
- const OMeetingMyCalendar = Object.assign(_OMeetingMyCalendar, {
32
- install(app: App) {
33
- app.component('OMeetingMyCalendar', _OMeetingMyCalendar);
34
- },
35
- });
36
-
37
- export {
38
- OMeetingCalendar,
39
- OMeetingForm,
40
- OMeetingPlayback,
41
- OMeetingSigCalendar,
42
- OMeetingMyCalendar,
43
- };
44
-
45
- export * from './types';
@@ -1,270 +0,0 @@
1
- // sig组列表
2
- import { INTERVAL_DAY, INTERVAL_MONTH, INTERVAL_WEEK } from '@/components/meeting/config.ts';
3
-
4
- export interface GroupItemT {
5
- id?: number;
6
- group_name: string;
7
- maillist?: string;
8
- }
9
-
10
- // 会议日历上额外的数据,活动或者峰会
11
- export enum CalendarDataType {
12
- ALL = 'all',
13
- MEETING = 'meeting',
14
- EVENTS = 'events',
15
- SUMMIT = 'summit',
16
- APPROVAL = 'approval'
17
- }
18
-
19
- export interface CalendarOtherDataT {
20
- id: string;
21
- name: string;
22
- url: string;
23
- dates: string[];
24
- location?: string;
25
- address?: string;
26
- start_date: string;
27
- end_date: string;
28
- activity_type: string;
29
- type: CalendarDataType.EVENTS | CalendarDataType.SUMMIT;
30
- }
31
-
32
- export interface OptionItemT {
33
- label: string;
34
- value: string | number;
35
-
36
- [key: string]: any;
37
- }
38
-
39
-
40
- export type PlatformT = 'welink' | 'tencent' | 'zoom' | 'WELINK' | 'TENCENT' | 'ZOOM' | 'WeLink' | 'Tencent';
41
-
42
- export enum MeetingGroupType {
43
- SIG = 'sig',
44
- GROUP = 'group',
45
- }
46
-
47
- export interface MeetingCalendarPropsT {
48
- getDateListRequest: any;
49
- getMeetingListRequest: any;
50
- getSummitListRequest: any;
51
- getSummitDatesRequest: any;
52
- getEventsListRequest: any;
53
- getEventsDatesRequest: any;
54
- hiddenEvents?: boolean;
55
- hiddenSummit?: boolean;
56
- groupType: MeetingGroupType;
57
- groups: string[];
58
- disableFormat?: boolean; //是否禁用日期格式化
59
- emptyImg?: any;
60
- emptyText?: string;
61
- }
62
-
63
- // 会议新增、修改
64
- export interface MeetingPostT {
65
- id?: number; // 会议id
66
- topic: string; // 会议主题 128
67
- name?: string; // 会议主题 128
68
- title?: string; // 会议主题 128
69
- sponsor?: string; // 会议发起人 20
70
- group_name: string; // 所属SIG 64
71
- platform: PlatformT | string; // 会议平台
72
- date: string; // 会议日期
73
- date_range?: string[]; // 日期返回
74
- time: string; // 会议时间
75
- start: string; // 会议开始时间
76
- end: string; // 会议结束时间
77
- etherpad: string; // etherpad链接
78
- agenda: string; // 会议议程
79
- email_list: string; // 通知邮件列表 1020
80
- is_record: boolean; // 会议录制
81
- is_cycle: boolean; // 是否重复
82
- cycle_start_date?: string;
83
- cycle_end_date?: string;
84
- cycle_start?: string;
85
- cycle_end?: string;
86
- cycle_interval: number; // 重复周期, 当intervalType为month时固定为1
87
- cycle_type: typeof INTERVAL_DAY | typeof INTERVAL_WEEK | typeof INTERVAL_MONTH; // 重复类型,默认为INTERVAL_DAY
88
- cycle_point: number[]; // 重复节点,当intervalType为week|month时存在值
89
- is_notify?: boolean;
90
- mid?: string;
91
- sub_id?: string;
92
- }
93
-
94
- export interface MeetingFormPropsT {
95
- data?: MeetingItemT;
96
- subId?: string;
97
- createMeetingRequest: any,
98
- editMeetingRequest: any;
99
- editSubMeetingRequest: any;
100
- getPlatformsRequest: any;
101
- getGroupsRequest: any;
102
- showBtns?: boolean;
103
- groupType: MeetingGroupType;
104
- confirmText?: string;
105
- labelMap?: Record<string, string>;
106
- }
107
-
108
- export interface ObsDataItemT {
109
- id: number;
110
- mid: string;
111
- sub_id: string;
112
- status: number;
113
- text_vtt_url: string;
114
- text_json_url: string;
115
- text_video_url: string;
116
- text_picture_url: string;
117
- topic_url: string;
118
- meeting_id: number;
119
- }
120
-
121
- export interface CycleSubItemT {
122
- id: number;
123
- mid: string;
124
- sub_id: string;
125
- date: string;
126
- start: string;
127
- end: string;
128
- meeting_id: number;
129
- }
130
-
131
- // 会议详情
132
- export interface MeetingItemT extends MeetingPostT {
133
- id: number;
134
- community: string;
135
- mid: string;
136
- m_mid: string;
137
- join_url: string; // 会议链接
138
- create_time: string; // 创建时间
139
- isEnd: boolean; // 是否结束
140
- is_delete: boolean; // 是否取消
141
- update_time: string;
142
- time: string; // 处理一下时间范围
143
- cycle_sub: CycleSubItemT[];
144
- live_url?: string;
145
- type: CalendarDataType;
146
- obs_data?: ObsDataItemT[]; // 回放数据
147
- isExpired?: boolean; // 处理数据,是否过期
148
- sub_id: string; // 处理数据,周期会议平铺之后的id
149
- dateRange?: string; // 计算属性
150
- hasObsData?: boolean; // 计算属性
151
- }
152
-
153
- export interface MeetingEventsItemT {
154
- id: number;
155
- title: string;
156
- start_date: string;
157
- end_date: string;
158
- activity_type: number;
159
- synopsis: string;
160
- create_time: string;
161
- address: string;
162
- status: number;
163
- sponsor: string;
164
- is_delete: number;
165
- start: string;
166
- end: string;
167
- register_url: string;
168
- content_url: string;
169
- live_url: null;
170
- register_end_date: string;
171
- update_activity_id: null;
172
- approver: string;
173
- organizer: string;
174
- email_list: string;
175
- dates?: string[]; // 处理数据,如果时跨天活动,有多个元素
176
- type: CalendarDataType;
177
- }
178
-
179
- export interface SummitItemT {
180
- id: string;
181
- name: string;
182
- url: string;
183
- dates: string[];
184
- location: string;
185
- address: string;
186
- start_date: string;
187
- end_date: string;
188
- start: string;
189
- end: string;
190
- activity_type: number;
191
- type: CalendarDataType;
192
- }
193
-
194
- export interface PageParamsT {
195
- page: number;
196
- size: number;
197
- }
198
-
199
- export interface meetingTabT {
200
- label: string;
201
- value: CalendarDataType;
202
- icon: any;
203
- color?: string;
204
- zIndex?: number;
205
- }
206
-
207
-
208
- // -------------------- 会议回放 --------------------
209
- export interface MeetingPlaybackPropsDetailT {
210
- topic: string; // 会议主题
211
- date: string; // 会议日期
212
- start: string; // 会议开始时间
213
- end: string; // 会议结束时间
214
- agenda: string; // 会议详情
215
- sponsor: string; // 会议创建人
216
- groupName: string; // 会议所属sig组
217
- }
218
-
219
- export interface MeetingPlaybackPropsDataT {
220
- mid: string; // 会议ID
221
- subId?: string; //子会议ID
222
- textJson: string; // 字幕json文件
223
- poster: string; // 封面
224
- video: string; // 录屏
225
- textVtt: string; // 字幕文件
226
- topicJson: string; // 议题分段
227
- }
228
-
229
- export interface MeetingPlaybackPropsT {
230
- dates: string[]; // 如果是周期会议,传入可选的日期
231
- detail: MeetingPlaybackPropsDetailT; // 会议信息
232
- data: MeetingPlaybackPropsDataT; // 回放信息
233
- }
234
-
235
- export interface SubjectItemT {
236
- title: string; // 议题
237
- startTime: string; // 议题开始时间 【时:分:秒】格式
238
- endTime: string; // 议题结束时间 【时:分:秒】格式
239
- startTimeNumber: number;
240
- endTimeNumber: number;
241
- }
242
-
243
-
244
- export interface CaptionItemT {
245
- ID: number; // 字幕id
246
- start_time: string; // 字幕开始时间
247
- end_time: string; // 字幕结束时间
248
- speaker: string; // 发言人
249
- content: string; // 发言内容
250
- contentHtml: string; // 发言内容转html
251
- speakerIdx: number; // 当前发言人索引
252
- speakerLabel: string; // 发言人文案
253
- }
254
-
255
-
256
- export interface MeetingPlaybackVideoPropsT {
257
- src: string; // 视频资源
258
- vtt?: string; // 字幕资源
259
- captions?: CaptionItemT[]; // 语言转文字json
260
- poster?: string | null; // 封面图片
261
- posterTitle?: string | null; // 封面文案
262
- instance?: any; // 播放器实例
263
- trackIdx: number; // 当前字幕索引
264
- }
265
-
266
- export interface MeetingPlaybackSubtitlesPropsT {
267
- captions?: CaptionItemT[]; // 语言转文字json
268
- instance?: any; // 播放器实例
269
- trackIdx: number; // 当前字幕索引
270
- }