@opendesign-plus/components 0.0.1-rc.2 → 0.0.1-rc.20

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 (203) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -0
  2. package/dist/chunk-OElCookieNotice.es.js +839 -0
  3. package/dist/components/OBanner.vue.d.ts +10 -1
  4. package/dist/components/OCookieNotice.vue.d.ts +6 -5
  5. package/dist/components/OFooter.vue.d.ts +46 -0
  6. package/dist/components/OHeaderSearch.vue.d.ts +4 -4
  7. package/dist/components/OHeaderUser.vue.d.ts +40 -0
  8. package/dist/components/OSourceCode.vue.d.ts +20 -0
  9. package/dist/components/activity/OActivityApproval.vue.d.ts +277 -0
  10. package/dist/components/activity/OActivityForm.vue.d.ts +140 -0
  11. package/dist/components/activity/OMyActivityCalendar.vue.d.ts +578 -0
  12. package/dist/components/activity/composables/useActivityConfig.d.ts +17 -0
  13. package/dist/components/activity/config.d.ts +1 -0
  14. package/dist/components/activity/index.d.ts +623 -0
  15. package/dist/components/activity/types.d.ts +81 -0
  16. package/dist/components/element-plus/OElCookieNotice.vue.d.ts +34 -0
  17. package/dist/components/element-plus/index.d.ts +2 -0
  18. package/dist/components/events/OEventsApply.vue.d.ts +16 -0
  19. package/dist/components/events/OEventsCalendar.vue.d.ts +5 -0
  20. package/dist/components/events/OEventsList.vue.d.ts +26 -0
  21. package/dist/components/events/config.d.ts +27 -0
  22. package/dist/components/events/index.d.ts +78 -0
  23. package/dist/components/events/types.d.ts +66 -0
  24. package/dist/components/events/utils.d.ts +7 -0
  25. package/dist/components/header/OHeader.vue.d.ts +30 -0
  26. package/dist/components/header/OHeaderMobile.vue.d.ts +171 -0
  27. package/dist/components/header/components/HeaderContent.vue.d.ts +13 -0
  28. package/dist/components/header/components/HeaderNav.vue.d.ts +19 -0
  29. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +33 -0
  30. package/dist/components/header/index.d.ts +145 -0
  31. package/dist/components/header/types.d.ts +80 -0
  32. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +299 -0
  33. package/dist/components/meeting/OMeetingForm.vue.d.ts +145 -0
  34. package/dist/components/meeting/OMyMeetingCalendar.vue.d.ts +586 -0
  35. package/dist/components/meeting/OSigMeetingCalendar.vue.d.ts +24 -0
  36. package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +28 -0
  37. package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +664 -0
  38. package/dist/components/meeting/components/OMeetingDetail.vue.d.ts +13 -0
  39. package/dist/components/meeting/components/OMeetingPlaybackSubtitles.vue.d.ts +5 -0
  40. package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +17 -0
  41. package/dist/components/meeting/components/OSigMeetingAside.vue.d.ts +16 -0
  42. package/dist/components/meeting/composables/useMeetingConfig.d.ts +14 -0
  43. package/dist/components/meeting/config.d.ts +12 -0
  44. package/dist/components/meeting/types.d.ts +168 -0
  45. package/dist/components/meeting/utils.d.ts +8 -0
  46. package/dist/components.cjs.js +224 -1
  47. package/dist/components.css +1 -1
  48. package/dist/components.element.cjs.js +1 -0
  49. package/dist/components.element.es.js +4 -0
  50. package/dist/components.es.js +44348 -785
  51. package/dist/index.d.ts +9 -2
  52. package/docs/design.md +27 -27
  53. package/docs/design_banner.md +41 -41
  54. package/docs/design_section.md +27 -27
  55. package/package.json +12 -3
  56. package/scripts/generate-components-index.js +103 -80
  57. package/src/assets/events/svg-icons/icon-checked.svg +3 -0
  58. package/src/assets/events/svg-icons/icon-competition.svg +7 -0
  59. package/src/assets/events/svg-icons/icon-events.svg +4 -0
  60. package/src/assets/events/svg-icons/icon-release.svg +4 -0
  61. package/src/assets/events/svg-icons/icon-summit.svg +4 -0
  62. package/src/assets/meeting/svg-icons/icon-all.svg +3 -0
  63. package/src/assets/meeting/svg-icons/icon-backward.svg +4 -0
  64. package/src/assets/meeting/svg-icons/icon-calendar.svg +3 -0
  65. package/src/assets/meeting/svg-icons/icon-cancel.svg +4 -0
  66. package/src/assets/meeting/svg-icons/icon-captions.svg +4 -0
  67. package/src/assets/meeting/svg-icons/icon-close-captions.svg +6 -0
  68. package/src/assets/meeting/svg-icons/icon-close-fullscreen.svg +6 -0
  69. package/src/assets/meeting/svg-icons/icon-copy.svg +3 -0
  70. package/src/assets/meeting/svg-icons/icon-create.svg +5 -0
  71. package/src/assets/meeting/svg-icons/icon-delete.svg +7 -0
  72. package/src/assets/meeting/svg-icons/icon-empty.svg +31 -0
  73. package/src/assets/meeting/svg-icons/icon-empty_dark.svg +49 -0
  74. package/src/assets/meeting/svg-icons/icon-event.svg +3 -0
  75. package/src/assets/meeting/svg-icons/icon-export.svg +3 -0
  76. package/src/assets/meeting/svg-icons/icon-forward.svg +4 -0
  77. package/src/assets/meeting/svg-icons/icon-fullscreen.svg +6 -0
  78. package/src/assets/meeting/svg-icons/icon-help.svg +3 -0
  79. package/src/assets/meeting/svg-icons/icon-important.svg +4 -0
  80. package/src/assets/meeting/svg-icons/icon-info.svg +3 -0
  81. package/src/assets/meeting/svg-icons/icon-meet.svg +3 -0
  82. package/src/assets/meeting/svg-icons/icon-meeting-message.svg +5 -0
  83. package/src/assets/meeting/svg-icons/icon-meeting.svg +4 -0
  84. package/src/assets/meeting/svg-icons/icon-play.svg +5 -0
  85. package/src/assets/meeting/svg-icons/icon-playing-tip.svg +7 -0
  86. package/src/assets/meeting/svg-icons/icon-playing.svg +5 -0
  87. package/src/assets/meeting/svg-icons/icon-question.svg +4 -0
  88. package/src/assets/meeting/svg-icons/icon-sound.svg +5 -0
  89. package/src/assets/meeting/svg-icons/icon-speaker.svg +3 -0
  90. package/src/assets/meeting/svg-icons/icon-summit.svg +3 -0
  91. package/src/assets/meeting/svg-icons/icon-telligent.svg +3 -0
  92. package/src/assets/meeting/svg-icons/icon-tip.svg +3 -0
  93. package/src/assets/meeting/svg-icons/icon-todo.svg +4 -0
  94. package/src/assets/meeting/transparent.png +0 -0
  95. package/src/assets/svg-icons/icon-arrow-left.svg +3 -0
  96. package/src/assets/svg-icons/icon-avatar-line.svg +3 -0
  97. package/src/assets/svg-icons/icon-caret-left.svg +3 -0
  98. package/src/assets/svg-icons/icon-caret-right.svg +3 -0
  99. package/src/assets/svg-icons/icon-chevron-down.svg +3 -0
  100. package/src/assets/svg-icons/icon-chevron-right.svg +3 -3
  101. package/src/assets/svg-icons/icon-chevron-up.svg +3 -0
  102. package/src/assets/svg-icons/icon-close.svg +3 -3
  103. package/src/assets/svg-icons/icon-delete.svg +3 -3
  104. package/src/assets/svg-icons/icon-filter.svg +3 -0
  105. package/src/assets/svg-icons/icon-header-back.svg +3 -3
  106. package/src/assets/svg-icons/icon-header-delete.svg +3 -3
  107. package/src/assets/svg-icons/icon-header-menu.svg +3 -0
  108. package/src/assets/svg-icons/icon-header-person.svg +3 -0
  109. package/src/assets/svg-icons/icon-header-search.svg +4 -4
  110. package/src/assets/svg-icons/icon-loading.svg +4 -0
  111. package/src/assets/svg-icons/icon-locale.svg +3 -0
  112. package/src/assets/svg-icons/icon-log-off.svg +3 -0
  113. package/src/assets/svg-icons/icon-message.svg +3 -0
  114. package/src/assets/svg-icons/icon-moon.svg +3 -3
  115. package/src/assets/svg-icons/icon-outlink.svg +3 -0
  116. package/src/assets/svg-icons/icon-overview.svg +3 -0
  117. package/src/assets/svg-icons/icon-search.svg +3 -0
  118. package/src/assets/svg-icons/icon-setting.svg +3 -0
  119. package/src/assets/svg-icons/icon-sun.svg +3 -3
  120. package/src/assets/svg-icons/icon-tips.svg +3 -0
  121. package/src/components/OBanner.vue +398 -390
  122. package/src/components/OCookieNotice.vue +575 -424
  123. package/src/components/OFooter.vue +576 -0
  124. package/src/components/OHeaderSearch.vue +601 -601
  125. package/src/components/OHeaderUser.vue +237 -0
  126. package/src/components/OPlusConfigProvider.vue +32 -32
  127. package/src/components/OSection.vue +178 -178
  128. package/src/components/OSourceCode.vue +153 -0
  129. package/src/components/OThemeSwitcher.vue +108 -108
  130. package/src/components/activity/OActivityApproval.vue +864 -0
  131. package/src/components/activity/OActivityForm.vue +542 -0
  132. package/src/components/activity/OMyActivityCalendar.vue +1486 -0
  133. package/src/components/activity/composables/useActivityConfig.ts +141 -0
  134. package/src/components/activity/config.ts +1 -0
  135. package/src/components/activity/index.ts +24 -0
  136. package/src/components/activity/types.ts +88 -0
  137. package/src/components/common/AppAvatar.vue +83 -0
  138. package/src/components/common/ClientOnlyWrapper.ts +21 -21
  139. package/src/components/common/ContentWrapper.vue +85 -85
  140. package/src/components/common/MoreText.vue +124 -0
  141. package/src/components/common/ThFilter.vue +330 -0
  142. package/src/components/element-plus/OElCookieNotice.vue +603 -0
  143. package/src/components/element-plus/index.ts +3 -0
  144. package/src/components/events/OEventsApply.vue +418 -0
  145. package/src/components/events/OEventsCalendar.vue +598 -0
  146. package/src/components/events/OEventsList.vue +362 -0
  147. package/src/components/events/config.ts +35 -0
  148. package/src/components/events/index.ts +24 -0
  149. package/src/components/events/types.ts +80 -0
  150. package/src/components/events/utils.ts +9 -0
  151. package/src/components/header/OHeader.vue +157 -0
  152. package/src/components/header/OHeaderMobile.vue +177 -0
  153. package/src/components/header/components/HeaderContent.vue +1121 -0
  154. package/src/components/header/components/HeaderNav.vue +278 -0
  155. package/src/components/header/components/HeaderNavMobile.vue +377 -0
  156. package/src/components/header/index.ts +16 -0
  157. package/src/components/header/types.ts +91 -0
  158. package/src/components/meeting/OMeetingCalendar.vue +878 -0
  159. package/src/components/meeting/OMeetingForm.vue +1053 -0
  160. package/src/components/meeting/OMeetingPlayback.vue +439 -0
  161. package/src/components/meeting/OMyMeetingCalendar.vue +1497 -0
  162. package/src/components/meeting/OSigMeetingCalendar.vue +410 -0
  163. package/src/components/meeting/components/OMeetingCalendarList.vue +510 -0
  164. package/src/components/meeting/components/OMeetingCalendarSelector.vue +206 -0
  165. package/src/components/meeting/components/OMeetingDetail.vue +229 -0
  166. package/src/components/meeting/components/OMeetingPlaybackSubtitles.vue +611 -0
  167. package/src/components/meeting/components/OMeetingPlaybackVideo.vue +741 -0
  168. package/src/components/meeting/components/OSigMeetingAside.vue +200 -0
  169. package/src/components/meeting/composables/useMeetingConfig.ts +108 -0
  170. package/src/components/meeting/config.ts +48 -0
  171. package/src/components/meeting/index.ts +45 -0
  172. package/src/components/meeting/types.ts +195 -0
  173. package/src/components/meeting/utils.ts +70 -0
  174. package/src/draft/Banner.vue +265 -265
  175. package/src/draft/ButtonCards.vue +105 -105
  176. package/src/draft/Feature.vue +133 -133
  177. package/src/draft/Footer.vue +512 -512
  178. package/src/draft/HorizontalAnchor.vue +165 -165
  179. package/src/draft/ItemSwiper.vue +133 -133
  180. package/src/draft/Logo.vue +141 -141
  181. package/src/draft/LogoCard.vue +74 -74
  182. package/src/draft/LogoV2.vue +19 -19
  183. package/src/draft/MainCard.vue +38 -38
  184. package/src/draft/MultiCard.vue +94 -94
  185. package/src/draft/MultiIconCard.vue +73 -73
  186. package/src/draft/OInfoCard.vue +176 -176
  187. package/src/draft/Process.vue +81 -81
  188. package/src/draft/Section.vue +167 -167
  189. package/src/draft/SingleTabCard.vue +84 -84
  190. package/src/draft/SliderCard.vue +110 -110
  191. package/src/env.d.ts +16 -1
  192. package/src/i18n/en.ts +264 -20
  193. package/src/i18n/index.ts +56 -42
  194. package/src/i18n/zh.ts +253 -9
  195. package/src/index.ts +14 -3
  196. package/src/shared/provide.ts +6 -6
  197. package/src/shims-vue-dompurify-html.d.ts +17 -0
  198. package/src/vue.d.ts +9 -9
  199. package/tsconfig.json +37 -33
  200. package/vite.config.ts +118 -94
  201. package/dist/components/OCookieNoticeEl.vue.d.ts +0 -29
  202. package/dist/components.umd.js +0 -1
  203. package/src/components/OCookieNoticeEl.vue +0 -404
package/src/i18n/zh.ts CHANGED
@@ -1,9 +1,253 @@
1
- export default {
2
- search: '搜索',
3
- 'search.hot': '热门搜索',
4
- 'search.placeholder': '搜索',
5
- 'search.expandedPlaceholder': '请输入搜索内容',
6
- 'search.history': '历史搜索',
7
- 'cookie.desc': '我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。',
8
- 'cookie.about': '查看详情',
9
- };
1
+ export default {
2
+ search: '搜索',
3
+ 'search.hot': '热门搜索',
4
+ 'search.placeholder': '搜索',
5
+ 'search.expandedPlaceholder': '请输入搜索内容',
6
+ 'search.history': '历史搜索',
7
+ 'meeting.audioToText': '语音转文字',
8
+ 'meeting.item1': '发起人:',
9
+ 'meeting.item2': 'SIG组:',
10
+ 'meeting.item3': '会议时间:',
11
+ 'meeting.item4': '会议详情:',
12
+ 'meeting.baseInfo': '基本信息',
13
+ 'meeting.subject': '会议议题',
14
+ 'meeting.speaker': '发言人',
15
+ 'meeting.replay': '智能回放',
16
+ 'meeting.monday': '星期一',
17
+ 'meeting.tuesday': '星期二',
18
+ 'meeting.wednesday': '星期三',
19
+ 'meeting.thursday': '星期四',
20
+ 'meeting.friday': '星期五',
21
+ 'meeting.saturday': '星期六',
22
+ 'meeting.sunday': '星期日',
23
+ 'meeting.sigGroup': '{0} SIG小组',
24
+ 'meeting.invite': '邀请您参加',
25
+ 'meeting.edit': '【修改】',
26
+ 'meeting.cancel': '【取消】',
27
+ 'meeting.dateTime': '{0} {1}',
28
+ 'meeting.meeting': '会议',
29
+ 'meeting.cycleMeeting': '周期会议',
30
+ 'meeting.meetingText': '{0} 的{1}',
31
+ 'meeting.singleMeetingText': '{0} 的{1}',
32
+ 'meeting.cycleMeetingText': '{startDate} 至 {endDate} {cycleType} {startTime} 到 {endTime}的周期会议',
33
+ 'meeting.cycleMeetingText2': '{cycleType} {startTime} 到 {endTime} (UTC+08:00)Beijing 有效期从{startDate} 至 {endDate}',
34
+ 'meeting.cycleDay': '每天',
35
+ 'meeting.cycleWeek.one': '每{1}周{0}',
36
+ 'meeting.cycleWeek.other': '每{1}周{0}',
37
+ 'meeting.cycleSplit': '、',
38
+ 'meeting.cycleMonth': '每月{0}号',
39
+ 'meeting.myMeeting': '我的会议',
40
+ 'meeting.meetingCancel': '“{0}”会议取消成功',
41
+ 'meeting.todayNonMeeting': '当日暂无会议,敬请期待',
42
+ 'meeting.online': '线上',
43
+ 'meeting.offline': '线下',
44
+ 'meeting.meetingSingle': '仅此会议',
45
+ 'meeting.meetingCycle': '整个周期会议',
46
+ 'meeting.bookMeeting': '预定会议',
47
+ 'meeting.book': '预定',
48
+ 'meeting.meetingCancelled': '【已取消】',
49
+ 'meeting.cycle': '周期',
50
+ 'meeting.joinMeeting': '加入会议',
51
+ 'meeting.sign': '我要报名',
52
+ 'meeting.detail': '查看详情',
53
+ 'meeting.meetingSummary': '会议纪要',
54
+ 'meeting.viewRecord': '查看回放',
55
+ 'meeting.editMeeting': '修改会议',
56
+ 'meeting.cancelMeeting': '取消会议',
57
+ 'meeting.nextMonth': '下个月',
58
+ 'meeting.preMonth': '上个月',
59
+ 'meeting.emptyMeeting': '暂无会议,去 ',
60
+ 'meeting.meetingHandleText': '请选择您要{0}的会议',
61
+ 'meeting.edit2': '修改',
62
+ 'meeting.confirmCancel': '确定取消',
63
+ 'meeting.confirmCancelDesc': '是否确认要取消“{0}”会议?',
64
+ 'meeting.enterMeetingName': '请输入会议名称',
65
+ 'meeting.meetingNameTooLong': '会议名称不能超过128个字符',
66
+ 'meeting.meetingAgendaTooLong': '会议内容不能超过4096个字符',
67
+ 'meeting.meetingSig': '所属SIG',
68
+ 'meeting.meetingGroup': '工作组',
69
+ 'meeting.selectSig': '请选择所属SIG',
70
+ 'meeting.selectGroup': '请选择工作组',
71
+ 'meeting.enterEtherpad': '请输入会议纪要',
72
+ 'meeting.etherpadDesc': '会议辅助工具,可以在线记录会议纪要和讨论。',
73
+ 'meeting.selectDate': '请选择日期',
74
+ 'meeting.finishMeetingConfig': '请完善会议配置',
75
+ 'meeting.selectMeetingDate': '请选择会议日期',
76
+ 'meeting.selectMeetingTime': '请选择会议时间',
77
+ 'meeting.invalidMeetingDuration': '所选时间段内无时间可创建会议',
78
+ 'meeting.endTimeAfterStartTime': '结束时间必须大于开始时间',
79
+ 'meeting.startTimeBeforeEndTime': '开始时间必须大于当前时间',
80
+ 'meeting.selectPlatform': '请选择会议平台',
81
+ 'meeting.meetingPlatform': '会议平台',
82
+ 'meeting.meetingAgenda': '会议内容',
83
+ 'meeting.enterMeetingAgenda': '请输入会议内容',
84
+ 'meeting.emailTooLong': '邮箱地址不能超过1020个字符',
85
+ 'meeting.enterEmail': '请输入电子邮件地址,多个邮件地址以“,”或“;”间隔',
86
+ 'meeting.meetingEmail': '邮件地址',
87
+ 'meeting.meetingEmailDesc': '默认会向已订阅SIG组成员发送会议通知也可添加其他SIG组邮件地址或个人邮件地址。',
88
+ 'meeting.sigGroupEmail': 'SIG组邮件列表',
89
+ 'meeting.emailInvalid': '请输入正确的邮箱地址',
90
+ 'meeting.singleEmailTooLong': '每个邮箱地址不能超过50个字符',
91
+ 'meeting.emailCountTooLong': '最多添加20个邮箱地址',
92
+ 'meeting.meetingHandleSuccess': '“{0}”会议{1}',
93
+ 'meeting.editSuccess': '编辑成功',
94
+ 'meeting.booSuccess': '预定成功',
95
+ 'meeting.meetingName': '会议名称',
96
+ 'meeting.meetingTime': '会议时间',
97
+ 'meeting.nonRepeat': '不重复',
98
+ 'meeting.isRepeat': '重复',
99
+ 'meeting.every': '每',
100
+ 'meeting.in': '在',
101
+ 'meeting.selectRepeatDate': '请选择重复日期',
102
+ 'meeting.meetingDuration': '时间段',
103
+ 'meeting.startDate': '开始日期',
104
+ 'meeting.endDate': '结束日期',
105
+ 'meeting.meetingDate': '会议日期',
106
+ 'meeting.startTime': '开始时间',
107
+ 'meeting.endTime': '结束时间',
108
+ 'meeting.meetingRecord': '会议录制',
109
+ 'meeting.meetingRecordDesc': '开启后将自动录屏,本服务由{0}会议提供。并将在1个工作日内自动上传会议AI版本的链接回放。',
110
+ 'meeting.day0': '天',
111
+ 'meeting.week0': '周',
112
+ 'meeting.month0': '月',
113
+ 'meeting.day': '天',
114
+ 'meeting.week': '周',
115
+ 'meeting.month': '月',
116
+ 'meeting.meetingDesc': '使用openUBMC会议预定功能需要SIG组Maintainer或Committer身份权限',
117
+ 'meeting.meetingBook': '预定会议',
118
+ 'meeting.latestMeeting': '最新日程:',
119
+ 'meeting.meetingTypeAll': '全部',
120
+ 'meeting.meetingTypeMeet': '会议',
121
+ 'meeting.meetingTypeEvents': '活动',
122
+ 'meeting.meetingTypeSummit': '峰会',
123
+ 'meeting.allSigs': '全部SIG组',
124
+ 'meeting.allGroups': '全部工作组',
125
+ 'meeting.meetingCreator': '发起人',
126
+ 'meeting.meetingDate2': '会议时间',
127
+ 'meeting.meetingId': '会议ID',
128
+ 'meeting.meetingLink': '会议链接',
129
+ 'meeting.meetingEmptyText': '当日没有活动,敬请期待',
130
+ 'meeting.versionBanner': 'openUBMC 25.06社区发行版正式上线',
131
+ 'meeting.version2509Banner': 'openUBMC 25.09社区发行版正式上线',
132
+ 'meeting.version2512Banner': 'openUBMC 25.12 LTS 社区发行版正式上线',
133
+ 'meeting.sigs': 'SIG 组',
134
+ 'meeting.groups': '工作组',
135
+ 'meeting.activityAddress': '活动地点',
136
+ 'meeting.livePlatform': '直播平台',
137
+ 'meeting.meetingTopic': '会议主题:',
138
+ 'meeting.meetingDetail': '会议详情',
139
+ 'meeting.meetingEtherpad': '会议纪要',
140
+ 'meeting.meetingReplay': '智能回放',
141
+ 'meeting.searchSubtitlePlaceholder': '请输入搜索内容',
142
+ 'meeting.detailHalfYearMeetings': '默认显示近半年的会议。',
143
+ 'meeting.tencent': '腾讯会议',
144
+ 'meeting.etherpad': '会议纪要',
145
+ 'common.confirm': '确认',
146
+ 'common.cancel': '取消',
147
+ 'common.copySuccess': '复制成功',
148
+ 'common.close': '关闭',
149
+ 'common.all': '全部',
150
+ 'common.seeMore': '查看详情',
151
+ 'common.save': '保存',
152
+ 'common.detail': '详情',
153
+ 'common.reset': '重置',
154
+ 'common.more': '更多',
155
+ 'cookie.desc': '我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。',
156
+ 'cookie.about': '查看详情',
157
+ 'meeting.create': '创建',
158
+ 'meeting.createMeeting': '创建会议',
159
+ 'meeting.createActivity': '创建活动',
160
+ 'meeting.createPermission': '创建会议或活动需要工作组角色权限',
161
+ 'meeting.createActivityPermission': '创建活动需要工作组角色权限',
162
+ 'meeting.myActivity': '我的活动',
163
+ 'meeting.activityName': '活动名称',
164
+ 'meeting.enterActivityName': '请输入活动名称',
165
+ 'meeting.activityOrganizer': '活动主办方',
166
+ 'meeting.selectActivityOrganizer': '请选择活动主办方',
167
+ 'meeting.activityType': '活动类型',
168
+ 'meeting.activityDetail2': '活动详情',
169
+ 'meeting.selectActivityType': '请选择活动类型',
170
+ 'meeting.activityTime': '活动时间',
171
+ 'meeting.selectActivityStartDate': '请选择活动起始日期',
172
+ 'meeting.selectActivityEndDate': '请选择活动结束日期',
173
+ 'meeting.registrationDeadline': '报名截止时间',
174
+ 'meeting.selectActivityDeadline': '请选择活动截止时间',
175
+ 'meeting.registrationUrl': '报名网址',
176
+ 'meeting.enterActivityRegistrationUrl': '请输入活动报名网址',
177
+ 'meeting.activityDetailUrl': '活动详情网址',
178
+ 'meeting.enterActivityDetailUrl': '请输入活动详情介绍网址',
179
+ 'meeting.activityContent': '活动内容',
180
+ 'meeting.enterActivityContent': '请输入活动内容',
181
+ 'meeting.email': '邮件地址',
182
+ 'meeting.enterEmailDesc': '请输入电子邮件地址,多个邮件地址以 " , " 或 " ; " 间隔',
183
+ 'meeting.activityApprover': '活动审批人',
184
+ 'meeting.selectActivityApprover': '请选择活动审批人',
185
+ 'meeting.saveDraft': '保存草稿',
186
+ 'meeting.cancelBtn': '取消',
187
+ 'meeting.communityActivityApproval': '社区活动审批',
188
+ 'meeting.reviewActivityTip': '在这里查看需要您审核的活动',
189
+ 'meeting.applicant': '申请人',
190
+ 'meeting.searchApplicant': '搜索申请人',
191
+ 'meeting.submissionTime': '申请时间',
192
+ 'meeting.status': '状态',
193
+ 'meeting.statusPending': '未审核',
194
+ 'meeting.statusApproved': '已通过',
195
+ 'meeting.statusRejected': '已驳回',
196
+ 'meeting.statusCanceled': '已取消',
197
+ 'meeting.action': '操作',
198
+ 'meeting.cancelActivity': '取消活动',
199
+ 'meeting.approve': '通过',
200
+ 'meeting.reject': '驳回',
201
+ 'meeting.approveReview': '审核通过',
202
+ 'meeting.rejectReview': '审核驳回',
203
+ 'meeting.reviewNotes': '审核备注',
204
+ 'meeting.enterReviewNotes': '请输入审核的备注信息',
205
+ 'meeting.confirmCancelActivity': '确定取消"{0}"活动?取消后将不会在会议首页呈现,且已报名的数据也会被清空,请谨慎操作。',
206
+ 'meeting.confirmBtn': '确定',
207
+ 'meeting.activityDetail': '活动详情',
208
+ 'meeting.modifyActivity': '修改活动',
209
+ 'meeting.withdrawReview': '撤销审核',
210
+ 'meeting.deleteActivity': '删除活动',
211
+ 'meeting.submitReview': '提交审核',
212
+ 'meeting.confirmDeleteActivity': '确定删除"{0}"活动?删除后记录将不再我的个人中心呈现。',
213
+ 'meeting.registerNow': '我要报名',
214
+ 'meeting.onlineOffline': '线上与线下',
215
+ 'meeting.statusDraft': '草稿',
216
+ 'meeting.statusUnderReview': '审核中',
217
+ 'meeting.statusRegistering': '报名中',
218
+ 'meeting.statusInProgress': '进行中',
219
+ 'meeting.statusEnded': '已结束',
220
+ 'meeting.statusModified': '已修改',
221
+ 'meeting.reviewSuccess': '“{0}”活动审核成功',
222
+ 'meeting.reviewFail': '“{0}”活动审核失败',
223
+ 'meeting.reviewNotesLabel': '审核备注',
224
+ 'meeting.reviewed': '审核',
225
+ 'meeting.activityActionSuccess': '"{0}"活动{1}成功',
226
+ 'meeting.activityActionFail': '"{0}"活动{1}失败',
227
+ 'meeting.activityNameMaxLength': '活动名称不能超过50个字符',
228
+ 'meeting.selectActivityTime': '请选择活动时间',
229
+ 'meeting.selectActivityDate': '请选择活动日期',
230
+ 'meeting.activityTimeRange': '开始和结束时间必须在8:00-22:00点之间',
231
+ 'meeting.endDateAfterStartDate': '结束日期必须大于起始日期',
232
+ 'meeting.registerDeadlineBeforeEnd': '报名截止日期必须小于结束日期',
233
+ 'meeting.enterActivityAddress': '请输入活动地点',
234
+ 'meeting.activityAddressMaxLength': '活动地点不能超过255个字符',
235
+ 'meeting.invalidRegistrationUrl': '请输入正确的报名网址',
236
+ 'meeting.invalidActivityDetailUrl': '请输入正确的活动详情网址',
237
+ 'meeting.activityContentMaxLength': '活动内容不能超过1000个字符',
238
+ 'meeting.revokeActivitySuccess': '"{0}"活动撤销审核成功',
239
+ 'meeting.revokeActivityFail': '"{0}"活动撤销审核失败',
240
+ 'meeting.submitReviewSuccess': '"{0}"活动提交审核成功',
241
+ 'meeting.submitReviewFail': '"{0}"活动提交审核失败',
242
+ 'meeting.deleteActivitySuccess': '"{0}"活动删除成功',
243
+ 'meeting.deleteActivityFail': '"{0}"活动删除失败',
244
+ 'meeting.loading': '加载中···',
245
+ 'meeting.confirmRevokeActivity': '是否确认要撤销"{0}"活动?撤销审核后活动将变成草稿状态。',
246
+ 'events.status': '活动状态',
247
+ 'events.statusAll': '全部',
248
+ 'events.statusIng': '进行中',
249
+ 'events.statusFinish': '已结束',
250
+ 'events.searchPlaceholder': '搜索活动名称、地点',
251
+ 'common.collapse': '收起',
252
+ 'common.expand': '展开',
253
+ };
package/src/index.ts CHANGED
@@ -3,25 +3,36 @@
3
3
 
4
4
  import OBanner from './components/OBanner.vue';
5
5
  import OCookieNotice from './components/OCookieNotice.vue';
6
- import OCookieNoticeEl from './components/OCookieNoticeEl.vue';
6
+ import OFooter from './components/OFooter.vue';
7
7
  import OHeaderSearch from './components/OHeaderSearch.vue';
8
+ import OHeaderUser from './components/OHeaderUser.vue';
8
9
  import OPlusConfigProvider from './components/OPlusConfigProvider.vue';
9
10
  import OSection from './components/OSection.vue';
11
+ import OSourceCode from './components/OSourceCode.vue';
10
12
  import OThemeSwitcher from './components/OThemeSwitcher.vue';
11
13
 
12
14
  // 导出组件
13
15
  const components = {
14
16
  OBanner,
15
17
  OCookieNotice,
16
- OCookieNoticeEl,
18
+ OFooter,
17
19
  OHeaderSearch,
20
+ OHeaderUser,
18
21
  OPlusConfigProvider,
19
22
  OSection,
23
+ OSourceCode,
20
24
  OThemeSwitcher
21
25
  };
22
26
 
23
27
  // 导出单个组件
24
- export { OBanner, OCookieNotice, OCookieNoticeEl, OHeaderSearch, OPlusConfigProvider, OSection, OThemeSwitcher };
28
+ export { OBanner, OCookieNotice, OFooter, OHeaderSearch, OHeaderUser, OPlusConfigProvider, OSection, OSourceCode, OThemeSwitcher };
29
+
30
+ // 重新导出子目录中的组件
31
+ export * from './components/activity';
32
+ export * from './components/element-plus';
33
+ export * from './components/events';
34
+ export * from './components/header';
35
+ export * from './components/meeting';
25
36
 
26
37
  // 默认导出(用于Vue插件安装)
27
38
  export default {
@@ -1,6 +1,6 @@
1
- import { InjectionKey } from 'vue';
2
-
3
- export const configProviderInjectKey: InjectionKey<{
4
- locale: 'zh' | 'en';
5
- theme: 'light' | 'dark';
6
- }> = Symbol('provide-config-provider');
1
+ import { InjectionKey } from 'vue';
2
+
3
+ export const configProviderInjectKey: InjectionKey<{
4
+ locale: 'zh' | 'en';
5
+ theme: 'light' | 'dark';
6
+ }> = Symbol('provide-config-provider');
@@ -0,0 +1,17 @@
1
+ declare module 'vue-dompurify-html' {
2
+ import { Plugin, Directive } from 'vue';
3
+
4
+ export interface DirectiveConfig {
5
+ default?: any;
6
+ namedConfigurations?: Record<string, any>;
7
+ hooks?: Record<string, any>;
8
+ }
9
+
10
+ export function buildVueDompurifyHTMLDirective(
11
+ config?: DirectiveConfig,
12
+ instanceBuilder?: () => any
13
+ ): Directive;
14
+
15
+ const VueDOMPurifyHTML: Plugin;
16
+ export default VueDOMPurifyHTML;
17
+ }
package/src/vue.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- declare module '*.vue' {
2
- import { DefineComponent } from 'vue'
3
- const component: DefineComponent<{}, {}, any>
4
- export default component
5
- }
6
-
7
- declare module '*.scss' {
8
- const content: { [className: string]: string }
9
- export default content
1
+ declare module '*.vue' {
2
+ import { DefineComponent } from 'vue'
3
+ const component: DefineComponent<{}, {}, any>
4
+ export default component
5
+ }
6
+
7
+ declare module '*.scss' {
8
+ const content: { [className: string]: string }
9
+ export default content
10
10
  }
package/tsconfig.json CHANGED
@@ -1,33 +1,37 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2020",
4
- "useDefineForClassFields": true,
5
- "module": "esnext",
6
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
7
- "skipLibCheck": true,
8
-
9
- /* Bundler mode */
10
- "moduleResolution": "bundler",
11
- "allowImportingTsExtensions": true,
12
- "isolatedModules": true,
13
- "moduleDetection": "force",
14
- "noEmit": true,
15
-
16
- /* Linting */
17
- "strict": true,
18
- "noUnusedLocals": true,
19
- "noUnusedParameters": true,
20
- "noFallthroughCasesInSwitch": true,
21
- "noUncheckedSideEffectImports": true,
22
-
23
- /* Declaration */
24
- "declaration": true,
25
- "declarationDir": "dist",
26
-
27
- "baseUrl": ".",
28
- "paths": {
29
- "@/*": ["src/*"]
30
- }
31
- },
32
- "include": ["src"]
33
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2021",
4
+ "useDefineForClassFields": true,
5
+ "module": "esnext",
6
+ "lib": [
7
+ "ES2021",
8
+ "DOM",
9
+ "DOM.Iterable"
10
+ ],
11
+ "skipLibCheck": true,
12
+
13
+ /* Bundler mode */
14
+ "moduleResolution": "bundler",
15
+ "allowImportingTsExtensions": true,
16
+ "isolatedModules": true,
17
+ "moduleDetection": "force",
18
+ "noEmit": true,
19
+
20
+ /* Linting */
21
+ "strict": true,
22
+ "noUnusedLocals": true,
23
+ "noUnusedParameters": true,
24
+ "noFallthroughCasesInSwitch": true,
25
+ "noUncheckedSideEffectImports": true,
26
+
27
+ /* Declaration */
28
+ "declaration": true,
29
+ "declarationDir": "dist",
30
+
31
+ "baseUrl": ".",
32
+ "paths": {
33
+ "@/*": ["src/*"]
34
+ }
35
+ },
36
+ "include": ["src"]
37
+ }
package/vite.config.ts CHANGED
@@ -1,94 +1,118 @@
1
- import { defineConfig } from 'vite';
2
- import vue from '@vitejs/plugin-vue';
3
- import Icons from 'unplugin-icons/vite';
4
- import path from 'path';
5
- import { FileSystemIconLoader } from 'unplugin-icons/loaders';
6
- import ElementPlus from 'unplugin-element-plus/vite';
7
- import dts from 'vite-plugin-dts';
8
-
9
- export default defineConfig(({ mode }) => {
10
- const isLibraryMode = mode === 'library';
11
-
12
- return {
13
- build: {
14
- outDir: path.resolve(__dirname, './dist'),
15
- ...(isLibraryMode
16
- ? {
17
- lib: {
18
- entry: path.resolve(__dirname, 'src/index.ts'),
19
- name: 'OpenDesignPlusComponents',
20
- fileName: (format) => `components.${format}.js`,
21
- formats: ['es', 'umd', 'cjs'],
22
- cssInjectedByJs: true,
23
- },
24
- rollupOptions: {
25
- external: [
26
- /^element-plus/,
27
- 'vue',
28
- '@opensig/opendesign',
29
- '@vueuse/core',
30
- 'shiki',
31
- '@opendesign-plus/composables',
32
- ],
33
- output: {
34
- globals: {
35
- 'element-plus': 'ElementPlus',
36
- vue: 'Vue',
37
- '@opensig/opendesign': 'OpenDesign',
38
- '@vueuse/core': 'VueUse',
39
- '@opendesign-plus/composables': 'OpenDesignPlusComposables',
40
- },
41
- entryFileNames: 'components.[format].js',
42
- chunkFileNames: 'components-[name].[format].js',
43
- },
44
- },
45
- cssCodeSplit: false, // 禁用CSS分割,所有样式打包到一起
46
- }
47
- : {}),
48
- },
49
- resolve: {
50
- alias: {
51
- vue: 'vue/dist/vue.esm-bundler.js',
52
- '@': path.resolve(__dirname, 'src'),
53
- },
54
- },
55
- css: {
56
- preprocessorOptions: {
57
- scss: {
58
- charset: false,
59
- additionalData: `
60
- @use "@opendesign-plus/styles/mixin/screen.scss" as *;
61
- @use "@opendesign-plus/styles/mixin/font.scss" as *;
62
- @use "@opendesign-plus/styles/mixin/common.scss" as *;
63
- `,
64
- },
65
- },
66
- },
67
- plugins: [
68
- // 关键:配置Vue插件正确处理样式
69
- vue({
70
- include: [/\.vue$/],
71
- template: {
72
- compilerOptions: {
73
- // 确保模板编译正确
74
- },
75
- },
76
- }) as any,
77
- dts({
78
- include: ['./src/components/*.vue', './src/index.ts']
79
- }),
80
- Icons({
81
- compiler: 'vue3',
82
- customCollections: {
83
- components: FileSystemIconLoader(path.resolve(__dirname, './src/assets/svg-icons')),
84
- },
85
- }),
86
- ElementPlus({ useSource: true })
87
- ],
88
- assetsInclude: ['**/*.md'],
89
- server: {
90
- proxy: {},
91
- },
92
- base: '/',
93
- };
94
- });
1
+ import { defineConfig } from 'vite';
2
+ import vue from '@vitejs/plugin-vue';
3
+ import Icons from 'unplugin-icons/vite';
4
+ import path from 'path';
5
+ import { FileSystemIconLoader } from 'unplugin-icons/loaders';
6
+ import ElementPlus from 'unplugin-element-plus/vite';
7
+ import dts from 'vite-plugin-dts';
8
+
9
+ export default defineConfig(({ mode }) => {
10
+ const isLibraryMode = mode === 'library';
11
+
12
+ return {
13
+ build: {
14
+ outDir: path.resolve(__dirname, './dist'),
15
+ ...(isLibraryMode
16
+ ? {
17
+ lib: {
18
+ entry: {
19
+ lib: path.resolve(__dirname, 'src/index.ts'),
20
+ element: path.resolve(__dirname, 'src/components/element-plus/index.ts'),
21
+ },
22
+ name: 'OpenDesignPlusComponents',
23
+ fileName: (format, entry) => {
24
+ if (entry === 'lib') return `components.${format}.js`;
25
+ return `components.${entry}.${format}.js`;
26
+ },
27
+ formats: ['es', 'cjs'],
28
+ cssInjectedByJs: true,
29
+ },
30
+ rollupOptions: {
31
+ external: (id: string) => {
32
+ // element-plus 的 CSS 样式路径不外部化,打包进库中
33
+ if (
34
+ id.startsWith('element-plus') &&
35
+ (id.includes('/style') || id.includes('/theme-chalk'))
36
+ ) {
37
+ return false;
38
+ }
39
+ // element-plus JS 保持外部化
40
+ if (/^element-plus/.test(id)) return true;
41
+ // 其他外部依赖
42
+ return [
43
+ 'vue',
44
+ '@opensig/opendesign',
45
+ '@vueuse/core',
46
+ 'shiki',
47
+ '@opendesign-plus/composables',
48
+ ].some((ext) => id === ext || id.startsWith(ext + '/'));
49
+ },
50
+ output: {
51
+ globals: {
52
+ 'element-plus': 'ElementPlus',
53
+ vue: 'Vue',
54
+ '@opensig/opendesign': 'OpenDesign',
55
+ '@vueuse/core': 'VueUse',
56
+ '@opendesign-plus/composables': 'OpenDesignPlusComposables',
57
+ },
58
+ // entryFileNames: 'components.[format].js',
59
+ chunkFileNames: 'chunk-[name].[format].js',
60
+ },
61
+ },
62
+ cssCodeSplit: false, // 禁用CSS分割,所有样式打包到一起
63
+ }
64
+ : {}),
65
+ },
66
+ resolve: {
67
+ alias: {
68
+ vue: 'vue/dist/vue.esm-bundler.js',
69
+ '@': path.resolve(__dirname, 'src'),
70
+ },
71
+ },
72
+ css: {
73
+ preprocessorOptions: {
74
+ scss: {
75
+ charset: false,
76
+ additionalData: `
77
+ @use "@opendesign-plus/styles/mixin/screen.scss" as *;
78
+ @use "@opendesign-plus/styles/mixin/font.scss" as *;
79
+ @use "@opendesign-plus/styles/mixin/common.scss" as *;
80
+ @use "@opendesign-plus/styles/mixin/gap.scss" as *;
81
+ @use "@opendesign-plus/styles/element-plus.css" as *;
82
+ `,
83
+ },
84
+ },
85
+ },
86
+ plugins: [
87
+ // 关键:配置Vue插件正确处理样式
88
+ vue({
89
+ include: [/\.vue$/],
90
+ template: {
91
+ compilerOptions: {
92
+ // 确保模板编译正确
93
+ },
94
+ },
95
+ }) as any,
96
+ dts({
97
+ include: ['./src/components/**/*', './src/index.ts'],
98
+ exclude: ['./src/components/common/**/*']
99
+ }),
100
+ Icons({
101
+ compiler: 'vue3',
102
+ customCollections: {
103
+ components: FileSystemIconLoader(path.resolve(__dirname, './src/assets/svg-icons')),
104
+ meeting: FileSystemIconLoader(path.resolve(__dirname, './src/assets/meeting/svg-icons')),
105
+ events: FileSystemIconLoader(path.resolve(__dirname, './src/assets/events/svg-icons')),
106
+ },
107
+ }),
108
+ ...(isLibraryMode
109
+ ? [ElementPlus({ useSource: false })]
110
+ : [ElementPlus({ useSource: true })])
111
+ ],
112
+ assetsInclude: ['**/*.md'],
113
+ server: {
114
+ proxy: {},
115
+ },
116
+ base: '/',
117
+ };
118
+ });