├── .npmrc ├── .gitignore ├── assets ├── images │ ├── bg-top.png │ └── gongan.jpeg └── style │ ├── variable.scss │ └── base.scss ├── pages ├── product │ ├── [id].vue │ └── index.vue ├── solution │ ├── [id].vue │ ├── index.vue │ └── bank.vue ├── info │ └── [id].vue ├── about.vue ├── news │ ├── [id].vue │ └── index.vue ├── index.vue └── example │ └── index.vue ├── tsconfig.json ├── layouts ├── default.vue └── test.vue ├── app.vue ├── package.json ├── README.md ├── components ├── PageTop.vue ├── alone │ ├── Footer.vue │ ├── Pagination.vue │ ├── Header.vue │ ├── Banner.vue │ └── NavBar.vue ├── AppHeader.vue ├── PageProduct.vue └── PageSolution.vue └── nuxt.config.ts /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log* 3 | .nuxt 4 | .nitro 5 | .cache 6 | .output 7 | .env 8 | dist 9 | -------------------------------------------------------------------------------- /assets/images/bg-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmb2020/alone-blog-nuxt3/HEAD/assets/images/bg-top.png -------------------------------------------------------------------------------- /assets/images/gongan.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pmb2020/alone-blog-nuxt3/HEAD/assets/images/gongan.jpeg -------------------------------------------------------------------------------- /pages/product/[id].vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /pages/solution/[id].vue: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // https://v3.nuxtjs.org/concepts/typescript 3 | "extends": "./.nuxt/tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /pages/solution/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /assets/style/variable.scss: -------------------------------------------------------------------------------- 1 | $primary: #49240F; 2 | $secondary: #E4A79D; 3 | $body-bg: #f2f7ff; 4 | 5 | $primary-color:#e63130; 6 | 7 | $header-height: 6rem; 8 | $page-top-item-height:24rem; 9 | -------------------------------------------------------------------------------- /layouts/default.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /app.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | -------------------------------------------------------------------------------- /layouts/test.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 12 | 13 | -------------------------------------------------------------------------------- /pages/info/[id].vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build": "nuxt build", 5 | "dev": "nuxt dev", 6 | "generate": "nuxt generate", 7 | "preview": "nuxt preview", 8 | "postinstall": "nuxt prepare" 9 | }, 10 | "devDependencies": { 11 | "@nuxtjs/tailwindcss": "^6.1.3", 12 | "nuxt": "3.0.0", 13 | "sass": "^1.56.1" 14 | }, 15 | "dependencies": { 16 | "swiper": "^8.4.4" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # alone-blog 2 | 3 | nuxt3+tailwindcss快速搭建个人博客、门户网站、企业官网 4 | 5 | ## Setup 6 | 7 | Make sure to install the dependencies: 8 | 9 | ```bash 10 | # yarn 11 | yarn install 12 | 13 | # npm 14 | npm install 15 | 16 | # pnpm 17 | pnpm install --shamefully-hoist 18 | ``` 19 | 20 | ## Development Server 21 | 22 | Start the development server on http://localhost:3000 23 | 24 | ```bash 25 | npm run dev 26 | ``` 27 | 28 | ## Production 29 | 30 | Build the application for production: 31 | 32 | ```bash 33 | npm run build 34 | ``` 35 | 36 | Locally preview production build: 37 | 38 | ```bash 39 | npm run preview 40 | ``` 41 | 42 | Checkout the [deployment documentation](https://v3.nuxtjs.org/guide/deploy/presets) for more information. 43 | -------------------------------------------------------------------------------- /components/PageTop.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 21 | 22 | -------------------------------------------------------------------------------- /components/alone/Footer.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 15 | 16 | -------------------------------------------------------------------------------- /components/alone/Pagination.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | 19 | 41 | -------------------------------------------------------------------------------- /components/alone/Header.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 26 | 27 | 45 | -------------------------------------------------------------------------------- /components/AppHeader.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 26 | 27 | 46 | -------------------------------------------------------------------------------- /pages/about.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 32 | 33 | 43 | -------------------------------------------------------------------------------- /pages/news/[id].vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /components/PageProduct.vue: -------------------------------------------------------------------------------- 1 | 35 | 36 | 38 | 39 | -------------------------------------------------------------------------------- /nuxt.config.ts: -------------------------------------------------------------------------------- 1 | // https://v3.nuxtjs.org/api/configuration/nuxt.config 2 | export default defineNuxtConfig({ 3 | modules: ['@nuxtjs/tailwindcss'], 4 | app: { 5 | head: { 6 | charset: 'utf-8', 7 | title: 'VAA先锋音讯企业官网', 8 | meta: [ 9 | { name: 'viewport', content: 'width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no' }, 10 | { name: 'description', content: 'VAA先锋音讯企业官网' } 11 | ] 12 | } 13 | }, 14 | tailwindcss: { 15 | config: { 16 | theme: { 17 | screens: { 18 | 'sm': '640px', 19 | // => @media (min-width: 640px) { ... } 20 | 21 | 'md': '768px', 22 | // => @media (min-width: 768px) { ... } 23 | 24 | 'lg': '1024px', 25 | // => @media (min-width: 1024px) { ... } 26 | 27 | 'xl': '1280px', 28 | // => @media (min-width: 1280px) { ... } 29 | 30 | '2xl': '1536px', 31 | // => @media (min-width: 1536px) { ... } 32 | }, 33 | extend: { 34 | height: { 35 | '100': '25rem', 36 | '104': '26rem' 37 | } 38 | } 39 | } 40 | } 41 | }, 42 | css: [ 43 | '~/assets/style/base.scss', 44 | ], 45 | vite: { 46 | css: { 47 | preprocessorOptions: { 48 | scss: { 49 | additionalData: '@use "@/assets/style/variable.scss" as *;' 50 | } 51 | } 52 | } 53 | } 54 | }) 55 | -------------------------------------------------------------------------------- /components/alone/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 21 | 56 | -------------------------------------------------------------------------------- /assets/style/base.scss: -------------------------------------------------------------------------------- 1 | .al-container{ 2 | margin-left: auto; 3 | margin-right: auto; 4 | max-width: 100%; 5 | padding: 15px; 6 | } 7 | @media (min-width:576px) { 8 | .al-container{ 9 | max-width: 540px; 10 | } 11 | } 12 | @media (min-width:768px) { 13 | .al-container{ 14 | max-width: 720px; 15 | } 16 | } 17 | 18 | @media (min-width:992px) { 19 | .al-container{ 20 | max-width: 960px; 21 | } 22 | } 23 | 24 | @media (min-width:1200px) { 25 | .al-container{ 26 | max-width: 1140px; 27 | } 28 | } 29 | 30 | @media (min-width:1400px) { 31 | .al-container{ 32 | max-width: 1320px; 33 | } 34 | } 35 | 36 | body{ 37 | background-color: $body-bg; 38 | } 39 | 40 | ::-webkit-scrollbar { 41 | /*滚动条整体样式*/ 42 | width: 5px; /*高宽分别对应横竖滚动条的尺寸*/ 43 | height: 1px; 44 | } 45 | ::-webkit-scrollbar-thumb { 46 | /*滚动条里面小方块*/ 47 | border-radius: 10px; 48 | box-shadow: inset 0 0 5px rgba(97, 184, 179, 0.1); 49 | background: #cccccc; 50 | } 51 | ::-webkit-scrollbar-track { 52 | /*滚动条里面轨道*/ 53 | box-shadow: inset 0 0 5px rgba(87, 175, 187, 0.1); 54 | border-radius: 10px; 55 | background: #fff; 56 | } 57 | 58 | .new-title{ 59 | font-weight: bold; 60 | font-size: 1.5rem; 61 | color: #333; 62 | overflow: hidden; 63 | text-overflow:ellipsis; 64 | white-space: nowrap; 65 | margin-bottom: 1rem; 66 | cursor: pointer; 67 | } 68 | .new-title:hover{ 69 | color: $primary-color; 70 | } 71 | 72 | .section-title{ 73 | text-align: center; 74 | font-size: 32px; 75 | font-weight: bold; 76 | color: #12205B; 77 | margin-bottom: 3rem; 78 | } -------------------------------------------------------------------------------- /pages/product/index.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 46 | 47 | -------------------------------------------------------------------------------- /pages/news/index.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 70 | 71 | -------------------------------------------------------------------------------- /pages/index.vue: -------------------------------------------------------------------------------- 1 | 48 | 49 | 90 | 91 | 111 | -------------------------------------------------------------------------------- /components/PageSolution.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 83 | 84 | 122 | -------------------------------------------------------------------------------- /components/alone/NavBar.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 47 | 48 | 188 | -------------------------------------------------------------------------------- /pages/solution/bank.vue: -------------------------------------------------------------------------------- 1 | 96 | 97 | 99 | 100 | 167 | -------------------------------------------------------------------------------- /pages/example/index.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 87 | 88 | --------------------------------------------------------------------------------