@opendesign-plus/components 0.0.1-rc.18 → 0.0.1-rc.19

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 (49) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +2 -2
  3. package/dist/components/OHeaderUser.vue.d.ts +2 -0
  4. package/dist/components/header/OHeader.vue.d.ts +8 -2
  5. package/dist/components/header/OHeaderMobile.vue.d.ts +171 -0
  6. package/dist/components/header/components/HeaderContent.vue.d.ts +8 -1
  7. package/dist/components/header/components/HeaderNav.vue.d.ts +13 -1
  8. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +33 -0
  9. package/dist/components/header/index.d.ts +128 -5
  10. package/dist/components/header/types.d.ts +80 -0
  11. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +1 -0
  12. package/dist/components/meeting/types.d.ts +1 -0
  13. package/dist/components.cjs.js +36 -36
  14. package/dist/components.css +1 -1
  15. package/dist/components.es.js +8683 -8955
  16. package/package.json +3 -3
  17. package/src/components/OHeaderUser.vue +4 -4
  18. package/src/components/OSourceCode.vue +1 -1
  19. package/src/components/activity/OActivityApproval.vue +3 -10
  20. package/src/components/activity/OActivityForm.vue +1 -8
  21. package/src/components/activity/OMyActivityCalendar.vue +0 -15
  22. package/src/components/activity/composables/useActivityConfig.ts +140 -140
  23. package/src/components/events/OEventsApply.vue +1 -2
  24. package/src/components/events/OEventsCalendar.vue +10 -0
  25. package/src/components/header/OHeader.vue +6 -24
  26. package/src/components/header/OHeaderMobile.vue +177 -0
  27. package/src/components/header/components/HeaderContent.vue +190 -11
  28. package/src/components/header/components/HeaderNav.vue +3 -5
  29. package/src/components/header/components/HeaderNavMobile.vue +377 -0
  30. package/src/components/header/index.ts +5 -5
  31. package/src/components/header/types.ts +91 -0
  32. package/src/components/meeting/OMeetingCalendar.vue +35 -37
  33. package/src/components/meeting/OMyMeetingCalendar.vue +5 -1
  34. package/src/components/meeting/OSigMeetingCalendar.vue +2 -1
  35. package/src/components/meeting/components/OMeetingCalendarList.vue +21 -29
  36. package/src/components/meeting/components/OMeetingDetail.vue +2 -2
  37. package/src/components/meeting/components/OSigMeetingAside.vue +1 -0
  38. package/src/components/meeting/composables/useMeetingConfig.ts +0 -3
  39. package/src/components/meeting/config.ts +58 -58
  40. package/src/components/meeting/index.ts +1 -1
  41. package/src/components/meeting/types.ts +1 -0
  42. package/src/components/meeting/utils.ts +69 -69
  43. package/src/i18n/en.ts +2 -2
  44. package/dist/components/header/OHeaderMoblie.vue.d.ts +0 -33
  45. package/dist/components/header/components/HeaderNavMoblie.vue.d.ts +0 -17
  46. package/dist/components/header/components/HeaderUbmcNav.vue.d.ts +0 -2
  47. package/src/components/header/OHeaderMoblie.vue +0 -152
  48. package/src/components/header/components/HeaderNavMoblie.vue +0 -346
  49. package/src/components/header/components/HeaderUbmcNav.vue +0 -540
@@ -0,0 +1,177 @@
1
+ <script setup lang="ts">
2
+ import { ref } from 'vue';
3
+ import { OIcon, OIconArrowLeft } from '@opensig/opendesign';
4
+
5
+ import ContentWrapper from '../common/ContentWrapper.vue';
6
+ import HeaderNavMobile from './components/HeaderNavMobile.vue';
7
+
8
+ import { type NavT } from './types.ts';
9
+
10
+ import IconClose from '~icons/components/icon-close.svg';
11
+ import IconMenu from '~icons/components/icon-header-menu.svg';
12
+
13
+ export interface OHeaderT {
14
+ (e: 'go-back'): void;
15
+ (e: 'go-home'): void;
16
+ }
17
+
18
+ const emit = defineEmits<OHeaderT>();
19
+
20
+ const props = defineProps<NavT>();
21
+
22
+ const goBack = () => {
23
+ emit('go-back');
24
+ };
25
+ const goHome = () => {
26
+ emit('go-home');
27
+ };
28
+
29
+ const menuShow = ref(false);
30
+ const menuPanel = () => {
31
+ setTimeout(() => {
32
+ menuShow.value = !menuShow.value;
33
+ }, 200);
34
+ };
35
+
36
+ const mobileClick = () => {
37
+ menuPanel();
38
+ };
39
+
40
+ const handleClick = () => {
41
+ menuPanel();
42
+ };
43
+ </script>
44
+
45
+ <template>
46
+ <div class="header">
47
+ <div class="header-box">
48
+ <ContentWrapper class="header-wrap">
49
+ <!-- 二级路由简单头部 -->
50
+ <div v-if="isSimpleHeader" class="header-simple">
51
+ <div class="simple-header-left">
52
+ <OIcon @click="goBack">
53
+ <OIconArrowLeft />
54
+ </OIcon>
55
+ <div v-if="headerTitle" class="header-title">
56
+ {{ headerTitle }}
57
+ </div>
58
+ </div>
59
+ <div v-if="$slots.rightConfig" class="simple-header-right">
60
+ <slot name="rightConfig"></slot>
61
+ </div>
62
+ </div>
63
+ <template v-else>
64
+ <div class="header-left">
65
+ <OIcon @click="menuPanel">
66
+ <IconMenu v-if="!menuShow" />
67
+ <IconClose v-else />
68
+ </OIcon>
69
+ </div>
70
+ <div class="header-center">
71
+ <div class="header-logo" @click="goHome">
72
+ <slot name="logo">
73
+ <img v-if="props.logo" class="logo" alt="logo" :src="props.logo" />
74
+ </slot>
75
+ </div>
76
+ </div>
77
+ <div class="header-right">
78
+ <slot name="toolbar"></slot>
79
+ </div>
80
+ </template>
81
+ </ContentWrapper>
82
+ </div>
83
+ <div class="header-content-mb" :class="{ 'header-content-active': menuShow }">
84
+ <HeaderNavMobile
85
+ ref="mobileNav"
86
+ :nav-data="navData"
87
+ :code-data="codeData"
88
+ :lang-data="langData"
89
+ :menu-show="menuShow"
90
+ @handle-click="handleClick"
91
+ @on-click="mobileClick"
92
+ >
93
+ <template #tool>
94
+ <slot name="tool"></slot>
95
+ </template>
96
+ </HeaderNavMobile>
97
+ </div>
98
+ </div>
99
+ </template>
100
+
101
+ <style lang="scss" scoped>
102
+ .header {
103
+ --o-header-height: 56px;
104
+ }
105
+ .header-box {
106
+ background-color: var(--o-color-fill2);
107
+ position: fixed;
108
+ left: 0;
109
+ right: 0;
110
+ top: 0;
111
+ z-index: 999;
112
+ box-shadow: 0 3px 9px 0 rgba(0, 18, 85, 0.08);
113
+ backdrop-filter: blur(5px);
114
+ }
115
+ .header-wrap {
116
+ display: flex;
117
+ align-items: center;
118
+ height: var(--o-header-height);
119
+ justify-content: space-between;
120
+ position: relative;
121
+ }
122
+ .header-simple {
123
+ width: 100%;
124
+ display: flex;
125
+ align-items: center;
126
+ justify-content: space-between;
127
+ .o-icon {
128
+ font-size: 24px;
129
+ }
130
+ .simple-header-left {
131
+ display: flex;
132
+ gap: 16px;
133
+ color: var(--o-color-info1);
134
+ overflow: hidden;
135
+ flex-grow: 1;
136
+ .header-title {
137
+ color: var(--o-color-info1);
138
+ font-weight: 500;
139
+ overflow: hidden;
140
+ white-space: nowrap;
141
+ text-overflow: ellipsis;
142
+ @include text2;
143
+ }
144
+ }
145
+ .simple-header-right {
146
+ flex-shrink: 0;
147
+ color: var(--o-color-info1);
148
+ font-weight: 500;
149
+ font-size: 16px;
150
+ line-height: 24px;
151
+ }
152
+ }
153
+
154
+ .header-left {
155
+ display: flex;
156
+ align-items: center;
157
+ .o-icon {
158
+ --icon-size: 24px;
159
+ }
160
+ }
161
+ .logo {
162
+ height: 24px;
163
+ width: auto;
164
+ }
165
+
166
+ .header-content-mb {
167
+ position: fixed;
168
+ top: var(--o-header-height);
169
+ left: 0;
170
+ height: 0;
171
+ z-index: 998;
172
+ }
173
+ .header-content-active {
174
+ width: 100%;
175
+ height: calc(100vh - var(--o-header-height));
176
+ }
177
+ </style>
@@ -6,6 +6,8 @@ import ContentWrapper from '../../common/ContentWrapper.vue';
6
6
 
7
7
  import { useLocale, useTheme } from '@opendesign-plus/composables';
8
8
 
9
+ import { type NavLiItemT } from '../types.ts';
10
+
9
11
  export interface OHeaderEmitsT {
10
12
  (e: 'handle-mouseenter-sub', val: any): void;
11
13
  (e: 'handle-mouseleave-sub', val: any): void;
@@ -13,14 +15,7 @@ export interface OHeaderEmitsT {
13
15
 
14
16
  const emit = defineEmits<OHeaderEmitsT>();
15
17
 
16
- const props = defineProps({
17
- itemData: undefined,
18
- itemVisible: undefined,
19
- community: undefined,
20
- bgLeft: undefined,
21
- bgRight: undefined,
22
- hoverIndex: undefined,
23
- });
18
+ const props = defineProps<NavLiItemT>();
24
19
 
25
20
  const { locale } = useLocale();
26
21
  const { theme } = useTheme();
@@ -142,9 +137,7 @@ const onClickShortcut = (item: any) => {
142
137
  <p class="review-label">
143
138
  {{ shortcut.label }}
144
139
  </p>
145
- <div class="review-property">
146
- <span>{{ shortcut.remark }}</span>
147
- </div>
140
+ <div class="review-property">{{ shortcut.remark }}</div>
148
141
  </div>
149
142
  </a>
150
143
  </template>
@@ -939,4 +932,190 @@ const onClickShortcut = (item: any) => {
939
932
  z-index: -1;
940
933
  }
941
934
  }
935
+
936
+ .openubmc {
937
+ &.download {
938
+ .item-sub {
939
+ margin-left: 80px;
940
+ &:nth-of-type(1) {
941
+ margin-left: 0;
942
+ .content-container {
943
+ width: 464px;
944
+ :deep(.content-item) {
945
+ margin-left: 64px;
946
+ &:nth-child(2n + 1) {
947
+ margin-left: 0;
948
+ }
949
+ &:nth-of-type(2) {
950
+ margin-top: 0;
951
+ }
952
+ }
953
+ }
954
+ }
955
+
956
+ @include respond-to('<=laptop') {
957
+ margin-left: 24px;
958
+ &:nth-of-type(1) {
959
+ .content-container {
960
+ width: 364px;
961
+ :deep(.content-item) {
962
+ margin-left: 24px;
963
+ }
964
+ }
965
+ }
966
+ &:nth-of-type(3) {
967
+ .content-container {
968
+ width: 170px;
969
+ }
970
+ }
971
+ }
972
+
973
+ @include respond-to('pad_h') {
974
+ &:nth-of-type(1) {
975
+ .content-container {
976
+ width: 344px;
977
+ }
978
+ }
979
+ }
980
+ }
981
+
982
+ @include respond-to('pad_h') {
983
+ .content-left {
984
+ .item-sub {
985
+ max-width: 25%;
986
+ flex: 1 1 auto;
987
+ .content-container {
988
+ width: auto;
989
+ :deep(.content-item) {
990
+ width: 100%;
991
+ }
992
+ }
993
+ &:nth-of-type(1) {
994
+ max-width: 50%;
995
+ .content-container {
996
+ :deep(.content-item) {
997
+ width: calc(50% - 12px);
998
+ }
999
+ }
1000
+ }
1001
+ }
1002
+ }
1003
+ }
1004
+ }
1005
+ &.development,
1006
+ &.learn,
1007
+ &.support,
1008
+ &.trends {
1009
+ .content-item {
1010
+ margin-left: 80px;
1011
+ margin-top: 0;
1012
+ &:first-of-type {
1013
+ margin-left: 0;
1014
+ }
1015
+ }
1016
+ }
1017
+ &.docs {
1018
+ .item-sub {
1019
+ &:nth-of-type(1) {
1020
+ .content-container {
1021
+ :deep(.content-item) {
1022
+ margin-right: 64px;
1023
+ &:nth-child(-n + 4) {
1024
+ margin-top: 0;
1025
+ }
1026
+ &:nth-of-type(4) {
1027
+ margin-right: 0;
1028
+ }
1029
+
1030
+ @include respond-to('<=laptop') {
1031
+ margin-right: 24px;
1032
+ }
1033
+ }
1034
+ @media (min-width: 1441px) and (max-width: 1505px) {
1035
+ :deep(.content-item) {
1036
+ margin-right: 40px;
1037
+ }
1038
+ }
1039
+ @include respond-to('>laptop') {
1040
+ width: 992px;
1041
+ }
1042
+ @include respond-to('laptop') {
1043
+ width: 752px;
1044
+ }
1045
+ @include respond-to('pad_h') {
1046
+ width: auto;
1047
+ }
1048
+ }
1049
+ }
1050
+ }
1051
+
1052
+ @include respond-to('pad_h') {
1053
+ .content-left {
1054
+ .item-sub {
1055
+ max-width: 80%;
1056
+ flex: 1 1 auto;
1057
+ .content-container {
1058
+ :deep(.content-item) {
1059
+ width: calc(25% - 18px);
1060
+ }
1061
+ }
1062
+ }
1063
+ }
1064
+ }
1065
+ }
1066
+ &.community {
1067
+ .item-sub {
1068
+ margin-left: 48px;
1069
+ .content-container {
1070
+ width: 448px;
1071
+ :deep(.content-item) {
1072
+ margin-left: 48px;
1073
+ &:nth-child(2n + 1) {
1074
+ margin-left: 0;
1075
+ }
1076
+ &:nth-child(-n + 2) {
1077
+ margin-top: 0;
1078
+ }
1079
+ }
1080
+ }
1081
+ &:nth-of-type(1) {
1082
+ margin-left: 0;
1083
+ }
1084
+
1085
+ @include respond-to('<=laptop') {
1086
+ margin-left: 24px;
1087
+ .content-container {
1088
+ :deep(.content-item) {
1089
+ margin-left: 24px;
1090
+ }
1091
+ }
1092
+ }
1093
+ @include respond-to('laptop') {
1094
+ .content-container {
1095
+ width: 364px;
1096
+ }
1097
+ }
1098
+
1099
+ @include respond-to('pad_h') {
1100
+ .content-container {
1101
+ width: auto;
1102
+ }
1103
+ }
1104
+ }
1105
+
1106
+ @include respond-to('pad_h') {
1107
+ .content-left {
1108
+ .item-sub {
1109
+ max-width: 40%;
1110
+ flex: 1 1 auto;
1111
+ .content-container {
1112
+ :deep(.content-item) {
1113
+ width: calc(50% - 24px);
1114
+ }
1115
+ }
1116
+ }
1117
+ }
1118
+ }
1119
+ }
1120
+ }
942
1121
  </style>
@@ -5,6 +5,8 @@ import { OIcon, OTag } from '@opensig/opendesign';
5
5
  import IconCaretLeft from '~icons/components/icon-caret-left.svg';
6
6
  import IconCaretRight from '~icons/components/icon-caret-right.svg';
7
7
 
8
+ import { type NavLiT } from '../types.ts';
9
+
8
10
  import { useTheme } from '@opendesign-plus/composables';
9
11
 
10
12
  import { useDebounceFn } from '@vueuse/core';
@@ -18,11 +20,7 @@ export interface OHeaderEmitsT {
18
20
  const emit = defineEmits<OHeaderEmitsT>();
19
21
  const { isDark } = useTheme();
20
22
 
21
- const props = defineProps({
22
- navData: undefined,
23
- activeIndex: undefined,
24
- hoverId: undefined,
25
- });
23
+ const props = defineProps<NavLiT>();
26
24
 
27
25
  const navRef = ref();
28
26
  const navListRef = ref();