diff --git a/src/assets/image/bg-mobile.png b/src/assets/image/bg-mobile.png new file mode 100644 index 0000000..ba44379 Binary files /dev/null and b/src/assets/image/bg-mobile.png differ diff --git a/src/assets/image/bg-pc.png b/src/assets/image/bg-pc.png new file mode 100644 index 0000000..bd6f82a Binary files /dev/null and b/src/assets/image/bg-pc.png differ diff --git a/src/router/index.js b/src/router/index.js index 834d041..ea5f088 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -18,29 +18,9 @@ const routes = [ // } }, { - path: '/companyprofil', - name: 'Companyprofil', - component: () => import('@/views/companyprofil/index.vue'), - }, - { - path: '/companyprofildetail', - name: 'Companyprofildetail', - component: () => import('@/views/companyprofildetail/index.vue'), - }, - { - path: '/businessintroduction', - name: 'Businessintroduction', - component: () => import('@/views/businessintroduction/index.vue'), - }, - { - path: '/investor', - name: 'Investor', - component: () => import('@/views/investor/index.vue'), - }, - { - path: '/investorhandbook', - name: 'Investorhandbook', - component: () => import('@/views/investorhandbook/index.vue'), + path: '/contacts', + name: 'contacts', + component: () => import('@/views/contacts/index.vue'), }, ]; diff --git a/src/views/contacts/index.vue b/src/views/contacts/index.vue new file mode 100644 index 0000000..fd694f0 --- /dev/null +++ b/src/views/contacts/index.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/src/views/contacts/size1440/index.vue b/src/views/contacts/size1440/index.vue new file mode 100644 index 0000000..427f3d2 --- /dev/null +++ b/src/views/contacts/size1440/index.vue @@ -0,0 +1,22 @@ + + + + + + diff --git a/src/views/contacts/size1920/index.vue b/src/views/contacts/size1920/index.vue new file mode 100644 index 0000000..445717d --- /dev/null +++ b/src/views/contacts/size1920/index.vue @@ -0,0 +1,50 @@ + + + + + + diff --git a/src/views/contacts/size375/index.vue b/src/views/contacts/size375/index.vue new file mode 100644 index 0000000..1bd47bc --- /dev/null +++ b/src/views/contacts/size375/index.vue @@ -0,0 +1,49 @@ + + + + + + diff --git a/src/views/contacts/size768/index.vue b/src/views/contacts/size768/index.vue new file mode 100644 index 0000000..e7c4364 --- /dev/null +++ b/src/views/contacts/size768/index.vue @@ -0,0 +1,22 @@ + + + + + + diff --git a/uno.config.js b/uno.config.js index f794b53..adf3191 100644 --- a/uno.config.js +++ b/uno.config.js @@ -21,6 +21,57 @@ export default defineConfig({ [/^focus:(.*)$/, ([, style]) => ({ ':focus': { ...parseStyle(style) } })], // 处理 placeholder 伪元素 [/^placeholder:(.*)$/, ([, style]) => ({ '::placeholder': { ...parseStyle(style) } })], + // 自定义动画 + ['animate-bounce-in', { 'animation': 'bounce-in 0.9s cubic-bezier(0.23,1,0.32,1) both' }], + ['animate-icon-in', { 'animation': 'icon-in 1s cubic-bezier(0.23,1,0.32,1) both' }], + ['animate-bg-move', { 'animation': 'bg-move 8s linear infinite alternate', 'background-size': '200% 200%' }], + ['animate-blob', { 'animation': 'blob 7s ease-in-out infinite alternate' }], + ['animate-blob2', { 'animation': 'blob2 9s ease-in-out infinite alternate' }], + ['animate-bubble-pop', { 'animation': 'bubble-pop 0.5s cubic-bezier(0.23,1,0.32,1) both' }], + // 动画延迟 + ['animate-delay-0', { 'animation-delay': '0s' }], + ['animate-delay-200', { 'animation-delay': '0.2s' }], + ['animate-delay-400', { 'animation-delay': '0.4s' }], + ['animate-delay-600', { 'animation-delay': '0.6s' }], + ], + // 自定义keyframes + safelist: [ + 'animate-bounce-in', 'animate-icon-in', 'animate-bg-move', 'animate-blob', 'animate-blob2', 'animate-bubble-pop', + 'animate-delay-0', 'animate-delay-200', 'animate-delay-400', 'animate-delay-600', + ], + preflights: [ + { + getCSS: () => ` +@keyframes bounce-in { + 0% { opacity: 0; transform: scale(0.7) translateY(-40px); } + 60% { opacity: 1; transform: scale(1.1) translateY(10px); } + 100% { opacity: 1; transform: scale(1) translateY(0); } +} +@keyframes icon-in { + 0% { opacity: 0; transform: scale(0.2) rotate(-30deg); } + 80% { opacity: 1; transform: scale(1.2) rotate(10deg); } + 100% { opacity: 1; transform: scale(1) rotate(0); } +} +@keyframes bg-move { + 0% { background-position: 0% 50%; } + 100% { background-position: 100% 50%; } +} +@keyframes blob { + 0%,100% { transform: scale(1) translate(0,0); } + 33% { transform: scale(1.1,0.9) translate(20px,10px); } + 66% { transform: scale(0.9,1.1) translate(-10px,-20px); } +} +@keyframes blob2 { + 0%,100% { transform: scale(1) translate(0,0); } + 50% { transform: scale(1.2) translate(10px,20px); } +} +@keyframes bubble-pop { + 0% { opacity: 0; transform: scale(0.5) translateY(10px); } + 60% { opacity: 1; transform: scale(1.1) translateY(-4px); } + 100% { opacity: 1; transform: scale(1) translateY(0); } +} + ` + } ], shortcuts: { 'flex-center': 'flex justify-center items-center',