@opendesign-plus-test/components 0.0.1-rc.61 → 0.0.1-rc.63
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.
- package/dist/chunk-OElCookieNotice.cjs.js +1 -1
- package/dist/chunk-OElCookieNotice.es.js +148 -148
- package/dist/components/activity/OActivityApproval.vue.d.ts +8 -8
- package/dist/components/activity/OActivityForm.vue.d.ts +6 -6
- package/dist/components/activity/OActivityMyCalendar.vue.d.ts +8 -4
- package/dist/components/activity/index.d.ts +17 -15
- package/dist/components/{OPlusConfigProvider.vue.d.ts → config-provider/OPlusConfigProvider.vue.d.ts} +2 -2
- package/dist/components/config-provider/index.d.ts +27 -0
- package/dist/components/cookie-notice/OCookieNotice.vue.d.ts +17 -0
- package/dist/components/cookie-notice/index.d.ts +53 -0
- package/dist/components/{OFooter.vue.d.ts → footer/OFooter.vue.d.ts} +3 -3
- package/dist/components/footer/index.d.ts +89 -0
- package/dist/components/header/index.d.ts +1 -0
- package/dist/components/{OLanguageSwitcher.vue.d.ts → header-language-switcher/OHeaderLanguageSwitcher.vue.d.ts} +5 -5
- package/dist/components/header-language-switcher/index.d.ts +90 -0
- package/dist/components/{OHeaderSearch.vue.d.ts → header-search/OHeaderSearch.vue.d.ts} +165 -145
- package/dist/components/header-search/index.d.ts +607 -0
- package/dist/components/header-source-code/OHeaderSourceCode.vue.d.ts +18 -0
- package/dist/components/header-source-code/index.d.ts +23 -0
- package/dist/components/header-theme/OHeaderTheme.vue.d.ts +25 -0
- package/dist/components/header-theme/index.d.ts +50 -0
- package/dist/components/{OHeaderUser.vue.d.ts → header-user/OHeaderUser.vue.d.ts} +7 -7
- package/dist/components/header-user/index.d.ts +53 -0
- package/dist/components/meeting/OMeetingCalendar.vue.d.ts +2 -2
- package/dist/components/meeting/OMeetingForm.vue.d.ts +4 -4
- package/dist/components/meeting/OMeetingMyCalendar.vue.d.ts +8 -4
- package/dist/components/meeting/OMeetingPlayback.vue.d.ts +4 -4
- package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
- package/dist/components/meeting/index.d.ts +11 -9
- package/dist/components/meeting/types.d.ts +3 -1
- package/dist/components/meeting/utils.d.ts +2 -1
- package/dist/components/search/OSearchInput.vue.d.ts +54 -34
- package/dist/components/search/index.d.ts +32 -22
- package/dist/components/search/internal/SearchImageInput.vue.d.ts +41 -21
- package/dist/components/search/internal/SearchPanel.vue.d.ts +1 -1
- package/dist/components/{OSection.vue.d.ts → section/OSection.vue.d.ts} +4 -4
- package/dist/components/section/index.d.ts +47 -0
- package/dist/components.cjs.js +36 -36
- package/dist/components.css +1 -1
- package/dist/components.es.js +14568 -14413
- package/dist/index.d.ts +9 -14
- package/docs/design.md +2 -2
- package/package.json +7 -7
- package/scripts/generate-components-index.js +2 -44
- package/src/assets/styles/element-plus.scss +2 -0
- package/src/components/common/ClientOnly.vue +13 -0
- package/src/components/{OPlusConfigProvider.vue → config-provider/OPlusConfigProvider.vue} +2 -2
- package/src/components/config-provider/index.ts +10 -0
- package/src/components/{OCookieNotice.vue → cookie-notice/OCookieNotice.vue} +1 -1
- package/src/components/cookie-notice/index.ts +10 -0
- package/src/components/element-plus/OElCookieNotice.vue +1 -1
- package/src/components/events/OEventsApply.vue +87 -1
- package/src/components/events/OEventsList.vue +47 -2
- package/src/components/{OFooter.vue → footer/OFooter.vue} +4 -4
- package/src/components/footer/index.ts +10 -0
- package/src/components/header/index.ts +2 -0
- package/src/components/header-language-switcher/index.ts +10 -0
- package/src/components/{OHeaderSearch.vue → header-search/OHeaderSearch.vue} +4 -4
- package/src/components/header-search/index.ts +10 -0
- package/src/components/{OSourceCode.vue → header-source-code/OHeaderSourceCode.vue} +2 -2
- package/src/components/header-source-code/index.ts +10 -0
- package/src/components/{OThemeSwitcher.vue → header-theme/OHeaderTheme.vue} +4 -4
- package/src/components/header-theme/index.ts +10 -0
- package/src/components/{OHeaderUser.vue → header-user/OHeaderUser.vue} +4 -4
- package/src/components/header-user/index.ts +10 -0
- package/src/components/meeting/OMeetingCalendar.vue +7 -5
- package/src/components/meeting/OMeetingForm.vue +14 -12
- package/src/components/meeting/OMeetingMyCalendar.vue +3 -12
- package/src/components/meeting/components/OMeetingCalendarList.vue +3 -2
- package/src/components/meeting/components/OMeetingDetail.vue +2 -2
- package/src/components/meeting/types.ts +3 -1
- package/src/components/meeting/utils.ts +4 -4
- package/src/components/{OSection.vue → section/OSection.vue} +1 -1
- package/src/components/section/index.ts +10 -0
- package/src/i18n/zh.ts +2 -0
- package/src/index.ts +9 -38
- package/dist/components/OCookieNotice.vue.d.ts +0 -17
- package/dist/components/OSourceCode.vue.d.ts +0 -18
- package/dist/components/OThemeSwitcher.vue.d.ts +0 -25
- package/dist/components/meeting/components/OMeetingCalendarSelector.vue.d.ts +0 -664
- package/src/components/common/ClientOnlyWrapper.ts +0 -21
- /package/src/components/{OLanguageSwitcher.vue → header-language-switcher/OHeaderLanguageSwitcher.vue} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import { default as OCookieNotice } from './components/OCookieNotice.vue';
|
|
2
|
-
import { default as OFooter } from './components/OFooter.vue';
|
|
3
|
-
import { default as OHeaderSearch } from './components/OHeaderSearch.vue';
|
|
4
|
-
import { default as OHeaderUser } from './components/OHeaderUser.vue';
|
|
5
|
-
import { default as OLanguageSwitcher } from './components/OLanguageSwitcher.vue';
|
|
6
|
-
import { default as OPlusConfigProvider } from './components/OPlusConfigProvider.vue';
|
|
7
|
-
import { default as OSection } from './components/OSection.vue';
|
|
8
|
-
import { default as OSourceCode } from './components/OSourceCode.vue';
|
|
9
|
-
import { default as OThemeSwitcher } from './components/OThemeSwitcher.vue';
|
|
10
|
-
export { OCookieNotice, OFooter, OHeaderSearch, OHeaderUser, OLanguageSwitcher, OPlusConfigProvider, OSection, OSourceCode, OThemeSwitcher };
|
|
11
1
|
export * from './components/activity';
|
|
12
2
|
export * from './components/banner';
|
|
3
|
+
export * from './components/config-provider';
|
|
4
|
+
export * from './components/cookie-notice';
|
|
13
5
|
export * from './components/element-plus';
|
|
14
6
|
export * from './components/events';
|
|
7
|
+
export * from './components/footer';
|
|
15
8
|
export * from './components/header';
|
|
9
|
+
export * from './components/header-language-switcher';
|
|
10
|
+
export * from './components/header-search';
|
|
11
|
+
export * from './components/header-source-code';
|
|
12
|
+
export * from './components/header-theme';
|
|
13
|
+
export * from './components/header-user';
|
|
16
14
|
export * from './components/meeting';
|
|
17
15
|
export * from './components/search';
|
|
18
|
-
|
|
19
|
-
install: (app: any) => void;
|
|
20
|
-
};
|
|
21
|
-
export default _default;
|
|
16
|
+
export * from './components/section';
|
package/docs/design.md
CHANGED
|
@@ -21,7 +21,7 @@ components
|
|
|
21
21
|
| openEuler社区页头| OHeader_openEuler.vue | 11月完成 ||
|
|
22
22
|
| openEuler社区页脚| OFooter_openEuler.vue | 11月完成 ||
|
|
23
23
|
| 悬浮按钮| OFloatingButton.vue | 11月完成 ||
|
|
24
|
-
| 语言切换|
|
|
25
|
-
| 风格切换|
|
|
24
|
+
| 语言切换| OHeaderLanguageSwitcher.vue | 11月完成 |调用useLocale的能力|
|
|
25
|
+
| 风格切换| OHeaderTheme.vue | 11月完成 |调用useTheme的能力|
|
|
26
26
|
| 导航用户信息| OUserInfo.vue | 11月完成 |调用useLogin的能力|
|
|
27
27
|
| 隐私管理| OCookieNotice.vue | 11月完成 ||
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendesign-plus-test/components",
|
|
3
|
-
"version": "0.0.1-rc.
|
|
3
|
+
"version": "0.0.1-rc.63",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -25,26 +25,26 @@
|
|
|
25
25
|
"require": "./dist/components.css"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
|
-
"
|
|
29
|
-
"@opensig/opendesign": "1.2.
|
|
30
|
-
"@vueuse/core": "
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"@opensig/opendesign": "1.2.4",
|
|
30
|
+
"@vueuse/core": "^14.0.0",
|
|
31
31
|
"aos": "^2.3.4",
|
|
32
32
|
"dayjs": "^1.11.13",
|
|
33
33
|
"video.js": "^8.23.7",
|
|
34
34
|
"vue-dompurify-html": "^3.1.2",
|
|
35
|
+
"vue": "^3.5.13",
|
|
36
|
+
"element-plus": "2.13.1",
|
|
35
37
|
"@opendesign-plus/composables": "0.0.1-rc.8",
|
|
36
38
|
"@opendesign-plus/styles": "0.0.1-rc.2"
|
|
37
39
|
},
|
|
38
40
|
"devDependencies": {
|
|
39
|
-
"@vitejs/plugin-vue": "^5.1
|
|
40
|
-
"element-plus": "^2.13.1",
|
|
41
|
+
"@vitejs/plugin-vue": "^5.2.1",
|
|
41
42
|
"sass": "^1.71.1",
|
|
42
43
|
"typescript": "~5.8.2",
|
|
43
44
|
"unplugin-element-plus": "^0.11.2",
|
|
44
45
|
"unplugin-icons": "^0.14.1",
|
|
45
46
|
"vite": "^6.2.3",
|
|
46
47
|
"vite-plugin-dts": "^4.5.3",
|
|
47
|
-
"vue": "^3.4.0",
|
|
48
48
|
"vue-tsc": "2.2.8"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
@@ -17,11 +17,6 @@ function generateComponentsIndex() {
|
|
|
17
17
|
// 读取组件目录
|
|
18
18
|
const files = fs.readdirSync(componentsDir);
|
|
19
19
|
|
|
20
|
-
// 过滤出.vue文件(不包含子目录)
|
|
21
|
-
const vueFiles = files.filter(file =>
|
|
22
|
-
file.endsWith('.vue') && !fs.statSync(path.join(componentsDir, file)).isDirectory()
|
|
23
|
-
);
|
|
24
|
-
|
|
25
20
|
// 扫描子目录,查找包含 index.ts 的目录
|
|
26
21
|
const subDirs = files.filter(file => {
|
|
27
22
|
const fullPath = path.join(componentsDir, file)
|
|
@@ -29,59 +24,22 @@ function generateComponentsIndex() {
|
|
|
29
24
|
fs.existsSync(path.join(fullPath, 'index.ts'))
|
|
30
25
|
})
|
|
31
26
|
|
|
32
|
-
console.log(`发现 ${ vueFiles.length } 个组件文件`)
|
|
33
27
|
console.log(`发现 ${ subDirs.length } 个子目录: ${ subDirs.join(', ') }`)
|
|
34
28
|
|
|
35
|
-
// 生成 .vue 文件的导入语句
|
|
36
|
-
const vueImportStatements = vueFiles.map(file => {
|
|
37
|
-
const componentName = file.replace('.vue', '');
|
|
38
|
-
return `import ${componentName} from './components/${file}';`;
|
|
39
|
-
}).join('\n');
|
|
40
|
-
|
|
41
29
|
// 生成子目录的重新导出语句
|
|
42
30
|
const subDirExportStatements = subDirs.map(dir => {
|
|
43
31
|
return `export * from './components/${ dir }';`
|
|
44
32
|
}).join('\n')
|
|
45
33
|
|
|
46
|
-
// 生成组件列表
|
|
47
|
-
const componentNames = vueFiles.map(file => file.replace('.vue', ''));
|
|
48
|
-
const componentsObject = componentNames.map(name => ` ${name}`).join(',\n');
|
|
49
|
-
|
|
50
|
-
// 生成导出语句
|
|
51
|
-
const exportStatement = componentNames.length > 0
|
|
52
|
-
? `export { ${ componentNames.join(', ') } };`
|
|
53
|
-
: ''
|
|
54
|
-
|
|
55
34
|
// 生成完整的index.ts内容
|
|
56
35
|
const indexContent = `// OpenDesignPlus Components 库入口文件
|
|
57
36
|
// 此文件由 scripts/generate-components-index.js 自动生成
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
${ componentsObject.length > 0 ? `// 导出组件
|
|
62
|
-
const components = {
|
|
63
|
-
${componentsObject}
|
|
64
|
-
};` : '' }
|
|
65
|
-
|
|
66
|
-
${ exportStatement ? `// 导出单个组件\n${ exportStatement }` : '' }
|
|
67
|
-
|
|
68
|
-
${ subDirExportStatements ? `// 重新导出子目录中的组件\n${ subDirExportStatements }` : '' }
|
|
69
|
-
|
|
70
|
-
// 默认导出(用于Vue插件安装)
|
|
71
|
-
export default {
|
|
72
|
-
install: (app: any) => {
|
|
73
|
-
${ componentsObject.length > 0 ? `// 注册所有组件
|
|
74
|
-
Object.entries(components).forEach(([name, component]) => {
|
|
75
|
-
app.component(name, component);
|
|
76
|
-
});` : '' }
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
`;
|
|
37
|
+
${ subDirExportStatements }
|
|
38
|
+
`.trim();
|
|
80
39
|
|
|
81
40
|
// 写入文件
|
|
82
41
|
fs.writeFileSync(indexFilePath, indexContent, 'utf-8');
|
|
83
42
|
console.log(`组件索引文件已生成: ${indexFilePath}`);
|
|
84
|
-
console.log(`成功导出 ${ componentNames.length } 个 .vue 组件`)
|
|
85
43
|
if (subDirs.length > 0) {
|
|
86
44
|
console.log(`成功重新导出 ${ subDirs.length } 个子目录: ${ subDirs.join(', ') }`)
|
|
87
45
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { computed, provide, reactive } from 'vue';
|
|
3
3
|
|
|
4
4
|
import { OConfigProvider } from '@opensig/opendesign';
|
|
5
|
-
import zhCN from '@opensig/opendesign/es/locale/lang/zh-cn
|
|
6
|
-
import enUS from '@opensig/opendesign/es/locale/lang/en-us
|
|
5
|
+
import zhCN from '@opensig/opendesign/es/locale/lang/zh-cn';
|
|
6
|
+
import enUS from '@opensig/opendesign/es/locale/lang/en-us';
|
|
7
7
|
|
|
8
8
|
import { configProviderInjectKey } from '@/shared/provide';
|
|
9
9
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import _OPlusConfigProvider from './OPlusConfigProvider.vue';
|
|
2
|
+
import type { App } from 'vue';
|
|
3
|
+
|
|
4
|
+
const OPlusConfigProvider = Object.assign(_OPlusConfigProvider, {
|
|
5
|
+
install(app: App) {
|
|
6
|
+
app.component('OPlusConfigProvider', _OPlusConfigProvider);
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { OPlusConfigProvider };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
2
|
import { ref, onMounted, computed, nextTick, watch } from 'vue';
|
|
3
|
-
import ClientOnly from '
|
|
3
|
+
import ClientOnly from '../common/ClientOnly.vue';
|
|
4
4
|
import { useScreen } from '@opendesign-plus/composables';
|
|
5
5
|
import { useI18n } from '@/i18n';
|
|
6
6
|
import { DialogActionT, OButton, ODialog, OIcon, OIconClose, OSwitch } from '@opensig/opendesign';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
2
|
import { ref, onMounted, computed, nextTick, watch } from 'vue';
|
|
3
|
-
import ClientOnly from '../common/
|
|
3
|
+
import ClientOnly from '../common/ClientOnly.vue';
|
|
4
4
|
import { useScreen } from '@opendesign-plus/composables';
|
|
5
5
|
import { useI18n } from '@/i18n';
|
|
6
6
|
import { ElButton, ElDialog, ElSwitch, ElIcon, ElDivider } from 'element-plus';
|
|
@@ -103,6 +103,18 @@ defineProps<EventsApplyPropsT>();
|
|
|
103
103
|
--height: var(--o-gap-6);
|
|
104
104
|
height: calc(100% + var(--height) - 40px); // 延伸到下一个元素
|
|
105
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
|
+
}
|
|
106
118
|
}
|
|
107
119
|
|
|
108
120
|
// 最后一个序号不显示连接线(倒数第2个子元素,因为最后一个是step-item)
|
|
@@ -117,12 +129,38 @@ defineProps<EventsApplyPropsT>();
|
|
|
117
129
|
grid-template-columns: repeat(3, 1fr); // 桌面端:3列
|
|
118
130
|
grid-template-rows: repeat(3, auto); // 桌面端:3行
|
|
119
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
|
+
}
|
|
120
144
|
|
|
121
145
|
// 移动端:2列布局(序号列 + 内容列)
|
|
122
146
|
@include respond('<=pad_v') {
|
|
123
147
|
grid-template-columns: auto 1fr; // 第1列自适应,第2列占满
|
|
124
148
|
grid-template-rows: auto; // 行数自动
|
|
125
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
|
+
}
|
|
126
164
|
}
|
|
127
165
|
|
|
128
166
|
.step-item {
|
|
@@ -132,6 +170,12 @@ defineProps<EventsApplyPropsT>();
|
|
|
132
170
|
flex-direction: column; // 垂直排列子元素
|
|
133
171
|
--idx-size: 20px;
|
|
134
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
|
+
}
|
|
135
179
|
// 移动端:强制在第2列显示
|
|
136
180
|
@include respond('<=pad_v') {
|
|
137
181
|
grid-column: 2 !important;
|
|
@@ -146,6 +190,14 @@ defineProps<EventsApplyPropsT>();
|
|
|
146
190
|
display: flex;
|
|
147
191
|
align-items: center;
|
|
148
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
|
+
}
|
|
149
201
|
@include respond('pad_v') {
|
|
150
202
|
margin-bottom: 0;
|
|
151
203
|
padding: var(--o-gap-3) var(--o-gap-4);
|
|
@@ -183,6 +235,12 @@ defineProps<EventsApplyPropsT>();
|
|
|
183
235
|
color: var(--o-color-info2);
|
|
184
236
|
padding: 0 var(--o-gap-6) var(--o-gap-4) var(--o-gap-6);
|
|
185
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
|
+
}
|
|
186
244
|
@include respond('pad_v') {
|
|
187
245
|
padding: var(--o-gap-3) var(--o-gap-4);
|
|
188
246
|
}
|
|
@@ -215,6 +273,12 @@ defineProps<EventsApplyPropsT>();
|
|
|
215
273
|
font-size: 16px;
|
|
216
274
|
margin-right: var(--o-gap-4);
|
|
217
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
|
+
}
|
|
218
282
|
@include respond('pad_v') {
|
|
219
283
|
margin-right: var(--o-gap-2);
|
|
220
284
|
}
|
|
@@ -237,11 +301,19 @@ defineProps<EventsApplyPropsT>();
|
|
|
237
301
|
--padding-left: var(--o-gap-4);
|
|
238
302
|
padding-left: calc(var(--o-gap-4) + var(--o-gap-4));
|
|
239
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
|
+
}
|
|
240
310
|
@include respond('pad_v') {
|
|
241
311
|
padding-left: var(--o-gap-5);
|
|
312
|
+
color: var(--o-color-info2);
|
|
242
313
|
}
|
|
243
314
|
@include respond('phone') {
|
|
244
315
|
padding-left: var(--o-gap-5);
|
|
316
|
+
color: var(--o-color-info2);
|
|
245
317
|
}
|
|
246
318
|
}
|
|
247
319
|
}
|
|
@@ -335,9 +407,23 @@ defineProps<EventsApplyPropsT>();
|
|
|
335
407
|
|
|
336
408
|
.img-wrapper {
|
|
337
409
|
height: 280px;
|
|
338
|
-
width:
|
|
410
|
+
--width: var(--o-gap-6);
|
|
411
|
+
width: calc(100% - var(--width) * 2);
|
|
339
412
|
margin-left: auto;
|
|
340
413
|
margin-right: auto;
|
|
414
|
+
@include respond('laptop') {
|
|
415
|
+
--width: var(--o-gap-5);
|
|
416
|
+
}
|
|
417
|
+
@include respond('pad_h') {
|
|
418
|
+
--width: var(--o-gap-4);
|
|
419
|
+
height: 220px;
|
|
420
|
+
}
|
|
421
|
+
@include respond('pad_v') {
|
|
422
|
+
--width: var(--o-gap-5);
|
|
423
|
+
}
|
|
424
|
+
@include respond('phone') {
|
|
425
|
+
--width: var(--o-gap-5);
|
|
426
|
+
}
|
|
341
427
|
}
|
|
342
428
|
|
|
343
429
|
.img-wrapper-phone {
|
|
@@ -198,7 +198,16 @@ const list = computed(() => {
|
|
|
198
198
|
padding: var(--o-gap-5) var(--o-gap-6);
|
|
199
199
|
gap: var(--o-gap-3) var(--o-gap-2);
|
|
200
200
|
@include text1;
|
|
201
|
-
@include respond('
|
|
201
|
+
@include respond('laptop') {
|
|
202
|
+
padding: var(--o-gap-4) var(--o-gap-5);
|
|
203
|
+
}
|
|
204
|
+
@include respond('pad_h') {
|
|
205
|
+
padding: var(--o-gap-4) var(--o-gap-5);
|
|
206
|
+
}
|
|
207
|
+
@include respond('pad_v') {
|
|
208
|
+
padding: var(--o-gap-3) var(--o-gap-4);
|
|
209
|
+
}
|
|
210
|
+
@include respond('phone') {
|
|
202
211
|
padding: var(--o-gap-3) var(--o-gap-4);
|
|
203
212
|
}
|
|
204
213
|
|
|
@@ -212,6 +221,12 @@ const list = computed(() => {
|
|
|
212
221
|
flex-shrink: 0;
|
|
213
222
|
margin-right: var(--o-gap-5);
|
|
214
223
|
font-weight: 500;
|
|
224
|
+
@include respond('laptop') {
|
|
225
|
+
margin-right: var(--o-gap-4);
|
|
226
|
+
}
|
|
227
|
+
@include respond('pad_h') {
|
|
228
|
+
margin-right: var(--o-gap-3);
|
|
229
|
+
}
|
|
215
230
|
@include respond('pad_v') {
|
|
216
231
|
margin-right: var(--o-gap-4);
|
|
217
232
|
}
|
|
@@ -219,7 +234,6 @@ const list = computed(() => {
|
|
|
219
234
|
margin-right: var(--o-gap-4);
|
|
220
235
|
}
|
|
221
236
|
}
|
|
222
|
-
|
|
223
237
|
.o-toggle {
|
|
224
238
|
--toggle-size: 32px;
|
|
225
239
|
--toggle-padding: 3px 15px;
|
|
@@ -253,6 +267,14 @@ const list = computed(() => {
|
|
|
253
267
|
grid-template-columns: repeat(1, 1fr);
|
|
254
268
|
container-type: inline-size;
|
|
255
269
|
}
|
|
270
|
+
@include respond('laptop') {
|
|
271
|
+
margin-top: var(--o-gap-5);
|
|
272
|
+
gap: var(--o-gap-5);
|
|
273
|
+
}
|
|
274
|
+
@include respond('pad_h') {
|
|
275
|
+
margin-top: var(--o-gap-4);
|
|
276
|
+
gap: var(--o-gap-4);
|
|
277
|
+
}
|
|
256
278
|
@include respond('pad_v') {
|
|
257
279
|
margin-top: var(--o-gap-4);
|
|
258
280
|
gap: var(--o-gap-3);
|
|
@@ -322,6 +344,10 @@ const list = computed(() => {
|
|
|
322
344
|
@include respond('<=pad_v') {
|
|
323
345
|
--tag-padding: var(--o-gap-1);
|
|
324
346
|
}
|
|
347
|
+
@include respond('phone') {
|
|
348
|
+
top: var(--o-gap-2);
|
|
349
|
+
right: var(--o-gap-2);
|
|
350
|
+
}
|
|
325
351
|
}
|
|
326
352
|
|
|
327
353
|
.event-name {
|
|
@@ -351,6 +377,12 @@ const list = computed(() => {
|
|
|
351
377
|
}
|
|
352
378
|
|
|
353
379
|
@include text1;
|
|
380
|
+
@include respond('laptop') {
|
|
381
|
+
margin-top: var(--o-gap-4);
|
|
382
|
+
}
|
|
383
|
+
@include respond('pad_h') {
|
|
384
|
+
margin-top: var(--o-gap-3);
|
|
385
|
+
}
|
|
354
386
|
@include respond('pad_v') {
|
|
355
387
|
margin-top: var(--o-gap-2);
|
|
356
388
|
}
|
|
@@ -382,6 +414,19 @@ const list = computed(() => {
|
|
|
382
414
|
--pagination-item-bg-color-current: var(--o-color-primary1);
|
|
383
415
|
--pagination-item-color-current: #fff;
|
|
384
416
|
|
|
417
|
+
@include respond('laptop') {
|
|
418
|
+
margin-top: var(--o-gap-5);
|
|
419
|
+
}
|
|
420
|
+
@include respond('pad_h') {
|
|
421
|
+
margin-top: var(--o-gap-4);
|
|
422
|
+
}
|
|
423
|
+
@include respond('pad_v') {
|
|
424
|
+
margin-top: var(--o-gap-4);
|
|
425
|
+
}
|
|
426
|
+
@include respond('phone') {
|
|
427
|
+
margin-top: var(--o-gap-4);
|
|
428
|
+
}
|
|
429
|
+
|
|
385
430
|
.o-pagination-wrap {
|
|
386
431
|
justify-content: flex-end;
|
|
387
432
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { ODivider } from '@opensig/opendesign';
|
|
3
3
|
|
|
4
|
-
import ContentWrapper from '
|
|
4
|
+
import ContentWrapper from '../common/ContentWrapper.vue';
|
|
5
5
|
|
|
6
6
|
const props = withDefaults(defineProps<{
|
|
7
7
|
simple: any;
|
|
@@ -34,9 +34,9 @@ const props = withDefaults(defineProps<{
|
|
|
34
34
|
<ContentWrapper v-if="$slots.atom || props.atom">
|
|
35
35
|
<slot name="atom">
|
|
36
36
|
<div v-if="props.atom" class="atom">
|
|
37
|
-
<p class="atom-text">{{ props.atom[props.lang]
|
|
38
|
-
<a :href="props.atom[props.lang]
|
|
39
|
-
<img :src="props.atom[props.lang]
|
|
37
|
+
<p class="atom-text">{{ props.atom[props.lang]?.title }}</p>
|
|
38
|
+
<a :href="props.atom[props.lang]?.href" target="_blank">
|
|
39
|
+
<img :src="props.atom[props.lang]?.img" class="atom-logo" alt="" />
|
|
40
40
|
</a>
|
|
41
41
|
</div>
|
|
42
42
|
<ODivider class="atom-divider" />
|
|
@@ -7,10 +7,12 @@ const OHeader = Object.assign(_OHeader, {
|
|
|
7
7
|
app.component('OHeader', _OHeader);
|
|
8
8
|
},
|
|
9
9
|
});
|
|
10
|
+
|
|
10
11
|
const OHeaderMobile = Object.assign(_OHeaderMobile, {
|
|
11
12
|
install(app: App) {
|
|
12
13
|
app.component('OHeaderMobile', _OHeaderMobile);
|
|
13
14
|
},
|
|
14
15
|
});
|
|
15
16
|
|
|
17
|
+
export * from './types';
|
|
16
18
|
export { OHeader, OHeaderMobile };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import _OHeaderLanguageSwitcher from './OHeaderLanguageSwitcher.vue';
|
|
2
|
+
import type { App } from 'vue';
|
|
3
|
+
|
|
4
|
+
const OHeaderLanguageSwitcher = Object.assign(_OHeaderLanguageSwitcher, {
|
|
5
|
+
install(app: App) {
|
|
6
|
+
app.component('OHeaderLanguageSwitcher', _OHeaderLanguageSwitcher);
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { OHeaderLanguageSwitcher };
|
|
@@ -4,15 +4,15 @@ import { OIcon } from '@opensig/opendesign';
|
|
|
4
4
|
import { onClickOutside, useDebounceFn } from '@vueuse/core';
|
|
5
5
|
import { useScreen } from '@opendesign-plus/composables';
|
|
6
6
|
|
|
7
|
-
import SearchImageInput from '
|
|
8
|
-
import SearchPanel from '
|
|
9
|
-
import { useSearchHistory } from '
|
|
7
|
+
import SearchImageInput from '../search/internal/SearchImageInput.vue';
|
|
8
|
+
import SearchPanel from '../search/internal/SearchPanel.vue';
|
|
9
|
+
import { useSearchHistory } from '../search/composables/useSearchHistory';
|
|
10
10
|
import { useI18n } from '@/i18n';
|
|
11
11
|
import type {
|
|
12
12
|
OSearchPayload,
|
|
13
13
|
OSearchRecommendItem,
|
|
14
14
|
OSearchUploadImageFn,
|
|
15
|
-
} from '
|
|
15
|
+
} from '../search/types';
|
|
16
16
|
|
|
17
17
|
import IconSearch from '~icons/components/icon-header-search.svg';
|
|
18
18
|
import IconBack from '~icons/components/icon-header-back.svg';
|
|
@@ -4,14 +4,14 @@ import { OIcon, ODropdown, ODropdownItem } from '@opensig/opendesign';
|
|
|
4
4
|
|
|
5
5
|
import IconChevronDown from '~icons/components/icon-chevron-down.svg';
|
|
6
6
|
|
|
7
|
-
interface CodeItemT {
|
|
7
|
+
export interface CodeItemT {
|
|
8
8
|
label: string;
|
|
9
9
|
href: string;
|
|
10
10
|
icon?: string;
|
|
11
11
|
target?: string;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
interface CodePropsT {
|
|
14
|
+
export interface CodePropsT {
|
|
15
15
|
title?: string;
|
|
16
16
|
options?: CodeItemT[];
|
|
17
17
|
href?: string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import _OHeaderSourceCode from './OHeaderSourceCode.vue';
|
|
2
|
+
import type { App } from 'vue';
|
|
3
|
+
|
|
4
|
+
const OHeaderSourceCode = Object.assign(_OHeaderSourceCode, {
|
|
5
|
+
install(app: App) {
|
|
6
|
+
app.component('OHeaderSourceCode', _OHeaderSourceCode);
|
|
7
|
+
},
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { OHeaderSourceCode };
|
|
@@ -6,7 +6,7 @@ import { useScreen } from '@opendesign-plus/composables';
|
|
|
6
6
|
import IconSun from '~icons/components/icon-sun.svg';
|
|
7
7
|
import IconMoon from '~icons/components/icon-moon.svg';
|
|
8
8
|
|
|
9
|
-
export interface
|
|
9
|
+
export interface OHeaderThemePropsT {
|
|
10
10
|
theme?: string;
|
|
11
11
|
type?: 'auto' | 'common' | 'mobile';
|
|
12
12
|
lightValue?: string;
|
|
@@ -14,12 +14,12 @@ export interface OThemeSwitcherPropsT {
|
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export interface
|
|
17
|
+
export interface OHeaderThemeEmitsT {
|
|
18
18
|
(e: 'update:theme', value: string): void;
|
|
19
19
|
(e: 'change', val: string): void;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
const props = withDefaults(defineProps<
|
|
22
|
+
const props = withDefaults(defineProps<OHeaderThemePropsT>(), {
|
|
23
23
|
theme: 'light',
|
|
24
24
|
type: 'auto',
|
|
25
25
|
lightValue: 'light',
|
|
@@ -27,7 +27,7 @@ const props = withDefaults(defineProps<OThemeSwitcherPropsT>(), {
|
|
|
27
27
|
disabled: false,
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
const emit = defineEmits<
|
|
30
|
+
const emit = defineEmits<OHeaderThemeEmitsT>();
|
|
31
31
|
|
|
32
32
|
const { gtPhone } = useScreen();
|
|
33
33
|
|