@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,509 +0,0 @@
1
- <script setup lang="ts">
2
- import { OIcon } from '@opensig/opendesign';
3
- import IconChecked from '~icons/events/icon-checked.svg';
4
- import { type EventsApplyPropsT } from './types.ts';
5
- import { buildVueDompurifyHTMLDirective } from 'vue-dompurify-html';
6
- import { useTheme } from '@opendesign-plus/composables';
7
-
8
- const { isDark } = useTheme();
9
- // 局部注册 v-dompurify-html 指令
10
- const vDompurifyHtml = buildVueDompurifyHTMLDirective();
11
-
12
- defineProps<EventsApplyPropsT>();
13
- </script>
14
-
15
- <template>
16
- <div class="o-events-apply">
17
- <div class="events-apply-grid">
18
- <template v-for="(step, idx) in steps" :key="idx">
19
- <!-- 移动端序号(grid第1列) -->
20
- <div class="timeline-number">
21
- <div class="number-circle">{{ idx + 1 }}</div>
22
- </div>
23
-
24
- <!-- 卡片内容(grid第2列或桌面端正常位置) -->
25
- <div class="step-item" :class="`step-${idx + 1} ${isDark ? 'is-dark' : ''}`" :style="{}">
26
- <div class="step-title">
27
- <div class="step-idx">{{ idx + 1 }}</div>
28
- <span>{{ step.title }}</span>
29
- </div>
30
- <div class="step-desc">
31
- <div v-if="step.desc" v-dompurify-html="step.desc"></div>
32
- <slot :name="`step${idx + 1}`"></slot>
33
- <div class="desc-list-wrapper">
34
- <div class="desc-list-title" v-if="step.listTitle">{{ step.listTitle }}</div>
35
- <div class="desc-list-content">
36
- <div class="desc-list-item" v-for="(item, itemIdx) in step.list" :key="itemIdx">
37
- <div class="desc-list-item-title">
38
- <OIcon>
39
- <IconChecked />
40
- </OIcon>
41
- <span>{{ item.title }}</span>
42
- </div>
43
- <div class="desc-list-item-desc">{{ item.desc }}</div>
44
- </div>
45
- </div>
46
- </div>
47
- </div>
48
- <div
49
- v-if="step.img"
50
- class="img-wrapper"
51
- :style="{
52
- backgroundImage: `url(${step.img})`,
53
- }"
54
- ></div>
55
- <div
56
- v-if="step.imgPhone"
57
- class="img-wrapper-phone"
58
- :style="{
59
- backgroundImage: `url(${step.imgPhone})`,
60
- }"
61
- ></div>
62
- </div>
63
- </template>
64
- </div>
65
- </div>
66
- </template>
67
-
68
- <style lang="scss">
69
- .o-events-apply {
70
- --events-card-radius: var(--o-radius-xs);
71
- width: 100%;
72
- // 移动端时间线序号
73
- .timeline-number {
74
- display: none; // 桌面端隐藏
75
- @include respond('<=pad_v') {
76
- display: flex;
77
- align-items: flex-start;
78
- padding-top: var(--o-gap-3); // 与 step-title 的 padding 对齐
79
- position: relative;
80
- grid-column: 1; // 固定在第1列
81
-
82
- .number-circle {
83
- width: 24px;
84
- height: 24px;
85
- border-radius: 50%;
86
- background-color: var(--o-color-primary1);
87
- color: #fff;
88
- font-size: 12px;
89
- line-height: 24px;
90
- text-align: center;
91
- font-weight: 400;
92
- position: relative;
93
- z-index: 1;
94
- }
95
-
96
- // 连接线(伪元素)
97
- &::after {
98
- content: '';
99
- position: absolute;
100
- left: 11px; // 圆圈中心 (24px / 2 - 1px = 11px)
101
- top: 44px; // number-circle 下方
102
- width: 1px;
103
- --height: var(--o-gap-6);
104
- height: calc(100% + var(--height) - 40px); // 延伸到下一个元素
105
- background-color: var(--o-color-control4);
106
- @include respond('laptop') {
107
- --height: var(--o-gap-5);
108
- }
109
- @include respond('pad_h') {
110
- --height: var(--o-gap-4);
111
- }
112
- @include respond('pad_v') {
113
- --height: var(--o-gap-5);
114
- }
115
- @include respond('phone') {
116
- --height: var(--o-gap-5);
117
- }
118
- }
119
-
120
- // 最后一个序号不显示连接线(倒数第2个子元素,因为最后一个是step-item)
121
- &:nth-last-child(2)::after {
122
- display: none;
123
- }
124
- }
125
- }
126
-
127
- .events-apply-grid {
128
- display: grid;
129
- grid-template-columns: repeat(3, 1fr); // 桌面端:3列
130
- grid-template-rows: repeat(3, auto); // 桌面端:3行
131
- gap: var(--o-gap-6);
132
- @include respond('laptop') {
133
- gap: var(--o-gap-5);
134
- }
135
- @include respond('pad_h') {
136
- gap: var(--o-gap-4);
137
- }
138
- @include respond('pad_v') {
139
- gap: var(--o-gap-5);
140
- }
141
- @include respond('phone') {
142
- gap: var(--o-gap-5);
143
- }
144
-
145
- // 移动端:2列布局(序号列 + 内容列)
146
- @include respond('<=pad_v') {
147
- grid-template-columns: auto 1fr; // 第1列自适应,第2列占满
148
- grid-template-rows: auto; // 行数自动
149
- gap: var(--o-gap-3); // 列间距12px,行间距12px
150
- row-gap: var(--o-gap-6); // 行间距
151
-
152
- @include respond('laptop') {
153
- row-gap: var(--o-gap-5);
154
- }
155
- @include respond('pad_h') {
156
- row-gap: var(--o-gap-4);
157
- }
158
- @include respond('pad_v') {
159
- row-gap: var(--o-gap-3);
160
- }
161
- @include respond('phone') {
162
- row-gap: var(--o-gap-3);
163
- }
164
- }
165
-
166
- .step-item {
167
- background: var(--o-color-fill2);
168
- border-radius: var(--events-card-radius);
169
- display: flex;
170
- flex-direction: column; // 垂直排列子元素
171
- --idx-size: 20px;
172
- --idx-gap: var(--o-gap-3);
173
- @include respond('laptop') {
174
- --idx-gap: var(--o-gap-2);
175
- }
176
- @include respond('pad_h') {
177
- --idx-gap: var(--o-gap-2);
178
- }
179
- // 移动端:强制在第2列显示
180
- @include respond('<=pad_v') {
181
- grid-column: 2 !important;
182
- grid-row: auto !important;
183
- }
184
-
185
- .step-title {
186
- font-weight: 600;
187
- color: var(--o-color-info1);
188
- margin-bottom: var(--o-gap-4);
189
- padding: var(--o-gap-5) var(--o-gap-6) 0 var(--o-gap-6);
190
- display: flex;
191
- align-items: center;
192
- @include h2;
193
- @include respond('laptop') {
194
- margin-bottom: var(--o-gap-3);
195
- padding: var(--o-gap-4) var(--o-gap-5) 0 var(--o-gap-5);
196
- }
197
- @include respond('pad_h') {
198
- margin-bottom: var(--o-gap-2);
199
- padding: var(--o-gap-3) var(--o-gap-4) 0 var(--o-gap-4);
200
- }
201
- @include respond('pad_v') {
202
- margin-bottom: 0;
203
- padding: var(--o-gap-3) var(--o-gap-4);
204
- border-bottom: 1px solid var(--o-color-control4);
205
- @include text1;
206
- }
207
- @include respond('phone') {
208
- margin-bottom: 0;
209
- padding: var(--o-gap-3) var(--o-gap-4);
210
- border-bottom: 1px solid var(--o-color-control4);
211
- @include text1;
212
- }
213
-
214
- .step-idx {
215
- margin-right: var(--idx-gap);
216
- width: var(--idx-size);
217
- height: var(--idx-size);
218
- font-size: 12px;
219
- line-height: 20px;
220
- border-radius: 50%;
221
- background-color: var(--o-color-primary1);
222
- color: #fff;
223
- text-align: center;
224
- font-weight: 600;
225
- @include respond('pad_v') {
226
- display: none;
227
- }
228
- @include respond('phone') {
229
- display: none;
230
- }
231
- }
232
- }
233
-
234
- .step-desc {
235
- color: var(--o-color-info2);
236
- padding: 0 var(--o-gap-6) var(--o-gap-4) var(--o-gap-6);
237
- @include tip1;
238
- @include respond('laptop') {
239
- padding: 0 var(--o-gap-5) var(--o-gap-3) var(--o-gap-5);
240
- }
241
- @include respond('pad_h') {
242
- padding: 0 var(--o-gap-4) var(--o-gap-3) var(--o-gap-4);
243
- }
244
- @include respond('pad_v') {
245
- padding: var(--o-gap-3) var(--o-gap-4);
246
- }
247
- @include respond('phone') {
248
- padding: var(--o-gap-3) var(--o-gap-4);
249
- }
250
-
251
- .desc-list-wrapper {
252
- @include tip1;
253
- }
254
-
255
- .desc-list-title {
256
- padding-left: calc(var(--idx-size) + var(--idx-gap));
257
- @include respond('<=pad_v') {
258
- display: none;
259
- }
260
- }
261
-
262
- .desc-list-content {
263
- .desc-list-item {
264
- margin-top: var(--o-gap-1);
265
- font-weight: 400;
266
- }
267
-
268
- .desc-list-item-title {
269
- display: flex;
270
- align-items: center;
271
-
272
- .o-icon {
273
- font-size: 16px;
274
- margin-right: var(--o-gap-4);
275
- color: #fff;
276
- @include respond('laptop') {
277
- margin-right: var(--o-gap-3);
278
- }
279
- @include respond('pad_h') {
280
- margin-right: var(--o-gap-2);
281
- }
282
- @include respond('pad_v') {
283
- margin-right: var(--o-gap-2);
284
- }
285
- @include respond('phone') {
286
- margin-right: var(--o-gap-2);
287
- }
288
-
289
- svg path {
290
- fill: currentColor;
291
- }
292
- }
293
-
294
- span {
295
- font-weight: 600;
296
- }
297
- }
298
-
299
- .desc-list-item-desc {
300
- font-weight: 400;
301
- --padding-left: var(--o-gap-4);
302
- padding-left: calc(var(--o-gap-4) + var(--o-gap-4));
303
- color: rgba(255, 255, 255, 0.8);
304
- @include respond('laptop') {
305
- --padding-left: var(--o-gap-3);
306
- }
307
- @include respond('pad_h') {
308
- --padding-left: var(--o-gap-2);
309
- }
310
- @include respond('pad_v') {
311
- padding-left: var(--o-gap-5);
312
- }
313
- @include respond('phone') {
314
- padding-left: var(--o-gap-5);
315
- }
316
- }
317
- }
318
- }
319
-
320
- .img-wrapper,
321
- .img-wrapper-phone {
322
- background-position: center bottom;
323
- margin-top: auto; // 将元素推到父容器底部
324
- background-size: contain;
325
- background-repeat: no-repeat;
326
- }
327
-
328
- .img-wrapper {
329
- @include respond('<=pad_v') {
330
- display: none;
331
- }
332
- }
333
-
334
- .img-wrapper-phone {
335
- @include respond('>pad_v') {
336
- display: none;
337
- }
338
- }
339
-
340
- &.step-1 {
341
- .step-desc {
342
- @include respond('>pad_v') {
343
- padding-bottom: 0;
344
- }
345
- }
346
-
347
- .img-wrapper {
348
- height: 130px;
349
- }
350
-
351
- &.is-dark {
352
- .img-wrapper {
353
- opacity: 0.8;
354
- }
355
- }
356
- }
357
-
358
- &.step-2 {
359
- .step-desc {
360
- @include respond('>pad_v') {
361
- padding-bottom: 0;
362
- }
363
- }
364
-
365
- .img-wrapper {
366
- height: 136px;
367
- }
368
-
369
- &.is-dark {
370
- .img-wrapper {
371
- opacity: 0.8;
372
- }
373
- }
374
- }
375
-
376
- &.step-3 {
377
- background: linear-gradient(
378
- 142.13deg,
379
- color-mix(in srgb, transparent 0%, transparent) 0%,
380
- color-mix(in srgb, rgba(var(--o-white), 0.6) 60%, transparent) 100%
381
- ),
382
- var(--o-color-primary1);
383
-
384
- &.is-dark {
385
- background: linear-gradient(
386
- 142.13deg,
387
- color-mix(in srgb, var(--o-color-primary1) 40%, transparent) 0%,
388
- color-mix(in srgb, var(--o-color-primary1) 16%, transparent) 100%
389
- ),
390
- var(--o-color-fill2);
391
- }
392
-
393
- .step-idx {
394
- background-color: #fff;
395
- color: #000;
396
- }
397
-
398
- .step-title {
399
- color: #fff;
400
- }
401
-
402
- .step-desc {
403
- color: #fff;
404
- }
405
-
406
- .img-wrapper {
407
- height: 280px;
408
- --width: var(--o-gap-6);
409
- width: calc(100% - var(--width) * 2);
410
- margin-left: auto;
411
- margin-right: auto;
412
- @include respond('laptop') {
413
- --width: var(--o-gap-5);
414
- }
415
- @include respond('pad_h') {
416
- --width: var(--o-gap-4);
417
- height: 220px;
418
- }
419
- @include respond('pad_v') {
420
- --width: var(--o-gap-5);
421
- }
422
- @include respond('phone') {
423
- --width: var(--o-gap-5);
424
- }
425
- }
426
-
427
- .img-wrapper-phone {
428
- height: 66px;
429
- width: calc(100% - 24px);
430
- margin: 0 12px 12px;
431
- }
432
- }
433
-
434
- &.step-4 {
435
- position: relative;
436
- padding-right: 292px;
437
- @include respond('pad_h') {
438
- padding-right: 192px;
439
- }
440
- @include respond('<=pad_v') {
441
- padding-right: 0;
442
- }
443
-
444
- .step-desc {
445
- padding-bottom: var(--o-gap-5);
446
- @include respond('laptop') {
447
- padding-bottom: var(--o-gap-4);
448
- }
449
- @include respond('<=pad') {
450
- padding-bottom: var(--o-gap-3);
451
- }
452
- }
453
-
454
- .img-wrapper {
455
- width: 226px;
456
- height: 116px;
457
- position: absolute;
458
- bottom: 0;
459
- right: 0;
460
- }
461
-
462
- &.is-dark {
463
- .img-wrapper {
464
- opacity: 0.8;
465
- }
466
- }
467
- }
468
-
469
- &.step-5 {
470
-
471
- .step-desc {
472
- padding-bottom: var(--o-gap-5);
473
- }
474
- }
475
- }
476
-
477
- // 卡片1: 第1行第1列
478
- .step-1 {
479
- grid-row: 1;
480
- grid-column: 1;
481
- }
482
-
483
- // 卡片2: 第1行第2列
484
- .step-2 {
485
- grid-row: 1;
486
- grid-column: 2;
487
- }
488
-
489
- // 卡片3: 跨3行,占据第3列
490
- .step-3 {
491
- grid-row: 1 / 4; // 从第1行到第4行(跨3行)
492
- grid-column: 3;
493
- }
494
-
495
- // 卡片4: 第2行,占据第1-2列
496
- .step-4 {
497
- grid-row: 2;
498
- grid-column: 1 / 3; // 从第1列到第3列(占2列)
499
- }
500
-
501
- // 卡片5: 第3行,占据第1-2列
502
- .step-5 {
503
- grid-row: 3;
504
- grid-column: 1 / 3;
505
- }
506
- }
507
- }
508
-
509
- </style>