[
  {
    "path": ".editorconfig",
    "content": "# https://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\nquote_type = single\n\n[*.md]\ninsert_final_newline = false\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".github/workflows/deploy.yml",
    "content": "# This is a basic workflow to help you get started with Actions\n\nname: deploy\n\n# Controls when the workflow will run\non:\n  # Triggers the workflow on push events but only for the master branch\n  push:\n    branches: [ master ]\n\n  # Allows you to run this workflow manually from the Actions tab\n  workflow_dispatch:\n\n# A workflow run is made up of one or more jobs that can run sequentially or in parallel\njobs:\n  # This workflow contains a single job called \"build\"\n  build:\n    # The type of runner that the job will run on\n    runs-on: ubuntu-latest\n\n    # Steps represent a sequence of tasks that will be executed as part of the job\n    steps:\n      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it\n      - name: Checkout master\n        uses: actions/checkout@v3 # If you're using actions/checkout@v2 you must set persist-credentials to false in most cases for the deployment to work correctly.\n        with:\n          ref: master\n          persist-credentials: false\n\n      - name: Setup node\n        uses: actions/setup-node@v3\n        with:\n          node-version: '16.x'\n\n      - name: Install and Build\n        run: yarn && yarn build\n\n      - name: Deploy\n        uses: JamesIves/github-pages-deploy-action@4.1.7\n        with:\n          token: ${{ secrets.ACCESS_TOKEN }}\n          single-commit: true\n          branch: gh-pages\n          clean: true\n          folder: dist\n"
  },
  {
    "path": ".gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n\npackage-lock.json\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"semi\": false,\n  \"singleQuote\": true,\n  \"trailingComma\": \"none\",\n  \"printWidth\": 80,\n  \"endOfLine\": \"crlf\",\n  \"overrides\": [\n    {\n      \"files\": \".prettierrc\",\n      \"options\": {\n        \"parser\": \"json\"\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": ".vscode/extensions.json",
    "content": "{\n  \"recommendations\": [\"Vue.volar\"]\n}\n"
  },
  {
    "path": "README.md",
    "content": "# Official-website\n\n> 响应式的企业官方网站模板，使用 [Vite](https://cn.vitejs.dev/) 脚手架搭建，使用 [Vue3](https://cn.vuejs.org/) 开发。\n\n## 运行/启动\n\n```bash\nnpm i\n\nnpm run dev\n```\n\n## 构建&预览\n```bash\n# 构建生产环境\nnpm run build\n\n# 预览构建的产品\nnpm run preview\n```\n\n## Vue 3 + Vite\n\nThis template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.\n\n## Recommended IDE Setup\n\n- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar)\n\n\n## 技术要点\n\n```bash\n# bootstarp——整体框架，主要用到了栅格系统和一些组件\n\n# swiper——轮播插件\n\n# wow.js+animate.css——网站的整体动画插件\n\n# axios——ajax请求\n\n# vue-router——路由\n\n# vuex——状态管理（项目没有用到）\n\n# session storage——本地存储\n\n# 对可复用的组件进行了封装，对api接口进行了封装\n```\n\n## About\n\n- [我的个人博客](https://blog.csdn.net/csdn_yudong)\n- [我的推荐阅读文章](https://neveryu.blog.csdn.net/article/details/124124137)\n\n\n## 内容\n![](./screenshots/screenshot_1.png)\n![](./screenshots/screenshot_2.png)\n![](./screenshots/screenshot_3.png)\n![](./screenshots/screenshot_4.png)"
  },
  {
    "path": "index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/vite.svg\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title><%= VITE_APP_TITLE %></title>\n    <script\n      type=\"text/javascript\"\n      src=\"https://api.map.baidu.com/api?v=3.0&ak=jcI3Q88g6V99OPBjLryoOqPTtsRdedHA\"\n    ></script>\n  </head>\n  <body>\n    <div id=\"app\"></div>\n    <script type=\"module\" src=\"/src/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"official-website\",\n  \"private\": true,\n  \"version\": \"1.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build\": \"vite build\",\n    \"preview\": \"vite preview\"\n  },\n  \"dependencies\": {\n    \"animate.css\": \"^4.1.1\",\n    \"jquery\": \"^3.6.1\",\n    \"swiper\": \"^8.4.5\",\n    \"vue\": \"^3.2.41\",\n    \"vue-router\": \"^4.1.6\",\n    \"wow.js\": \"^1.2.2\"\n  },\n  \"devDependencies\": {\n    \"@rollup/plugin-inject\": \"^5.0.2\",\n    \"@vitejs/plugin-vue\": \"^3.2.0\",\n    \"vite\": \"^3.2.3\",\n    \"vite-plugin-html\": \"^3.2.0\"\n  }\n}\n"
  },
  {
    "path": "src/App.vue",
    "content": "<script setup>\nimport Header from '@/components/Header.vue'\nimport Footer from '@/components/Footer.vue'\nimport GoTop from '@/components/GoTop.vue'\n</script>\n\n<template>\n  <Header></Header>\n  <!-- 路由出口 -->\n  <!-- 路由匹配到的组件将渲染在这里 -->\n  <router-view></router-view>\n  <Footer></Footer>\n  <GoTop></GoTop>\n</template>\n\n<style scoped></style>\n\n"
  },
  {
    "path": "src/common/load-bmap.js",
    "content": "export function Bmap() {\n  return new Promise(function (resolve, reject) {\n    window.initBMapGL = function () {\n      console.log('initBMapGL')\n      resolve()\n    }\n    let script = document.createElement('script')\n    script.type = 'text/javascript'\n    script.src = `//api.map.baidu.com/api?v=3.0&ak=jcI3Q88g6V99OPBjLryoOqPTtsRdedHA&callback=initBMapGL`\n\n    script.onerror = reject\n\n    document.head.appendChild(script)\n  })\n}\n\n"
  },
  {
    "path": "src/components/Footer.vue",
    "content": "<template>\n  <div id=\"footer\" class=\"container-fluid\">\n    <div class=\"logo\">\n      <img src=\"@/assets/img/logo_white.png\" alt=\"logo图\" />\n    </div>\n    <p class=\"title\">公司企业网站模板</p>\n    <p class=\"address_tel_fax\">\n      <p>地址：{{ address }}</p>\n      <p>QQ群：<a style=\"color:#fff\" target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=ce9f5f0d1d7553fb5634521f79a89668ad0d798eb35047f93300df63ebae4c05\">{{ qqgroup }}</a></p>\n    </p>\n    <p class=\"email_wx\">\n      <p>博客：<a :href='blog + \"neveryu/\"' style=\"color:#fff\">{{ blog }}</a></p>\n      <p>邮箱：{{ email }}</p>\n      <p>公司QQ号：{{ qq }}</p>\n    </p>\n    <p class=\"copy\">Copyright &copy; 2018 - Now {{ company }}</p>\n  </div>\n</template>\n\n<script setup name=\"Footer\">\nconst address = import.meta.env.VITE_APP_ADDRESS\nconst phone = import.meta.env.VITE_APP_PHONE\nconst email = import.meta.env.VITE_APP_EMAIL\nconst qq = import.meta.env.VITE_APP_QQ\nconst company = import.meta.env.VITE_APP_COMPANYNAME\nconst blog = import.meta.env.VITE_APP_BLOG\nconst qqgroup = import.meta.env.VITE_APP_QQGROUP\n</script>\n\n<style scoped>\n#footer {\n  width: 100%;\n  height: 100%;\n  color: #fff;\n  background: #474747;\n  overflow: hidden;\n  text-align: center;\n}\n\n.logo {\n  width: 95px;\n  height: 45px;\n  margin: 50px auto 20px;\n}\n\n.title {\n  font-size: 25px;\n  margin-bottom: 20px;\n}\n\n.address_tel_fax {\n  color: #d3d3d3;\n  font-size: 14px;\n  margin: 10px 0;\n}\n\n.email_wx {\n  color: #d3d3d3;\n  font-size: 14px;\n}\n\n.copy {\n  color: #d3d3d3;\n  font-size: 14px;\n  margin: 50px 0 10px;\n}\n\n@media screen and (max-width: 997px) {\n  .title {\n    font-size: 20px;\n  }\n\n  .address_tel_fax {\n    font-size: 12px;\n  }\n\n  .email_wx {\n    font-size: 12px;\n  }\n\n  .copy {\n    font-size: 12px;\n    margin: 30px 0 10px;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/components/GoTop.vue",
    "content": "<template>\n  <div id=\"GoTop\" @click=\"GoTop()\">\n    <span class=\"glyphicon glyphicon-chevron-up\"></span>\n  </div>\n</template>\n\n<script setup name=\"GoTop\">\nimport { ref } from 'vue'\nconst flag = ref(false)\nfunction GoTop() {\n  ;(function smoothscroll() {\n    var currentScroll =\n      document.documentElement.scrollTop || document.body.scrollTop\n    if (currentScroll > 0) {\n      window.requestAnimationFrame(smoothscroll)\n      window.scrollTo(0, currentScroll - currentScroll / 10)\n    }\n  })()\n}\n</script>\n\n<style scoped>\n#GoTop {\n  width: 50px;\n  height: 50px;\n  position: fixed;\n  right: 20px;\n  bottom: 20px;\n  z-index: 99999999;\n  cursor: pointer;\n}\n\n#GoTop > span {\n  display: block;\n  width: 100%;\n  height: 100%;\n  color: rgb(8, 162, 233);\n  font-size: 30px;\n}\n</style>\n"
  },
  {
    "path": "src/components/Header.vue",
    "content": "<template>\n  <!-- 头部整体盒子 -->\n  <div id=\"header\" class=\"container-fuild\">\n    <!-- 头部顶部 -->\n    <div class=\"header-top container-fuild hidden-xs\">\n      <div class=\"container\">\n        <div class=\"server pull-left\">\n          <span class=\"glyphicon glyphicon-earphone\"></span>{{ phone }}\n          <span class=\"glyphicon glyphicon-envelope\"></span>{{ email }}\n          <span class=\"glyphicon glyphicon-time\"></span>7x24小时为您服务\n        </div>\n        <div class=\"shejiao pull-right\">\n          <span class=\"glyphicon glyphicon-hand-right\"></span>赶快联系我们吧！\n          <span class=\"glyphicon glyphicon-hand-left\"></span>\n\n          <a\n            href=\"https://github.com/neveryu\"\n            target=\"_blank\"\n            style=\"color: #fc5531; font-size: 18px; cursor: pointer\"\n            >Github</a\n          >\n        </div>\n      </div>\n    </div>\n    <!-- 电脑导航 -->\n    <div class=\"header-nav container hidden-xs\">\n      <!-- 导航logo -->\n      <div class=\"header-nav-logo\">\n        <img src=\"@/assets/img/logo_black.png\" />\n      </div>\n      <!-- 导航内容 -->\n      <ul class=\"header-nav-wrapper\">\n        <li\n          v-for=\"(item, index) in navList\"\n          :key=\"index\"\n          :class=\"index == navIndex ? 'active' : ''\"\n          @click=\"navClick(index, item.name)\"\n        >\n          <router-link :to=\"item.path\">\n            {{ item.name }}\n            <span\n              v-if=\"item.children.length > 0\"\n              class=\"glyphicon glyphicon-menu-down\"\n            ></span>\n            <i class=\"underline\"></i>\n          </router-link>\n          <dl v-if=\"item.children.length > 0\">\n            <dt v-for=\"(i, n) in item.children\" :key=\"n\">\n              <router-link :to=\"i.path\">{{ i.name }}</router-link>\n            </dt>\n          </dl>\n        </li>\n      </ul>\n    </div>\n    <!-- 手机导航 -->\n    <div class=\"header-nav-m container-fuild visible-xs\">\n      <div class=\"header-nav-m-logo\">\n        <img\n          class=\"center-block\"\n          src=\"@/assets/img/logo_black.png\"\n          alt=\"logo\"\n        />\n      </div>\n      <!-- 导航栏 -->\n      <div class=\"header-nav-m-menu text-center\">\n        {{ menuName }}\n        <div\n          class=\"header-nav-m-menu-wrapper\"\n          data-toggle=\"collapse\"\n          data-target=\"#menu\"\n          @click=\"menuClick\"\n        >\n          <span :class=\"menuClass\"></span>\n        </div>\n        <!-- 导航内容 -->\n        <ul id=\"menu\" class=\"header-nav-m-wrapper collapse\">\n          <li\n            v-for=\"(item, index) in navList\"\n            :key=\"index\"\n            :class=\"index == navIndex ? 'active' : ''\"\n            @click=\"navClick(index, item.name)\"\n            data-toggle=\"collapse\"\n            data-target=\"#menu\"\n          >\n            <router-link :to=\"item.path\">\n              {{ item.name }}\n              <i class=\"underline\"></i>\n            </router-link>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup>\nimport { ref, reactive } from 'vue'\nconst phone = import.meta.env.VITE_APP_PHONE\nconst email = import.meta.env.VITE_APP_EMAIL\nconst navIndex = ref('')\nnavIndex.value = sessionStorage.getItem('navIndex')\n  ? sessionStorage.getItem('navIndex')\n  : 0\nconst menuName = ref('首页')\nconst menuClass = ref('glyphicon glyphicon-menu-down')\nconst navList = [\n  {\n    name: '首页',\n    path: '/',\n    children: []\n  },\n  {\n    name: '软件产品',\n    path: '/software',\n    children: [\n      {\n        name: '智能小镇管理系统',\n        path: '/software/smartTown'\n      },\n      {\n        name: '大数据管理系统',\n        path: '/software/bigData'\n      }\n    ]\n  },\n  {\n    name: '相关服务',\n    path: '/service',\n    children: []\n  },\n  {\n    name: '新闻动态',\n    path: '/newsinformation',\n    children: []\n  },\n  {\n    name: '公司介绍',\n    path: '/companyintroduction',\n    children: []\n  },\n  {\n    name: '工作机会',\n    path: '/jobchance',\n    children: []\n  },\n  {\n    name: '联系我们',\n    path: '/contactus',\n    children: []\n  }\n]\nfunction navClick(index, name) {\n  navIndex.value = index\n  sessionStorage.setItem('navIndex', index)\n  menuName.value = name\n}\nfunction menuClick() {\n  if (menuClass.value == 'glyphicon glyphicon-menu-down') {\n    menuClass.value = 'glyphicon glyphicon-menu-up'\n  } else {\n    menuClass.value = 'glyphicon glyphicon-menu-down'\n  }\n}\n</script>\n\n<style scoped>\n/* 顶部 */\n#header {\n  background: #f4f4f4;\n  transition: all ease 0.6s;\n}\n\n#header .header-top {\n  height: 50px;\n  color: #fff;\n  font-size: 12px;\n  line-height: 50px;\n  background: #474747;\n}\n\n/* 顶部的图标 */\n#header .header-top span {\n  margin: 0 8px;\n}\n\n/* 导航栏 */\n#header .header-nav {\n  height: 110px;\n}\n\n/* 导航栏logo */\n#header .header-nav .header-nav-logo {\n  width: 100px;\n  height: 100%;\n  float: left;\n  position: relative;\n}\n\n/* 导航栏logo图片 */\n#header .header-nav .header-nav-logo img {\n  width: 95px;\n  height: 45px;\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin: auto;\n}\n\n/* 导航栏 导航容器 */\n#header .header-nav-fixed .header-nav-wrapper {\n  line-height: 50px;\n}\n\n#header .header-nav .header-nav-wrapper {\n  line-height: 110px;\n  float: right;\n  margin: 0;\n  max-width: 800px;\n}\n\n/* 导航栏 每个导航 */\n#header .header-nav .header-nav-wrapper > li {\n  float: left;\n  margin: 0 15px;\n  position: relative;\n}\n\n/* 导航栏 每个导航下面的 a 链接 */\n#header .header-nav .header-nav-wrapper > li > a {\n  color: #000;\n  font-size: 15px;\n  font-weight: bold;\n  padding: 15px 0;\n  position: relative;\n}\n\n/* 导航栏 每个导航下面的 a 链接的下划线 */\n#header .header-nav .header-nav-wrapper > li > a > i {\n  display: block;\n  position: absolute;\n  bottom: -2px;\n  left: 50%;\n  width: 0;\n  height: 2px;\n  opacity: 0;\n  transition: all 0.6s ease;\n  background-color: #1e73be;\n}\n\n/* 导航栏 每个导航下面的 a 链接的右侧小三角 */\n#header .header-nav .header-nav-wrapper > li > a > span {\n  font-size: 12px;\n  transition: transform ease 0.5s;\n}\n\n/* 导航栏 每个导航下面的 a 链接 鼠标滑上去的样式 */\n#header .header-nav .header-nav-wrapper > li > a:hover {\n  color: #1e73be;\n  text-decoration: none;\n}\n\n/* 导航栏 每个导航下面的 a 链接 鼠标滑上去下划线的样式 */\n#header .header-nav .header-nav-wrapper > li > a:hover .underline {\n  opacity: 1;\n  width: 100%;\n  left: 0;\n}\n\n/* 导航栏 每个导航下面的 a 链接 鼠标滑上去三角标的样式 */\n#header .header-nav .header-nav-wrapper > li > a:hover span {\n  transform: rotate(180deg);\n}\n\n/* 导航栏 每个导航下面的 a 链接 鼠标点击后的样式 */\n#header .header-nav .header-nav-wrapper > li.active > a {\n  color: #1e73be;\n  text-decoration: none;\n  border-bottom: 2px solid #1e73be;\n}\n\n/* 导航栏 每个导航下面的二级导航容器 */\n#header .header-nav .header-nav-wrapper > li > dl {\n  display: none;\n  position: absolute;\n  width: 168px;\n  top: 80%;\n  left: 0;\n  z-index: 999999;\n  box-shadow: 0 0 3px 1px #ccc;\n  background: #fff;\n}\n\n/* 导航栏 每个导航下面的二级导航容器的每个导航 */\n#header .header-nav .header-nav-wrapper > li > dl > dt {\n  width: 100%;\n  padding: 10px;\n  border-bottom: 1px solid #ccc;\n}\n\n/* 导航栏 每个导航下面的二级导航容器的每个导航 当鼠标滑上时的样式*/\n#header .header-nav .header-nav-wrapper > li > dl > dt > a:hover {\n  text-decoration: none;\n}\n\n/* 导航栏 滑上一级导航显示二级导航 */\n#header .header-nav .header-nav-wrapper > li:hover dl {\n  display: block;\n}\n\n#header .header-nav .header-nav-wrapper > li > dl > dt:hover {\n  cursor: pointer;\n  background: #ccc;\n}\n\n@media screen and (max-width: 997px) {\n  #header .header-nav-m {\n    position: relative;\n  }\n\n  /* 导航栏logo容器 */\n  #header .header-nav-m .header-nav-m-logo {\n    height: 80px;\n    position: relative;\n  }\n\n  /* 导航栏logo图片 */\n  #header .header-nav-m .header-nav-m-logo img {\n    width: 95px;\n    height: 45px;\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    margin: auto;\n  }\n\n  /* 导航栏  菜单容器 */\n  #header .header-nav-m .header-nav-m-menu {\n    color: #fff;\n    height: 50px;\n    font-size: 20px;\n    line-height: 50px;\n    background: #474747;\n    position: relative;\n  }\n\n  /* 导航栏 菜单图标 */\n  #header .header-nav-m .header-nav-m-menu-wrapper {\n    position: absolute;\n    top: 50%;\n    right: 20px;\n    margin-top: -20px;\n    width: 50px;\n    height: 40px;\n    color: #fff;\n    z-index: 999999;\n    font-size: 12px;\n  }\n\n  /* 导航栏 */\n  #header .header-nav-m .header-nav-m-wrapper {\n    position: absolute;\n    top: 50px;\n    left: 0;\n    width: 100%;\n    background: #474747;\n    z-index: 9999999;\n  }\n\n  /* 导航栏 每个导航 */\n  #header .header-nav-m .header-nav-m-wrapper > li {\n    height: 40px;\n    line-height: 40px;\n    border-bottom: 1px solid #ccc;\n  }\n\n  /* 导航栏 每个导航下面的 a 链接 */\n  #header .header-nav-m .header-nav-m-wrapper > li > a {\n    color: #fff;\n    font-size: 15px;\n    font-weight: bold;\n    padding: 15px 0;\n    position: relative;\n  }\n\n  /* 导航栏 每个导航下面的 a 链接的右侧小三角 */\n  #header .header-nav .header-nav-wrapper > li > a > span {\n    font-size: 10px;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/main.js",
    "content": "import { createApp } from 'vue'\nimport { createRouter } from '@/router'\n\n/* swiper */\n// import 'swiper/swiper.min.css'\n\n/* 重置样式 */\nimport './assets/css/reset.min.css'\n\n// import 'jquery'\n\nimport './assets/css/bootstrap.min.css'\nimport './assets/js/bootstrap.min.js'\n\n/* animate.css */\nimport 'wow.js/css/libs/animate.css'\n\nimport App from './App.vue'\n\nconst router = createRouter()\nconst app = createApp(App)\n\napp.use(router).mount('#app')\n\n"
  },
  {
    "path": "src/router/index.js",
    "content": "import { createRouter as _createRouter, createWebHashHistory } from 'vue-router'\n\n// const pages = import.meta.glob('../src/pages/**/*.vue')\n// const routes = Object.keys(pages).map((path)=>{\n//   let name = path.match(/\\/pages(.*)\\.vue$/)[1].toLowerCase();\n//   if(name.substring(name.length - 5) == 'index'){\n//     name = name.slice(0, -5);//去掉最后的index\n//   }\n//   return {\n//     path: name === '/home' ? '/': name,\n//     component: pages[path]\n//   }\n// })\n\nconst routes = [\n  {\n    path: '/',\n    name: 'PageView',\n    redirect: '/home',\n    component: () => import('@/view/PageView.vue'),\n    children: [\n      {\n        path: '/home',\n        name: 'Home',\n        component: () => import('@/view/HomePage.vue'),\n        meta: {\n          title: '首页'\n        }\n      },\n      {\n        path: '/software',\n        name: 'software',\n        component: () => import('@/view/Software.vue'),\n        redirect: '/software/smartTown',\n        meta: {\n          title: '软件产品'\n        },\n        children: [\n          {\n            path: '/software/smartTown',\n            name: 'smartTown',\n            component: () => import('@/view/Software_smartTown.vue'),\n            meta: {\n              title: '软件产品丨智能小镇管理系统'\n            }\n          },\n          {\n            path: '/software/bigData',\n            name: 'bigData',\n            component: () => import('@/view/Software_bigData.vue'),\n            meta: {\n              title: '软件产品丨大数据管理系统'\n            }\n          }\n        ]\n      },\n      {\n        path: '/service',\n        name: 'service',\n        component: () => import('@/view/Service.vue'),\n        props: true,\n        meta: {\n          title: '相关服务'\n        }\n      },\n      {\n        path: '/servicedetail',\n        name: 'serviceDetail',\n        component: () => import('@/view/ServiceDetail.vue'),\n        props: true,\n        meta: {\n          title: '相关服务-详情'\n        }\n      },\n      {\n        path: '/newsinformation',\n        name: 'newsInformation',\n        component: () => import('@/view/NewsInformation.vue'),\n        meta: {\n          title: '新闻动态'\n        }\n      },\n      {\n        path: '/companyintroduction',\n        name: 'companyIntroduction',\n        component: () => import('@/view/CompanyIntroduction.vue'),\n        meta: {\n          title: '公司介绍'\n        }\n      },\n      {\n        path: '/jobchance',\n        name: 'jobChance',\n        component: () => import('@/view/JobChance.vue'),\n        meta: {\n          title: '工作机会'\n        }\n      },\n      {\n        path: '/contactus',\n        name: 'contactUs',\n        component: () => import('@/view/ContactUs.vue'),\n        meta: {\n          title: '联系我们'\n        }\n      }\n    ]\n  }\n]\n\nexport function createRouter() {\n  return _createRouter({\n    history: createWebHashHistory(),\n    routes\n  })\n}\n\n"
  },
  {
    "path": "src/style.css",
    "content": ":root {\n  font-family: Inter, Avenir, Helvetica, Arial, sans-serif;\n  font-size: 16px;\n  line-height: 24px;\n  font-weight: 400;\n\n  color-scheme: light dark;\n  color: rgba(255, 255, 255, 0.87);\n  background-color: #242424;\n\n  font-synthesis: none;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-text-size-adjust: 100%;\n}\n\na {\n  font-weight: 500;\n  color: #646cff;\n  text-decoration: inherit;\n}\na:hover {\n  color: #535bf2;\n}\n\na {\n  font-weight: 500;\n  color: #646cff;\n  text-decoration: inherit;\n}\na:hover {\n  color: #535bf2;\n}\n\nbody {\n  margin: 0;\n  display: flex;\n  place-items: center;\n  min-width: 320px;\n  min-height: 100vh;\n}\n\nh1 {\n  font-size: 3.2em;\n  line-height: 1.1;\n}\n\nbutton {\n  border-radius: 8px;\n  border: 1px solid transparent;\n  padding: 0.6em 1.2em;\n  font-size: 1em;\n  font-weight: 500;\n  font-family: inherit;\n  background-color: #1a1a1a;\n  cursor: pointer;\n  transition: border-color 0.25s;\n}\nbutton:hover {\n  border-color: #646cff;\n}\nbutton:focus,\nbutton:focus-visible {\n  outline: 4px auto -webkit-focus-ring-color;\n}\n\n.card {\n  padding: 2em;\n}\n\n#app {\n  max-width: 1280px;\n  margin: 0 auto;\n  padding: 2rem;\n  text-align: center;\n}\n\n@media (prefers-color-scheme: light) {\n  :root {\n    color: #213547;\n    background-color: #ffffff;\n  }\n  a:hover {\n    color: #747bff;\n  }\n  button {\n    background-color: #f9f9f9;\n  }\n}\n"
  },
  {
    "path": "src/view/CompanyIntroduction.vue",
    "content": "<template>\n  <div id=\"CompanyIntroduction\">\n    <div class=\"banner container-fuild text-center\">关于我们</div>\n    <div class=\"container\">\n      <div class=\"row CompanyIntroduction-container\">\n        <div class=\"col-xs-12 col-sm-12 col-md-6 wow zoomIn\">\n          <img\n            class=\"img-responsive center-block\"\n            src=\"@/assets/img/about_img.png\"\n          />\n        </div>\n        <div class=\"col-xs-12 col-sm-12 col-md-6\">\n          <h3>网站建设文化传播有限公司</h3>\n          <p class=\".text-justify\">\n            有家软件公司, 是一家以高科技创意为核心的技术服务公司,\n            聚集了众多对软件开发和界面设计有独特创意的高端人才,\n            致力于为企业提供软件开发, 网站建设, 网页设计, IT外包, 手机应用开发,\n            互联网营销, 微信平台开发等解决方案。\n          </p>\n          <p class=\".text-justify\">\n            我们的客户包括集团上市公司, 酒店, IT科技, 教育, 服装, 贸易, 外贸,\n            时尚, 生物, 工业, 制造等众多行业, 并树立了良好的口碑,\n            积累了丰富的经验和成功案例. 我们提供权威专业的互联网品牌策划,\n            并实施高标准的设计方案, 创造真正意义上的品牌网站,\n            为互联网品牌在互动行销领域创造最大价值而不懈努力!\n          </p>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup name=\"CompanyIntroduction\">\nimport WOW from 'wow.js'\nimport { onMounted } from 'vue'\nonMounted(() => {\n  var wow = new WOW()\n  wow.init()\n})\n</script>\n\n<style scoped>\n.banner {\n  color: #fff;\n  font-size: 30px;\n  height: 150px;\n  line-height: 150px;\n  background-image: url('../assets/img/banner1.png');\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-attachment: scroll;\n  background-position: center center;\n}\n.row {\n  margin-right: 0;\n  margin-left: 0;\n}\n.CompanyIntroduction-container {\n  padding: 100px 0;\n  color: #808080;\n  transition: all ease 0.5s;\n}\n.CompanyIntroduction-container > div > p {\n  font-size: 14px;\n  line-height: 2.5rem;\n}\n@media screen and (max-width: 997px) {\n  .CompanyIntroduction-container {\n    padding: 10px 0;\n    color: #808080;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/view/ContactUs.vue",
    "content": "<template>\n  <div id=\"ContactUs\">\n    <div class=\"banner container-fuild text-center\">联系我们</div>\n    <div class=\"container\">\n      <div class=\"container-fuild ContactUs-container\">\n        <div class=\"row\">\n          <div class=\"col-xs-12 col-sm-12 col-md-6\">\n            <form class=\"form-horizontal\" role=\"form\">\n              <div class=\"form-group\">\n                <label for=\"name\" class=\"col-sm-2 control-label\">姓名</label>\n                <div class=\"col-sm-10 col-xs-12\">\n                  <input\n                    type=\"text\"\n                    class=\"form-control\"\n                    id=\"name\"\n                    placeholder=\"请输入名字\"\n                  />\n                </div>\n              </div>\n              <div class=\"form-group\">\n                <label for=\"email\" class=\"col-sm-2 control-label\">邮箱</label>\n                <div class=\"col-sm-10\">\n                  <input\n                    type=\"text\"\n                    class=\"form-control\"\n                    id=\"email\"\n                    placeholder=\"请输入邮箱\"\n                  />\n                </div>\n              </div>\n              <div class=\"form-group\">\n                <label for=\"tel\" class=\"col-sm-2 control-label\">电话</label>\n                <div class=\"col-sm-10\">\n                  <input\n                    type=\"text\"\n                    class=\"form-control\"\n                    id=\"tel\"\n                    placeholder=\"请输入电话\"\n                  />\n                </div>\n              </div>\n              <div class=\"form-group\">\n                <label for=\"content\" class=\"col-sm-2 control-label\">内容</label>\n                <div class=\"col-sm-10\">\n                  <textarea\n                    class=\"form-control\"\n                    id=\"content\"\n                    rows=\"8\"\n                    placeholder=\"请输入内容\"\n                  ></textarea>\n                </div>\n              </div>\n              <div class=\"form-group\">\n                <div class=\"col-sm-offset-2 col-sm-10\">\n                  <button\n                    class=\"btn btn-default btn-block\"\n                    @click.stop=\"submitForm\"\n                  >\n                    提交\n                  </button>\n                </div>\n              </div>\n            </form>\n          </div>\n          <div class=\"col-xs-12 col-sm-12 col-md-6\">\n            <div id=\"map\" class=\"wow zoomIn\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n<script setup name=\"ContactUs\">\nimport WOW from 'wow.js'\nimport { onMounted } from 'vue'\n// 百度地图BMap构造函数\nlet BMap = null\nonMounted(() => {\n  BMap = window.BMap\n  var map = new BMap.Map('map') // 创建地图实例\n  var point = new BMap.Point(114.54591657517, 30.496032878104) // 创建点坐标\n  map.centerAndZoom(point, 18) // 初始化地图，设置中心点坐标和地图级别\n  map.enableScrollWheelZoom(true) //开启鼠标滚轮缩放\n  var marker = new BMap.Marker(point) // 创建标注\n  map.addOverlay(marker) // 将标注添加到地图中\n  var opts = {\n    width: 50, // 信息窗口宽度\n    height: 10, // 信息窗口高度\n    title: '武汉XXX公司' // 信息窗口标题\n  }\n  var infoWindow = new BMap.InfoWindow(\n    `<span>地址：武汉市东湖高新技术开发区，马蹄莲<span>\n     <br>\n     <span>联系方式：423</span>`,\n    opts\n  ) // 创建信息窗口对象\n  map.openInfoWindow(infoWindow, map.getCenter()) // 打开信息窗口\n  var wow = new WOW()\n  wow.init()\n})\nfunction submitForm() {\n  window.open(\n    'https://neveryu.github.io/web-bookmarks/interview/',\n    'web-bookmarks'\n  )\n}\n</script>\n\n<style scoped>\n.banner {\n  color: #fff;\n  font-size: 30px;\n  height: 150px;\n  line-height: 150px;\n  background-image: url('../assets/img/banner_1.jpg');\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-attachment: scroll;\n  background-position: center center;\n}\n.ContactUs-container {\n  padding: 80px 0;\n  transition: all ease 0.5s;\n  box-sizing: border-box;\n}\n#map {\n  width: 100%;\n  height: 365px;\n}\n.row {\n  margin-right: 0;\n  margin-left: 0;\n}\n@media screen and (max-width: 997px) {\n  .ContactUs-container {\n    padding: 20px 0;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/view/HomePage.vue",
    "content": "<template>\n  <div id=\"HomePage\">\n    <!-- 轮播图 -->\n    <swiper\n      id=\"swiper\"\n      :modules=\"modules\"\n      :slides-per-view=\"1\"\n      :space-between=\"0\"\n      navigation\n      lazy\n      loop\n      autoplay\n      :pagination=\"{\n        clickable: true\n      }\"\n    >\n      <swiper-slide\n        class=\"banner-swiper\"\n        v-for=\"(item, index) in swiperList\"\n        :key=\"index\"\n      >\n        <img class=\"swiper-lazy\" :data-src=\"item.img\" alt=\"轮播图\" />\n        <div class=\"swiper-lazy-preloader\"></div>\n        <div class=\"swiper-slide-title\">\n          <h1>{{ item.title }}</h1>\n          <p>{{ item.content }}</p>\n        </div>\n      </swiper-slide>\n    </swiper>\n\n    <!-- 大数据管理系统 -->\n    <div id=\"bigData\" class=\"container-fuild\">\n      <div class=\"row bigData-container\">\n        <div class=\"col-xs-12 col-sm-12 col-md-6 wow zoomIn\">\n          <img\n            class=\"img-responsive\"\n            src=\"@/assets/img/img1.png\"\n            alt=\"大数据管理系统\"\n          />\n        </div>\n        <div class=\"col-xs-12 col-sm-12 col-md-6\">\n          <h2 class=\"bigData-title\">\n            大数据管理系统\n            <small>/ Big Data Management System</small>\n          </h2>\n          <p>\n            当今最领先的响应式自助建站平台。无论您是普通互联网用户，还是专业网站制作人员，都能使用起飞页设计出最具专业水准的网站。想创建一个简单的单页式站点，还是一个专业的公司网站，亦或是一个别具一格的博客？起飞页可以满足您的所有需求。\n          </p>\n          <p>\n            我们的流线式网页布局设计方案和可视化图文内容编辑模式让网站制作和维护成为一件轻松惬意的事。无论您是普通互联网用户，还是专业网站制作人员。\n          </p>\n          <h2 class=\"bigData-device\">PC/PAD/Phone &nbsp; 全设备支持</h2>\n          <a href=\"javascript:;\" class=\"btn btn-lg btn-block btn-info\"\n            >联系我们</a\n          >\n        </div>\n      </div>\n    </div>\n\n    <!-- 您身边的IT专家 -->\n    <div id=\"contactUs\" class=\"container-fuild text-center\">\n      <div class=\"container contactUs-container wow slideInUp\">\n        <h1>您身边的IT专家</h1>\n        <h3>7x24小时提供出色的IT服务</h3>\n        <button\n          class=\"btn btn-default btn-sm\"\n          onmouseleave=\"this.style.borderColor='#ffffff'; this.style.backgroundColor='#ffffff'; this.style.color='#3f3f3f';\"\n          onmouseenter=\"this.style.backgroundColor='transparent'; this.style.borderColor='#ffffff'; this.style.color='#ffffff';\"\n        >\n          联系我们\n        </button>\n        <div class=\"contactUs-contactWay\">\n          <span></span>\n          <span></span>\n          <span></span>\n        </div>\n      </div>\n    </div>\n\n    <!-- 客户评价 -->\n    <div id=\"customer\" class=\"container-fuild\">\n      <div class=\"container customer-container\">\n        <p class=\"customer-title text-center\">客户评价</p>\n        <swiper\n          class=\"swiper-container customer-swiper hidden-xs\"\n          :modules=\"modules\"\n          :slides-per-view=\"1\"\n          :space-between=\"0\"\n          navigation\n          loop\n          autoplay\n          :pagination=\"{\n            clickable: true\n          }\"\n        >\n          <swiper-slide\n            class=\"swiper-slide customer-block\"\n            v-for=\"(item, index) in customerList\"\n            :key=\"index\"\n          >\n            <div class=\"customer-logo\">\n              <img class=\"center-block\" :src=\"item.logo\" alt=\"logo\" />\n            </div>\n            <div class=\"customer-yh\">\n              <img src=\"@/assets/img/yinhao.png\" alt=\"引号\" />\n            </div>\n            <div class=\"customer-content1\">\n              <small>{{ item.content }}</small>\n            </div>\n            <div class=\"customer-content2\">{{ item.title }}</div>\n          </swiper-slide>\n        </swiper>\n\n        <div class=\"row visible-xs customer-block\">\n          <div\n            class=\"col-xs-12\"\n            v-for=\"(item, index) in customerList\"\n            :key=\"index\"\n          >\n            <div class=\"customer-logo\">\n              <img class=\"center-block\" :src=\"item.logo\" alt=\"logo\" />\n            </div>\n            <div class=\"customer-yh\">\n              <img src=\"@/assets/img/yinhao.png\" alt=\"引号\" />\n            </div>\n            <div class=\"customer-content1\">\n              <small>{{ item.content }}</small>\n            </div>\n            <div class=\"customer-content2\">\n              <small>{{ item.title }}</small>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- 为什么选择我们 -->\n    <div id=\"whyChooseUs\" class=\"conatiner-fuild\">\n      <div class=\"container\">\n        <div class=\"whyChooseUs-title text-center\">\n          <p>为什么选择我们的服务</p>\n          <p>THE REASON TO CHOOSING US</p>\n        </div>\n        <div class=\"row\">\n          <div\n            class=\"col-xs-12 col-sm-6 col-md-3 server-wrapper\"\n            v-for=\"(item, index) in serverList\"\n            :key=\"index\"\n          >\n            <div\n              class=\"server-block wow slideInUp\"\n              onmouseenter=\"this.style.color='#28f';this.style.borderColor='#28f'\"\n              onmouseleave=\"this.style.color='#666';this.style.borderColor='#ccc'\"\n            >\n              <img class=\"center-block\" :src=\"item.logo\" alt=\"logo\" />\n              <p class=\"text-center\">{{ item.title }}</p>\n              <div\n                class=\"text-center\"\n                v-html=\"item.content\"\n                onmouseenter=\"this.style.color='#28f'\"\n                onmouseleave=\"this.style.color='#ccc'\"\n              ></div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup name=\"HomePage\">\nimport WOW from 'wow.js'\nimport { getCurrentInstance, onMounted } from 'vue'\n// import Swiper from 'swiper'\nimport { Navigation, Pagination, Scrollbar, A11y, Lazy, Autoplay } from 'swiper'\nimport { Swiper, SwiperSlide } from 'swiper/vue'\nimport 'swiper/css'\nimport 'swiper/css/navigation'\nimport 'swiper/css/pagination'\nimport 'swiper/css/scrollbar'\nimport 'swiper/css/lazy'\nimport 'swiper/css/autoplay'\n\nimport banner1 from '@/assets/img/banner1.png'\nimport banner2 from '@/assets/img/banner2.jpg'\n\nimport logo_hp from '@/assets/img/logo_hp.png'\nimport logo_kk from '@/assets/img/logo_kk.png'\nimport logo_toyota from '@/assets/img/logo_toyota.png'\n\nimport img_tel from '@/assets/img/tel.png'\nimport img_computer from '@/assets/img/computer.png'\nimport img_qq from '@/assets/img/qq.png'\nimport img_skill from '@/assets/img/skill.png'\n\nconst swiperList = [\n  {\n    img: banner1,\n    title: '您身边的IT专家1',\n    content: '宣传简介您身边的IT专家1宣传简介您身边的IT专家1'\n  },\n  {\n    img: banner2,\n    title: '您身边的IT专家2',\n    content: '宣传简介您身边的IT专家2宣传简介您身边的IT专家2'\n  },\n  {\n    img: banner1,\n    title: '您身边的IT专家3',\n    content: '宣传简介您身边的IT专家3宣传简介您身边的IT专家3'\n  },\n  {\n    img: banner2,\n    title: '您身边的IT专家4',\n    content: '宣传简介您身边的IT专家4宣传简介您身边的IT专家4'\n  }\n]\n\nconst modules = [Navigation, Pagination, Scrollbar, A11y, Lazy, Autoplay]\n\nconst customerList = [\n  {\n    logo: logo_hp,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_kk,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_toyota,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_kk,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_hp,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_toyota,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_kk,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_hp,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_toyota,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_hp,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_kk,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  },\n  {\n    logo: logo_hp,\n    title:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。',\n    content:\n      '您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。您可以双击这里或者点击编辑按钮来修改内容。您还可以添加图标，按钮，图片等常用元素。'\n  }\n]\n\nconst serverList = [\n  {\n    logo: img_tel,\n    title: '核心优势1',\n    content: '<p>由专业客服提供人工服务</p>负责疑难问题和故障受理'\n  },\n  {\n    logo: img_computer,\n    title: '核心优势2',\n    content: '<p>利用远程视频工具，提供协助</p>帮助客户进行调试、解决故障'\n  },\n  {\n    logo: img_qq,\n    title: '核心优势3',\n    content: '<p>利用企业QQ提供在线解答</p>帮助企业快速准确解决问题和故障'\n  },\n  {\n    logo: img_skill,\n    title: '核心优势4',\n    content: '<p>由技术支持工程师，负责问题解答</p>需求受理及故障受理'\n  }\n]\n\n// const { proxy } = getCurrentInstance() //获取上下文实例，ctx=vue2的this\nonMounted(() => {\n  // console.log('mounted', proxy)\n  // console.log(proxy.$wow, '------')\n  /* wowjs动画 */\n  new WOW({\n    boxClass: 'wow',\n    animateClass: 'animated',\n    offset: 0,\n    mobile: true,\n    live: true\n  }).init()\n})\n</script>\n\n<style scoped>\n/* 整体盒子 */\n#HomePage {\n  width: 100%;\n}\n\n/* 顶部轮播图 */\n#swiper {\n  width: 100%;\n  height: 600px;\n}\n\n#swiper .banner-swiper {\n  width: 100%;\n  height: 100%;\n  position: relative;\n}\n\n#swiper .banner-swiper img {\n  width: 100%;\n  height: 100%;\n}\n\n#swiper .banner-swiper .swiper-slide-title {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 999999999;\n  width: 100%;\n  height: 100%;\n  color: #fff;\n  background: rgba(51, 51, 51, 0.534);\n  text-align: center;\n  line-height: 80px;\n}\n\n#swiper .banner-swiper .swiper-slide-title > h1 {\n  font-size: 50px;\n  margin-top: 12%;\n}\n\n#swiper .banner-swiper .swiper-slide-title > p {\n  font-size: 20px;\n  margin-top: 1%;\n  font-weight: 700;\n}\n\n/* 大数据管理系统 */\n#bigData {\n  padding: 100px;\n  transition: all ease 0.6s;\n  box-sizing: border-box;\n}\n\n#bigData .bigData-title {\n  padding-bottom: 10px;\n  border-bottom: 1px solid #ccc;\n}\n\n#bigData p {\n  font-size: 14px;\n  color: #333;\n  line-height: 2rem;\n}\n\n#bigData .bigData-device {\n  margin: 50px 0 20px;\n}\n\n/* 您身边的IT专家 */\n#contactUs {\n  color: #fff;\n  height: 400px;\n  background: url('../assets/img/contact_us_bg.jpg') 0 0 no-repeat;\n  background-size: 100% 100%;\n  transition: all ease 0.6s;\n}\n\n#contactUs .contactUs-container {\n  padding-top: 50px;\n}\n\n#contactUs .contactUs-container button {\n  width: 300px;\n  height: 50px;\n  margin-top: 40px;\n}\n\n#contactUs .contactUs-container .contactUs-contactWay span {\n  display: inline-block;\n  width: 48px;\n  height: 48px;\n  margin: 30px;\n}\n\n#contactUs .contactUs-container .contactUs-contactWay span:nth-of-type(1) {\n  background: url('../assets/img/weixin.png') 0 0 no-repeat;\n  background-size: 100% 100%;\n}\n\n#contactUs .contactUs-container .contactUs-contactWay span:nth-of-type(2) {\n  background: url('../assets/img/weibo.png') 0 0 no-repeat;\n  background-size: 100% 100%;\n}\n\n#contactUs .contactUs-container .contactUs-contactWay span:nth-of-type(3) {\n  background: url('../assets/img/twitter.png') 0 0 no-repeat;\n  background-size: 100% 100%;\n}\n\n/* 客户评价 */\n#customer {\n  padding: 50px 0;\n  box-sizing: border-box;\n  background: #efefef;\n  transition: all ease 0.6s;\n}\n\n#customer .customer-title {\n  font-size: 30px;\n  color: rgb(102, 102, 102);\n  margin: 0 0 30px;\n}\n\n#customer .customer-block {\n  background: #fff;\n  padding: 30px 80px;\n}\n\n#customer .customer-logo img {\n  width: 94px;\n  height: 94px;\n  border: 1px solid #ccc;\n}\n\n#customer .customer-yh img {\n  width: 34px;\n  height: 34px;\n}\n\n#customer .customer-content1 {\n  padding-bottom: 20px;\n  border-bottom: 1px solid #0ce9f1;\n}\n\n#customer .customer-content2 {\n  padding-top: 20px;\n}\n\n/* 为什么选择我们 */\n#whyChooseUs {\n  padding: 100px;\n}\n\n#whyChooseUs .whyChooseUs-title {\n  margin-bottom: 50px;\n}\n\n#whyChooseUs .whyChooseUs-title p:nth-of-type(1) {\n  font-size: 25px;\n  font-weight: 500;\n}\n\n#whyChooseUs .whyChooseUs-title p:nth-of-type(2) {\n  font-size: 14px;\n}\n\n#whyChooseUs .server-block {\n  padding: 50px 20px;\n  border: 1px solid #ccc;\n  border-bottom: 5px solid #ccc;\n}\n\n#whyChooseUs .server-block img {\n  width: 48px;\n  height: 48px;\n}\n\n#whyChooseUs .server-block > p {\n  font-size: 20px;\n  margin: 30px 0;\n}\n\n#whyChooseUs .server-block > div {\n  color: #ccc;\n}\n\n/* 媒体查询（手机） */\n@media screen and (max-width: 768px) {\n  #swiper {\n    height: 200px;\n  }\n\n  #bigData {\n    padding: 30px;\n  }\n\n  #bigData .bigData-title {\n    font-size: 20px;\n  }\n\n  #bigData .bigData-device {\n    font-size: 20px;\n    margin: 10px 0 10px;\n  }\n\n  #contactUs {\n    height: 200px;\n    transition: all ease 0.6s;\n  }\n\n  #contactUs .contactUs-container {\n    padding-top: 0;\n  }\n\n  #contactUs .contactUs-container h1 {\n    font-size: 25px;\n  }\n\n  #contactUs .contactUs-container h3 {\n    font-size: 18px;\n  }\n\n  #contactUs .contactUs-container button {\n    width: 200px;\n    height: 30px;\n    margin-top: 20px;\n  }\n\n  #contactUs .contactUs-container .contactUs-contactWay span {\n    display: inline-block;\n    width: 28px;\n    height: 28px;\n    margin: 10px;\n  }\n\n  #customer {\n    padding: 30px 0;\n    box-sizing: border-box;\n    background: #fff;\n  }\n\n  #customer .customer-title {\n    font-size: 16px;\n    font-weight: bold;\n  }\n\n  #customer .customer-logo img {\n    width: 48px;\n    height: 48px;\n  }\n\n  #customer .customer-block {\n    padding: 30px;\n  }\n\n  #customer .customer-block > div {\n    padding: 30px 0;\n  }\n\n  #whyChooseUs {\n    padding: 20px 0;\n    transition: all ease 0.6s;\n  }\n\n  #whyChooseUs .whyChooseUs-title p:nth-of-type(1) {\n    font-size: 20px;\n    font-weight: 700;\n  }\n\n  #whyChooseUs .whyChooseUs-title p:nth-of-type(2) {\n    font-size: 12px;\n  }\n\n  #whyChooseUs .server-block {\n    padding: 50px 0;\n    border: 1px solid #ccc;\n    border-bottom: 5px solid #ccc;\n  }\n\n  #whyChooseUs .server-block img {\n    width: 48px;\n    height: 48px;\n  }\n\n  #whyChooseUs .server-block > p {\n    font-size: 20px;\n    margin: 30px 0;\n  }\n\n  #whyChooseUs .server-block > div {\n    color: #ccc;\n  }\n}\n\n/* 媒体查询（平板） */\n@media screen and (min-width: 768px) and (max-width: 996px) {\n  #swiper {\n    height: 400px;\n  }\n\n  #bigData {\n    padding: 60px;\n  }\n\n  #bigData .bigData-title {\n    font-size: 30px;\n  }\n\n  #bigData .bigData-device {\n    font-size: 30px;\n    margin: 30px 0 15px;\n  }\n\n  #contactUs {\n    height: 300px;\n  }\n\n  #contactUs .contactUs-container {\n    padding-top: 50px;\n  }\n\n  #contactUs .contactUs-container h1 {\n    font-size: 30px;\n  }\n\n  #contactUs .contactUs-container h3 {\n    font-size: 20px;\n  }\n\n  #contactUs .contactUs-container button {\n    width: 300px;\n    height: 50px;\n    margin-top: 30px;\n  }\n\n  #contactUs .contactUs-container .contactUs-contactWay span {\n    display: inline-block;\n    width: 32px;\n    height: 32px;\n    margin: 15px;\n  }\n\n  #customer .customer-title {\n    font-size: 24px;\n  }\n\n  #whyChooseUs {\n    padding: 20px 0;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/view/JobChance.vue",
    "content": "<template>\n  <div id=\"JobChance\">\n    <div class=\"banner container-fuild text-center\">工作机会</div>\n    <div class=\"container\">\n      <div class=\"JobChance-container wow pulse\">\n        <h2>软件工程师</h2>\n        <p>岗位职责</p>\n        <ol>\n          <li>负责公司产品及项目系统的功能开发、代码优化；</li>\n          <li>负责项目组人员任务的分配与监督，及时解决项目技术问题；</li>\n          <li>\n            参与系统需求分析与设计，并负责完成PHP核心代码，接口规范制定，架构设计。\n          </li>\n        </ol>\n        <p>任职要求</p>\n        <ol>\n          <li>\n            精通PHP+MySql+Apache开发，精通使用JavaScript、AJAX、JQuery等技术；3年以上WEB应用程序开发经验，\n            有大型网站或电子商务网站工作经验者优先；\n          </li>\n          <li>熟悉jQuery，具有AJAX、HTML、CSS、JAVASCRIPT等方面的开发经验；</li>\n          <li>\n            熟悉PHP模板技术、框架技术及设计模式，有php框架系统进行开发经验者优先，如：phpcms，dedecms等；\n          </li>\n          <li>\n            精通数据库原理，精通MYSQL、了解Mongo等并有相关关系数据库设计开发经验,\n            了解Mysql的数据库配置管理、性能优化；\n          </li>\n          <li>\n            熟悉常见的数据结构和算法，具备良好的编程习惯及较强的文档编写能力；\n          </li>\n          <li>熟悉各种WEB缓存技术,熟悉大型网站构架和性能优化；</li>\n          <li>\n            对网站系统架构的部署、搭建、优化、排错等方面有丰富经验，对高负载、大访问量情况下的系统架构有经验者优先。\n          </li>\n        </ol>\n        <button\n          class=\"center-block btn btn-warning btn-lg\"\n          @click.stop=\"submitForm\"\n        >\n          投递简历\n        </button>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup name=\"JobChance\">\nimport WOW from 'wow.js'\nimport { onMounted } from 'vue'\nonMounted(() => {\n  let wow = new WOW()\n  wow.init()\n})\nfunction submitForm() {\n  window.open('https://neveryu.github.io/neveryu/', 'NeverYu')\n}\n</script>\n\n<style scoped>\n.banner {\n  color: #fff;\n  font-size: 30px;\n  height: 150px;\n  line-height: 150px;\n  background-image: url('../assets/img/banner_2.jpg');\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-attachment: scroll;\n  background-position: center center;\n}\n.JobChance-container {\n  margin: 100px;\n  padding: 30px;\n  transition: all ease 0.5s;\n  border: 1px dashed salmon;\n}\n.JobChance-container h2 {\n  color: rgb(255, 102, 19);\n  font-weight: bolder;\n  text-align: center;\n}\n.JobChance-container p {\n  font-size: 20px;\n  color: rgb(255, 102, 19);\n  font-weight: 700;\n}\n.JobChance-container ol {\n  list-style-type: decimal;\n  padding-left: 30px;\n}\n.JobChance-container ol > li {\n  font-size: 14px;\n  line-height: 2.7rem;\n}\n@media screen and (max-width: 997px) {\n  .JobChance-container {\n    margin: 20px 0;\n    padding: 20px;\n    border: 1px dashed salmon;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/view/NewsInformation.vue",
    "content": "<template>\n  <div id=\"NewsInformation\">\n    <div class=\"container\">\n      <div class=\"container text-center\">\n        <h3>新闻动态</h3>\n        <p style=\"color: #b2b2b2\">Company News</p>\n      </div>\n      <div class=\"nav container text-center\">\n        <a href=\"javascript:;\" class=\"active\">公司新闻</a>\n        <a href=\"javascript:;\">行业动态</a>\n      </div>\n      <ul class=\"news-container container-fuild\">\n        <li v-for=\"(item, index) in newsList\" :key=\"index\" class=\"wow fadeIn\">\n          <div class=\"content\">\n            <p>{{ item.title }}</p>\n            <p>{{ item.introduce }}</p>\n          </div>\n          <div class=\"time\">\n            <p>{{ item.date }}</p>\n            <span>{{ item.year }}</span>\n          </div>\n          <div class=\"circle\">\n            <img src=\"@/assets/img/circle.png\" />\n            <i class=\"line center-block\"></i>\n          </div>\n        </li>\n      </ul>\n      <div class=\"contaianer-fuild text-center more\">\n        <i class=\"glyphicon glyphicon-th\"></i>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup name=\"NewsInformation\">\nimport WOW from 'wow.js'\nimport { onMounted } from 'vue'\nconst newsList = [\n  {\n    id: '001',\n    title: '世界上第一个程序员',\n    introduce:\n      '为计算程序拟定“算法”，写作的第四份“程序设计流程图”，被珍视为“第一位给计算机',\n    date: '05-24',\n    year: '2019'\n  },\n  {\n    id: '002',\n    title: '世界上第二个程序员',\n    introduce:\n      '为计算程序拟定“算法”，写作的第四份“程序设计流程图”，被珍视为“第一位给计算机',\n    date: '05-24',\n    year: '2019'\n  },\n  {\n    id: '003',\n    title: '世界上第三个程序员',\n    introduce:\n      '为计算程序拟定“算法”，写作的第四份“程序设计流程图”，被珍视为“第一位给计算机',\n    date: '05-24',\n    year: '2019'\n  },\n  {\n    id: '004',\n    title: '世界上第四个程序员',\n    introduce:\n      '为计算程序拟定“算法”，写作的第四份“程序设计流程图”，被珍视为“第一位给计算机',\n    date: '05-24',\n    year: '2019'\n  },\n  {\n    id: '005',\n    title: '世界上第五个程序员',\n    introduce:\n      '为计算程序拟定“算法”，写作的第五份“程序设计流程图”，被珍视为“第一位给计算机',\n    date: '05-24',\n    year: '2019'\n  },\n  {\n    id: '006',\n    title: '世界上第六个程序员',\n    introduce:\n      '为计算程序拟定“算法”，写作的第五份“程序设计流程图”，被珍视为“第一位给计算机',\n    date: '05-24',\n    year: '2019'\n  }\n]\nonMounted(() => {\n  var wow = new WOW()\n  wow.init()\n})\n</script>\n\n<style scoped>\n.nav {\n  margin: 20px 0;\n}\n.nav > a {\n  display: inline-block;\n  text-decoration: none;\n  width: 120px;\n  height: 45px;\n  line-height: 45px;\n  color: #333;\n  border: 1px solid #333;\n}\n.nav > a.active {\n  color: #1e73be;\n  border-color: #1e73be;\n}\n.nav > a:hover {\n  color: #1e73be;\n  border-color: #1e73be;\n}\n.news-container {\n  overflow: hidden;\n  margin-bottom: 0;\n}\n.news-container > li {\n  width: 55.6%;\n  height: 120px;\n  float: left;\n  color: #333;\n  text-align: right;\n  border-left: 1px solid transparent;\n  border-right: 1px solid transparent;\n}\n.news-container > li:hover {\n  color: #1e73be;\n  border: 1px solid #1e73be;\n  cursor: pointer;\n}\n.news-container > li:nth-of-type(2n) {\n  float: right;\n  text-align: left;\n}\n.news-container > li > .content {\n  width: 60%;\n  float: left;\n  padding: 20px 0;\n}\n.news-container > li > .time {\n  width: 20%;\n  float: left;\n  padding: 10px 0;\n}\n.news-container > li > .time > p {\n  font-size: 30px;\n  margin: 5px 0;\n}\n.news-container > li > .circle {\n  width: 20%;\n  height: 100%;\n  float: left;\n  position: relative;\n}\n.news-container > li > .circle > img {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin: auto;\n  width: 20px;\n  height: 20px;\n}\n.news-container > li > .circle > i {\n  display: block;\n  width: 1px;\n  height: 100%;\n  background: #707070;\n}\n.news-container > li:nth-of-type(2n) > .content {\n  float: right;\n}\n.news-container > li:nth-of-type(2n) > .time {\n  float: right;\n}\n.news-container > li:nth-of-type(2n) > .circle {\n  float: right;\n}\n.news-container > li:nth-of-type(1) > .circle > i {\n  height: 50%;\n  position: absolute;\n  top: 50%;\n  left: 50%;\n}\n.more {\n  font-size: 25px;\n  color: #707070;\n}\n.more > i {\n  cursor: pointer;\n}\n@media screen and (max-width: 767px) {\n  .news-container > li {\n    width: 100%;\n  }\n  .news-container > li > .content {\n    width: 70%;\n    text-align: left;\n    float: right;\n  }\n  .news-container > li > .time {\n    width: 30%;\n    text-align: left;\n    float: right;\n  }\n  .news-container > li > .circle {\n    display: none;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/view/PageView.vue",
    "content": "<template>\n  <div id=\"container\">\n    <router-view />\n  </div>\n</template>\n\n<script setup name=\"PageView\"></script>\n\n<style scoped></style>\n"
  },
  {
    "path": "src/view/Service.vue",
    "content": "<template>\n  <div id=\"Service\">\n    <div class=\"container text-center\">\n      <h3>我们的服务</h3>\n      <p style=\"color: #b2b2b2\">The Best Service You Never See</p>\n    </div>\n    <div class=\"container\">\n      <div class=\"Service-container row\">\n        <div\n          class=\"Service-item col-xs-12 col-sm-6 col-md-3 wow slideInUp\"\n          v-for=\"(item, index) in serviceList\"\n          :key=\"index\"\n          @click=\"ServiceClick(item.id)\"\n        >\n          <div class=\"Service-item-wrapper\">\n            <div class=\"Service-item-top\">\n              <h4>{{ item.title }}</h4>\n              <i></i>\n              <p>{{ item.eng_title }}</p>\n            </div>\n            <div class=\"Service-item-img\">\n              <img :src=\"item.img\" alt=\"服务\" />\n            </div>\n            <div class=\"Service-item-border\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n<script setup name=\"Service\">\nimport { useRouter } from 'vue-router'\nimport { onMounted } from 'vue'\nimport WOW from 'wow.js'\nimport service1 from '@/assets/img/service1.jpg'\nimport service2 from '@/assets/img/service2.jpg'\nimport service3 from '@/assets/img/service3.jpg'\nimport service4 from '@/assets/img/service4.jpg'\nconst serviceList = [\n  {\n    id: 'section-1',\n    title: '软件定制开发',\n    eng_title: 'Customize App',\n    img: service1\n  },\n  {\n    id: 'section-2',\n    title: 'IT外包服务',\n    eng_title: 'Outsourcing',\n    img: service2\n  },\n  {\n    id: 'section-3',\n    title: '网上商城建设',\n    eng_title: 'eCommerce Site',\n    img: service3\n  },\n  {\n    id: 'section-4',\n    title: 'iOS应用定制开发',\n    eng_title: 'iOS App Dev',\n    img: service4\n  }\n]\n\nconst router = useRouter()\n\nfunction ServiceClick(id) {\n  router.push({\n    name: 'serviceDetail',\n    state: {\n      id\n    }\n  })\n}\nonMounted(() => {\n  var wow = new WOW()\n  wow.init()\n})\n</script>\n<style scoped>\n.Service-container {\n  padding: 30px 50px;\n}\n.Service-item {\n  margin-bottom: 50px;\n}\n.Service-item-wrapper {\n  cursor: pointer;\n  background: rgba(244, 244, 244, 1);\n  overflow: hidden;\n  position: relative;\n}\n.Service-item-top {\n  width: 100%;\n  height: 120px;\n  padding: 30px;\n  text-align: center;\n}\n.Service-item-top > i {\n  display: inline-block;\n  width: 25px;\n  height: 2px;\n  background: #28f;\n}\n.Service-item-top > p {\n  color: #b2b2b2;\n  opacity: 0;\n  transform: translateY(10px);\n  transition: all 0.5s ease;\n}\n.Service-item-img {\n  width: 100%;\n  overflow: hidden;\n}\n.Service-item-img img {\n  width: 100%;\n  transition: all 0.5s ease;\n}\n.Service-item-border {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  margin: auto;\n  z-index: 9999999;\n  width: 100%;\n  height: 100%;\n  transition: all 0.5s ease;\n  border: 1px solid #000;\n  opacity: 0;\n}\n.Service-item-wrapper:hover .Service-item-top > i {\n  opacity: 0;\n}\n.Service-item-wrapper:hover .Service-item-top > p {\n  opacity: 1;\n  transform: translateY(-10px);\n}\n.Service-item-wrapper:hover .Service-item-img > img {\n  transform: scale(1.1, 1.1);\n}\n.Service-item-wrapper:hover > .Service-item-border {\n  opacity: 1;\n  width: 90%;\n  height: 90%;\n}\n</style>\n\n"
  },
  {
    "path": "src/view/ServiceDetail.vue",
    "content": "<template>\n  <div id=\"ServiceDetail\">\n    <div class=\"banner container-fuild text-center\">相关服务</div>\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-xs-12 col-sm-12 col-md-3\" id=\"myScrollspy\">\n          <ul class=\"nav nav-tabs nav-stacked center-block\" id=\"myNav\">\n            <p>特色服务</p>\n            <li\n              :class=\"item.id == id ? 'active' : ''\"\n              v-for=\"(item, index) in serviceNavList\"\n              :key=\"index\"\n            >\n              <a href=\"javascript:;\" @click.stop=\"toSection(item.id)\">{{\n                item.title\n              }}</a>\n            </li>\n          </ul>\n        </div>\n        <div class=\"col-xs-12 col-sm-12 col-md-9 content wow zoomIn\">\n          <div\n            class=\"content-block\"\n            v-for=\"(item, index) in serviceContentList\"\n            :key=\"index\"\n          >\n            <h2 :id=\"item.id\">\n              {{ item.title }}\n              <small>/ {{ item.eng_title }}</small>\n            </h2>\n            <div v-html=\"item.content\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup name=\"serviceDetail\">\nimport { ref, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport WOW from 'wow.js'\nconst id = ref('section-1')\nconst serviceNavList = [\n  {\n    id: 'section-1',\n    title: '软件定制开发'\n  },\n  {\n    id: 'section-2',\n    title: 'IT外包服务'\n  },\n  {\n    id: 'section-3',\n    title: '网上商城建设'\n  },\n  {\n    id: 'section-4',\n    title: 'iOS应用定制开发'\n  }\n]\nconst serviceContentList = [\n  {\n    id: 'section-1',\n    title: '软件定制开发',\n    eng_title: 'Customize App',\n    content:\n      '<h3>这是标题1</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p><h3>这是标题2</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p>'\n  },\n  {\n    id: 'section-2',\n    title: 'IT外包服务',\n    eng_title: 'Outsourcing',\n    content:\n      '<h3>这是标题1</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p><h3>这是标题2</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p>'\n  },\n  {\n    id: 'section-3',\n    title: '网上商城建设',\n    eng_title: 'eCommerce Site',\n    content:\n      '<h3>这是标题1</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p><h3>这是标题2</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p>'\n  },\n  {\n    id: 'section-4',\n    title: 'iOS应用定制开发',\n    eng_title: 'iOS App Dev',\n    content:\n      '<h3>这是标题1</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p><h3>这是标题2</h3><p>这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。这里是内容，请根据实际需要修改。</p>'\n  }\n]\nfunction toSection(_id) {\n  id.value = _id\n  let top = document.getElementById(id.value).offsetTop\n  $(window).scrollTop(top + 300)\n  $('#myNav').affix({\n    offset: {\n      top: 300\n    }\n  })\n}\nconst route = useRoute()\nconst props = defineProps({\n  id: {\n    type: String,\n    required: true\n    // default: 'section-1222'\n  }\n})\nonMounted(() => {\n  console.log('route：', route, route.params, route.query)\n  console.log('history.state：', history.state)\n  id.value = history.state.id\n  console.log(id.value, 'pp')\n  let top = document.getElementById(id.value).offsetTop\n  $(window).scrollTop(top + 300)\n  $('#myNav').affix({\n    offset: {\n      top: 300\n    }\n  })\n  var wow = new WOW()\n  wow.init()\n})\n</script>\n\n<style scoped>\n.banner {\n  color: #fff;\n  font-size: 30px;\n  height: 150px;\n  line-height: 150px;\n  background-image: url('../assets/img/banner_2.jpg');\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-attachment: scroll;\n  background-position: center center;\n}\nul.nav-tabs {\n  width: 200px;\n  margin-top: 40px;\n  border-radius: 4px;\n  background: #fff;\n  z-index: 99999;\n  border: 1px solid #474747;\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);\n}\nul.nav-tabs li {\n  text-align: center;\n  margin: 0;\n  border-top: 1px solid #474747;\n}\nul.nav-tabs p {\n  color: #fff;\n  font-size: 18px;\n  font-weight: bold;\n  text-align: center;\n  background: #474747;\n  margin: 0;\n  padding: 10px 0;\n}\nul.nav-tabs li:first-child {\n  border-top: none;\n}\nul.nav-tabs li a {\n  margin: 0;\n  padding: 8px 16px;\n  border-radius: 0;\n}\nul.nav-tabs li.active a,\nul.nav-tabs li.active a:hover {\n  color: #fff;\n  background: #474747;\n  border: 1px solid #474747;\n}\nul.nav-tabs li:first-child a {\n  border-radius: 4px 4px 0 0;\n}\nul.nav-tabs li:last-child a {\n  border-radius: 0 0 4px 4px;\n}\nul.nav-tabs.affix {\n  top: 30px;\n}\n.content-block {\n  margin: 50px 0;\n}\n.content-block > h2 {\n  padding: 20px 0;\n  border-bottom: 1px solid #ccc;\n}\n</style>\n"
  },
  {
    "path": "src/view/Software.vue",
    "content": "<template>\n  <div id=\"Software\" class=\"container\">\n    <div class=\"row\">\n      <div id=\"left\" class=\"col-md-4 col-xs-12\">\n        <ul class=\"left-container wow bounceInLeft\">\n          <p>软件产品</p>\n          <li v-for=\"(item, index) in softwareList\" :key=\"index\">\n            <router-link :to=\"item.path\">{{ item.name }}</router-link>\n          </li>\n        </ul>\n      </div>\n      <div id=\"right\" class=\"col-md-8 col-xs-12 wow bounceInRight\">\n        <router-view></router-view>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup name=\"Software\">\nimport WOW from 'wow.js'\nimport { onMounted } from 'vue'\n\nconst softwareList = [\n  {\n    path: '/software/smartTown',\n    name: '智能小镇管理系统'\n  },\n  {\n    path: '/software/bigData',\n    name: '大数据管理系统'\n  }\n]\nonMounted(() => {\n  // var wow = new WOW()\n  // wow.init()\n})\n</script>\n\n<style scoped>\n#left {\n  margin: 50px 0;\n}\n.left-container {\n  width: 60%;\n  margin: 0 auto;\n  border: 1px solid #474747;\n  border-radius: 5px;\n}\n.left-container > p {\n  text-align: center;\n  line-height: 45px;\n  padding: 0;\n  margin: 0;\n  background: #474747;\n  color: #fff;\n  font-size: 18px;\n  font-weight: bold;\n}\n.left-container > li {\n  text-align: center;\n  height: 38px;\n  line-height: 38px;\n  margin: 0;\n  border-top: 1px solid #474747;\n}\n.left-container > li > a {\n  text-decoration: none;\n}\n.left-container > li:hover {\n  background: #928989;\n}\n#right {\n  padding: 50px 0;\n}\n@media screen and (max-width: 768px) {\n  #right {\n    padding: 15px;\n  }\n}\n</style>\n\n"
  },
  {
    "path": "src/view/Software_bigData.vue",
    "content": "<template>\n  <div id=\"Software\">大数据管理系统</div>\n</template>\n<script setup name=\"bigData\"></script>\n\n"
  },
  {
    "path": "src/view/Software_smartTown.vue",
    "content": "<template>\n  <div id=\"smartTown\">智能小镇管理系统</div>\n</template>\n\n<script setup name=\"smartTown\"></script>\n\n"
  },
  {
    "path": "vite.config.js",
    "content": "import { resolve } from 'path'\nimport { defineConfig, loadEnv } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport inject from '@rollup/plugin-inject'\nimport { createHtmlPlugin } from 'vite-plugin-html'\n\n// https://vitejs.dev/config/\nexport default defineConfig({\n  base: '/official-website/',\n  plugins: [\n    vue(),\n    inject({\n      $: 'jquery', // 这里会自动载入 node_modules 中的 jquery\n      jQuery: 'jquery',\n      'windows.jQuery': 'jquery',\n      BMap: 'BMap'\n    }),\n    createHtmlPlugin({\n      /**\n       * 需要注入 index.html ejs 模版的数据\n       * https://blog.csdn.net/SilenceJude/article/details/128297371\n       */\n      inject: {\n        data: {\n          VITE_APP_VERSION: new Date().toLocaleString()\n        }\n      }\n    })\n  ],\n  resolve: {\n    alias: {\n      '@': resolve(__dirname, './src')\n    }\n  }\n})\n\n"
  }
]