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

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 (218) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +89 -77
  3. package/dist/components/activity/index.d.ts +9 -9
  4. package/dist/components/banner/index.d.ts +6 -6
  5. package/dist/components/events/index.d.ts +20 -20
  6. package/dist/components/header/OHeaderMobile.vue.d.ts +22 -22
  7. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +3 -3
  8. package/dist/components/header/index.d.ts +27 -27
  9. package/dist/components/header-search/index.d.ts +13 -13
  10. package/dist/components/meeting/OMeetingForm.vue.d.ts +2 -0
  11. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  12. package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  13. package/dist/components/meeting/index.d.ts +37 -31
  14. package/dist/components/meeting/types.d.ts +3 -0
  15. package/dist/components/search/index.d.ts +11 -11
  16. package/dist/components.cjs.js +35 -35
  17. package/dist/components.css +1 -1
  18. package/dist/components.es.js +6822 -6755
  19. package/dist/treeshaking/components/activity/index.d.ts +9 -9
  20. package/dist/treeshaking/components/banner/index.d.ts +6 -6
  21. package/dist/treeshaking/components/events/index.d.ts +20 -20
  22. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +22 -22
  23. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +3 -3
  24. package/dist/treeshaking/components/header/index.d.ts +27 -27
  25. package/dist/treeshaking/components/header-search/index.d.ts +13 -13
  26. package/dist/treeshaking/components/meeting/OMeetingForm.vue.d.ts +2 -0
  27. package/dist/treeshaking/components/meeting/OMeetingForm.vue.mjs +104 -47
  28. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +4 -0
  29. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue.mjs +28 -12
  30. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  31. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  32. package/dist/treeshaking/components/meeting/index.d.ts +37 -31
  33. package/dist/treeshaking/components/meeting/types.d.ts +3 -0
  34. package/dist/treeshaking/components/search/index.d.ts +11 -11
  35. package/dist/treeshaking/i18n/en.mjs +6 -0
  36. package/dist/treeshaking/i18n/zh.mjs +8 -2
  37. package/package.json +4 -1
  38. package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +0 -664
  39. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +0 -664
  40. package/docs/design.md +0 -27
  41. package/docs/design_banner.md +0 -41
  42. package/docs/design_section.md +0 -27
  43. package/plugins/css-inject-plugin.ts +0 -37
  44. package/scripts/build.js +0 -17
  45. package/scripts/generate-components-index.js +0 -62
  46. package/src/assets/events/svg-icons/icon-checked.svg +0 -3
  47. package/src/assets/events/svg-icons/icon-competition.svg +0 -7
  48. package/src/assets/events/svg-icons/icon-events.svg +0 -4
  49. package/src/assets/events/svg-icons/icon-release.svg +0 -4
  50. package/src/assets/events/svg-icons/icon-summit.svg +0 -4
  51. package/src/assets/meeting/empty.png +0 -0
  52. package/src/assets/meeting/svg-icons/icon-all.svg +0 -4
  53. package/src/assets/meeting/svg-icons/icon-backward.svg +0 -4
  54. package/src/assets/meeting/svg-icons/icon-calendar.svg +0 -3
  55. package/src/assets/meeting/svg-icons/icon-cancel.svg +0 -4
  56. package/src/assets/meeting/svg-icons/icon-captions.svg +0 -4
  57. package/src/assets/meeting/svg-icons/icon-close-captions.svg +0 -6
  58. package/src/assets/meeting/svg-icons/icon-close-fullscreen.svg +0 -6
  59. package/src/assets/meeting/svg-icons/icon-copy.svg +0 -4
  60. package/src/assets/meeting/svg-icons/icon-create.svg +0 -5
  61. package/src/assets/meeting/svg-icons/icon-delete.svg +0 -7
  62. package/src/assets/meeting/svg-icons/icon-empty.svg +0 -65
  63. package/src/assets/meeting/svg-icons/icon-event.svg +0 -4
  64. package/src/assets/meeting/svg-icons/icon-export.svg +0 -3
  65. package/src/assets/meeting/svg-icons/icon-forward.svg +0 -4
  66. package/src/assets/meeting/svg-icons/icon-fullscreen.svg +0 -6
  67. package/src/assets/meeting/svg-icons/icon-help.svg +0 -3
  68. package/src/assets/meeting/svg-icons/icon-important.svg +0 -4
  69. package/src/assets/meeting/svg-icons/icon-info.svg +0 -3
  70. package/src/assets/meeting/svg-icons/icon-meet.svg +0 -4
  71. package/src/assets/meeting/svg-icons/icon-meeting-message.svg +0 -5
  72. package/src/assets/meeting/svg-icons/icon-meeting.svg +0 -4
  73. package/src/assets/meeting/svg-icons/icon-play.svg +0 -5
  74. package/src/assets/meeting/svg-icons/icon-playing-tip.svg +0 -7
  75. package/src/assets/meeting/svg-icons/icon-playing.svg +0 -5
  76. package/src/assets/meeting/svg-icons/icon-question.svg +0 -4
  77. package/src/assets/meeting/svg-icons/icon-sound.svg +0 -5
  78. package/src/assets/meeting/svg-icons/icon-speaker.svg +0 -3
  79. package/src/assets/meeting/svg-icons/icon-summit.svg +0 -4
  80. package/src/assets/meeting/svg-icons/icon-telligent.svg +0 -3
  81. package/src/assets/meeting/svg-icons/icon-tip.svg +0 -3
  82. package/src/assets/meeting/svg-icons/icon-todo.svg +0 -4
  83. package/src/assets/meeting/transparent.png +0 -0
  84. package/src/assets/styles/element-plus.scss +0 -283
  85. package/src/assets/svg-icons/icon-arrow-left.svg +0 -3
  86. package/src/assets/svg-icons/icon-avatar-line.svg +0 -3
  87. package/src/assets/svg-icons/icon-caret-left.svg +0 -3
  88. package/src/assets/svg-icons/icon-caret-right.svg +0 -3
  89. package/src/assets/svg-icons/icon-chevron-down.svg +0 -3
  90. package/src/assets/svg-icons/icon-chevron-right.svg +0 -3
  91. package/src/assets/svg-icons/icon-chevron-up.svg +0 -3
  92. package/src/assets/svg-icons/icon-close.svg +0 -3
  93. package/src/assets/svg-icons/icon-delete-hover.svg +0 -4
  94. package/src/assets/svg-icons/icon-delete.svg +0 -7
  95. package/src/assets/svg-icons/icon-filter.svg +0 -3
  96. package/src/assets/svg-icons/icon-header-back.svg +0 -3
  97. package/src/assets/svg-icons/icon-header-delete.svg +0 -3
  98. package/src/assets/svg-icons/icon-header-menu.svg +0 -3
  99. package/src/assets/svg-icons/icon-header-person.svg +0 -3
  100. package/src/assets/svg-icons/icon-header-search.svg +0 -4
  101. package/src/assets/svg-icons/icon-image-close.svg +0 -4
  102. package/src/assets/svg-icons/icon-image-upload.svg +0 -3
  103. package/src/assets/svg-icons/icon-image-zoomin.svg +0 -3
  104. package/src/assets/svg-icons/icon-loading.svg +0 -4
  105. package/src/assets/svg-icons/icon-locale.svg +0 -3
  106. package/src/assets/svg-icons/icon-log-off.svg +0 -3
  107. package/src/assets/svg-icons/icon-message.svg +0 -3
  108. package/src/assets/svg-icons/icon-moon.svg +0 -3
  109. package/src/assets/svg-icons/icon-outlink.svg +0 -3
  110. package/src/assets/svg-icons/icon-overview.svg +0 -3
  111. package/src/assets/svg-icons/icon-refresh.svg +0 -3
  112. package/src/assets/svg-icons/icon-search.svg +0 -3
  113. package/src/assets/svg-icons/icon-setting.svg +0 -3
  114. package/src/assets/svg-icons/icon-sun.svg +0 -3
  115. package/src/assets/svg-icons/icon-tips.svg +0 -3
  116. package/src/components/activity/OActivityApproval.vue +0 -868
  117. package/src/components/activity/OActivityForm.vue +0 -548
  118. package/src/components/activity/OActivityMyCalendar.vue +0 -1540
  119. package/src/components/activity/composables/useActivityConfig.ts +0 -141
  120. package/src/components/activity/config.ts +0 -1
  121. package/src/components/activity/index.ts +0 -24
  122. package/src/components/activity/types.ts +0 -95
  123. package/src/components/banner/OBanner.vue +0 -288
  124. package/src/components/banner/OBannerContent.vue +0 -175
  125. package/src/components/banner/index.ts +0 -18
  126. package/src/components/banner/types.ts +0 -39
  127. package/src/components/common/AppAvatar.vue +0 -83
  128. package/src/components/common/ClientOnly.vue +0 -13
  129. package/src/components/common/ContentWrapper.vue +0 -82
  130. package/src/components/common/MoreText.vue +0 -124
  131. package/src/components/common/ThFilter.vue +0 -330
  132. package/src/components/config-provider/OPlusConfigProvider.vue +0 -32
  133. package/src/components/config-provider/index.ts +0 -10
  134. package/src/components/cookie-notice/OCookieNotice.vue +0 -575
  135. package/src/components/cookie-notice/index.ts +0 -10
  136. package/src/components/element-plus/OElCookieNotice.vue +0 -603
  137. package/src/components/element-plus/index.ts +0 -3
  138. package/src/components/events/OEventsApply.vue +0 -509
  139. package/src/components/events/OEventsCalendar.vue +0 -600
  140. package/src/components/events/OEventsList.vue +0 -461
  141. package/src/components/events/config.ts +0 -35
  142. package/src/components/events/index.ts +0 -24
  143. package/src/components/events/types.ts +0 -84
  144. package/src/components/events/utils.ts +0 -9
  145. package/src/components/footer/OFooter.vue +0 -577
  146. package/src/components/footer/index.ts +0 -10
  147. package/src/components/header/OHeader.vue +0 -157
  148. package/src/components/header/OHeaderMobile.vue +0 -184
  149. package/src/components/header/components/HeaderContent.vue +0 -1125
  150. package/src/components/header/components/HeaderNav.vue +0 -278
  151. package/src/components/header/components/HeaderNavMobile.vue +0 -380
  152. package/src/components/header/index.ts +0 -18
  153. package/src/components/header/types.ts +0 -96
  154. package/src/components/header-language-switcher/OHeaderLanguageSwitcher.vue +0 -249
  155. package/src/components/header-language-switcher/index.ts +0 -10
  156. package/src/components/header-search/OHeaderSearch.vue +0 -628
  157. package/src/components/header-search/index.ts +0 -10
  158. package/src/components/header-source-code/OHeaderSourceCode.vue +0 -151
  159. package/src/components/header-source-code/index.ts +0 -10
  160. package/src/components/header-theme/OHeaderTheme.vue +0 -132
  161. package/src/components/header-theme/index.ts +0 -10
  162. package/src/components/header-user/OHeaderUser.vue +0 -249
  163. package/src/components/header-user/index.ts +0 -10
  164. package/src/components/meeting/OMeetingCalendar.vue +0 -943
  165. package/src/components/meeting/OMeetingForm.vue +0 -1131
  166. package/src/components/meeting/OMeetingMyCalendar.vue +0 -1628
  167. package/src/components/meeting/OMeetingPlayback.vue +0 -469
  168. package/src/components/meeting/OMeetingSigCalendar.vue +0 -500
  169. package/src/components/meeting/components/OMeetingCalendarList.vue +0 -626
  170. package/src/components/meeting/components/OMeetingCalendarSelector.vue +0 -213
  171. package/src/components/meeting/components/OMeetingDetail.vue +0 -285
  172. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +0 -615
  173. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +0 -741
  174. package/src/components/meeting/components/OMeetingSigAside.vue +0 -205
  175. package/src/components/meeting/composables/useMeetingConfig.ts +0 -108
  176. package/src/components/meeting/config.ts +0 -48
  177. package/src/components/meeting/index.ts +0 -45
  178. package/src/components/meeting/types.ts +0 -270
  179. package/src/components/meeting/utils.ts +0 -70
  180. package/src/components/search/OSearchInput.vue +0 -526
  181. package/src/components/search/composables/useImageSearch.ts +0 -157
  182. package/src/components/search/composables/useKeywordHighlight.ts +0 -30
  183. package/src/components/search/composables/useSearchHistory.ts +0 -75
  184. package/src/components/search/index.ts +0 -23
  185. package/src/components/search/internal/HighlightText.vue +0 -37
  186. package/src/components/search/internal/SearchImageInput.vue +0 -498
  187. package/src/components/search/internal/SearchPanel.vue +0 -431
  188. package/src/components/search/types.ts +0 -25
  189. package/src/components/section/OSection.vue +0 -178
  190. package/src/components/section/index.ts +0 -10
  191. package/src/draft/Banner.vue +0 -265
  192. package/src/draft/ButtonCards.vue +0 -106
  193. package/src/draft/Feature.vue +0 -134
  194. package/src/draft/Footer.vue +0 -519
  195. package/src/draft/HorizontalAnchor.vue +0 -165
  196. package/src/draft/ItemSwiper.vue +0 -133
  197. package/src/draft/Logo.vue +0 -141
  198. package/src/draft/LogoCard.vue +0 -75
  199. package/src/draft/LogoV2.vue +0 -19
  200. package/src/draft/MainCard.vue +0 -38
  201. package/src/draft/MultiCard.vue +0 -95
  202. package/src/draft/MultiIconCard.vue +0 -74
  203. package/src/draft/OInfoCard.vue +0 -176
  204. package/src/draft/Process.vue +0 -81
  205. package/src/draft/Section.vue +0 -167
  206. package/src/draft/SingleTabCard.vue +0 -85
  207. package/src/draft/SliderCard.vue +0 -111
  208. package/src/env.d.ts +0 -16
  209. package/src/i18n/en.ts +0 -278
  210. package/src/i18n/index.ts +0 -56
  211. package/src/i18n/zh.ts +0 -268
  212. package/src/index.ts +0 -18
  213. package/src/shared/provide.ts +0 -6
  214. package/src/shims-vue-dompurify-html.d.ts +0 -17
  215. package/src/vue.d.ts +0 -10
  216. package/tsconfig.json +0 -37
  217. package/vite.config.ts +0 -123
  218. package/vite.treeshaking.config.ts +0 -127
@@ -1,500 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref, onMounted, computed, nextTick, watch } from 'vue';
3
- import {
4
- ODivider,
5
- OPopover,
6
- OIcon,
7
- OTabPane,
8
- OTab,
9
- OScroller,
10
- OSelect,
11
- OOption,
12
- OFigure,
13
- OResult,
14
- } from '@opensig/opendesign';
15
- import dayjs from 'dayjs';
16
- import IconTips from '~icons/components/icon-tips.svg';
17
- import OMeetingSigAside from './components/OMeetingSigAside.vue';
18
- import { CalendarDataType, MeetingEventsItemT, MeetingItemT } from './types.ts';
19
- import { useScreen } from '@opendesign-plus/composables';
20
- import { useMeetingConfig } from './composables/useMeetingConfig';
21
- import OMeetingCalendarList from '@/components/meeting/components/OMeetingCalendarList.vue';
22
- import { formatDate } from '@/components/meeting/utils.ts';
23
- import emptyDefaultImg from '@/assets/meeting/empty.png';
24
-
25
- const props = defineProps<{
26
- sigName: String;
27
- getMeetingListRequest: any;
28
- getDateListRequest: any;
29
- getEventsListRequest: any;
30
- dates: String[];
31
- emptyImg?: any;
32
- emptyText?: string;
33
- }>();
34
- const { t, meetingTabs } = useMeetingConfig();
35
- const { lePadV } = useScreen();
36
- const selectDate = ref<string>('');
37
-
38
- const loading = ref(false); // 数据加载状态
39
- const meetingData = ref<MeetingItemT[]>([]); // 某天的会议列表
40
- const calendarRows = computed(() => (lePadV.value ? 100 : 5)); // 日历行数
41
-
42
- const latestDate = ref<string>('');
43
- const meetingDates = ref<string[]>([]);
44
- const eventsDates = ref<string[]>([]);
45
- const eventsData = ref<MeetingEventsItemT[]>([]);
46
- const monthIdx = ref(-1);
47
- const clickDateCell2 = (date: string) => {
48
- clickDateCell(date);
49
- };
50
- const changeSelect = (v: any) => {
51
- clickDateCell(v);
52
- };
53
- // 获取所选日期的会议列表
54
- const clickDateCell = async (date: string) => {
55
- if (!props.getMeetingListRequest) {
56
- return;
57
- }
58
- try {
59
- loading.value = true;
60
- selectDate.value = dayjs(date).format('YYYY-MM-DD');
61
- const res = await props.getMeetingListRequest(selectDate.value, props.sigName);
62
- meetingData.value = res.map((v: MeetingItemT) => {
63
- return {
64
- ...v,
65
- time: `${ v.start }-${ v.end }`,
66
- date: v.date || selectDate.value,
67
- type: CalendarDataType.MEETING,
68
- };
69
- });
70
- } finally {
71
- loading.value = false;
72
- }
73
- };
74
-
75
-
76
- const getDates = async () => {
77
- if (props.getDateListRequest) {
78
- meetingDates.value = await props.getDateListRequest();
79
- }
80
- if (props.getEventsListRequest) {
81
- eventsData.value = (await props.getEventsListRequest(selectDate.value, props.sigName)).map((v: any) => {
82
- return {
83
- ...v,
84
- type: CalendarDataType.EVENTS,
85
- };
86
- });
87
- eventsDates.value = (eventsData.value || []).map(v => v.dates || []).flat();
88
- }
89
- };
90
- const tabType = ref(CalendarDataType.ALL);
91
- const selectTab = () => {
92
- getDates();
93
- };
94
-
95
- // -------------------- 获取有会议的日期 --------------------
96
-
97
- const getMonthAndDay = (date: string) => {
98
- const dateStr = dayjs(date).format('YYYY-MM-DD');
99
- return [dateStr.slice(0, 7), dateStr.slice(8, 10)];
100
- };
101
-
102
- const dateList = computed(() => {
103
- let list: any[];
104
- if (tabType.value === CalendarDataType.ALL) {
105
- list = [...(meetingDates.value || []), ...eventsDates.value];
106
- } else if (tabType.value === CalendarDataType.MEETING) {
107
- list = meetingDates.value || [];
108
- } else if (tabType.value === CalendarDataType.EVENTS) {
109
- list = eventsDates.value || [];
110
- } else {
111
- list = [];
112
- }
113
- return [...new Set(list)].sort((a, b) => !dayjs(a).isAfter(dayjs(b)) ? -1 : 1).map(v => dayjs(v).format('YYYY-MM-DD'));
114
- });
115
-
116
- const getLatestDate = () => {
117
- let targetDate = dateList.value.find((date) => date === dayjs().format('YYYY-MM-DD'));
118
- if (!targetDate) {
119
- targetDate =
120
- dateList.value.find((date) => dayjs(date).isAfter(dayjs())) || // 未来日期最近日期
121
- [...dateList.value].reverse().find((date) => dayjs().isAfter(dayjs(date))); // 过去最近日期
122
- }
123
- latestDate.value = targetDate!;
124
- };
125
- watch(() => dateList.value, (val) => {
126
- if (val.length) {
127
- getLatestDate();
128
- nextTick(() => {
129
- clickDateCell(latestDate.value);
130
- });
131
- }
132
- });
133
- const groupDateList = computed(() => {
134
- const obj = dateList.value.reduce((pre: any, cur: any) => {
135
- const [month, day] = getMonthAndDay(cur);
136
- pre[month] = {
137
- count: (pre[month]?.count || 0) + 1,
138
- days: [...(pre[month]?.days || []), day],
139
- };
140
- return pre;
141
- }, {});
142
-
143
- const monthList = Object.keys(obj).map((month) => {
144
- return {
145
- ...obj[month],
146
- month,
147
- };
148
- });
149
- const list: any[] = [];
150
- let current: any[] = [];
151
- monthList.forEach((t) => {
152
- while (t.days.length) {
153
- if (!current.length) {
154
- t.days.splice(0, 6).forEach((day: string) => {
155
- current.push({
156
- month: t.month,
157
- day: day,
158
- });
159
- });
160
-
161
- if (current.length >= 5) {
162
- list.push(current);
163
- current = [];
164
- }
165
- } else {
166
- let count = current.length;
167
- if (count % 2 === 1) {
168
- count += 1;
169
- }
170
- if (t.days.length + current.length <= 6) {
171
- t.days.splice(0, 6).forEach((day: string) => {
172
- current.push({
173
- month: t.month,
174
- day: day,
175
- });
176
- });
177
- if (current.length >= 5) {
178
- list.push(current);
179
- current = [];
180
- }
181
- } else {
182
- t.days.splice(0, 6 - count).forEach((day: string) => {
183
- current.push({
184
- month: t.month,
185
- day: day,
186
- });
187
- });
188
-
189
- if (current.length >= 5) {
190
- list.push(current);
191
- current = [];
192
- }
193
- }
194
- }
195
- }
196
- });
197
- if (current.length) {
198
- list.push(current);
199
- current = [];
200
- }
201
-
202
- return list;
203
- });
204
-
205
- const dateMapList = computed(() => {
206
- return groupDateList.value.map((group) => {
207
- const obj = group.reduce((prev: any, cur: any) => {
208
- prev[cur.month] = prev[cur.month] || [];
209
- prev[cur.month].push(cur.day);
210
- return prev;
211
- }, {});
212
- return Object.keys(obj).map((key) => {
213
- return {
214
- month: key,
215
- days: obj[key] || [],
216
- };
217
- });
218
- });
219
- });
220
-
221
- const getMonthIdx = () => {
222
- if (groupDateList.value.length) {
223
- monthIdx.value = groupDateList.value.findIndex((v) => v.some((t: any) => latestDate.value === `${ t.month }-${ t.day }`));
224
- if (monthIdx.value === -1) {
225
- monthIdx.value = groupDateList.value.findIndex((v) => v.some((t: any) => latestDate.value.includes(t.month)));
226
- }
227
- } else {
228
- monthIdx.value = -1;
229
- }
230
- };
231
- watch(
232
- [() => groupDateList.value, () => latestDate.value],
233
- () => {
234
- getMonthIdx();
235
- },
236
- { deep: true },
237
- );
238
-
239
- const changeMonthIdx = (step: number) => {
240
- monthIdx.value += step;
241
- };
242
-
243
- onMounted(() => {
244
- getDates();
245
- });
246
-
247
- const list = computed(() => {
248
- let list: any[];
249
- if (tabType.value === CalendarDataType.ALL) {
250
- list = [...(meetingData.value || []), ...eventsData.value];
251
- } else if (tabType.value === CalendarDataType.MEETING) {
252
- list = meetingData.value || [];
253
- } else if (tabType.value === CalendarDataType.EVENTS) {
254
- list = eventsData.value || [];
255
- } else {
256
- list = [];
257
- }
258
- return list;
259
- });
260
- </script>
261
-
262
- <template>
263
- <div class="o-sig-meeting-calendar">
264
- <div class="meeting-card-header">
265
- <div class="header-left" v-if="latestDate">
266
- <span>{{ t('meeting.latestMeeting') }} </span>
267
- <span>{{ dayjs(latestDate).format('YYYY/MM/DD') }}</span>
268
- <OPopover>
269
- <template #target>
270
- <OIcon class="tips">
271
- <IconTips />
272
- </OIcon>
273
- </template>
274
- <div>
275
- <p>{{ t('meeting.detailHalfYearMeetings') }}</p>
276
- </div>
277
- </OPopover>
278
- </div>
279
- <OTab v-model="tabType" @change="selectTab" :line="false" :max-show="9999">
280
- <OTabPane v-for="item in meetingTabs.slice(0, -1)" :key="item.value" :value="item.value">
281
- <template #nav>
282
- <OIcon>
283
- <component :is="item.icon" />
284
- </OIcon>
285
- {{ item.label }}
286
- </template>
287
- </OTabPane>
288
- </OTab>
289
- </div>
290
- <template v-if="lePadV && dateList.length">
291
- <div class="phone-filter-wrapper">
292
- <div class="date-select">
293
- <OSelect v-model="selectDate" @change="changeSelect">
294
- <OOption
295
- v-for="date in dateList"
296
- :key="date"
297
- :value="date"
298
- :label="formatDate(date)"
299
- />
300
- </OSelect>
301
- </div>
302
- <div>
303
- <OTab v-model="tabType" @change="selectTab" :line="false" :max-show="9999">
304
- <OTabPane v-for="item in meetingTabs.slice(0, -1)" :key="item.value" :value="item.value">
305
- <template #nav>
306
- {{ item.label }}
307
- </template>
308
- </OTabPane>
309
- </OTab>
310
- </div>
311
- </div>
312
- </template>
313
- <ODivider class="meeting-divider" v-if="!lePadV || (lePadV && dateList.length)" />
314
- <div class="meeting-card-content">
315
- <template v-if="!lePadV && monthIdx !== -1">
316
- <OMeetingSigAside
317
- :data="dateMapList.slice(monthIdx, monthIdx + 1)"
318
- :meetingDates="tabType !== CalendarDataType.EVENTS ? meetingDates :[] "
319
- :eventsDates="tabType !== CalendarDataType.MEETING ? eventsDates : []"
320
- @clickDate="clickDateCell2"
321
- @changeMonth="changeMonthIdx"
322
- :current="monthIdx"
323
- :total="dateMapList.length"
324
- :active="selectDate"
325
- />
326
- </template>
327
- <OScroller class="list-content" show-type="hover" size="small">
328
- <OMeetingCalendarList
329
- :list="list as unknown as MeetingItemT[]"
330
- :rows="calendarRows"
331
- >
332
- <template #empty>
333
- <slot name="empty">
334
- <OResult class="empty-result">
335
- <template #image>
336
- <OFigure class="img" :src="emptyImg ?? emptyDefaultImg" />
337
- </template>
338
- <template #description>{{ emptyText ?? t('meeting.meetingEmptyText') }}</template>
339
- </OResult>
340
- </slot>
341
- </template>
342
- </OMeetingCalendarList>
343
- </OScroller>
344
- </div>
345
- </div>
346
- </template>
347
-
348
- <style lang="scss">
349
- .o-sig-meeting-calendar {
350
- --meeting-card-radius: var(--o-radius-xs);
351
- --meeting-input-radius: var(--o-radius-xs);
352
- --meeting-cell-radius: var(--o-radius-xs);
353
- width: 100%;
354
- background-color: var(--o-color-fill2);
355
- border-radius: var(--meeting-card-radius);
356
- margin-top: var(--o-gap-5);
357
- @include respond('phone') {
358
- .meeting-card-header {
359
- .el-input {
360
- flex-grow: 1;
361
- }
362
- }
363
- .meeting-divide {
364
- width: calc(100% - 32px);
365
- }
366
- }
367
-
368
- .phone-filter-wrapper {
369
- display: flex;
370
- align-items: center;
371
- justify-content: space-between;
372
- gap: var(--o-gap-4);
373
- padding: var(--o-gap-4) var(--o-gap-3) 0 var(--o-gap-3);
374
- flex-wrap: nowrap;
375
- @include respond('phone') {
376
- flex-wrap: wrap;
377
- flex-direction: column;
378
- align-items: center;
379
- gap: var(--o-gap-2);
380
- }
381
-
382
- .date-select {
383
- padding-bottom: var(--o-gap-2);
384
- max-width: 240px;
385
- @include respond('phone') {
386
- max-width: 100%;
387
- width: 100%;
388
- padding-bottom: 0;
389
- }
390
-
391
- .o-select {
392
- width: 100%;
393
- }
394
- }
395
-
396
- .o-tab {
397
- flex-shrink: 0;
398
- --tab-text-height: calc(var(--tab-nav-text-height) + var(--o-gap-2) + 2px);
399
- @include respond('phone') {
400
- --tab-text-height: var(--tab-nav-text-height);
401
- }
402
-
403
- .o-tab-head {
404
- line-height: var(--tab-text-height);
405
- }
406
- }
407
- }
408
-
409
- .meeting-card-header {
410
- font-weight: 500;
411
- display: flex;
412
- align-items: center;
413
- padding: var(--o-gap-3) var(--o-gap-5) 0;
414
- @include text1;
415
- @include respond('<=pad') {
416
- padding: var(--o-gap-3) var(--o-gap-4) 0;
417
- }
418
- @include respond('<=pad_v') {
419
- display: none;
420
- }
421
-
422
- .date-meeting {
423
- max-width: var(--el-date-editor-width);
424
- width: auto;
425
- }
426
-
427
- .header-left {
428
- width: 35%;
429
- padding-bottom: var(--o-gap-3);
430
- color: var(--o-color-info1);
431
- @include text1;
432
- }
433
-
434
- .o-tab {
435
- display: flex;
436
- align-items: center;
437
- flex-grow: 1;
438
- justify-content: center;
439
- position: relative;
440
-
441
- .o-tab-nav {
442
- padding-bottom: var(--o-gap-3);
443
-
444
- svg path {
445
- fill: currentColor;
446
- }
447
- }
448
- }
449
- }
450
-
451
- .el-input__prefix {
452
- display: none;
453
- }
454
-
455
- .tips {
456
- margin-left: 10px;
457
- cursor: pointer;
458
- font-size: 16px;
459
- color: var(--o-color-info1);
460
- position: relative;
461
- top: 2px;
462
-
463
- path {
464
- opacity: 1;
465
- }
466
- }
467
-
468
- .meeting-divider {
469
- width: 100%;
470
- --o-divider-gap: 0;
471
- }
472
-
473
- .meeting-card-content {
474
- display: flex;
475
- }
476
-
477
- .content-divider {
478
- height: 400px;
479
- --o-divider-label-gap: 0;
480
- }
481
-
482
- .list-content {
483
- min-width: 0;
484
- flex-grow: 1;
485
- height: 360px;
486
- @include respond('<=pad_v') {
487
- height: auto;
488
- }
489
- }
490
-
491
- .empty-result {
492
- --result-image-width: 200px;
493
- --result-image-height: 175px;
494
-
495
- .o-result-description {
496
- @include tip1;
497
- }
498
- }
499
- }
500
- </style>