@opendesign-plus-test/components 0.0.1-rc.34 → 0.0.1-rc.36

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 (55) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +60 -54
  3. package/dist/components/OHeaderUser.vue.d.ts +2 -0
  4. package/dist/components/activity/composables/useActivityConfig.d.ts +17 -0
  5. package/dist/components/activity/config.d.ts +0 -14
  6. package/dist/components/header/OHeader.vue.d.ts +8 -2
  7. package/dist/components/header/OHeaderMobile.vue.d.ts +171 -0
  8. package/dist/components/header/components/HeaderContent.vue.d.ts +8 -1
  9. package/dist/components/header/components/HeaderNav.vue.d.ts +13 -1
  10. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +33 -0
  11. package/dist/components/header/index.d.ts +128 -5
  12. package/dist/components/header/types.d.ts +80 -0
  13. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +1 -0
  14. package/dist/components/meeting/composables/useMeetingConfig.d.ts +14 -0
  15. package/dist/components/meeting/config.d.ts +1 -16
  16. package/dist/components/meeting/types.d.ts +2 -0
  17. package/dist/components/meeting/utils.d.ts +1 -15
  18. package/dist/components.cjs.js +39 -39
  19. package/dist/components.css +1 -1
  20. package/dist/components.es.js +10107 -10368
  21. package/package.json +2 -2
  22. package/src/components/OHeaderUser.vue +4 -4
  23. package/src/components/OSourceCode.vue +1 -1
  24. package/src/components/activity/OActivityApproval.vue +3 -4
  25. package/src/components/activity/OActivityForm.vue +7 -6
  26. package/src/components/activity/OMyActivityCalendar.vue +11 -12
  27. package/src/components/activity/composables/useActivityConfig.ts +143 -0
  28. package/src/components/activity/config.ts +1 -141
  29. package/src/components/header/OHeader.vue +6 -24
  30. package/src/components/header/OHeaderMobile.vue +177 -0
  31. package/src/components/header/components/HeaderContent.vue +190 -11
  32. package/src/components/header/components/HeaderNav.vue +3 -5
  33. package/src/components/header/components/HeaderNavMobile.vue +377 -0
  34. package/src/components/header/index.ts +5 -5
  35. package/src/components/header/types.ts +91 -0
  36. package/src/components/meeting/OMeetingCalendar.vue +41 -45
  37. package/src/components/meeting/OMeetingForm.vue +11 -18
  38. package/src/components/meeting/OMyMeetingCalendar.vue +9 -9
  39. package/src/components/meeting/OSigMeetingCalendar.vue +5 -6
  40. package/src/components/meeting/components/OMeetingCalendarList.vue +28 -37
  41. package/src/components/meeting/components/OMeetingDetail.vue +13 -12
  42. package/src/components/meeting/components/OSigMeetingAside.vue +4 -1
  43. package/src/components/meeting/composables/useMeetingConfig.ts +108 -0
  44. package/src/components/meeting/config.ts +13 -75
  45. package/src/components/meeting/index.ts +1 -1
  46. package/src/components/meeting/types.ts +2 -0
  47. package/src/components/meeting/utils.ts +3 -56
  48. package/src/i18n/en.ts +20 -17
  49. package/src/i18n/zh.ts +5 -2
  50. package/dist/components/header/OHeaderMoblie.vue.d.ts +0 -33
  51. package/dist/components/header/components/HeaderNavMoblie.vue.d.ts +0 -17
  52. package/dist/components/header/components/HeaderUbmcNav.vue.d.ts +0 -2
  53. package/src/components/header/OHeaderMoblie.vue +0 -152
  54. package/src/components/header/components/HeaderNavMoblie.vue +0 -346
  55. package/src/components/header/components/HeaderUbmcNav.vue +0 -540
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendesign-plus-test/components",
3
- "version": "0.0.1-rc.34",
3
+ "version": "0.0.1-rc.36",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -33,7 +33,7 @@
33
33
  "video.js": "^8.23.7",
34
34
  "vue-dompurify-html": "^3.1.2",
35
35
  "@opendesign-plus/styles": "0.0.1-rc.2",
36
- "@opendesign-plus/composables": "0.0.1-rc.6"
36
+ "@opendesign-plus/composables": "npm:@opendesign-plus-test/composables@0.0.1-rc.5"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@vitejs/plugin-vue": "^5.1.0",
@@ -31,6 +31,7 @@ interface UserPropsT {
31
31
  noticeTotal?: number;
32
32
  userInfo?: UserInfoT;
33
33
  options?: OptionsItemT[];
34
+ customSize?: number;
34
35
  }
35
36
 
36
37
  withDefaults(defineProps<UserPropsT>(), {
@@ -39,6 +40,7 @@ withDefaults(defineProps<UserPropsT>(), {
39
40
  noticeTotal: undefined,
40
41
  userInfo: undefined,
41
42
  options: undefined,
43
+ customSize: undefined,
42
44
  });
43
45
 
44
46
  export interface OHeaderUserEmitsT {
@@ -79,7 +81,7 @@ const jumpToPage = (val: any) => {
79
81
  >
80
82
  <div class="info-wrap hover-icon-rotate">
81
83
  <OBadge :value="noticeTotal" :dot="true" color="danger" class="header-message user-avatar" :class="{ 'notice-not': !noticeTotal }">
82
- <AppAvatar :avatar="userInfo.photo" :name="userInfo.username" :custom-size="20" />
84
+ <AppAvatar :avatar="userInfo.photo" :name="userInfo.username" :custom-size="customSize" />
83
85
  </OBadge>
84
86
  <p class="user-account">{{ userInfo.username }}</p>
85
87
  <OIcon class="icon">
@@ -194,7 +196,7 @@ const jumpToPage = (val: any) => {
194
196
 
195
197
  <style lang="scss">
196
198
  .user-dropdown {
197
- --dropdown-list-radius: var(--o-radius-m);
199
+ --dropdown-list-radius: var(--o-radius-xs);
198
200
  }
199
201
  .avatar-icon {
200
202
  font-size: 24px;
@@ -207,8 +209,6 @@ const jumpToPage = (val: any) => {
207
209
  }
208
210
  @include respond-to('<=pad_v') {
209
211
  .user-dropdown {
210
- --dropdown-list-radius: 8px;
211
-
212
212
  .o-divider {
213
213
  display: none;
214
214
  }
@@ -38,7 +38,7 @@ const visibleChange = (val: boolean) => {
38
38
 
39
39
  <template>
40
40
  <div class="source-code">
41
- <div v-if="url" class="info-wrap">
41
+ <div v-if="url" class="info-wrap" @click="itemChange({ url: url })">
42
42
  <span class="title">{{ title }}</span>
43
43
  <OIcon v-if="icon">
44
44
  <component :is="icon" class="icon" />
@@ -15,15 +15,14 @@ import {
15
15
  import { useScreen } from '@opendesign-plus/composables';
16
16
  import { onMounted, watch, ref, reactive, computed } from 'vue';
17
17
  import { ActivityItemT, ActivityTablePropsT, ReviewParamsT, TypeOptionT } from './types';
18
- import { getApprovalStatusMap, getStatusMap } from './config';
18
+ import { useActivityConfig } from './composables/useActivityConfig';
19
19
  import ThFilter from '../common/ThFilter.vue';
20
20
  import OMeetingDetail from '@/components/meeting/components/OMeetingDetail.vue';
21
21
  import { useI18n } from '@/i18n';
22
22
 
23
23
  const { t, locale } = useI18n();
24
24
  const isZh = computed(() => locale.value === 'zh');
25
- const approvalStatusMap = getApprovalStatusMap();
26
- const statusMap = getStatusMap();
25
+ const { approvalStatusMap, statusMap } = useActivityConfig();
27
26
 
28
27
 
29
28
  const message = useMessage(null);
@@ -58,7 +57,7 @@ const sortTime = () => {
58
57
  const statusValue = ref();
59
58
  const statusOptions = computed<TypeOptionT[]>(() => {
60
59
  let list: TypeOptionT[] | { label: string; value: string; }[] = [];
61
- approvalStatusMap.forEach((item) => {
60
+ approvalStatusMap.value.forEach((item) => {
62
61
  list.push(item);
63
62
  });
64
63
  return list.slice(1);
@@ -15,9 +15,10 @@ import { computed, ref, watch } from 'vue';
15
15
  import { ActivityFormPropsT, ParamsItemT } from './types';
16
16
  import { useScreen } from '@opendesign-plus/composables';
17
17
  import { dayjs, ElDatePicker } from 'element-plus';
18
- import { getActicityTypeMap, WEBSITE_REGEXP } from './config';
18
+ import { WEBSITE_REGEXP } from './config';
19
19
  import { EMAIL_REGEX } from '@/components/meeting/config.ts';
20
20
  import { useI18n } from '@/i18n';
21
+ import { useActivityConfig } from './composables/useActivityConfig';
21
22
 
22
23
  const emits = defineEmits(['confirm', 'close']);
23
24
 
@@ -25,7 +26,7 @@ const message = useMessage(null);
25
26
  const { lePadV } = useScreen();
26
27
  const { t } = useI18n();
27
28
  const $t = t;
28
- const acticityTypeMap = getActicityTypeMap();
29
+ const { activityTypeMap } = useActivityConfig();
29
30
 
30
31
  interface TypeOptionT {
31
32
  label: string;
@@ -226,7 +227,7 @@ const approverList = computed(() => {
226
227
 
227
228
  const typeValue = ref<string>('');
228
229
  const typeOptions = ref<TypeOptionT[]>([]); // 活动类型
229
- acticityTypeMap.forEach((item) => {
230
+ activityTypeMap.value.forEach((item) => {
230
231
  typeOptions.value.push(item);
231
232
  });
232
233
  const changeType = (val: SelectValueT) => {
@@ -279,7 +280,7 @@ watch(
279
280
  organizer,
280
281
  } as ParamsItemT;
281
282
  form.value = { ...params };
282
- typeValue.value = acticityTypeMap.get(val.activity_type)?.label;
283
+ typeValue.value = activityTypeMap.value.get(val.activity_type)?.label;
283
284
  form.value.start_date = `${ form.value.start_date } ${ form.value.start }`;
284
285
  form.value.end_date = `${ form.value.end_date } ${ form.value.end }`;
285
286
  }
@@ -305,7 +306,7 @@ const confirm = async (val: boolean) => {
305
306
  await props.creatActivity?.(form.value);
306
307
  }
307
308
  message.success({
308
- content: t('meeting.activityActionSuccess', [form.value.title, type.toLowerCase]),
309
+ content: t('meeting.activityActionSuccess', [form.value.title, type.toLowerCase()]),
309
310
  });
310
311
  close();
311
312
  emits('confirm');
@@ -314,7 +315,7 @@ const confirm = async (val: boolean) => {
314
315
  form.value.start_date = `${ form.value.start_date } ${ form.value.start }`;
315
316
  form.value.end_date = `${ form.value.end_date } ${ form.value.end }`;
316
317
  message.danger({
317
- content: t('meeting.activityActionFail', [form.value.title, type.toLowerCase]),
318
+ content: t('meeting.activityActionFail', [form.value.title, type.toLowerCase()]),
318
319
  });
319
320
  } finally {
320
321
  loading.value = false;
@@ -26,15 +26,14 @@ import IconEvent from '~icons/meeting/icon-event.svg';
26
26
  import type { ActivityItemT, MyActivityCalendarPropsT, ParamsItemT } from './types';
27
27
  import { useScreen } from '@opendesign-plus/composables';
28
28
  import { formatDate, getDateNumber } from '../meeting/utils';
29
- import { getStatusMap, getActicityTypeMap } from './config';
29
+ import { useActivityConfig } from './composables/useActivityConfig';
30
30
  import { PageParamsT } from '../meeting/types';
31
31
  import OMeetingDetail from '@/components/meeting/components/OMeetingDetail.vue';
32
32
  import { useI18n, Locales } from '@/i18n';
33
33
 
34
34
  const { t, locale } = useI18n();
35
35
  const isZh = computed(() => locale.value === Locales.ZH);
36
- const statusMap = getStatusMap();
37
- const acticityTypeMap = getActicityTypeMap();
36
+ const { statusMap, activityTypeMap } = useActivityConfig();
38
37
 
39
38
  const formatMonthYear = (date: string | Date) => {
40
39
  const d = dayjs(date || new Date());
@@ -313,7 +312,7 @@ const confirm = () => {
313
312
  return;
314
313
  }
315
314
  dialogLoading.value = true;
316
- props.revokeActivityRequest(currentRow.value?.id)
315
+ props.revokeActivityRequest(currentRow.value?.id)
317
316
  .then(() => {
318
317
  message.success({
319
318
  content: t('meeting.revokeActivitySuccess', [currentRow.value.title]),
@@ -325,7 +324,7 @@ props.revokeActivityRequest(currentRow.value?.id)
325
324
  message.danger({
326
325
  content: t('meeting.revokeActivityFail', [currentRow.value.title]),
327
326
  });
328
- })
327
+ })
329
328
  .finally(() => {
330
329
  revokeVisible.value = false;
331
330
  dialogLoading.value = false;
@@ -373,7 +372,7 @@ const handleSubmitReviewItem = (val: ActivityItemT) => {
373
372
  approver,
374
373
  is_publish: 'true',
375
374
  } as ParamsItemT;
376
- props.editActivityRequest(val.id, params)
375
+ props.editActivityRequest(val.id, params)
377
376
  .then(() => {
378
377
  message.success({
379
378
  content: t('meeting.submitReviewSuccess', [val.title]),
@@ -387,7 +386,7 @@ props.editActivityRequest(val.id, params)
387
386
  });
388
387
  });
389
388
  };
390
- // 删除活动
389
+ // 删除活动
391
390
  const deleteVisible = ref(false);
392
391
  const handleDeleteItem = (val: ActivityItemT) => {
393
392
  currentRow.value = val;
@@ -398,7 +397,7 @@ const confirmDelete = () => {
398
397
  return;
399
398
  }
400
399
  dialogLoading.value = true;
401
- props.deleteActivityRequest(currentRow.value?.id)
400
+ props.deleteActivityRequest(currentRow.value?.id)
402
401
  .then(() => {
403
402
  message.success({
404
403
  content: t('meeting.deleteActivitySuccess', [currentRow.value.title]),
@@ -415,7 +414,7 @@ props.deleteActivityRequest(currentRow.value?.id)
415
414
  deleteVisible.value = false;
416
415
  dialogLoading.value = false;
417
416
  });
418
- };
417
+ };
419
418
  const cancelDelete = () => {
420
419
  deleteVisible.value = false;
421
420
  };
@@ -628,7 +627,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
628
627
  <div class="act-info">
629
628
  <span class="date-range">{{ row.dateRange }}</span>
630
629
  <ODivider direction="v"></ODivider>
631
- <span>{{ acticityTypeMap.get(row.activity_type)?.label }}</span>
630
+ <span>{{ activityTypeMap.get(row.activity_type)?.label }}</span>
632
631
  </div>
633
632
  </div>
634
633
  </div>
@@ -720,7 +719,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
720
719
  </div>
721
720
  </div>
722
721
  </div>
723
- <!-- 撤销审核弹窗 -->
722
+ <!-- 撤销审核弹窗 -->
724
723
  <ODialog v-model:visible="revokeVisible" main-class="handle-dialog-active" :actions="revokeActions">
725
724
  <template #header>{{ t('meeting.withdrawReview') }}</template>
726
725
  <div class="dialog-content">{{ t('meeting.confirmRevokeActivity', [currentRow.title]) }}</div>
@@ -730,7 +729,7 @@ const deleteActions = computed<DialogActionT[]>(() => {
730
729
  <template #header>{{ t('meeting.deleteActivity') }}</template>
731
730
  <div class="dialog-content">{{ t('meeting.confirmDeleteActivity', [currentRow.title]) }}</div>
732
731
  </ODialog>
733
- </template>
732
+ </template>
734
733
 
735
734
  <style lang="scss">
736
735
 
@@ -0,0 +1,143 @@
1
+ import { computed, watch } from 'vue';
2
+ import { useI18n } from '@/i18n';
3
+
4
+ export const useActivityConfig = () => {
5
+ const { t, locale } = useI18n();
6
+ watch(() => locale.value, () => {
7
+ console.log(locale.value);
8
+ });
9
+ const activityTypeMap = computed(() => new Map([
10
+ [
11
+ 1,
12
+ {
13
+ label: t('meeting.offline'),
14
+ value: 1,
15
+ },
16
+ ],
17
+ [
18
+ 2,
19
+ {
20
+ label: t('meeting.online'),
21
+ value: 2,
22
+ },
23
+ ],
24
+ [
25
+ 3,
26
+ {
27
+ label: t('meeting.onlineOffline'),
28
+ value: 3,
29
+ },
30
+ ],
31
+ ]));
32
+
33
+ const statusMap = computed(() => new Map([
34
+ [
35
+ 1,
36
+ {
37
+ id: 'draft',
38
+ label: t('meeting.statusDraft'),
39
+ text: t('meeting.statusDraft'),
40
+ value: 1,
41
+ },
42
+ ],
43
+ [
44
+ 2,
45
+ {
46
+ id: 'under-review',
47
+ label: t('meeting.statusUnderReview'),
48
+ text: t('meeting.statusPending'),
49
+ value: 2,
50
+ },
51
+ ],
52
+ [
53
+ 3,
54
+ {
55
+ id: 'registration',
56
+ label: t('meeting.statusRegistering'),
57
+ text: t('meeting.statusApproved'),
58
+ value: 3,
59
+ },
60
+ ],
61
+ [
62
+ 4,
63
+ {
64
+ id: 'in-progress',
65
+ label: t('meeting.statusInProgress'),
66
+ text: t('meeting.statusApproved'),
67
+ value: 4,
68
+ },
69
+ ],
70
+ [
71
+ 5,
72
+ {
73
+ id: 'ended',
74
+ label: t('meeting.statusEnded'),
75
+ text: t('meeting.statusEnded'),
76
+ value: 5,
77
+ },
78
+ ],
79
+ [
80
+ 6,
81
+ {
82
+ id: 'modified',
83
+ label: t('meeting.statusModified'),
84
+ text: t('meeting.statusModified'),
85
+ value: 6,
86
+ },
87
+ ],
88
+ [
89
+ 7,
90
+ {
91
+ id: 'reject',
92
+ label: t('meeting.statusRejected'),
93
+ text: t('meeting.statusRejected'),
94
+ value: 7,
95
+ },
96
+ ],
97
+ ]));
98
+
99
+ const approvalStatusMap = computed(() => new Map([
100
+ [
101
+ 'all',
102
+ {
103
+ label: t('common.all'),
104
+ value: 'all',
105
+ },
106
+ ],
107
+ [
108
+ 'rejected',
109
+ {
110
+ label: t('meeting.statusRejected'),
111
+ value: 'rejected',
112
+ },
113
+ ],
114
+ [
115
+ 'approved',
116
+ {
117
+ label: t('meeting.statusApproved'),
118
+ value: 'approved',
119
+ },
120
+ ],
121
+ [
122
+ 'publish',
123
+ {
124
+ label: t('meeting.statusPending'),
125
+ value: 'publish',
126
+ },
127
+ ],
128
+ [
129
+ 'cancel',
130
+ {
131
+ label: t('meeting.statusCanceled'),
132
+ value: 'cancel',
133
+ },
134
+ ],
135
+ ]));
136
+
137
+ return {
138
+ t,
139
+ activityTypeMap,
140
+ statusMap,
141
+ approvalStatusMap,
142
+ };
143
+ };
@@ -1,141 +1 @@
1
- import { useI18n } from '@/i18n';
2
-
3
- export const getActicityTypeMap = () => {
4
- const { t } = useI18n();
5
- return new Map([
6
- [
7
- 1,
8
- {
9
- label: t('meeting.offline'),
10
- value: 1,
11
- },
12
- ],
13
- [
14
- 2,
15
- {
16
- label: t('meeting.online'),
17
- value: 2,
18
- },
19
- ],
20
- [
21
- 3,
22
- {
23
- label: t('meeting.onlineOffline'),
24
- value: 3,
25
- },
26
- ],
27
- ]);
28
- };
29
-
30
- export const WEBSITE_REGEXP = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w ./?%&=-]*)?$/;
31
-
32
-
33
- export const getStatusMap = () => {
34
- const { t } = useI18n();
35
- return new Map([
36
- [
37
- 1,
38
- {
39
- id: 'draft',
40
- label: t('meeting.statusDraft'),
41
- text: t('meeting.statusDraft'),
42
- value: 1,
43
- },
44
- ],
45
- [
46
- 2,
47
- {
48
- id: 'under-review',
49
- label: t('meeting.statusUnderReview'),
50
- text: t('meeting.statusPending'),
51
- value: 2,
52
- },
53
- ],
54
- [
55
- 3,
56
- {
57
- id: 'registration',
58
- label: t('meeting.statusRegistering'),
59
- text: t('meeting.statusApproved'),
60
- value: 3,
61
- },
62
- ],
63
- [
64
- 4,
65
- {
66
- id: 'in-progress',
67
- label: t('meeting.statusInProgress'),
68
- text: t('meeting.statusApproved'),
69
- value: 4,
70
- },
71
- ],
72
- [
73
- 5,
74
- {
75
- id: 'ended',
76
- label: t('meeting.statusEnded'),
77
- text: t('meeting.statusEnded'),
78
- value: 5,
79
- },
80
- ],
81
- [
82
- 6,
83
- {
84
- id: 'modified',
85
- label: t('meeting.statusModified'),
86
- text: t('meeting.statusModified'),
87
- value: 6,
88
- },
89
- ],
90
- [
91
- 7,
92
- {
93
- id: 'reject',
94
- label: t('meeting.statusRejected'),
95
- text: t('meeting.statusRejected'),
96
- value: 7,
97
- },
98
- ],
99
- ]);
100
- };
101
-
102
- export const getApprovalStatusMap = () => {
103
- const { t } = useI18n();
104
- return new Map([
105
- [
106
- 'all',
107
- {
108
- label: t('common.all'),
109
- value: 'all',
110
- },
111
- ],
112
- [
113
- 'rejected',
114
- {
115
- label: t('meeting.statusRejected'),
116
- value: 'rejected',
117
- },
118
- ],
119
- [
120
- 'approved',
121
- {
122
- label: t('meeting.statusApproved'),
123
- value: 'approved',
124
- },
125
- ],
126
- [
127
- 'publish',
128
- {
129
- label: t('meeting.statusPending'),
130
- value: 'publish',
131
- },
132
- ],
133
- [
134
- 'cancel',
135
- {
136
- label: t('meeting.statusCanceled'),
137
- value: 'cancel',
138
- },
139
- ],
140
- ]);
141
- };
1
+ export const WEBSITE_REGEXP = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w ./?%&=-]*)?$/;
@@ -4,7 +4,8 @@ import { ref } from 'vue';
4
4
  import ContentWrapper from '../common/ContentWrapper.vue';
5
5
  import HeaderNav from './components/HeaderNav.vue';
6
6
  import HeaderContent from './components/HeaderContent.vue';
7
- import HeaderUbmcNav from './components/HeaderUbmcNav.vue';
7
+
8
+ import { type NavT } from './types.ts';
8
9
 
9
10
  import { useTheme } from '@opendesign-plus/composables';
10
11
 
@@ -17,16 +18,7 @@ export interface OHeaderT {
17
18
 
18
19
  const emit = defineEmits<OHeaderT>();
19
20
 
20
- const props = defineProps({
21
- logo: undefined,
22
- lang: undefined,
23
- community: undefined,
24
- navData: undefined,
25
- bgLeft: undefined,
26
- bgRight: undefined,
27
- tagMap: undefined,
28
- activeIndex: undefined,
29
- });
21
+ const props = defineProps<NavT>();
30
22
 
31
23
  const hoverIndex = ref();
32
24
  const hoverId = ref();
@@ -69,7 +61,7 @@ const handleMouseleaveSub = (val: string) => {
69
61
  </slot>
70
62
  </div>
71
63
  <!-- nav -->
72
- <div v-if="props.community !== 'openUBMC'" class="header-nav">
64
+ <div class="header-nav">
73
65
  <slot name="nav">
74
66
  <HeaderNav
75
67
  v-if="props.navData"
@@ -82,19 +74,13 @@ const handleMouseleaveSub = (val: string) => {
82
74
  ></HeaderNav>
83
75
  </slot>
84
76
  </div>
85
- <!-- openUBMC nav -->
86
- <div v-if="props.community === 'openUBMC'" class="header-nav-openubmc">
87
- <slot name="nav">
88
- <HeaderUbmcNav v-if="props.navData" :nav-data="props.navData" :has-perm="true" :tag-map="props.tagMap" />
89
- </slot>
90
- </div>
91
77
  <!-- toolbar -->
92
78
  <div v-if="$slots.toolbar" class="header-toolbar">
93
79
  <slot name="toolbar"></slot>
94
80
  </div>
95
81
  </ContentWrapper>
96
82
  </div>
97
- <div v-if="props.community !== 'openUBMC'" class="header-nav-content">
83
+ <div class="header-nav-content">
98
84
  <HeaderContent
99
85
  :itemData="itemData"
100
86
  :item-visible="itemVisible"
@@ -147,13 +133,9 @@ const handleMouseleaveSub = (val: string) => {
147
133
  overflow: hidden;
148
134
  position: relative;
149
135
  }
150
- .header-nav-openubmc {
151
- flex: 1;
152
- height: 100%;
153
- min-width: 0;
154
- }
155
136
  .header-toolbar {
156
137
  height: 100%;
138
+ position: relative;
157
139
  }
158
140
  .header-nav-content {
159
141
  position: fixed;