chenlei 2 lat temu
rodzic
commit
a5c9e8422f
36 zmienionych plików z 42452 dodań i 208 usunięć
  1. 1 0
      .eslintrc.js
  2. 1 1
      package.json
  3. BIN
      public/favicon.ico
  4. BIN
      public/fonts/SourceHanSansCN.ttf
  5. BIN
      public/fonts/SourceHanSansCN.woff
  6. BIN
      public/fonts/SourceHanSansCN.woff2
  7. BIN
      public/fonts/open-sans-light/OpenSansLight.eot
  8. 21034 0
      public/fonts/open-sans-light/OpenSansLight.svg
  9. BIN
      public/fonts/open-sans-light/OpenSansLight.ttf
  10. BIN
      public/fonts/open-sans-light/OpenSansLight.woff
  11. BIN
      public/fonts/open-sans-light/OpenSansLight.woff2
  12. BIN
      public/fonts/open-sans-semibold/OpenSansSemibold.eot
  13. 21055 0
      public/fonts/open-sans-semibold/OpenSansSemibold.svg
  14. BIN
      public/fonts/open-sans-semibold/OpenSansSemibold.ttf
  15. BIN
      public/fonts/open-sans-semibold/OpenSansSemibold.woff
  16. BIN
      public/fonts/open-sans-semibold/OpenSansSemibold.woff2
  17. BIN
      public/fonts/open-sans/OpenSansLight.woff2
  18. BIN
      public/fonts/open-sans/OpenSansRegular.woff2
  19. BIN
      public/fonts/proxima-nova/2B71A2_0_0.woff
  20. BIN
      public/fonts/proxima-nova/2B71A2_1_0.woff
  21. 10 6
      public/index.html
  22. 1 24
      src/App.vue
  23. 123 0
      src/app.scss
  24. BIN
      src/assets/images/logo.png
  25. BIN
      src/assets/logo.png
  26. 0 142
      src/components/HelloWorld.vue
  27. 3 12
      src/router/index.ts
  28. 0 5
      src/views/AboutView.vue
  29. 83 0
      src/views/Home/MobileMain.vue
  30. 66 0
      src/views/Home/PCMain.vue
  31. BIN
      src/views/Home/components/CButton/bg.png
  32. 18 0
      src/views/Home/components/CButton/index.vue
  33. BIN
      src/views/Home/images/1.jpg
  34. 56 0
      src/views/Home/index.vue
  35. 0 18
      src/views/HomeView.vue
  36. 1 0
      vue.config.js

+ 1 - 0
.eslintrc.js

@@ -15,5 +15,6 @@ module.exports = {
   rules: {
     "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
     "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
+    "vue/multi-word-component-names": "off",
   },
 };

+ 1 - 1
package.json

@@ -1,7 +1,7 @@
 {
   "name": "lf-transfer",
+  "description": "雷锋全景首页",
   "version": "0.1.0",
-  "private": true,
   "scripts": {
     "serve": "vue-cli-service serve",
     "build": "vue-cli-service build",

BIN
public/favicon.ico


BIN
public/fonts/SourceHanSansCN.ttf


BIN
public/fonts/SourceHanSansCN.woff


BIN
public/fonts/SourceHanSansCN.woff2


BIN
public/fonts/open-sans-light/OpenSansLight.eot


Plik diff jest za duży
+ 21034 - 0
public/fonts/open-sans-light/OpenSansLight.svg


BIN
public/fonts/open-sans-light/OpenSansLight.ttf


BIN
public/fonts/open-sans-light/OpenSansLight.woff


BIN
public/fonts/open-sans-light/OpenSansLight.woff2


BIN
public/fonts/open-sans-semibold/OpenSansSemibold.eot


Plik diff jest za duży
+ 21055 - 0
public/fonts/open-sans-semibold/OpenSansSemibold.svg


BIN
public/fonts/open-sans-semibold/OpenSansSemibold.ttf


BIN
public/fonts/open-sans-semibold/OpenSansSemibold.woff


BIN
public/fonts/open-sans-semibold/OpenSansSemibold.woff2


BIN
public/fonts/open-sans/OpenSansLight.woff2


BIN
public/fonts/open-sans/OpenSansRegular.woff2


BIN
public/fonts/proxima-nova/2B71A2_0_0.woff


BIN
public/fonts/proxima-nova/2B71A2_1_0.woff


+ 10 - 6
public/index.html

@@ -1,15 +1,19 @@
 <!DOCTYPE html>
 <html lang="">
   <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title><%= htmlWebpackPlugin.options.title %></title>
+    <meta charset="utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
+    <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
+    <title>湖南雷锋纪念馆</title>
   </head>
   <body>
     <noscript>
-      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+      <strong
+        >We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
+        properly without JavaScript enabled. Please enable it to
+        continue.</strong
+      >
     </noscript>
     <div id="app"></div>
     <!-- built files will be auto injected -->

+ 1 - 24
src/App.vue

@@ -1,30 +1,7 @@
 <template>
-  <nav>
-    <router-link to="/">Home</router-link> |
-    <router-link to="/about">About</router-link>
-  </nav>
   <router-view />
 </template>
 
 <style lang="scss">
-#app {
-  font-family: Avenir, Helvetica, Arial, sans-serif;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  text-align: center;
-  color: #2c3e50;
-}
-
-nav {
-  padding: 30px;
-
-  a {
-    font-weight: bold;
-    color: #2c3e50;
-
-    &.router-link-exact-active {
-      color: #42b983;
-    }
-  }
-}
+@import "./app.scss";
 </style>

+ 123 - 0
src/app.scss

@@ -0,0 +1,123 @@
+:root {
+  --z-index-normal: 1;
+  --z-index-top: 1000;
+  --z-index-popper: 2000;
+}
+
+body,
+ol,
+ul,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+th,
+td,
+dl,
+dd,
+form,
+fieldset,
+legend,
+input,
+textarea,
+select {
+  margin: 0;
+  padding: 0;
+}
+* {
+  box-sizing: border-box;
+  user-select: none;
+}
+html,
+body,
+#app {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+}
+body {
+  margin: 0px;
+  font-size: 14px;
+  font-family: OpenSans, sans-serif;
+  -webkit-tap-highlight-color: transparent;
+}
+a {
+  color: #fff;
+  cursor: pointer;
+  text-decoration: none;
+}
+em {
+  font-style: normal;
+}
+li {
+  list-style: none;
+}
+img {
+  border: 0;
+  vertical-align: middle;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+p {
+  word-wrap: break-word;
+}
+iframe {
+  border: none;
+}
+
+@font-face {
+  font-family: OpenSans;
+  src: url("/public/fonts/open-sans/OpenSansRegular.woff2") format("woff2");
+  font-weight: 400;
+}
+
+@font-face {
+  font-family: OpenSans;
+  src: url("/public/fonts/open-sans-light/OpenSansLight.eot");
+  src: url("/public/fonts/open-sans-light/OpenSansLight.eot")
+      format("embedded-opentype"),
+    url("/public/fonts/open-sans-light/OpenSansLight.woff2") format("woff2"),
+    url("/public/fonts/open-sans-light/OpenSansLight.woff") format("woff"),
+    url("/public/fonts/open-sans-light/OpenSansLight.ttf") format("truetype"),
+    url("/public/fonts/open-sans-light/OpenSansLight.svg#OpenSansLight")
+      format("svg");
+  font-weight: 100;
+}
+
+@font-face {
+  font-family: OpenSans;
+  src: url("/public/fonts/open-sans-semibold/OpenSansSemibold.eot");
+  src: url("/public/fonts/open-sans-semibold/OpenSansSemibold.eot")
+      format("embedded-opentype"),
+    url("/public/fonts/open-sans-semibold/OpenSansSemibold.woff2")
+      format("woff2"),
+    url("/public/fonts/open-sans-semibold/OpenSansSemibold.woff") format("woff"),
+    url("/public/fonts/open-sans-semibold/OpenSansSemibold.ttf")
+      format("truetype"),
+    url("/public/fonts/open-sans-semibold/OpenSansSemibold.svg#OpenSansSemibold")
+      format("svg");
+  font-weight: 700;
+}
+
+.limit-line {
+  display: -webkit-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 1;
+  -webkit-box-orient: vertical;
+  word-break: break-all;
+  word-wrap: break-word;
+}
+
+.line-2 {
+  -webkit-line-clamp: 2;
+}
+
+.line-3 {
+  -webkit-line-clamp: 3;
+}

BIN
src/assets/images/logo.png


BIN
src/assets/logo.png


+ 0 - 142
src/components/HelloWorld.vue

@@ -1,142 +0,0 @@
-<template>
-  <div class="hello">
-    <h1>{{ msg }}</h1>
-    <p>
-      For a guide and recipes on how to configure / customize this project,<br />
-      check out the
-      <a href="https://cli.vuejs.org" target="_blank" rel="noopener"
-        >vue-cli documentation</a
-      >.
-    </p>
-    <h3>Installed CLI Plugins</h3>
-    <ul>
-      <li>
-        <a
-          href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel"
-          target="_blank"
-          rel="noopener"
-          >babel</a
-        >
-      </li>
-      <li>
-        <a
-          href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router"
-          target="_blank"
-          rel="noopener"
-          >router</a
-        >
-      </li>
-      <li>
-        <a
-          href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-vuex"
-          target="_blank"
-          rel="noopener"
-          >vuex</a
-        >
-      </li>
-      <li>
-        <a
-          href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint"
-          target="_blank"
-          rel="noopener"
-          >eslint</a
-        >
-      </li>
-      <li>
-        <a
-          href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript"
-          target="_blank"
-          rel="noopener"
-          >typescript</a
-        >
-      </li>
-    </ul>
-    <h3>Essential Links</h3>
-    <ul>
-      <li>
-        <a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a>
-      </li>
-      <li>
-        <a href="https://forum.vuejs.org" target="_blank" rel="noopener"
-          >Forum</a
-        >
-      </li>
-      <li>
-        <a href="https://chat.vuejs.org" target="_blank" rel="noopener"
-          >Community Chat</a
-        >
-      </li>
-      <li>
-        <a href="https://twitter.com/vuejs" target="_blank" rel="noopener"
-          >Twitter</a
-        >
-      </li>
-      <li>
-        <a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a>
-      </li>
-    </ul>
-    <h3>Ecosystem</h3>
-    <ul>
-      <li>
-        <a href="https://router.vuejs.org" target="_blank" rel="noopener"
-          >vue-router</a
-        >
-      </li>
-      <li>
-        <a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a>
-      </li>
-      <li>
-        <a
-          href="https://github.com/vuejs/vue-devtools#vue-devtools"
-          target="_blank"
-          rel="noopener"
-          >vue-devtools</a
-        >
-      </li>
-      <li>
-        <a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener"
-          >vue-loader</a
-        >
-      </li>
-      <li>
-        <a
-          href="https://github.com/vuejs/awesome-vue"
-          target="_blank"
-          rel="noopener"
-          >awesome-vue</a
-        >
-      </li>
-    </ul>
-  </div>
-</template>
-
-<script lang="ts">
-import { Options, Vue } from "vue-class-component";
-
-@Options({
-  props: {
-    msg: String,
-  },
-})
-export default class HelloWorld extends Vue {
-  msg!: string;
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped lang="scss">
-h3 {
-  margin: 40px 0 0;
-}
-ul {
-  list-style-type: none;
-  padding: 0;
-}
-li {
-  display: inline-block;
-  margin: 0 10px;
-}
-a {
-  color: #42b983;
-}
-</style>

+ 3 - 12
src/router/index.ts

@@ -1,5 +1,5 @@
-import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
-import HomeView from "../views/HomeView.vue";
+import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router";
+import HomeView from "../views/Home/index.vue";
 
 const routes: Array<RouteRecordRaw> = [
   {
@@ -7,19 +7,10 @@ const routes: Array<RouteRecordRaw> = [
     name: "home",
     component: HomeView,
   },
-  {
-    path: "/about",
-    name: "about",
-    // route level code-splitting
-    // this generates a separate chunk (about.[hash].js) for this route
-    // which is lazy-loaded when the route is visited.
-    component: () =>
-      import(/* webpackChunkName: "about" */ "../views/AboutView.vue"),
-  },
 ];
 
 const router = createRouter({
-  history: createWebHistory(process.env.BASE_URL),
+  history: createWebHashHistory(process.env.BASE_URL),
   routes,
 });
 

+ 0 - 5
src/views/AboutView.vue

@@ -1,5 +0,0 @@
-<template>
-  <div class="about">
-    <h1>This is an about page</h1>
-  </div>
-</template>

Plik diff jest za duży
+ 83 - 0
src/views/Home/MobileMain.vue


Plik diff jest za duży
+ 66 - 0
src/views/Home/PCMain.vue


BIN
src/views/Home/components/CButton/bg.png


+ 18 - 0
src/views/Home/components/CButton/index.vue

@@ -0,0 +1,18 @@
+<template>
+  <div class="button">馆区全景导览</div>
+</template>
+
+<style lang="scss" scoped>
+.button {
+  padding-left: 81px;
+  width: 276px;
+  height: 76px;
+  font-weight: bold;
+  color: #d6b970;
+  line-height: 74px;
+  font-size: 24px;
+  cursor: pointer;
+  box-sizing: border-box;
+  background: url("./bg.png") no-repeat center / contain;
+}
+</style>

BIN
src/views/Home/images/1.jpg


+ 56 - 0
src/views/Home/index.vue

@@ -0,0 +1,56 @@
+<template>
+  <div class="home">
+    <div v-if="popupVisible" class="popup">
+      <template v-if="!isMobile">
+        <img class="logo" src="../../assets/images/logo.png" />
+        <PCMain>
+          <Button @click="popupVisible = false" />
+        </PCMain>
+      </template>
+
+      <MobileMain v-else>
+        <Button @click="popupVisible = false" />
+      </MobileMain>
+    </div>
+
+    <iframe
+      frameborder="0"
+      style="width: 100vw; height: 100vh"
+      src="https://www.4dkankan.com/panorama/show.html?id=WK1690972675209461760&vr=fd720_JLTtwVpzQ&lang=zh"
+    />
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from "vue";
+import PCMain from "./PCMain.vue";
+import MobileMain from "./MobileMain.vue";
+import Button from "./components/CButton/index.vue";
+
+const isMobile = ref(
+  navigator.userAgent.match(
+    /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
+  )
+);
+const popupVisible = ref(true);
+</script>
+
+<style lang="scss">
+.popup {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: rgba(255, 252, 247, 0.8);
+  z-index: 999;
+}
+.logo {
+  position: absolute;
+  top: 31px;
+  left: 33px;
+  width: 132px;
+  height: 94px;
+  z-index: 1;
+}
+</style>

+ 0 - 18
src/views/HomeView.vue

@@ -1,18 +0,0 @@
-<template>
-  <div class="home">
-    <img alt="Vue logo" src="../assets/logo.png" />
-    <HelloWorld msg="Welcome to Your Vue.js + TypeScript App" />
-  </div>
-</template>
-
-<script lang="ts">
-import { Options, Vue } from "vue-class-component";
-import HelloWorld from "@/components/HelloWorld.vue"; // @ is an alias to /src
-
-@Options({
-  components: {
-    HelloWorld,
-  },
-})
-export default class HomeView extends Vue {}
-</script>

+ 1 - 0
vue.config.js

@@ -1,4 +1,5 @@
 const { defineConfig } = require("@vue/cli-service");
 module.exports = defineConfig({
+  publicPath: "./",
   transpileDependencies: true,
 });