@opendesign-plus-test/components 0.0.1-rc.19 → 0.0.1-rc.21

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 (42) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +2 -6
  3. package/dist/components/OSourceCode.vue.d.ts +2 -0
  4. package/dist/components/events/config.d.ts +1 -0
  5. package/dist/components.cjs.js +3 -3
  6. package/dist/components.css +1 -1
  7. package/dist/components.es.js +1247 -1240
  8. package/npmcachae/_cacache/content-v2/sha512/05/f7/dd881de8b21208ea65cfce17c65f29964c3897505819f81151b9798a3a6ab1a1114324192354ead15cd2c8d93f76cc9929af168066ec9cc7878d0fd87578 +1 -0
  9. package/npmcachae/_cacache/content-v2/sha512/08/b7/879230f8c2f3765920a6fd6113f4687141f1f645f96af7d95a0dee9113d1095d000fb78a5dd55c1860bbfb9b698ef6281b3874b03b2384222f61fe055fc4 +1 -0
  10. package/npmcachae/_cacache/content-v2/sha512/10/a0/a6626613c03ee052925a762e8675878efdf83dac64fafea43beb2a875f7d7c3907bb0ee30761253cd16021fd58911449594e1d3358675cbb7c48e62f220a +1 -0
  11. package/npmcachae/_cacache/content-v2/sha512/2e/a6/7cbcf55a98bbe2ca881d10e982ebf59211a0ec051eaf46eb1914df66cc35ae502ed6888850e51d8f45cd92695bac16961a642bc41508f8d5160a9ab617ab +1 -0
  12. package/npmcachae/_cacache/content-v2/sha512/92/8d/e5259c5d5cc2a625247f3c4d809192ca9482467e23683d74924a11e91a7997ad890b3d26adaf34df66d5329cc7a5fbde6713110cad05107a0b504e4fd4e8 +1 -0
  13. package/npmcachae/_cacache/content-v2/sha512/e9/45/9597d870127c35681155cec5fe52fde4e1aa0f778b996ee371e856aca850ee4c13aba74b0c3d3a89ff0ea4c9e1d33e64e53c31dc9cede0b31012695ee659 +1 -0
  14. package/npmcachae/_cacache/index-v5/16/4a/7195fcc6857299c4ab7e26014a8ae6e3c396507a2c8db3da1b74b005d574 +3 -0
  15. package/npmcachae/_cacache/index-v5/58/f0/4fe556f104b09be642895a82afa463fe560d9a0dc8f507efeef825a6905e +3 -0
  16. package/npmcachae/_cacache/index-v5/67/7d/0b50dc4c09555fc922ccf43c46994f1a0a5ff47dc0a5d5cf41437ac2d3e6 +3 -0
  17. package/npmcachae/_cacache/index-v5/8f/28/353f8839e030ab11aab3e7d9f1b8c053403e9f593cf6d4aa6ec8fdd7610d +3 -0
  18. package/npmcachae/_cacache/index-v5/97/10/0fcf20eb29d0726bd820822f6729718464b591b0e6901217c956740e943c +3 -0
  19. package/npmcachae/_cacache/index-v5/db/89/a0a4f35f593105624ab39339962d9e9b5cc65ed0c346b0732fb8dd73721d +3 -0
  20. package/npmcachae/_logs/2026-03-26T14_10_35_885Z-debug-0.log +171 -0
  21. package/npmcachae/_logs/2026-03-26T14_10_38_617Z-debug-0.log +4227 -0
  22. package/npmcachae/_logs/2026-03-26T14_10_45_316Z-debug-0.log +4228 -0
  23. package/npmcachae/_logs/2026-03-26T14_10_48_169Z-debug-0.log +4228 -0
  24. package/npmcachae/_logs/2026-03-26T14_10_51_306Z-debug-0.log +464 -0
  25. package/npmcachae/_logs/2026-03-26T14_10_53_911Z-debug-0.log +464 -0
  26. package/npmcachae/_logs/2026-03-26T14_10_56_398Z-debug-0.log +464 -0
  27. package/npmcachae/_logs/2026-03-26T14_10_58_861Z-debug-0.log +464 -0
  28. package/npmcachae/_logs/2026-03-26T14_11_01_337Z-debug-0.log +464 -0
  29. package/npmcachae/_logs/2026-03-26T14_11_03_851Z-debug-0.log +464 -0
  30. package/npmcachae/_logs/2026-03-26T14_11_08_024Z-debug-0.log +464 -0
  31. package/npmcachae/_update-notifier-last-checked +0 -0
  32. package/package.json +3 -3
  33. package/src/components/OFooter.vue +45 -19
  34. package/src/components/OHeader.vue +2 -1
  35. package/src/components/OHeaderMoblie.vue +3 -3
  36. package/src/components/OSourceCode.vue +35 -6
  37. package/src/components/common/HeaderEulerNav.vue +16 -10
  38. package/src/components/common/HeaderNavMoblie.vue +9 -9
  39. package/src/components/common/HeaderUbmcNav.vue +1 -1
  40. package/src/components/events/OEventsList.vue +3 -3
  41. package/src/components/events/config.ts +3 -1
  42. package/vite.config.ts +1 -1
@@ -94,11 +94,12 @@ const mobileClick = () => {
94
94
  z-index: 999;
95
95
  box-shadow: 0 3px 9px 0 rgba(0, 18, 85, 0.08);
96
96
  backdrop-filter: blur(5px);
97
+ --o-header-height: 56px;
97
98
  }
98
99
  .header-wrap {
99
100
  display: flex;
100
101
  align-items: center;
101
- height: 48px;
102
+ height: var(--o-header-height);
102
103
  justify-content: space-between;
103
104
  position: relative;
104
105
  }
@@ -119,11 +120,10 @@ const mobileClick = () => {
119
120
  .header-title {
120
121
  color: var(--o-color-info1);
121
122
  font-weight: 500;
122
- font-size: 16px;
123
- line-height: 24px;
124
123
  overflow: hidden;
125
124
  white-space: nowrap;
126
125
  text-overflow: ellipsis;
126
+ @include text2;
127
127
  }
128
128
  }
129
129
  .simple-header-right {
@@ -1,4 +1,5 @@
1
1
  <script setup lang="ts">
2
+ import { ref } from 'vue';
2
3
  import { OIcon, ODropdown, ODropdownItem } from '@opensig/opendesign';
3
4
 
4
5
  import IconChevronDown from '~icons/components/icon-chevron-down.svg';
@@ -14,6 +15,7 @@ interface CodePropsT {
14
15
  options?: CodeItemT[];
15
16
  url?: string;
16
17
  icon?: string;
18
+ justify?: string;
17
19
  }
18
20
 
19
21
  withDefaults(defineProps<CodePropsT>(), {
@@ -21,11 +23,17 @@ withDefaults(defineProps<CodePropsT>(), {
21
23
  options: undefined,
22
24
  url: undefined,
23
25
  icon: undefined,
26
+ justify: 'center',
24
27
  });
25
28
 
26
29
  const itemChange = (data: any) => {
27
30
  window.open(data.url, '_blank');
28
31
  };
32
+
33
+ const dropdownVisible = ref(false);
34
+ const visibleChange = (val: boolean) => {
35
+ dropdownVisible.value = val;
36
+ };
29
37
  </script>
30
38
 
31
39
  <template>
@@ -36,13 +44,20 @@ const itemChange = (data: any) => {
36
44
  <component :is="icon" class="icon" />
37
45
  </OIcon>
38
46
  </div>
39
- <ODropdown v-else trigger="hover" optionPosition="bottom" option-wrap-class="dropdown">
47
+ <ODropdown
48
+ v-else
49
+ trigger="hover"
50
+ optionPosition="bottom"
51
+ option-wrap-class="dropdown"
52
+ :class="{ 'dropdown-active': dropdownVisible }"
53
+ @visible-change="visibleChange"
54
+ >
40
55
  <div class="info-wrap hover-icon-rotate">
41
56
  <span class="title">{{ title }}</span>
42
57
  <OIcon class="icon"><IconChevronDown /></OIcon>
43
58
  </div>
44
59
  <template #dropdown>
45
- <ODropdownItem v-for="item in options" @click="itemChange(item)" :key="item.url" class="list">
60
+ <ODropdownItem v-for="item in options" @click="itemChange(item)" :key="item.url" class="list" :style="{ '--dropdown-item-justify': justify }">
46
61
  {{ item.label }}
47
62
  <OIcon v-if="item.icon">
48
63
  <component :is="item.icon" class="icon" />
@@ -65,7 +80,7 @@ const itemChange = (data: any) => {
65
80
  color: var(--o-color-info1);
66
81
  cursor: pointer;
67
82
 
68
- &:hover {
83
+ @include hover {
69
84
  color: var(--o-color-primary1);
70
85
  }
71
86
 
@@ -105,18 +120,32 @@ const itemChange = (data: any) => {
105
120
  .o-dropdown {
106
121
  height: 100%;
107
122
  }
123
+ .dropdown-active {
124
+ .info-wrap {
125
+ color: var(--o-color-primary1);
126
+ }
127
+ .o-icon {
128
+ transform: rotate(-180deg);
129
+ }
130
+ }
108
131
  .o-dropdown-item {
109
132
  background: var(--o-color-fill2);
110
133
  cursor: pointer;
111
134
  border-radius: var(--o-radius_control-xs);
112
- padding: var(--o-gap-1);
135
+ padding: var(--o-gap-1) 12px;
113
136
  min-width: 144px;
114
- height: 40px;
137
+ height: 32px;
138
+ @include tip1;
115
139
 
116
140
  @include hover {
117
- color: var(--o-color-primary1);
118
141
  background: var(--o-color-control2-light);
119
142
  }
143
+
144
+ &:active {
145
+ color: var(--o-color-primary1);
146
+ background: var(--o-color-control3-light);
147
+ font-weight: 600;
148
+ }
120
149
  }
121
150
  .dropdown {
122
151
  --dropdown-list-radius: var(--o-radius-xs);
@@ -16,7 +16,7 @@ const props = defineProps({
16
16
  });
17
17
 
18
18
  const { locale } = useLocale();
19
- const { theme } = useTheme();
19
+ const { theme, isDark } = useTheme();
20
20
 
21
21
  const navRef = ref();
22
22
  const navListRef = ref();
@@ -32,9 +32,9 @@ const navShortcut = ref<any>([]);
32
32
  const isPicture = ref(false);
33
33
  const toggleDebounced = useDebounceFn(function (item: any | null) {
34
34
  if (item === null) {
35
- // navActive.value = '';
36
- // isShow.value = false;
37
- // isPicture.value = false;
35
+ navActive.value = '';
36
+ isShow.value = false;
37
+ isPicture.value = false;
38
38
  } else {
39
39
  navActive.value = item.id;
40
40
  isShow.value = true;
@@ -103,7 +103,7 @@ onUnmounted(() => {
103
103
  <div class="right-icon" v-if="navVisibleLeft">
104
104
  <OIcon @click="scrollNavLeft"><IconCaretLeft /></OIcon>
105
105
  </div>
106
- <nav ref="navRef" class="o-nav" :class="{ 'o-nav-scroll': navVisibleLeft || !navVisibleRight }">
106
+ <nav ref="navRef" class="o-nav" :class="{ 'o-nav-scroll': navVisibleLeft || !navVisibleRight, dark: isDark }">
107
107
  <ul ref="navListRef" class="o-nav-list">
108
108
  <li v-for="item in navData" :key="item.id" @mouseenter="toggleDebounced(item)" @mouseleave="toggleDebounced(null)">
109
109
  <span :id="'tour_headerNav_' + item.ID" class="nav-item">{{ item.label }}</span>
@@ -126,7 +126,7 @@ onUnmounted(() => {
126
126
  </OIcon>
127
127
  <OTag v-if="subItem.tag" round="pill" color="danger" size="small" class="content-tag">{{ subItem.tag }}</OTag>
128
128
  </a>
129
- <div class="desc-container">
129
+ <div v-if="subItem.description" class="desc-container">
130
130
  <p class="item-desc" :title="showDesc ? subItem.description : null" @mouseenter="descMouseenter($event)">
131
131
  {{ subItem.description }}
132
132
  </p>
@@ -214,6 +214,11 @@ onUnmounted(() => {
214
214
  &::-webkit-scrollbar {
215
215
  display: none;
216
216
  }
217
+ &.dark {
218
+ &::after {
219
+ background-image: linear-gradient(90deg, rgba(var(--o-mixedgray-4), 0) 0%, rgba(var(--o-mixedgray-4), 1) 100%);
220
+ }
221
+ }
217
222
 
218
223
  .o-nav-list {
219
224
  display: flex;
@@ -285,7 +290,7 @@ onUnmounted(() => {
285
290
  }
286
291
  .nav-dropdown {
287
292
  position: fixed;
288
- top: 72px;
293
+ top: var(--o-header-height);
289
294
  left: 0;
290
295
  right: 0;
291
296
  background: var(--o-color-fill2);
@@ -358,6 +363,7 @@ onUnmounted(() => {
358
363
  }
359
364
  .content-tag {
360
365
  margin-left: var(--o-gap-2);
366
+ border-radius: var(--o-radius-xs);
361
367
  @include respond-to('<=laptop') {
362
368
  display: none;
363
369
  }
@@ -918,9 +924,9 @@ onUnmounted(() => {
918
924
  }
919
925
 
920
926
  .icon {
921
- height: 16px;
922
- width: 16px;
923
- padding-left: 6px;
927
+ width: 24px;
928
+ height: 24px;
929
+ padding-left: 8px;
924
930
  }
925
931
  }
926
932
  .content-label {
@@ -132,7 +132,6 @@ watch(
132
132
  justify-content: center;
133
133
  height: 48px;
134
134
  color: var(--o-color-info1);
135
- font-weight: 500;
136
135
 
137
136
  &.active {
138
137
  color: var(--o-color-primary1);
@@ -142,7 +141,7 @@ watch(
142
141
 
143
142
  .header-content-mb {
144
143
  position: fixed;
145
- top: 48px;
144
+ top: var(--o-header-height);
146
145
  bottom: 0;
147
146
  left: 0;
148
147
  right: 0;
@@ -157,8 +156,8 @@ watch(
157
156
  position: fixed;
158
157
  left: 0;
159
158
  overflow: hidden;
160
- top: 48px;
161
- height: calc(100vh - 48px);
159
+ top: var(--o-header-height);
160
+ height: calc(100vh - var(--o-header-height));
162
161
  transform: translateX(-130%);
163
162
 
164
163
  transition-duration: 0.333s;
@@ -186,12 +185,12 @@ watch(
186
185
  padding: 0;
187
186
  margin: 0;
188
187
  height: auto;
189
- @include h4;
190
188
 
191
189
  > li {
192
190
  position: relative;
193
- @include nav-item;
194
191
  text-align: center;
192
+ @include tip1;
193
+ @include nav-item;
195
194
  }
196
195
  }
197
196
  }
@@ -228,7 +227,7 @@ watch(
228
227
  .content-label {
229
228
  color: var(--o-color-info3);
230
229
  font-weight: 500;
231
- @include text1;
230
+ @include tip1;
232
231
  }
233
232
 
234
233
  .item-not-children {
@@ -277,6 +276,7 @@ watch(
277
276
 
278
277
  .container-mobile {
279
278
  color: var(--o-color-primary1);
279
+ margin-top: 8px;
280
280
  @include text2;
281
281
 
282
282
  .icon {
@@ -299,7 +299,7 @@ watch(
299
299
  color: var(--o-color-primary1);
300
300
  display: flex;
301
301
  align-items: center;
302
- @include text2;
302
+ @include tip1;
303
303
  }
304
304
 
305
305
  .content-tag {
@@ -316,7 +316,7 @@ watch(
316
316
  margin-top: var(--o-gap-1);
317
317
  text-align: justify;
318
318
  word-break: normal;
319
- @include text1;
319
+ @include tip2;
320
320
  @include text-truncate(2);
321
321
  }
322
322
  }
@@ -419,7 +419,7 @@ const handelHref = (href: string) => {
419
419
  align-items: center;
420
420
  height: 100%;
421
421
  padding: 0 var(--o-gap-4);
422
- color: var(--o-color-info2);
422
+ color: var(--o-color-info1);
423
423
  word-break: keep-all;
424
424
  position: relative;
425
425
  font-weight: normal;
@@ -14,8 +14,8 @@ import { computed, ref } from 'vue';
14
14
  import { type EventsCardItemT, EventsStatusT, type EventsListPropsT, SearchParamsT } from './types';
15
15
  import { compareDate } from './utils.ts';
16
16
  import { useI18n } from '@/i18n';
17
- import defaultCover from 'https://infrastructure-website.osinfra.cn/picture/city/default-cover.jpg';
18
- import { CITY_MAP } from './config.ts';
17
+
18
+ import { CITY_MAP, DEFAULT_COVER } from './config.ts';
19
19
  import { useScreen } from '@opendesign-plus/composables';
20
20
 
21
21
  const { t } = useI18n();
@@ -100,7 +100,7 @@ const list = computed(() => {
100
100
  cover = CITY_MAP[city];
101
101
  }
102
102
  if (!cover) {
103
- cover = defaultCover;
103
+ cover = DEFAULT_COVER;
104
104
  }
105
105
  return {
106
106
  ...v,
@@ -30,4 +30,6 @@ export const CITY_MAP = {
30
30
  西安: 'https://infrastructure-website.osinfra.cn/picture/city/xian.jpg',
31
31
  郑州: 'https://infrastructure-website.osinfra.cn/picture/city/zhengzhou.jpg',
32
32
  武汉: 'https://infrastructure-website.osinfra.cn/picture/city/wuhan.jpg',
33
- };
33
+ };
34
+
35
+ export const DEFAULT_COVER = 'https://infrastructure-website.osinfra.cn/picture/city/default-cover.jpg';
package/vite.config.ts CHANGED
@@ -91,7 +91,7 @@ export default defineConfig(({ mode }) => {
91
91
  events: FileSystemIconLoader(path.resolve(__dirname, './src/assets/events/svg-icons')),
92
92
  },
93
93
  }),
94
- ElementPlus({ useSource: true })
94
+ ...(isLibraryMode ? [] : [ElementPlus({ useSource: true })])
95
95
  ],
96
96
  assetsInclude: ['**/*.md'],
97
97
  server: {