diff --git a/package-lock.json b/package-lock.json index 9730553..614fb82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "pinia-persistedstate-plugin": "^0.1.0", "pinia-plugin-persistedstate": "^3.1.0", "vue": "^3.2.47", + "vue-i18n": "^11.2.8", "vue-router": "^4.1.6" }, "devDependencies": { @@ -576,6 +577,50 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@intlify/core-base": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.2.8.tgz", + "integrity": "sha512-nBq6Y1tVkjIUsLsdOjDSJj4AsjvD0UG3zsg9Fyc+OivwlA/oMHSKooUy9tpKj0HqZ+NWFifweHavdljlBLTwdA==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "11.2.8", + "@intlify/shared": "11.2.8" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.2.8.tgz", + "integrity": "sha512-A5n33doOjmHsBtCN421386cG1tWp5rpOjOYPNsnpjIJbQ4POF0QY2ezhZR9kr0boKwaHjbOifvyQvHj2UTrDFQ==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "11.2.8", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.2.8.tgz", + "integrity": "sha512-l6e4NZyUgv8VyXXH4DbuucFOBmxLF56C/mqh2tvApbzl2Hrhi1aTDcuv5TKdxzfHYmpO3UB0Cz04fgDT9vszfw==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -8455,6 +8500,26 @@ "node": ">=4.0" } }, + "node_modules/vue-i18n": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.2.8.tgz", + "integrity": "sha512-vJ123v/PXCZntd6Qj5Jumy7UBmIuE92VrtdX+AXr+1WzdBHojiBxnAxdfctUFL+/JIN+VQH4BhsfTtiGsvVObg==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "11.2.8", + "@intlify/shared": "11.2.8", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, "node_modules/vue-router": { "version": "4.1.6", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz", @@ -8988,6 +9053,29 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@intlify/core-base": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.2.8.tgz", + "integrity": "sha512-nBq6Y1tVkjIUsLsdOjDSJj4AsjvD0UG3zsg9Fyc+OivwlA/oMHSKooUy9tpKj0HqZ+NWFifweHavdljlBLTwdA==", + "requires": { + "@intlify/message-compiler": "11.2.8", + "@intlify/shared": "11.2.8" + } + }, + "@intlify/message-compiler": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-11.2.8.tgz", + "integrity": "sha512-A5n33doOjmHsBtCN421386cG1tWp5rpOjOYPNsnpjIJbQ4POF0QY2ezhZR9kr0boKwaHjbOifvyQvHj2UTrDFQ==", + "requires": { + "@intlify/shared": "11.2.8", + "source-map-js": "^1.0.2" + } + }, + "@intlify/shared": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-11.2.8.tgz", + "integrity": "sha512-l6e4NZyUgv8VyXXH4DbuucFOBmxLF56C/mqh2tvApbzl2Hrhi1aTDcuv5TKdxzfHYmpO3UB0Cz04fgDT9vszfw==" + }, "@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -14857,6 +14945,16 @@ } } }, + "vue-i18n": { + "version": "11.2.8", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-11.2.8.tgz", + "integrity": "sha512-vJ123v/PXCZntd6Qj5Jumy7UBmIuE92VrtdX+AXr+1WzdBHojiBxnAxdfctUFL+/JIN+VQH4BhsfTtiGsvVObg==", + "requires": { + "@intlify/core-base": "11.2.8", + "@intlify/shared": "11.2.8", + "@vue/devtools-api": "^6.5.0" + } + }, "vue-router": { "version": "4.1.6", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz", diff --git a/package.json b/package.json index 95d0080..9b4a1d8 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "pinia-persistedstate-plugin": "^0.1.0", "pinia-plugin-persistedstate": "^3.1.0", "vue": "^3.2.47", + "vue-i18n": "^11.2.8", "vue-router": "^4.1.6" }, "devDependencies": { diff --git a/src/assets/css/style.css b/src/assets/css/style.css index e975549..417e454 100644 --- a/src/assets/css/style.css +++ b/src/assets/css/style.css @@ -9,3 +9,11 @@ body, height: 100%; overflow: hidden; } +@keyframes loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/src/assets/css/style.less b/src/assets/css/style.less index 926ac4e..36890a8 100644 --- a/src/assets/css/style.less +++ b/src/assets/css/style.less @@ -9,4 +9,15 @@ body, width: 100%; height: 100%; overflow: hidden; +} + + +@keyframes loading { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } } \ No newline at end of file diff --git a/src/assets/icons/add.svg b/src/assets/icons/add.svg new file mode 100644 index 0000000..7883d3d --- /dev/null +++ b/src/assets/icons/add.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/arrow-right.svg b/src/assets/icons/arrow-right.svg new file mode 100644 index 0000000..ef202d5 --- /dev/null +++ b/src/assets/icons/arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/back.svg b/src/assets/icons/back.svg new file mode 100644 index 0000000..1706d37 --- /dev/null +++ b/src/assets/icons/back.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/history.svg b/src/assets/icons/history.svg new file mode 100644 index 0000000..0c4a0d5 --- /dev/null +++ b/src/assets/icons/history.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/home.svg b/src/assets/icons/home.svg new file mode 100644 index 0000000..e9f1e2a --- /dev/null +++ b/src/assets/icons/home.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/more.svg b/src/assets/icons/more.svg new file mode 100644 index 0000000..8ed4d15 --- /dev/null +++ b/src/assets/icons/more.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/refresh.svg b/src/assets/icons/refresh.svg new file mode 100644 index 0000000..b794ba4 --- /dev/null +++ b/src/assets/icons/refresh.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/shop.svg b/src/assets/icons/shop.svg new file mode 100644 index 0000000..9b82a17 --- /dev/null +++ b/src/assets/icons/shop.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/shouqi.svg b/src/assets/icons/shouqi.svg new file mode 100644 index 0000000..d52b974 --- /dev/null +++ b/src/assets/icons/shouqi.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/home-bg.png b/src/assets/images/home-bg.png new file mode 100644 index 0000000..2437377 Binary files /dev/null and b/src/assets/images/home-bg.png differ diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100644 index 0000000..1df9d8b Binary files /dev/null and b/src/assets/images/logo.png differ diff --git a/src/assets/images/pic.jpg b/src/assets/images/pic.jpg new file mode 100644 index 0000000..e50e727 Binary files /dev/null and b/src/assets/images/pic.jpg differ diff --git a/src/lang/en.ts b/src/lang/en.ts new file mode 100644 index 0000000..e91a731 --- /dev/null +++ b/src/lang/en.ts @@ -0,0 +1,5 @@ +export default { + Login: { + + }, +} diff --git a/src/lang/index.ts b/src/lang/index.ts new file mode 100644 index 0000000..a753dac --- /dev/null +++ b/src/lang/index.ts @@ -0,0 +1,31 @@ +import { createI18n } from 'vue-i18n' +// 中文 zh-cn +// 英文 en + +// element-plus 中的语言配置 +import elementEnLocale from './en' + +// 自己的语言配置 +import enLocale from './en' + +// 语言配置整合 +const messages = { + 'ENGLISH':{ + ...enLocale, + ...elementEnLocale + }, +// 'CHINESE_SIMPLIFIED':{ +// ...zhLocale, +// ...elementZhLocale +// }, +} + +// 创建 i18n +const i18n = createI18n({ + legacy: false, + globalInjection:true, // 全局模式,可以直接使用 $t + locale: 'ENGLISH', + messages: messages +}) + +export default i18n diff --git a/src/main.ts b/src/main.ts index 523499c..a6da966 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,6 +7,7 @@ import './assets/css/style.css' import SvgIcon from "@/components/SvgIcon/index.vue"; import "virtual:svg-icons-register"; +import i18n from "./lang/index"; import flexible from "./utils/flexible.js"; @@ -19,6 +20,7 @@ app.use(router) .use(ElementPlus) .use(store) .component("SvgIcon", SvgIcon) +.use(i18n) .mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts index 4956756..905cb2c 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -30,14 +30,16 @@ const router = createRouter({ component: () => import('../views/home/index.vue'), children: [ { - path: '', + path: 'test', name: 'test', - component: () => import('../views/home/test.vue') + component: () => import('../views/home/test.vue'), + meta: { topNavStyle: '2' } }, { path: '/home/versionTree', name: 'versionTree', - component: () => import('../views/home/versionTree.vue') + component: () => import('../views/home/versionTree.vue'), + meta: { topNavStyle: '2' } } ] }, @@ -45,7 +47,7 @@ const router = createRouter({ path: '/:pathMatch(.*)', name: '404', component: () => import('../views/404.vue'), - } + } ] }) diff --git a/src/stores/global.ts b/src/stores/global.ts index a82bc2d..018db4b 100644 --- a/src/stores/global.ts +++ b/src/stores/global.ts @@ -2,13 +2,16 @@ import { defineStore } from 'pinia' import { ref, computed } from 'vue' export const useGlobalStore = defineStore('global', () => { const state = ref({ - loading: false + loading: false,// 全局loading + homeLeftNavCollapse: false,// 首页左侧导航是否折叠 }) const setLoading = (v: boolean) => { state.value.loading = v } + const setHomeLeftNavCollapse = (v: boolean) => { state.value.homeLeftNavCollapse = v } return { state, setLoading, + setHomeLeftNavCollapse, } }) diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 533a6cf..ef639f2 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -1,8 +1,8 @@