ソースを参照

Merge branch 'master' of http://face3d.4dage.com:7005/shaogen1995/bbh_Yun

shaogen1995 3 年 前
コミット
42c5fd37a1
100 ファイル変更2620 行追加123 行削除
  1. 99 14
      mo/package-lock.json
  2. 3 1
      mo/package.json
  3. BIN
      mo/public/data/one.png
  4. BIN
      mo/public/data/tow.png
  5. BIN
      mo/public/favicon.ico
  6. BIN
      mo/public/img/4-3_12.jpg
  7. BIN
      mo/public/img/4-3_13.jpg
  8. BIN
      mo/public/img/4-3_14.jpg
  9. BIN
      mo/public/img/4-3_15.jpg
  10. BIN
      mo/public/img/4-3_16.jpg
  11. BIN
      mo/public/img/4-3_17.jpg
  12. BIN
      mo/public/img/4-3_19.jpg
  13. BIN
      mo/public/img/4-3_20.jpg
  14. BIN
      mo/public/img/4-3_21.jpg
  15. BIN
      mo/public/img/4-3_22.jpg
  16. BIN
      mo/public/img/4-3_23.jpg
  17. BIN
      mo/public/img/4-3_24.jpg
  18. BIN
      mo/public/img/4-3_7.jpg
  19. BIN
      mo/public/img/4-3_8.jpg
  20. BIN
      mo/public/img/4-5_7.jpg
  21. BIN
      mo/public/img/4-5_8.jpg
  22. BIN
      mo/public/img/4-5_9.jpg
  23. BIN
      mo/public/img/4-6_10.jpg
  24. BIN
      mo/public/img/4-6_2.jpg
  25. BIN
      mo/public/img/4-6_3.jpg
  26. BIN
      mo/public/img/4-6_4.jpg
  27. BIN
      mo/public/img/4-6_5.jpg
  28. BIN
      mo/public/img/4-6_6.jpg
  29. BIN
      mo/public/img/4-6_7.jpg
  30. BIN
      mo/public/img/4-6_8.jpg
  31. BIN
      mo/public/img/4-6_9.jpg
  32. BIN
      mo/public/img/diBiao.png
  33. 1 0
      mo/public/img/down.svg
  34. BIN
      mo/public/img/inco1.png
  35. BIN
      mo/public/img/inco1Ac.png
  36. BIN
      mo/public/img/inco2.png
  37. BIN
      mo/public/img/inco2Ac.png
  38. BIN
      mo/public/img/inco3.png
  39. BIN
      mo/public/img/inco3Ac.png
  40. BIN
      mo/public/img/loading.png
  41. 1 0
      mo/public/img/up.svg
  42. 3 1
      mo/public/index.html
  43. 284 0
      mo/public/swkk.html
  44. 12 23
      mo/src/App.vue
  45. 201 0
      mo/src/assets/base.css
  46. BIN
      mo/src/assets/bg.mp3
  47. BIN
      mo/src/assets/img/Home.png
  48. BIN
      mo/src/assets/img/IMGerror.png
  49. BIN
      mo/src/assets/img/ListBac.png
  50. BIN
      mo/src/assets/img/bottomOpen.png
  51. BIN
      mo/src/assets/img/close.png
  52. BIN
      mo/src/assets/img/demo.png
  53. BIN
      mo/src/assets/img/homeBac.jpg
  54. BIN
      mo/src/assets/img/landtip.png
  55. BIN
      mo/src/assets/img/listRow.png
  56. BIN
      mo/src/assets/img/listRowAc.png
  57. BIN
      mo/src/assets/img/listShow.png
  58. BIN
      mo/src/assets/img/loading.gif
  59. BIN
      mo/src/assets/img/logo.png
  60. BIN
      mo/src/assets/img/mean.png
  61. BIN
      mo/src/assets/img/mean1.png
  62. BIN
      mo/src/assets/img/mean1Ac.png
  63. BIN
      mo/src/assets/img/mean2.png
  64. BIN
      mo/src/assets/img/mean2Ac.png
  65. BIN
      mo/src/assets/img/mean3.png
  66. BIN
      mo/src/assets/img/mean3Ac.png
  67. BIN
      mo/src/assets/img/meanAc.png
  68. BIN
      mo/src/assets/img/meanBox1.png
  69. BIN
      mo/src/assets/img/meanBox3.png
  70. BIN
      mo/src/assets/img/searBac.png
  71. BIN
      mo/src/assets/img/searRight.png
  72. BIN
      mo/src/assets/logo.png
  73. 13 0
      mo/src/assets/swiper/swiper.css
  74. 14 0
      mo/src/assets/swiper/swiper.js
  75. 0 58
      mo/src/components/HelloWorld.vue
  76. 12 1
      mo/src/main.js
  77. 2 10
      mo/src/router/index.js
  78. 0 5
      mo/src/views/About.vue
  79. 594 9
      mo/src/views/Home.vue
  80. 409 0
      mo/src/views/List.vue
  81. 457 0
      mo/src/views/bottom.vue
  82. 499 0
      mo/src/views/zhan.js
  83. 3 0
      mo/vue.config.js
  84. 11 0
      pc/package-lock.json
  85. 2 1
      pc/package.json
  86. BIN
      pc/public/favicon.ico
  87. BIN
      pc/public/img/4-3_12.jpg
  88. BIN
      pc/public/img/4-3_13.jpg
  89. BIN
      pc/public/img/4-3_14.jpg
  90. BIN
      pc/public/img/4-3_15.jpg
  91. BIN
      pc/public/img/4-3_16.jpg
  92. BIN
      pc/public/img/4-3_17.jpg
  93. BIN
      pc/public/img/4-3_19.jpg
  94. BIN
      pc/public/img/4-3_20.jpg
  95. BIN
      pc/public/img/4-3_21.jpg
  96. BIN
      pc/public/img/4-3_22.jpg
  97. BIN
      pc/public/img/4-3_23.jpg
  98. BIN
      pc/public/img/4-3_24.jpg
  99. BIN
      pc/public/img/4-3_7.jpg
  100. 0 0
      pc/public/img/4-3_8.jpg

+ 99 - 14
mo/package-lock.json

@@ -9,7 +9,9 @@
       "version": "0.1.0",
       "dependencies": {
         "core-js": "^3.6.5",
+        "vant": "^2.12.48",
         "vue": "^2.6.11",
+        "vue-lazyload": "^1.3.3",
         "vue-router": "^3.2.0"
       },
       "devDependencies": {
@@ -1640,7 +1642,6 @@
       "version": "7.18.9",
       "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz",
       "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
-      "dev": true,
       "dependencies": {
         "regenerator-runtime": "^0.13.4"
       },
@@ -1836,6 +1837,11 @@
         "node": ">= 6"
       }
     },
+    "node_modules/@popperjs/core": {
+      "version": "2.11.6",
+      "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.6.tgz",
+      "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
+    },
     "node_modules/@soda/friendly-errors-webpack-plugin": {
       "version": "1.8.1",
       "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz",
@@ -2127,11 +2133,23 @@
         "node": ">= 8"
       }
     },
+    "node_modules/@vant/icons": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz",
+      "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg=="
+    },
+    "node_modules/@vant/popperjs": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.2.1.tgz",
+      "integrity": "sha512-qzQlrPE4aOsBzfrktDVwzQy/QICCTKifmjrruhY58+Q2fobUYp/T9QINluIafzsD3VJwgP8+HFVLBsyDmy3VZQ==",
+      "dependencies": {
+        "@popperjs/core": "^2.9.2"
+      }
+    },
     "node_modules/@vue/babel-helper-vue-jsx-merge-props": {
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
-      "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==",
-      "dev": true
+      "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA=="
     },
     "node_modules/@vue/babel-helper-vue-transform-on": {
       "version": "1.0.2",
@@ -10743,8 +10761,7 @@
     "node_modules/regenerator-runtime": {
       "version": "0.13.9",
       "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
-      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
-      "dev": true
+      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
     },
     "node_modules/regenerator-transform": {
       "version": "0.15.0",
@@ -13095,6 +13112,26 @@
         "spdx-expression-parse": "^3.0.0"
       }
     },
+    "node_modules/vant": {
+      "version": "2.12.48",
+      "resolved": "https://registry.npmmirror.com/vant/-/vant-2.12.48.tgz",
+      "integrity": "sha512-cTv5V8pYboLrryMAThTu9Nrjroc6z246ktvvRbQ6v+G/yUH2tJia4S/L8RaTCH6btiuoeKZbtFAjkeQUPYeOtQ==",
+      "dependencies": {
+        "@babel/runtime": "7.x",
+        "@vant/icons": "^1.7.1",
+        "@vant/popperjs": "^1.1.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "vue-lazyload": "1.2.3"
+      },
+      "peerDependencies": {
+        "vue": ">= 2.6.0"
+      }
+    },
+    "node_modules/vant/node_modules/vue-lazyload": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
+      "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
+    },
     "node_modules/vary": {
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
@@ -13151,6 +13188,11 @@
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },
+    "node_modules/vue-lazyload": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.3.4.tgz",
+      "integrity": "sha512-K0frbPQJuvFHVpdl/ov5CqCR/CHWeLGs8E8V1d/09DIETqBjeGhC1fLMmwUy3Go2Yd/VX610AZ7Mdn4B54592Q=="
+    },
     "node_modules/vue-loader": {
       "version": "15.10.0",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz",
@@ -15479,7 +15521,6 @@
       "version": "7.18.9",
       "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz",
       "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
-      "dev": true,
       "requires": {
         "regenerator-runtime": "^0.13.4"
       }
@@ -15637,6 +15678,11 @@
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
       "dev": true
     },
+    "@popperjs/core": {
+      "version": "2.11.6",
+      "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.6.tgz",
+      "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
+    },
     "@soda/friendly-errors-webpack-plugin": {
       "version": "1.8.1",
       "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz",
@@ -15908,11 +15954,23 @@
         }
       }
     },
+    "@vant/icons": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz",
+      "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg=="
+    },
+    "@vant/popperjs": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.2.1.tgz",
+      "integrity": "sha512-qzQlrPE4aOsBzfrktDVwzQy/QICCTKifmjrruhY58+Q2fobUYp/T9QINluIafzsD3VJwgP8+HFVLBsyDmy3VZQ==",
+      "requires": {
+        "@popperjs/core": "^2.9.2"
+      }
+    },
     "@vue/babel-helper-vue-jsx-merge-props": {
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
-      "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==",
-      "dev": true
+      "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA=="
     },
     "@vue/babel-helper-vue-transform-on": {
       "version": "1.0.2",
@@ -16116,7 +16174,8 @@
       "version": "4.5.19",
       "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz",
       "integrity": "sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "@vue/cli-service": {
       "version": "4.5.19",
@@ -16274,7 +16333,8 @@
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz",
       "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "@vue/web-component-wrapper": {
       "version": "1.3.0",
@@ -16513,13 +16573,15 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz",
       "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "ajv-keywords": {
       "version": "3.5.2",
       "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
       "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
-      "dev": true
+      "dev": true,
+      "requires": {}
     },
     "alphanum-sort": {
       "version": "1.0.2",
@@ -23085,8 +23147,7 @@
     "regenerator-runtime": {
       "version": "0.13.9",
       "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
-      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
-      "dev": true
+      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
     },
     "regenerator-transform": {
       "version": "0.15.0",
@@ -25063,6 +25124,25 @@
         "spdx-expression-parse": "^3.0.0"
       }
     },
+    "vant": {
+      "version": "2.12.48",
+      "resolved": "https://registry.npmmirror.com/vant/-/vant-2.12.48.tgz",
+      "integrity": "sha512-cTv5V8pYboLrryMAThTu9Nrjroc6z246ktvvRbQ6v+G/yUH2tJia4S/L8RaTCH6btiuoeKZbtFAjkeQUPYeOtQ==",
+      "requires": {
+        "@babel/runtime": "7.x",
+        "@vant/icons": "^1.7.1",
+        "@vant/popperjs": "^1.1.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "vue-lazyload": "1.2.3"
+      },
+      "dependencies": {
+        "vue-lazyload": {
+          "version": "1.2.3",
+          "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
+          "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
+        }
+      }
+    },
     "vary": {
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
@@ -25115,6 +25195,11 @@
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },
+    "vue-lazyload": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.3.4.tgz",
+      "integrity": "sha512-K0frbPQJuvFHVpdl/ov5CqCR/CHWeLGs8E8V1d/09DIETqBjeGhC1fLMmwUy3Go2Yd/VX610AZ7Mdn4B54592Q=="
+    },
     "vue-loader": {
       "version": "15.10.0",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz",

+ 3 - 1
mo/package.json

@@ -8,8 +8,10 @@
   },
   "dependencies": {
     "core-js": "^3.6.5",
+    "vant": "^2.12.48",
     "vue": "^2.6.11",
-    "vue-router": "^3.2.0"
+    "vue-router": "^3.2.0",
+    "vue-lazyload": "^1.3.3"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "~4.5.13",

BIN
mo/public/data/one.png


BIN
mo/public/data/tow.png


BIN
mo/public/favicon.ico


BIN
mo/public/img/4-3_12.jpg


BIN
mo/public/img/4-3_13.jpg


BIN
mo/public/img/4-3_14.jpg


BIN
mo/public/img/4-3_15.jpg


BIN
mo/public/img/4-3_16.jpg


BIN
mo/public/img/4-3_17.jpg


BIN
mo/public/img/4-3_19.jpg


BIN
mo/public/img/4-3_20.jpg


BIN
mo/public/img/4-3_21.jpg


BIN
mo/public/img/4-3_22.jpg


BIN
mo/public/img/4-3_23.jpg


BIN
mo/public/img/4-3_24.jpg


BIN
mo/public/img/4-3_7.jpg


BIN
mo/public/img/4-3_8.jpg


BIN
mo/public/img/4-5_7.jpg


BIN
mo/public/img/4-5_8.jpg


BIN
mo/public/img/4-5_9.jpg


BIN
mo/public/img/4-6_10.jpg


BIN
mo/public/img/4-6_2.jpg


BIN
mo/public/img/4-6_3.jpg


BIN
mo/public/img/4-6_4.jpg


BIN
mo/public/img/4-6_5.jpg


BIN
mo/public/img/4-6_6.jpg


BIN
mo/public/img/4-6_7.jpg


BIN
mo/public/img/4-6_8.jpg


BIN
mo/public/img/4-6_9.jpg


BIN
mo/public/img/diBiao.png


+ 1 - 0
mo/public/img/down.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1661938561335" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2518" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M288.791335 65.582671l446.41733 446.417329-446.41733 446.417329z" p-id="2519" fill="#ffffff"></path></svg>

BIN
mo/public/img/inco1.png


BIN
mo/public/img/inco1Ac.png


BIN
mo/public/img/inco2.png


BIN
mo/public/img/inco2Ac.png


BIN
mo/public/img/inco3.png


BIN
mo/public/img/inco3Ac.png


BIN
mo/public/img/loading.png


+ 1 - 0
mo/public/img/up.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1661938554433" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2335" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M735.208665 65.582671l-446.41733 446.417329 446.41733 446.417329z" p-id="2336" fill="#ffffff"></path></svg>

+ 3 - 1
mo/public/index.html

@@ -4,8 +4,10 @@
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title><%= htmlWebpackPlugin.options.title %></title>
+    <title>永不落幕的博博会</title>
   </head>
   <body>
     <noscript>

+ 284 - 0
mo/public/swkk.html

@@ -0,0 +1,284 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<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">
+  <title>Document</title>
+  <script src="//4dkk.4dage.com/v4/sdk/4.2.0/kankan-sdk-deps.js"></script>
+  <script src="//4dkk.4dage.com/v4/sdk/4.2.0/kankan-sdk.js"></script>
+  <style>
+    * {
+      margin: 0;
+      padding: 0;
+      box-sizing: border-box;
+    }
+
+    html,
+    body {
+      width: 100%;
+      height: 100%;
+      overflow: hidden;
+    }
+
+    .box {
+      width: 100%;
+      height: 100%;
+    }
+
+    [xui_min_map] {
+      width: 150px !important;
+      height: 150px !important;
+      right: 0px;
+      top: 70px;
+      transition: right .5s;
+      pointer-events: none !important;
+    }
+
+    .inco {
+      transition: bottom 0.5s;
+      position: absolute;
+      bottom: 234px;
+      right: 8px;
+      width: 160px;
+      height: 36px;
+      background-color: rgba(0, 0, 0, .4);
+      border-radius: 18px;
+      z-index: 11;
+      display: flex;
+      justify-content: space-around;
+      padding: 0 10px 0 15px;
+    }
+
+    .inco>div {
+      cursor: pointer;
+      width: 33%;
+      height: 100%;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      background-size: 36px 36px;
+      background-repeat: no-repeat;
+      background-position: center;
+    }
+
+    .inco1 {
+      background-image: url('./img/inco1Ac.png');
+      width: 22% !important;
+    }
+
+    .inco2 {
+      background-image: url('./img/inco2.png');
+    }
+
+    .inco3 {
+      background-image: url('./img/inco3.png');
+    }
+
+    .loading {
+      position: absolute;
+      top: 0;
+      left: 0;
+      z-index: 12;
+      width: 100%;
+      height: 100%;
+      background-color: black;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+    }
+
+    .loading .loadBox {
+      color: #fff;
+      text-align: center;
+      letter-spacing: 2px;
+      width: 110px;
+      height: 110px;
+      background: rgba(0, 0, 0, 0.5);
+      border-radius: 2px;
+    }
+
+    .loadIcon {
+      width: 60px;
+      height: 60px;
+      position: relative;
+      overflow: hidden;
+      margin: 10px auto;
+    }
+
+    .loadIcon img {
+      height: 60px;
+      position: absolute;
+      left: 0;
+      top: 0;
+      animation: loading 1s steps(15) infinite;
+    }
+
+    @keyframes loading {
+      100% {
+        left: -900px;
+      }
+    }
+
+    .mapShow {
+      transition: right .5s;
+      position: absolute;
+      top: 77px;
+      right: 150px;
+      background-color: rgba(0, 0, 0, .3);
+      width: 20px;
+      height: 30px;
+      z-index: 10;
+      border-radius: 8px 0px 0 8px;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+    }
+
+    .mapShow img {
+      width: 16px;
+      height: 16px;
+    }
+
+    .mapShow .up {
+      display: none;
+    }
+  </style>
+</head>
+
+<body>
+  <div class="loading">
+    <div class="loadBox">
+      <div class="loadIcon">
+        <img src="./img/loading.png" alt="">
+      </div>
+      <div class="txt">加载中</div>
+
+
+    </div>
+  </div>
+
+  <!-- 显示和隐藏小地图 -->
+  <div class="mapShow">
+    <img class="down" src="./img/down.svg" alt="">
+    <img class="up" src="./img/up.svg" alt="">
+  </div>
+
+  <div class="box"></div>
+  <div class="inco">
+    <div class="inco1 active" title="全景漫游"></div>
+    <div class="inco2" title="俯视图"></div>
+    <div class="inco3" title="迷你模型"></div>
+  </div>
+</body>
+<script>
+  // 给vue页面调用收起
+  var incoMove = function (val) {
+    let dom = document.querySelector('.inco')
+    if (val) dom.style.bottom = '24px'
+    else dom.style.bottom = '234px'
+  }
+
+  // 获取地址栏信息
+  let GetQueryString = (name) => {
+    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+    let r = window.location.search.substr(1).match(reg);
+    if (r != null) return unescape(r[2]);
+    return "";
+  }
+  let num = GetQueryString('m')
+  var kankan = new KanKan({
+    dom: '.box',
+    num
+  })
+  kankan.use('MinMap', {
+    theme: {
+      camera_fillStyle: "#C48871"
+    }
+  })
+  kankan.render()
+  kankan.Scene.on('loaded', () => {
+    document.querySelector('.loading').style.display = 'none'
+    //设置地面logo
+    kankan.Scene.setFloorLogo({
+      url: 'img/diBiao.png'
+    })
+  })
+
+
+
+  let mapJT = document.querySelector('.mapShow')
+
+  let doms = document.querySelectorAll('.inco div')
+
+  kankan.Camera.on('mode.afterChange', ({
+    fromMode,
+    toMode,
+    floorIndex
+  }) => {
+    if (toMode == 'panorama') {
+      doms[0].classList.add('active')
+      doms[1].classList.remove('active')
+      doms[2].classList.remove('active')
+      doms[0].style.backgroundImage = "url(./img/inco1Ac.png)"
+      doms[1].style.backgroundImage = "url(./img/inco2.png)"
+      doms[2].style.backgroundImage = "url(./img/inco3.png)"
+      mapJT.style.display = 'flex'
+
+    }
+  })
+
+  doms.forEach((v, i) => {
+    v.onclick = function () {
+      let className = v.getAttribute('class')
+      if (className.includes('active')) return
+      if (i == 0) {
+        doms[0].classList.add('active')
+        doms[1].classList.remove('active')
+        doms[2].classList.remove('active')
+        doms[0].style.backgroundImage = "url(./img/inco1Ac.png)"
+        doms[1].style.backgroundImage = "url(./img/inco2.png)"
+        doms[2].style.backgroundImage = "url(./img/inco3.png)"
+        mapJT.style.display = 'flex'
+        kankan.Camera.panorama()
+      } else if (i == 1) {
+        doms[0].classList.remove('active')
+        doms[1].classList.add('active')
+        doms[2].classList.remove('active')
+        doms[0].style.backgroundImage = "url(./img/inco1.png)"
+        doms[1].style.backgroundImage = "url(./img/inco2Ac.png)"
+        doms[2].style.backgroundImage = "url(./img/inco3.png)"
+        mapJT.style.display = 'none'
+        kankan.Camera.floorplan()
+      } else {
+        doms[0].classList.remove('active')
+        doms[1].classList.remove('active')
+        doms[2].classList.add('active')
+        doms[0].style.backgroundImage = "url(./img/inco1.png)"
+        doms[1].style.backgroundImage = "url(./img/inco2.png)"
+        doms[2].style.backgroundImage = "url(./img/inco3Ac.png)"
+        mapJT.style.display = 'none'
+        kankan.Camera.dollhouse()
+      }
+    }
+  })
+  let down = document.querySelector('.down')
+  let up = document.querySelector('.up')
+  down.onclick = () => {
+    down.style.display = 'none'
+    up.style.display = 'block'
+    let mapDom = document.querySelector('.show')
+    mapDom.style.right = '-150px'
+    mapJT.style.right = 0
+  }
+  up.onclick = () => {
+    down.style.display = 'block'
+    up.style.display = 'none'
+    let mapDom = document.querySelector('.show')
+    mapDom.style.right = '0px'
+    mapJT.style.right = '150px'
+  }
+</script>
+
+</html>

+ 12 - 23
mo/src/App.vue

@@ -1,32 +1,21 @@
 <template>
   <div id="app">
-    <div id="nav">
-      <router-link to="/">Home</router-link> |
-      <router-link to="/about">About</router-link>
-    </div>
-    <router-view/>
+    <Router-view />
   </div>
 </template>
-
+<script>
+export default {
+  mounted() {
+    document.querySelector("#app").style.height = window.innerHeight + "px";
+  },
+};
+</script>
 <style lang="less">
 #app {
-  font-family: Avenir, Helvetica, Arial, sans-serif;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  text-align: center;
-  color: #2c3e50;
+  width: 100vw;
+  max-width: 500px;
+  margin: 0 auto;
+  overflow: hidden;
 }
 
-#nav {
-  padding: 30px;
-
-  a {
-    font-weight: bold;
-    color: #2c3e50;
-
-    &.router-link-exact-active {
-      color: #42b983;
-    }
-  }
-}
 </style>

+ 201 - 0
mo/src/assets/base.css

@@ -0,0 +1,201 @@
+html,
+body,
+div,
+span,
+applet,
+object,
+iframe,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+blockquote,
+pre,
+a,
+abbr,
+acronym,
+address,
+big,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+s,
+samp,
+small,
+strike,
+strong,
+sub,
+sup,
+tt,
+var,
+b,
+u,
+i,
+center,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+canvas,
+details,
+embed,
+figure,
+figcaption,
+footer,
+header,
+menu,
+nav,
+output,
+ruby,
+section,
+summary,
+time,
+mark,
+audio,
+video,
+input {
+  box-sizing: border-box;
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-size: 100%;
+  font-weight: normal;
+  vertical-align: baseline;
+}
+
+/* HTML5 display-role reset for older browsers */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+menu,
+nav,
+section {
+  display: block;
+}
+
+body {
+  line-height: 1;
+}
+
+blockquote,
+q {
+  quotes: none;
+}
+
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+  content: none;
+}
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+/* custom */
+a {
+  color: #7e8c8d;
+  text-decoration: none;
+  -webkit-backface-visibility: hidden;
+}
+
+li {
+  list-style: none;
+}
+
+::-webkit-scrollbar {
+  width: 5px;
+  height: 5px;
+}
+
+::-webkit-scrollbar-track-piece {
+  background-color: rgba(0, 0, 0, 0.2);
+  -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:vertical {
+  height: 5px;
+  background-color: rgba(125, 125, 125, 0.7);
+  -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:horizontal {
+  width: 5px;
+  background-color: rgba(125, 125, 125, 0.7);
+  -webkit-border-radius: 6px;
+}
+
+html,
+body {
+  width: 100%;
+}
+
+body {
+  -webkit-text-size-adjust: none;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+  user-select: none;
+}
+
+/* .viewer-title {
+  display: none !important;
+}
+
+.viewer-prev {
+  display: none !important;
+}
+
+.viewer-next {
+  display: none !important;
+}
+
+.viewer-navbar {
+  display: none !important;
+}
+
+.viewer-toolbar {
+  display: none;
+}
+
+.viewer-button {
+  top: 10px;
+  left: 10px;
+  width: 40px;
+  height: 40px;
+  background: url("./img/close.png") center center no-repeat black;
+  background-size: 24px 24px;
+}
+
+.viewer-button::before {
+  display: none;
+} */

BIN
mo/src/assets/bg.mp3


BIN
mo/src/assets/img/Home.png


BIN
mo/src/assets/img/IMGerror.png


BIN
mo/src/assets/img/ListBac.png


BIN
mo/src/assets/img/bottomOpen.png


BIN
mo/src/assets/img/close.png


BIN
mo/src/assets/img/demo.png


BIN
mo/src/assets/img/homeBac.jpg


BIN
mo/src/assets/img/landtip.png


BIN
mo/src/assets/img/listRow.png


BIN
mo/src/assets/img/listRowAc.png


BIN
mo/src/assets/img/listShow.png


BIN
mo/src/assets/img/loading.gif


BIN
mo/src/assets/img/logo.png


BIN
mo/src/assets/img/mean.png


BIN
mo/src/assets/img/mean1.png


BIN
mo/src/assets/img/mean1Ac.png


BIN
mo/src/assets/img/mean2.png


BIN
mo/src/assets/img/mean2Ac.png


BIN
mo/src/assets/img/mean3.png


BIN
mo/src/assets/img/mean3Ac.png


BIN
mo/src/assets/img/meanAc.png


BIN
mo/src/assets/img/meanBox1.png


BIN
mo/src/assets/img/meanBox3.png


BIN
mo/src/assets/img/searBac.png


BIN
mo/src/assets/img/searRight.png


BIN
mo/src/assets/logo.png


ファイルの差分が大きいため隠しています
+ 13 - 0
mo/src/assets/swiper/swiper.css


ファイルの差分が大きいため隠しています
+ 14 - 0
mo/src/assets/swiper/swiper.js


+ 0 - 58
mo/src/components/HelloWorld.vue

@@ -1,58 +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>
-    </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>
-export default {
-  name: 'HelloWorld',
-  props: {
-    msg: String
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped lang="less">
-h3 {
-  margin: 40px 0 0;
-}
-ul {
-  list-style-type: none;
-  padding: 0;
-}
-li {
-  display: inline-block;
-  margin: 0 10px;
-}
-a {
-  color: #42b983;
-}
-</style>

+ 12 - 1
mo/src/main.js

@@ -1,9 +1,20 @@
 import Vue from 'vue'
 import App from './App.vue'
 import router from './router'
-
+import 'vant/lib/index.css';
+import { Icon } from 'vant';
+import { NoticeBar } from 'vant';
+Vue.use(Icon);
+Vue.use(NoticeBar);
+import './assets/base.css'
 Vue.config.productionTip = false
 
+// 图片懒加载
+import VueLazyLoad from 'vue-lazyload'
+Vue.use(VueLazyLoad, {
+  error: require('./assets/img/IMGerror.png'),
+  loading: require('@/assets/img/loading.gif')
+})
 new Vue({
   router,
   render: h => h(App)

+ 2 - 10
mo/src/router/index.js

@@ -1,6 +1,5 @@
 import Vue from 'vue'
 import VueRouter from 'vue-router'
-import Home from '../views/Home.vue'
 
 Vue.use(VueRouter)
 
@@ -8,16 +7,9 @@ const routes = [
   {
     path: '/',
     name: 'Home',
-    component: Home
+    component: () => import('../views/Home.vue')
   },
-  {
-    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/About.vue')
-  }
+
 ]
 
 const router = new VueRouter({

+ 0 - 5
mo/src/views/About.vue

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

ファイルの差分が大きいため隠しています
+ 594 - 9
mo/src/views/Home.vue


+ 409 - 0
mo/src/views/List.vue

@@ -0,0 +1,409 @@
+<template>
+  <div class="List">
+    <!-- 右下侧的标识 -->
+    <div class="rightBot">
+      <div>列 表</div>
+      <div @click="lookMap">地 图</div>
+    </div>
+    <div class="searTop" @keyup.enter="mySearch">
+      <input type="text" v-model="name" placeholder="参展单位搜索" />
+      <div class="inco" @click="mySearch">
+        <van-icon name="search" />
+      </div>
+    </div>
+    <div class="main">
+      <template v-for="(item, index) in data">
+        <div
+          class="row"
+          :key="index"
+          @click="quChange(item)"
+          :class="{
+            shouqi:
+              open != item.id &&
+              Number(open) - 1 != item.id &&
+              Number(open) + 1 != item.id,
+            smm: Number(open) - 1 == item.id || Number(open) + 1 == item.id,
+          }"
+        >
+          {{ item.name }}
+          <div class="inco">
+            <van-icon name="arrow-up" v-if="open == item.id" />
+            <van-icon name="arrow-down" v-else />
+          </div>
+        </div>
+        <div class="rowTxt" v-if="open == item.id">
+          <div
+            :class="{ active: rowAc === val.id }"
+            v-for="val in item.son"
+            :key="val.id"
+            @click="toZhan(item.id, val.id, val.code)"
+          >
+            {{ val.name }}
+          </div>
+        </div>
+      </template>
+    </div>
+    <!-- 搜索页面 -->
+    <div class="searchResBox" v-if="searShow">
+      <div class="close" @click="searShow = false">
+        <van-icon name="cross" />
+      </div>
+      <h3>搜索结果</h3>
+      <div class="none" v-if="searchData.length === 0">没有找到对应结果...</div>
+
+      <div class="searMain" v-else>
+        <div v-for="item in searchData" :key="item.id">
+          <div
+            @click="toZhan(item.id, val.id, val.code, true)"
+            :class="{ active: rowAc === val.id }"
+            class="searTxt"
+            v-for="val in item.son"
+            :key="val.id"
+            v-html="val.name"
+          ></div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { ImagePreview } from "vant";
+import { exArr3, exArr4 } from "./zhan.js";
+import { Notify } from "vant";
+export default {
+  name: "List",
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  props: {
+    box3Ac: {
+      type: Number,
+      default: 3,
+    },
+  },
+  data() {
+    //这里存放数据
+    return {
+      data: [],
+      name: "",
+      open: 1,
+      searShow: false,
+      searchData: [],
+      rowAc: "",
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {
+    box3Ac: {
+      handler(val) {
+        this.name = "";
+        this.open = 1;
+        this.searShow = false;
+        if (val == 3) this.data = [...exArr3];
+        else if (val == 4) this.data = [...exArr4];
+        this.$nextTick(() => {
+          document.querySelector(".rowTxt").scrollTop = 0;
+        });
+      },
+      immediate: true,
+    },
+  },
+  //方法集合
+  methods: {
+    // 封装一个vr选中的高亮
+    VRActive(id) {
+      this.rowAc = id;
+      // 当前的
+      this.data[Number(this.open) - 1].son.forEach((v, i) => {
+        if (v.id === id) {
+          document.querySelector(".rowTxt").scrollTop = 35 * i;
+        }
+      });
+      // document.querySelector('.rowTxt').scrollTop=200*ind
+    },
+    toZhan(id1, id2, code, flag) {
+      if (this.rowAc === id2) return;
+
+      // code为空的不跳
+      if(code==='') return Notify({ type: "warning", message: "数据计算中,敬请期待" });
+
+      if (flag) {
+        this.data[Number(id1) - 1].son.forEach((v, i) => {
+          if (v.id === id2) {
+            document.querySelector(".rowTxt").scrollTop = 35 * i;
+          }
+        });
+      }
+      this.$emit("toZhan", id1, id2, code);
+      this.rowAc = id2;
+    },
+    // 点击地图
+    lookMap() {
+      let url = "one";
+      if (this.box3Ac == 4) url = "tow";
+      ImagePreview({
+        showIndex: false,
+        images: [`data/${url}.png`],
+        closeable: true,
+      });
+    },
+    // 点击搜索
+    mySearch() {
+      if (this.name.trim() === "")
+        return Notify({ type: "warning", message: "不能为空" });
+      this.searShow = true;
+      let arr1 = [];
+      this.data.forEach((v) => {
+        let arr2 = [];
+        v.son.forEach((c) => {
+          if (c.name.includes(this.name)) {
+            arr2.push({
+              id: c.id,
+              name: c.name.replaceAll(
+                this.name,
+                `<span style="color:#034c52">${this.name}</span>`
+              ),
+              code: c.code,
+            });
+          }
+        });
+        if (arr2.length > 0) {
+          arr1.push({
+            id: v.id,
+            name: v.name,
+            son: arr2,
+          });
+        }
+      });
+      this.searchData = arr1;
+      this.name = "";
+    },
+
+    quChange(item, flag) {
+      if (this.open === item.id) return;
+      this.open = item.id;
+      if (!flag) this.$emit("fenQuChange", item.id);
+      document.querySelector(".rowTxt").scrollTop = 0;
+    },
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.List {
+  z-index: 8;
+  position: absolute;
+  top: 60px;
+  left: 70px;
+  width: calc(100% - 120px);
+  height: calc(100% - 300px);
+  background-image: url("../assets/img/ListBac.png");
+  background-size: 100% 100%;
+  .rightBot {
+    color: #fff;
+    position: absolute;
+    bottom: 18px;
+    right: -26px;
+    width: 34px;
+    height: 120px;
+    & > div {
+      width: 100%;
+      height: 50%;
+      writing-mode: vertical-lr;
+      text-align: center;
+      line-height: 30px;
+      &:nth-of-type(1) {
+        background-image: url("../assets/img/searRight.png");
+        background-size: 100% 100%;
+      }
+      &:nth-of-type(2) {
+        background-color: rgba(0, 0, 0, 0.4);
+      }
+    }
+  }
+  .searchResBox {
+    color: #fff;
+    z-index: 15;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 98%;
+    height: 100%;
+    background-image: url("../assets/img/searBac.png");
+    background-size: 100% 100%;
+    &::after {
+      content: "";
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+      z-index: -1;
+      background-image: linear-gradient(
+        rgba(69, 114, 119, 0.9),
+        rgba(69, 114, 119, 0.4)
+      );
+    }
+    .close {
+      font-size: 18px;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      position: absolute;
+      width: 30px;
+      height: 30px;
+      right: 5px;
+      top: 5px;
+    }
+    & > h3 {
+      text-align: center;
+      height: 40px;
+      line-height: 40px;
+      font-size: 16px;
+    }
+    .none {
+      width: 100%;
+      height: calc(100% - 80px);
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      font-size: 20px;
+    }
+    .searMain::-webkit-scrollbar {
+      width: 4px;
+      height: 0px;
+    }
+    .searMain::-webkit-scrollbar-track-piece {
+      background-color: transparent;
+    }
+    .searMain::-webkit-scrollbar-thumb {
+      background: #445859;
+    }
+    .searMain {
+      width: 100%;
+      margin: 0 auto;
+      height: calc(100% - 50px);
+      overflow-y: auto;
+      .searTxt {
+        width: 90%;
+        margin: 0 auto;
+        padding: 10px 0;
+        border-bottom: 1px solid #d5d5d5;
+      }
+      .active {
+        color: #034c52;
+      }
+    }
+  }
+  .searTop {
+    height: 50px;
+    width: 80%;
+    margin: 0 auto;
+    padding-top: 15px;
+    position: relative;
+    .inco {
+      position: absolute;
+      top: 15px;
+      right: 0px;
+      width: 30px;
+      height: 30px;
+      z-index: 10;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      font-size: 20px;
+      color: #9fa1a5;
+    }
+    input {
+      padding: 0 10px;
+      display: block;
+      width: 100%;
+      height: 30px;
+      line-height: 30px;
+      background-color: #fff;
+      border-radius: 15px;
+      font-size: 12px;
+    }
+  }
+  .main {
+    width: 90%;
+    margin: 5px auto 0;
+    height: calc(100% - 70px);
+    overflow: hidden;
+
+    .row {
+      width: 100%;
+      height: 28px;
+      background-image: url("../assets/img/listRowAc.png");
+      background-size: 100% 100%;
+      color: #fff;
+      text-align: center;
+      line-height: 26px;
+      font-size: 14px;
+      position: relative;
+      .inco {
+        position: absolute;
+        width: 24px;
+        height: 24px;
+        top: 40%;
+        right: 20px;
+        transform: translateY(-50%);
+      }
+    }
+    .shouqi {
+      height: 0;
+      overflow: hidden;
+      .inco {
+        opacity: 0;
+        pointer-events: none;
+      }
+    }
+    .smm {
+      height: 24px;
+      line-height: 20px;
+      background-image: url("../assets/img/listRow.png");
+      .inco {
+        top: 45%;
+      }
+    }
+    .rowTxt::-webkit-scrollbar {
+      width: 4px;
+      height: 0px;
+    }
+    .rowTxt::-webkit-scrollbar-track-piece {
+      background-color: transparent;
+    }
+    .rowTxt::-webkit-scrollbar-thumb {
+      background: #292724;
+    }
+    .rowTxt {
+      font-size: 14px;
+      color: #292724;
+      height: calc(100% - 80px);
+      overflow-y: auto;
+      margin-bottom: 5px;
+      & > div {
+        width: 90%;
+        margin: 0 auto;
+        padding: 10px 0;
+        border-bottom: 1px solid #afafaf;
+      }
+      .active {
+        color: #c48871;
+      }
+    }
+  }
+}
+</style>

+ 457 - 0
mo/src/views/bottom.vue

@@ -0,0 +1,457 @@
+<template>
+  <div
+    class="bottom"
+    :style="`height:${box3Ac > 2 ? '210' : '170'}px;bottom:${
+      !swiShow ? '0' : box3Ac > 2 ? '-210' : '-170'
+    }px`"
+  >
+    <div class="openBox" @click.stop="swiShow = !swiShow">
+      <van-icon name="arrow-up" v-if="swiShow" />
+      <van-icon name="arrow-down" v-else />
+    </div>
+    <div class="main">
+      <div class="box1">
+        <div>
+          <div class="swiper-container" :key="box3Ac + box2Ac">
+            <div class="swiper-wrapper">
+              <div
+                class="swiper-slide"
+                v-for="(item, index) in swData"
+                :key="index"
+              >
+                <div
+                  v-for="(val, ind) in item.son"
+                  :key="ind"
+                  @click="box1Cut(val)"
+                  :class="{
+                    active: box1Ac === val.id,
+                  }"
+                >
+                  <img
+                    v-lazy="
+                      `https://4dkk.4dage.com/720yun_fd_manage/${val.code}/preview.jpg`
+                    "
+                    alt=""
+                    v-if="box3Ac < 3"
+                  />
+                  <img v-lazy="codeChange(val.code, val.id)" alt="" v-else />
+                  <van-notice-bar
+                    speed="30"
+                    v-if="box1Ac === val.id"
+                    delay="0"
+                    :scrollable="true"
+                  >
+                    {{ val.name }}
+                  </van-notice-bar>
+                  <p v-else>{{ val.name }}</p>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="box2" v-if="box3Ac > 2">
+        <div class="huadong" :style="`width:${box2Data.length * 70}px`">
+          <div class="row" v-for="(item, index) in box2Data" :key="item.id">
+            <span
+              @click="box2Cut(item, index)"
+              :class="{ active: item.id === box2Ac }"
+              >{{ item.name }}</span
+            >
+            <div class="xian" v-if="index < box2Data.length - 1"></div>
+          </div>
+        </div>
+      </div>
+      <div class="box3">
+        <div class="row" v-for="item in box3Data" :key="item.id">
+          <span
+            @click="box3Cut(item)"
+            :class="{ active: item.id === box3Ac }"
+            >{{ item.name }}</span
+          >
+          <div class="xian" v-if="item.id !== 4"></div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { Notify } from "vant";
+import { exArr1, exArr2, exArr3, exArr4 } from "./zhan.js";
+import Swiper from "@/assets/swiper/swiper.js";
+export default {
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      // 控制底部轮播图的收起展开
+      swiShow: false,
+      box3Data: [
+        { id: 1, name: "航拍", code: "" },
+        { id: 2, name: "地面全景", code: "" },
+        { id: 3, name: "第一展厅", code: "" },
+        { id: 4, name: "第二展厅", code: "" },
+      ],
+      box3Ac: 1,
+      box2Ac: "",
+      box1Ac: "",
+      box2Data: [],
+      // 轮播图数据
+      swData: [],
+      Swiper: null,
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {
+    swiShow(val) {
+      this.$emit("incoMove", val);
+    },
+  },
+  //方法集合
+  methods: {
+    // 处理链接
+    codeChange(code, id) {
+      let index = code.indexOf("&");
+      let url = code.substr(0, index);
+      if (index > 0) {
+        let arr = [
+          "4-3_7",
+          "4-3_8",
+          "4-3_12",
+          "4-3_12",
+          "4-3_14",
+          "4-3_15",
+          "4-3_16",
+          "4-3_17",
+          "4-3_19",
+          "4-3_20",
+          "4-3_21",
+          "4-3_22",
+          "4-3_23",
+          "4-3_24",
+          "4-5_7",
+          "4-5_8",
+          "4-5_9",
+          "4-6_2",
+          "4-6_3",
+          "4-6_4",
+          "4-6_5",
+          "4-6_6",
+          "4-6_7",
+          "4-6_8",
+          "4-6_9",
+          "4-6_10",
+        ];
+        if (arr.find((v) => v === id)) return `img/${id}.jpg`;
+        else
+          return `https://4dkk.4dage.com/scene_view_data/${url}/user/thumb-2k.jpg`;
+      } else
+        return `https://4dkk.4dage.com/scene_view_data/${code}/user/thumb-2k.jpg`;
+    },
+
+    // 给父组件调用的收起底部的方法
+    openBotton(val) {
+      this.swiShow = val;
+    },
+
+    // 封装一个切换最底部的方法
+    getBox3Fu(id) {
+      if (id === 1) this.box2Data = [...exArr1];
+      else if (id === 2) this.box2Data = [...exArr2];
+      else if (id === 3) this.box2Data = [...exArr3];
+      else if (id === 4) this.box2Data = [...exArr4];
+      if (id < 3) return;
+      this.box2Ac = this.box2Data[0].id;
+      setTimeout(() => {
+        let scrolDom = document.querySelector(".box2");
+        scrolDom.scrollLeft = 0;
+      }, 100);
+    },
+    box1Cut(val) {
+      if (this.box1Ac === val.id) return;
+      // code为空的不跳
+      if (val.code === "")
+        return Notify({ type: "warning", message: "数据计算中,敬请期待" });
+      this.box1Ac = val.id;
+      this.$emit("changeVR", val.code);
+      // 同步list组件的当前vr选中
+      this.$emit("VRActive", val.id);
+    },
+
+    box3Cut(item) {
+      this.$emit("lishShow");
+      if (this.box3Ac === item.id) return;
+      this.box3Ac = item.id;
+
+      this.$emit("mengBan", this.box3Ac);
+
+      this.getBox3Fu(item.id);
+
+      this.getSwFu("1", "1_1", true);
+    },
+    box2Cut(item, index, flag) {
+      if (this.box2Ac === item.id) return;
+      this.box2Ac = item.id;
+      // 设置被选中的元素居中显示
+      this.$nextTick(() => {
+        let scrolDom = document.querySelector(".box2");
+        scrolDom.scrollLeft = (index - 1) * 70;
+      });
+      if (flag) return;
+      this.getSwFu(item.id + "", "1_1", true);
+      this.$emit("fenQuB_L", item.id);
+    },
+    // 封装一个重新加载轮播图的方法
+    getSwFu(id1, id2, flag) {
+      this.$nextTick(() => {
+        this.swData = [];
+        this.Swiper = null;
+
+        let obj = this.box2Data.find((v) => v.id == id1);
+        // this.towAc = obj.id;
+        let index = id2.indexOf("_");
+        let bs = id2.substr(index + 1, id2.length);
+        let num1 = Math.ceil(Number(bs) / 3);
+        num1 -= 1;
+        if (!flag) {
+          this.box1Ac = id2;
+        }
+        // 获取分区里面数据的长度
+        let num = Math.ceil(obj.son.length / 3);
+        for (let i = 0; i < num; i++) {
+          this.swData.push({
+            son: obj.son.slice(i * 3, (i + 1) * 3),
+          });
+        }
+
+        setTimeout(() => {
+          this.Swiper = new Swiper(`.box1 .swiper-container`, {
+            slidesPerView: 1.1,
+            initialSlide: num1,
+            spaceBetween: 0,
+          });
+        }, 0);
+      });
+    },
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    this.box2Data = [...exArr1];
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.getSwFu(1, "1_1", true);
+    // document.querySelector(".huadong").style.width =
+    //   this.box2Data.length * 80 + "px";
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+@import "../assets/swiper/swiper.css";
+.bottom {
+  position: absolute;
+  bottom: 0px;
+  left: 0;
+  z-index: 8;
+  width: 100%;
+  padding: 0 8px 5px 8px;
+  transition: bottom 0.5s;
+  .openBox {
+    position: absolute;
+    width: 111px;
+    height: 21px;
+    top: -20px;
+    left: 50%;
+    transform: translateX(-50%);
+    background-image: url("../assets/img/bottomOpen.png");
+    background-size: 100% 100%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    font-size: 20px;
+    color: #f1a588;
+  }
+  .main {
+    width: 100%;
+    height: 100%;
+    border-radius: 40px 40px 0 0;
+    overflow: hidden;
+    .box1 {
+      position: relative;
+      width: 100%;
+      height: 110px;
+      background-color: rgba(0, 0, 0, 0.5);
+      margin-bottom: 5px;
+      & > div {
+        padding: 8px 20px 5px 20px;
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+        width: 100%;
+        height: 100%;
+      }
+      .swiper-container {
+        width: 100%;
+        height: 100%;
+        .swiper-slide {
+          display: flex;
+          justify-content: flex-start;
+          & > div {
+            border-radius: 10px;
+            overflow: hidden;
+            position: relative;
+            width: 30%;
+            height: 100%;
+            margin-right: 10px;
+            /deep/.van-notice-bar {
+              padding: 0;
+              opacity: 0.8;
+              transition: all 0.3s;
+              position: absolute;
+              bottom: 0;
+              left: 0;
+              width: 100%;
+              height: 30px;
+              line-height: 30px;
+              background-color: rgba(0, 0, 0, 0.6);
+              font-size: 14px;
+              color: #fff;
+            }
+            p {
+              opacity: 0.8;
+              transition: all 0.3s;
+              position: absolute;
+              bottom: 0;
+              left: 0;
+              width: 100%;
+              height: 30px;
+              line-height: 30px;
+              text-align: center;
+              background-color: rgba(0, 0, 0, 0.6);
+              font-size: 14px;
+              color: #fff;
+              overflow: hidden;
+              text-overflow: ellipsis;
+              white-space: nowrap;
+              padding: 0 6px;
+            }
+            // /deep/.van-notice-bar__wrap {
+            //   justify-content: center;
+            // }
+            img {
+              width: 100%;
+              height: 100%;
+              object-fit: cover;
+            }
+          }
+          .active {
+            /deep/.van-notice-bar {
+              opacity: 1;
+              background-color: rgba(181, 147, 134, 0.8);
+            }
+          }
+        }
+      }
+    }
+    .box2::-webkit-scrollbar {
+      width: 0px;
+      height: 0px;
+    }
+    .box2 {
+      margin-top: 5px;
+      height: 40px;
+      width: 100%;
+      overflow-x: auto;
+      background-color: rgba(0, 0, 0, 0.5);
+      .huadong {
+        height: 100%;
+        display: flex;
+        justify-content: space-around;
+        padding: 0 10px;
+        .row {
+          font-size: 14px;
+          color: #fff;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+          .xian {
+            margin: 0 8px 0 15px;
+            width: 1px;
+            height: 20px;
+            background-image: linear-gradient(
+              rgba(255, 255, 255, 0.1),
+              rgba(255, 255, 255, 0.6),
+              rgba(255, 255, 255, 0.1)
+            );
+          }
+          span {
+            display: block;
+            position: relative;
+          }
+          .active {
+            color: #c48871;
+          }
+        }
+      }
+    }
+    .box3 {
+      padding: 0 10px 0 15px;
+      margin-top: 5px;
+      height: 50px;
+      width: 100%;
+      background-color: rgba(0, 0, 0, 0.5);
+      display: flex;
+      justify-content: space-around;
+      .row {
+        font-size: 16px;
+        color: #fff;
+        display: flex;
+        align-items: center;
+        .xian {
+          margin: 0 10px 0 15px;
+          width: 2px;
+          height: 35px;
+          background-image: linear-gradient(
+            rgba(255, 255, 255, 0.1),
+            rgba(255, 255, 255, 0.6),
+            rgba(255, 255, 255, 0.1)
+          );
+        }
+        span {
+          display: block;
+          position: relative;
+        }
+        .active {
+          color: #c48871;
+          &::after {
+            content: "";
+            position: absolute;
+            left: 0;
+            bottom: -5px;
+            width: 100%;
+            height: 2px;
+            background-color: #c48871;
+          }
+        }
+      }
+      @media screen and (max-width: 350px) {
+        .row {
+          font-size: 14px;
+        }
+      }
+    }
+  }
+}
+</style>

+ 499 - 0
mo/src/views/zhan.js

@@ -0,0 +1,499 @@
+export const exArr3 = [
+  {
+    id: "1",
+    name: "1A",
+    son: [
+      { id: "3-1_1", name: "河南展团", code: "KJ-2JYS3n4a2c&lang=zh" },
+      { id: "3-1_2", name: "郑州展团", code: "KJ-mVcjLrkUN7&lang=zh" },
+      { id: "3-1_3", name: "珠海市四维时代网络科技有限公司", code: "KJ-gYN89TNCd7&lang=zh" },
+      { id: "3-1_4", name: "苏州探寻文化科技有限公司", code: "KJ-DZeQvw9jzx&lang=zh" },
+      { id: "3-1_5", name: "华协国际珍品货运服务有限公司", code: "KJ-FJJFOMrBEW&lang=zh" },
+      { id: "3-1_6", name: "北京天图设计工程有限公司", code: "KJ-s1yLAiZzYr&lang=zh" },
+      { id: "3-1_7", name: "武汉数文科技有限公司", code: "KJ-dqYzvQaPm8&lang=zh" },
+      { id: "3-1_8", name: "文博安全科技有限公司", code: "KJ-UztYTt2s21&lang=zh" },
+      { id: "3-1_9", name: "北京凌智展览展示有限公司", code: "KJ-ZopDGFMejc&lang=zh" },
+      { id: "3-1_10", name: "北京笔硕文化产业集团有限公司", code: "KJ-bNFrGd0kk7&lang=zh" },
+      { id: "3-1_11", name: "阳江三可照明实业有限公司", code: "" },
+      { id: "3-1_12", name: "苏州晶沪堂玻璃科技有限公司", code: "KJ-n5neNgdnY3&lang=zh" },
+      { id: "3-1_13", name: "阳江三可照明实业有限公司", code: "" },
+      { id: "3-1_14", name: "金大陆文化产业(集团)有限公司", code: "KJ-igImO37WEr&lang=zh" },
+      { id: "3-1_15", name: "广州市三信红日照明有限公司", code: "KJ-a44t9eck35&lang=zh" },
+      { id: "3-1_16", name: "北京众创国际展览有限公司", code: "KJ-42xQOaDxkN&lang=zh" },
+      { id: "3-1_17", name: "台玻长江玻璃有限公司", code: "KJ-SSnT3fpNGC&lang=zh" },
+    ],
+  },
+  {
+    id: "2",
+    name: "1B",
+    son: [
+      { id: "3-2_1", name: "洛阳瑞宝文保设施科技有限公司", code: "KJ-8x9HxE86kl&lang=zh" },
+      { id: "3-2_2", name: "鲁迅美术学院艺术工程总公司", code: "KJ-5FJhwjCc8J&lang=zh" },
+      { id: "3-2_3", name: "宏瑞文博集团股份有限公司", code: "KJ-UotpKnaof8&lang=zh" },
+      { id: "3-2_4", name: "南通博物苑", code: "KJ-1Uy45SfsP3&lang=zh" },
+      { id: "3-2_5", name: "文化和旅游部恭王府博物馆", code: "KJ-mnklgzttko&lang=zh" },
+      { id: "3-2_6", name: "中国国家博物馆", code: "KJ-tExLq5A8MP&lang=zh" },
+      { id: "3-2_7", name: "南京博物院", code: "KJ-azCAk319pQ&lang=zh" },
+      { id: "3-2_8", name: "中国大运河博物馆", code: "KJ-azCAk319pQ&lang=zh" },
+      { id: "3-2_9", name: "故宫博物院", code: "KJ-c8MsFz0yk5&lang=zh" },
+      { id: "3-2_10", name: "中国铁道博物馆", code: "KJ-sGVl3kA6jw&lang=zh" },
+      { id: "3-2_11", name: "中国丝绸博物馆", code: "KJ-cqqiuLwMlh&lang=zh" },
+      { id: "3-2_12", name: "天禹文化集团有限公司", code: "KJ-OIIo6TEN7r&lang=zh" },
+      { id: "3-2_13", name: "深圳市埃克苏照明系统有限公司", code: "KJ-wRAaCxj3sk&lang=zh" },
+      { id: "3-2_14", name: "圣轩珍品国际货运有限公司", code: "KJ-7GpMfWAiK2&lang=zh" },
+      { id: "3-2_15", name: "广州博信文博科技有限公司", code: "KJ-tmve4biSr6&lang=zh" },
+      { id: "3-2_16", name: "江西省文展装饰艺术有限公司", code: "KJ-SNXxMqu2wN&lang=zh" },
+      { id: "3-2_17", name: "中比博展(北京)陈列设备有限公司", code: "KJ-onIYQYabPD&lang=zh" },
+      { id: "3-2_18", name: "北京华源彤达科技有限公司", code: "KJ-GBdAmCut44&lang=zh" },
+      { id: "3-2_19", name: "苏州和氏设计营造股份有限公司", code: "KJ-YOFiYPA8kY&lang=zh" },
+      { id: "3-2_20", name: "上海正格展览服务有限公司", code: "KJ-2pGZrERjdC&lang=zh" },
+      { id: "3-2_21", name: "北京鹏达文博展览服务有限公司", code: "KJ-3KvVMKOiKn&lang=zh" },
+    ],
+  },
+  {
+    id: "3",
+    name: "1C",
+    son: [
+      { id: "3-3_1", name: "上海馥鼎智能科技有限公司", code: "KJ-wo6tSRVOLC&lang=zh" },
+      { id: "3-3_2", name: "上海赛图图像设备有限公司", code: "KJ-xnD3qxo0Gg&lang=zh" },
+      { id: "3-3_3", name: "中国联合网络通信有限公司河南省分公司", code: "KJ-CTJJtVGadv&lang=zh" },
+      { id: "3-3_4", name: "北京天一时空视觉艺术有限公司", code: "KJ-cQhUtkEb1A&lang=zh" },
+      { id: "3-3_5", name: "佰路得信息技术(上海)有限公司", code: "KJ-9GXRTsFvvx&lang=zh" },
+      { id: "3-3_6", name: "华艺博展装饰有限公司", code: "KJ-mDJYOeOuPn&lang=zh" },
+      { id: "3-3_7", name: "中山汤石照明有限公司", code: "KJ-DDtc8oCfAd&lang=zh" },
+      { id: "3-3_8", name: "北京清尚建筑装饰工程有限公司", code: "KJ-fTT7mLxtLM&lang=zh" },
+      { id: "3-3_9", name: "闪耀现实(无锡)科技有限公司", code: "KJ-ljEF4yokYi&lang=zh" },
+      { id: "3-3_10", name: "郑州丰嘉科技有限公司", code: "KJ-dHEUgr2cIY&lang=zh" },
+      { id: "3-3_11", name: "北京华艺恒辉展览展示有限公司", code: "KJ-YwxDD8rISA&lang=zh" },
+      { id: "3-3_12", name: "山东文保文物修复技术有限公司", code: "KJ-qtBTv1yH5u&lang=zh" },
+      { id: "3-3_13", name: "北京悦安博展文化传媒有限公司", code: "KJ-5xt46fE7jX&lang=zh" },
+      { id: "3-3_14", name: "文博时空科技(北京)有限公司", code: "KJ-vVFokGTcxx&lang=zh" },
+      { id: "3-3_15", name: "武汉鼎森电子科技有限公司", code: "KJ-xgmaplPIax&lang=zh" },
+      { id: "3-3_16", name: "中国共产党第一次代表大会纪念馆", code: "KJ-EXfJPH9gOA&lang=zh" },
+      { id: "3-3_17", name: "中国文物信息咨询中心", code: "KJ-71XtF2XtUM&lang=zh" },
+      { id: "3-3_18", name: "北京自然博物馆", code: "KJ-WlorqqCC2Q&lang=zh" },
+      { id: "3-3_19", name: "深圳市地球宝藏文创科技有限公司", code: "KJ-fMsH0MvFIM&lang=zh" },
+      { id: "3-3_20", name: "清华大学艺术博物馆", code: "KJ-U71lguxEey&lang=zh" },
+      { id: "3-3_21", name: "中国妇女儿童博物馆", code: "KJ-FzSPpsumlG&lang=zh" },
+      { id: "3-3_22", name: "中国文物报社有限公司", code: "KJ-9Pu57ZGMyZ&lang=zh" },
+      { id: "3-3_23", name: "陈云纪念馆", code: "KJ-9a45erqSrh&lang=zh" },
+      { id: "3-3_24", name: "北京博物馆学会", code: "KJ-9eaOn2YxD9&lang=zh" },
+      { id: "3-3_25", name: "八七会议会址纪念馆", code: "KJ-EV7mOnugMh&lang=zh" },
+      { id: "3-3_26", name: "红四方面军总指挥部旧址纪念馆", code: "KJ-kMEEeopb3c&lang=zh" },
+      { id: "3-3_27", name: "北京大学赛克勒考古与艺术博物馆", code: "KJ-0x09JfvzPx&lang=zh" },
+      { id: "3-3_28", name: "布达拉宫", code: "KJ-NomTs3E2nB&lang=zh" },
+      { id: "3-3_29", name: "北京鲁迅博物馆(北京新文化运动纪念馆)", code: "KJ-DoJNAukETO&lang=zh" },
+      { id: "3-3_30", name: "中国人民革命军事博物馆", code: "KJ-BsRsYaDOvk&lang=zh" },
+      { id: "3-3_31", name: "福建中国闽台缘博物馆", code: "KJ-nnBw0ZbO6B&lang=zh" },
+      { id: "3-3_32", name: "韶山毛泽东同志纪念馆", code: "KJ-eZAJi0zlFf&lang=zh" },
+      { id: "3-3_33", name: "100小时·直击博博会直播间", code: "" },
+    ],
+  },
+  {
+    id: "4",
+    name: "1D",
+    son: [
+      { id: "3-4_1", name: "中国(海南)南海博物馆", code: "KJ-xcyo3VwYes&lang=zh" },
+      { id: "3-4_2", name: "南昌汉代海昏侯国遗址博物馆", code: "KJ-mN6H4JRDEo&lang=zh" },
+      { id: "3-4_3", name: "上海市龙华烈士纪念馆(上海市龙华烈士陵园)", code: "KJ-OgXlHWmbaz&lang=zh" },
+      { id: "3-4_4", name: "重庆展团", code: "KJ-vERZzVp5nr&lang=zh" },
+      { id: "3-4_5", name: "非国有博物馆专委会", code: "KJ-g38oxxCC4H&lang=zh" },
+      { id: "3-4_6", name: "徐州圣旨博物馆", code: "KJ-j4tHGX2fs4&lang=zh" },
+      { id: "3-4_7", name: "河南省收藏家协会", code: "KJ-BzGkYxUDma&lang=zh" },
+      { id: "3-4_8", name: "浙江省现代陶瓷艺术博物馆", code: "KJ-N80GD9oRUG&lang=zh" },
+      { id: "3-4_9", name: "浙江朱炳仁铜雕艺术博物馆", code: "KJ-ZljPDWX9Ry&lang=zh" },
+      { id: "3-4_10", name: "深圳市宝安区世纪琥珀博物馆", code: "KJ-EbNLUDoBQe&lang=zh" },
+      { id: "3-4_11", name: "凤凰县山江苗族博物馆", code: "KJ-giZwO0z1gS&lang=zh" },
+      { id: "3-4_12", name: "天津沉香艺术博物馆", code: "KJ-uHtJQEQHQc&lang=zh" },
+      { id: "3-4_13", name: "大连市世纪留声音乐文化博物馆", code: "" },
+      { id: "3-4_14", name: "观复博物馆", code: "KJ-kcKH51RzEK&lang=zh" },
+      { id: "3-4_15", name: "宁波艾梯奇灯具有限公司", code: "KJ-giAnlH09Pa&lang=zh" },
+      { id: "3-4_16", name: "北京忆空间文化发展有限公司", code: "KJ-CJPO7ayMWD&lang=zh" },
+      { id: "3-4_17", name: "上海安得顺诺建筑装饰制品有限公司", code: "KJ-RrCN7BfJwo&lang=zh" },
+      { id: "3-4_18", name: "首业资产评估有限公司", code: "KJ-d0B6aftaBw&lang=zh" },
+      { id: "3-4_19", name: "迅满(上海)照明有限公司", code: "" },
+      { id: "3-4_20", name: "赛尔富电子有限公司", code: "KJ-FDtw5nOLd3&lang=zh" },
+      { id: "3-4_21", name: "杭州淘艺数据技术有限公司", code: "KJ-oq43ttM9XF&lang=zh" },
+      { id: "3-4_22", name: "深圳市深层互联网科技有限公司", code: "KJ-Bx6TeoN9qs&lang=zh" },
+      { id: "3-4_23", name: "奥佛瑞斯(北京)科技发展有限公司", code: "KJ-GeG6g7pWco&lang=zh" },
+      { id: "3-4_24", name: "四川克里克展览展示有限公司", code: "KJ-v1Js1KvchX&lang=zh" },
+      { id: "3-4_25", name: "北京LORD国际文化发展有限公司", code: "" },
+      { id: "3-4_26", name: "杭州晶硝子玻璃科技有限公司", code: "KJ-0FZa4Mik2Y&lang=zh" },
+      { id: "3-4_27", name: "四川省克里克尼泽菲德展览展示有限公司", code: "KJ-Uwgtr0QQ9b&lang=zh" },
+      { id: "3-4_28", name: "南京楚才物联科技有限公司", code: "" },
+      { id: "3-4_29", name: "山东迈越文保科技有限公司", code: "KJ-aTjCeaGmnv&lang=zh" },
+      { id: "3-4_30", name: "合肥安达创展科技股份有限公司", code: "KJ-n4a6AN7iNo&lang=zh" },
+      { id: "3-4_31", name: "郑州帧格文化科技有限公司", code: "KJ-FBkoUnfQd3&lang=zh" },
+      { id: "3-4_32", name: "深圳市冰晟光电科技有限公司", code: "KJ-USSATq2PKo&lang=zh" },
+      { id: "3-4_33", name: "北京文博天远科技有限公司", code: "KJ-iKExmgxQxy&lang=zh" },
+      { id: "3-4_34", name: "宜春博理智能制造研究院有限公司", code: "KJ-3bpw05pE3q&lang=zh" },
+      { id: "3-4_35", name: "南京维塔文化遗产保护技术有限公司", code: "KJ-6WpHJCcAk9&lang=zh" },
+      { id: "3-4_36", name: "福建恒达教育装备工程有限公司", code: "KJ-27KSPSYx4n&lang=zh" },
+      { id: "3-4_37", name: "天地通科技有限责任公司", code: "KJ-JspWZoPJWJ&lang=zh" },
+      { id: "3-4_38", name: "武汉大势智慧科技有限公司", code: "KJ-svl0ymvuRL&lang=zh" },
+      { id: "3-4_39", name: "哈尔滨工业大学建筑设计研究院有限公司", code: "KJ-tOR9smZ6Fx&lang=zh" },
+      { id: "3-4_40", name: "广州正度数据处理服务有限公司", code: "KJ-ATXkWrDHsM&lang=zh" },
+      { id: "3-4_41", name: "深圳市德蓝灯光技术有限公司", code: "KJ-SJ46NWL3Pf&lang=zh" },
+    ],
+  },
+  {
+    id: "5",
+    name: "1E",
+    son: [
+      { id: "3-5_1", name: "福建省沈绍安漆艺博物馆", code: "" },
+      { id: "3-5_2", name: "福建省世茂海上丝绸之路博物馆", code: "" },
+      { id: "3-5_3", name: "郑州大象陶瓷博物馆", code: "KJ-NkfN12Xbs1&lang=zh" },
+      { id: "3-5_4", name: "洛阳唐艺金银器博物馆", code: "KJ-XsIrnOafvx&lang=zh" },
+      { id: "3-5_5", name: "郑州旭日青铜博物馆", code: "KJ-wh0207fypw&lang=zh" },
+      { id: "3-5_6", name: "郓城传递红色文化博物馆", code: "" },
+      { id: "3-5_7", name: "柳州市战争史博物馆", code: "" },
+      { id: "3-5_8", name: "洛阳钟鼎青铜艺术博物馆", code: "" },
+      { id: "3-5_9", name: "斯琴塔娜艺术博物馆", code: "KJ-hOzzgfLJ4r&lang=zh" },
+      { id: "3-5_10", name: "淄博市鸿磊金石拓片艺术博物馆", code: "KJ-U5pIRFDs74&lang=zh" },
+      { id: "3-5_11", name: "高青镕古拓片艺术博物馆", code: "" },
+      { id: "3-5_12", name: "高青镕古拓片艺术博物馆", code: "" },
+      { id: "3-5_13", name: "淄博市文昌古陶瓷博物馆", code: "KJ-0PqtYlxo7F&lang=zh" },
+      { id: "3-5_14", name: "漯河市德泽陶瓷博物馆", code: "KJ-lW0IOHIbzG&lang=zh" },
+      { id: "3-5_15", name: "蝶语世界昆虫博物馆", code: "KJ-Jbc9LNyatD&lang=zh" },
+      { id: "3-5_16", name: "黄山市徽派雕刻博物馆", code: "KJ-a4svyb3a9i&lang=zh" },
+      { id: "3-5_17", name: "洛阳唐三彩陶艺博物馆", code: "KJ-rJidbRoFUW&lang=zh" },
+      { id: "3-5_18", name: "淄博市文会陶瓷博物馆", code: "KJ-fsN4YDv1XV&lang=zh" },
+      { id: "3-5_19", name: "郑州市木华苑名居博物馆", code: "KJ-fJTZtrjTWZ&lang=zh" },
+      { id: "3-5_20", name: "郑州晶石造器博物馆", code: "KJ-vsTkP34Ggu&lang=zh" },
+      { id: "3-5_21", name: "郑州城外陶瓷艺术博物馆", code: "KJ-QRx6tOln59&lang=zh" },
+      { id: "3-5_22", name: "抚顺罗衣璀璨旗袍博物馆", code: "KJ-OFP9QtUhUY&lang=zh" },
+      { id: "3-5_23", name: "山西吕梁山革命/吕梁北武当古兵器博物馆", code: "KJ-0r9AqYwpq9&lang=zh" },
+      { id: "3-5_24", name: "南京及厦门奥林匹克博物馆", code: "KJ-KYoJzutKud&lang=zh" },
+      { id: "3-5_25", name: "南京江南丝绸文化博物馆", code: "KJ-NSfyaGgKWL&lang=zh" },
+      { id: "3-5_26", name: "南昌金九福钱币博物馆", code: "KJ-cvKL4sCgjv&lang=zh" },
+      { id: "3-5_27", name: "华夏鞋文化博物馆", code: "KJ-FxgZe0oDV7&lang=zh" },
+      { id: "3-5_28", name: "郑州市登封窑陶瓷博物馆", code: "KJ-YKEJmFHjPv&lang=zh" },
+      { id: "3-5_29", name: "郑州市瞻世客家文化博物", code: "KJ-CubG4nbUsf&lang=zh" },
+      { id: "3-5_30", name: "河南省鹿邑县长军古陶瓷博物馆", code: "KJ-HGlfzfeWTL&lang=zh" },
+      { id: "3-5_31", name: "泰安毛公山红色文化博物馆", code: "KJ-MqjaJVDm4T&lang=zh" },
+      { id: "3-5_32", name: "山东金石书法博物馆", code: "KJ-SYc0onKKXR&lang=zh" },
+      { id: "3-5_33", name: "井冈山革命金融博物馆", code: "KJ-ZU4memenzZ&lang=zh" },
+      { id: "3-5_34", name: "郑州天中艺术博物馆", code: "KJ-ALqRX8GtbE&lang=zh" },
+      { id: "3-5_36", name: "郑州红木文化博物馆", code: "KJ-NnJwxwGhaV&lang=zh" },
+      { id: "3-5_37", name: "郑州市丝路文化博物馆", code: "KJ-KjxpfpnRcP&lang=zh" },
+      { id: "3-5_38", name: "河南省鹿邑县长军古陶瓷博物馆", code: "" },
+      { id: "3-5_39", name: "玉树藏文化民俗博物馆", code: "" },
+      { id: "3-5_40", name: "重庆民间医药博物馆", code: "" },
+      { id: "3-5_41", name: "重庆市巴渝名匾文化艺术博物馆", code: "" },
+      { id: "3-5_42", name: "郑州市丝路文化博物馆", code: "" },
+      { id: "3-5_43", name: "郑州晶石造器博物馆", code: "" },
+      { id: "3-5_44", name: "郑州瞻世客家文化博物馆", code: "" },
+      { id: "3-5_45", name: "宁波邦达实业有限公司", code: "KJ-ryx1JPBLhX&lang=zh" },
+      { id: "3-5_46", name: "佳博(东莞)照明有限公司", code: "KJ-Vyll2I4sPR&lang=zh" },
+      { id: "3-5_47", name: "博物文韵", code: "KJ-RcPxrrAYEP&lang=zh" },
+      { id: "3-5_48", name: "中国人寿财产保险股份有限公司上海市分公司", code: "KJ-XSSfuJvf5K&lang=zh" },
+      { id: "3-5_49", name: "广州龙联科技文化发展有限公司", code: "KJ-QSSYSNI9k0&lang=zh" },
+      { id: "3-5_50", name: "全友电脑科技(吴江)有限公司", code: "KJ-GwzoC7LlO6&lang=zh" },
+      { id: "3-5_51", name: "上海丸丁电子科技有限公司", code: "KJ-tlPH4oTb5V&lang=zh" },
+      { id: "3-5_52", name: "北京博德珍品货运代理有限公司", code: "KJ-7JbEOzGmdA&lang=zh" },
+      { id: "3-5_53", name: "江苏凤凰文艺出版社有限公司", code: "KJ-rmJshcQ9Fo&lang=zh" },
+      { id: "3-5_54", name: "北京海天恒通科技有限公司", code: "KJ-JSB96iyAaI&lang=zh" },
+      { id: "3-5_55", name: "中山小良文化科技有限公司", code: "KJ-4gaRj83cjE&lang=zh" },
+      { id: "3-5_56", name: "自贡龙晨时代文化艺术有限公司", code: "KJ-SePCXrFOjb&lang=zh" },
+      { id: "3-5_57", name: "北京缪斯博物教育科技有限公司", code: "KJ-HS3GUCdHiH&lang=zh" },
+      { id: "3-5_58", name: "广州三毛信息科技有限公司", code: "KJ-CExO475Nfm&lang=zh" },
+      { id: "3-5_59", name: "西安妙吉祥雕塑艺术有限公司", code: "KJ-F0C72XBUoB&lang=zh" },
+      { id: "3-5_60", name: "惠州隆城展示展览有限公司", code: "KJ-uaID1KGzYA&lang=zh" },
+      { id: "3-5_61", name: "上海汇展国际物流有限公司", code: "KJ-lGrFc22OKk&lang=zh" },
+      { id: "3-5_62", name: "新蕾出版社(天津)有限公司", code: "KJ-ypnyDLzxQr&lang=zh" },
+      { id: "3-5_63", name: "远望谷(上海)信息技术有限公司", code: "KJ-gl6rRHoFNk&lang=zh" },
+      { id: "3-5_64", name: "成都国衍科技有限公司", code: "KJ-Myzo7Gkux0&lang=zh" },
+      { id: "3-5_65", name: "博恒文保科技(天津)有限公司", code: "KJ-uzPOQdwGb4&lang=zh" },
+      { id: "3-5_66", name: "上海庐野文化科技有限责任公司", code: "" },
+      { id: "3-5_68", name: "纽艾尔气体设备(廊坊)有限公司", code: "KJ-KdhmJ7YvpF&lang=zh" },
+      { id: "3-5_69", name: "上海小棠文化传播有限公司", code: "KJ-joMBHTPA36&lang=zh" },
+      { id: "3-5_70", name: "库奥(深圳)照明技术有限公司", code: "KJ-17o5ZMxX1N&lang=zh" },
+      { id: "3-5_71", name: "火凤凰(北京)国际艺术品物流有限公司", code: "KJ-bHKSn3f8r5&lang=zh" },
+      { id: "3-5_72", name: "卡尔蔡司(上海)管理有限公司", code: "KJ-uCrDcPXcld&lang=zh" },
+      { id: "3-5_73", name: "上海宽阅科技有限公司", code: "KJ-vSQQsgFyM9&lang=zh" },
+      { id: "3-5_74", name: "武汉大楚兴激光科技有限公司", code: "KJ-PP0vmvwP7V&lang=zh" },
+      { id: "3-5_75", name: "博锐百纳(北京)信息技术有限公司", code: "KJ-wnNskPABHY&lang=zh" },
+      { id: "3-5_76", name: "上海昂兴装饰工程有限公司", code: "KJ-Qq3h3T9h6b&lang=zh" },
+      { id: "3-5_77", name: "瑞创神州(北京)科技发展有限公司", code: "KJ-XIc8svF67w&lang=zh" },
+      { id: "3-5_78", name: "北京金石视觉数字科技有限公司", code: "KJ-wqVaQ6goMq&lang=zh" },
+      { id: "3-5_79", name: "苏州世轩电子材料有限公司", code: "KJ-nC9tCXtS6r&lang=zh" },
+      { id: "3-5_80", name: "湖南博晓展览有限公司", code: "KJ-vQs8rQagY1&lang=zh" },
+      { id: "3-5_81", name: "北京宇极科贸有限公司", code: "KJ-RQlgwUUPgi&lang=zh" },
+      { id: "3-5_82", name: "北京印特尔传承文化发展有限公司", code: "KJ-CDpJVCXBwF&lang=zh" },
+      { id: "3-5_83", name: "广州宏达工程顾问集团有限公司", code: "KJ-sSMwo0gEQN&lang=zh" },
+      { id: "3-5_84", name: "上海民博文化创意发展有限公司", code: "KJ-T8To3lew4p&lang=zh" },
+      { id: "3-5_85", name: "群核信息技术有限公司", code: "KJ-ZyM0vspZf1&lang=zh" },
+      { id: "3-5_86", name: "东莞市五丰电子有限公司", code: "KJ-XPXSJnHK1g&lang=zh" },
+      { id: "3-5_87", name: "郑州博克尔雅信息技术有限公司", code: "KJ-lmMQtySYEz&lang=zh" },
+      { id: "3-5_88", name: "西安文数保科技有限公司", code: "KJ-WNGDecbHmw&lang=zh" },
+      { id: "3-5_89", name: "山东智博文物保护科技有限公司", code: "KJ-oKMsMFzym3&lang=zh" },
+      { id: "3-5_90", name: "丹麦飞思1公司上海代表处", code: "KJ-mx9p4dOHhC&lang=zh" },
+      { id: "3-5_91", name: "深圳市华图测控系统有限公司", code: "KJ-7TzXe1sNcR&lang=zh" },
+      { id: "3-5_92", name: "河南云芽文化传媒有限公司", code: "KJ-3heyFjoU2v&lang=zh" },
+    ],
+  },
+]
+
+export const exArr4 = [
+  {
+    id: '1', name: '2A', son: [
+      { id: '4-1_1', name: '粤博创意', code: 'KJ-oOhgvLwVDH&lang=zh' },
+      { id: '4-1_2', name: '中华慈善博物馆', code: 'KJ-gdaOVZa62T&lang=zh' },
+      { id: '4-1_3', name: '无锡博物院', code: 'KJ-9eVcvDIFxz&lang=zh' },
+      { id: '4-1_4', name: '安徽展团', code: 'KJ-qPx1Ju6ApP&lang=zh' },
+      { id: '4-1_5', name: '广西博物馆协会', code: 'KJ-XgJpYBJ1eI&lang=zh' },
+      { id: '4-1_6', name: '杭州博物文化传播有限公司', code: 'KJ-BaXXJpdk09&lang=zh' },
+      { id: '4-1_7', name: '文博圈(北京)文化发展有限公司', code: 'KJ-OPFcu8N7Md&lang=zh' },
+      { id: '4-1_8', name: '国机工业互联网研究院(河南)有限公司', code: '' },
+      { id: '4-1_9', name: '辽宁美术出版社有限责任公司', code: 'KJ-IaerIoPvSe&lang=zh' },
+      { id: '4-1_10', name: '三潮元老文化创意(广州)有限公司', code: 'KJ-QvnytEIdkl&lang=zh' },
+      { id: '4-1_11', name: '雷尼绍(上海)贸易有限公司', code: 'KJ-Oqqe9dcEa2&lang=zh' },
+      { id: '4-1_12', name: '天津三英精密仪器股份有限公司', code: 'KJ-y1oqjTa0jm&lang=zh' },
+      { id: '4-1_13', name: '上海萌色调科技发展有限公司', code: 'KJ-LM9cRXy3X1&lang=zh' },
+      { id: '4-1_14', name: '苏州三套车展览展示有限公司', code: 'KJ-S5VWYSWnoe&lang=zh' },
+      { id: '4-1_15', name: '佛山环球标本装备有限公司', code: 'KJ-u8oB8sc3yi&lang=zh' },
+      { id: '4-1_16', name: '广州荣海科技发展有限公司', code: 'KJ-tN4Y0KQqhO&lang=zh' },
+      { id: '4-1_17', name: '南京博思麦电子科技有限公司', code: 'KJ-xJUm5m25Ln&lang=zh' },
+      { id: '4-1_18', name: '江苏魔法工坊网络科技有限公司', code: 'KJ-qYcUw4TXl9&lang=zh' },
+      { id: '4-1_19', name: '江苏印象乾图文化科技有限公司', code: '' },
+      { id: '4-1_20', name: '广东来者生物科技有限公司', code: 'KJ-mRbEBtxqim&lang=zh' },
+      { id: '4-1_21', name: '杭州盼打科技有限公司', code: 'KJ-tDflSgqhJG&lang=zh' },
+      { id: '4-1_22', name: '山西辰涵数字科技股份有限公司', code: 'KJ-yGTyCtRnjO&lang=zh' },
+      { id: '4-1_23', name: '北京智合润联科技发展有限公司', code: 'KJ-SfWY3xjIHI&lang=zh' },
+      { id: '4-1_24', name: '弘博网', code: 'KJ-ReWJb8K5Ld&lang=zh' },
+      { id: '4-1_25', name: '天津立达电子设备有限公司', code: 'KJ-nomrkYcqbT&lang=zh' },
+      { id: '4-1_26', name: '广东博容照明科技有限公司', code: '' },
+      { id: '4-1_27', name: '郑州杰林计算机科技有限公司', code: 'KJ-MjDXTRMc4T&lang=zh' },
+      { id: '4-1_28', name: '北京天马辉电子技术有限责任公司', code: '' },
+      { id: '4-1_29', name: '广州市满天星礼品有限公司', code: 'KJ-eQOGLDm50A&lang=zh' },
+      { id: '4-1_30', name: '深圳光子晶体科技有限公司', code: 'KJ-ax9shaHmuE&lang=zh' },
+      { id: '4-1_31', name: '白城市嘉隆生物标本有限公司', code: 'KJ-810n5dYoGS&lang=zh' },
+      { id: '4-1_32', name: '上海云视科技股份有限公司', code: '' },
+      { id: '4-1_33', name: '爱因极致科技(杭州)有限公司', code: 'KJ-dnhwqzuMQP&lang=zh' },
+      { id: '4-1_34', name: '润平投资有限公司', code: 'KJ-7sv3WtchRe&lang=zh' },
+      { id: '4-1_35', name: '四川智能小子科技有限公司', code: 'KJ-OmF8NZamYN&lang=zh' },
+      { id: '4-1_36', name: '江西源金科技集团有限公司', code: 'KJ-hLU76vls53&lang=zh' },
+      { id: '4-1_37', name: '山东金东数字创意股份有限公司', code: 'KJ-No9q1FXW4S&lang=zh' },
+      { id: '4-1_38', name: '北京雅昌艺术数据有限公司', code: 'KJ-5547j5N3sY&lang=zh' },
+      { id: '4-1_39', name: '杭州淘艺数据技术有限公司', code: 'KJ-7mfos1SKRT&lang=zh' },
+      { id: '4-1_40', name: '北京玻昊玻璃科技有限公司', code: 'KJ-sqYZREd140&lang=zh' },
+      { id: '4-1_41', name: '天津顺德文博科技有限公司', code: 'KJ-5qyPY6an2O&lang=zh' },
+      { id: '4-1_42', name: '中古文物保护集团/北京中古云博文化科技有限公司', code: 'KJ-vKWECD7btN&lang=zh' },
+      { id: '4-1_43', name: '福建先行网络服务有限公司', code: 'KJ-bkW1aQI3wE&lang=zh' },
+      { id: '4-1_44', name: '广州凡拓数字创意科技股份有限公司', code: 'KJ-MTqO3Pamq0&lang=zh' },
+      { id: '4-1_45', name: '北京美大文博科技有限公司', code: 'KJ-6G4YFf2GQF&lang=zh' },
+    ]
+  },
+  {
+    id: '2', name: '2B', son: [
+      { id: '4-2_1', name: '苏州博物馆', code: 'KJ-067nVxQfD9&lang=zh' },
+      { id: '4-2_2', name: '湖南博物院', code: 'KJ-ud3481YlpK&lang=zh' },
+      { id: '4-2_3', name: '上海博物馆', code: 'KJ-I4rGAVFZ1x&lang=zh' },
+      { id: '4-2_4', name: '山西展团', code: 'KJ-wg1jL9ddlF&lang=zh' },
+      { id: '4-2_5', name: '湖北省博物馆', code: 'KJ-4EaFxjPnNW&lang=zh' },
+      { id: '4-2_6', name: '华格照明科技(上海)有限公司', code: '' },
+      { id: '4-2_7', name: '广州欧科信息技术股份有限公司', code: 'KJ-Tfp19BBz4A&lang=zh' },
+      { id: '4-2_8', name: '精锐文化创意产业有限公司', code: 'KJ-x6Q3sbX9FS&lang=zh' },
+      { id: '4-2_9', name: '中国建筑技术集团有限公司', code: 'KJ-XufB2MyVub&lang=zh' },
+      { id: '4-2_10', name: '上海大学博物馆', code: 'KJ-n88TPgrV9l&lang=zh' },
+      { id: '4-2_11', name: '湖南银宝科技发展有限公司', code: 'KJ-JtZqR2fHEC&lang=zh' },
+      { id: '4-2_12', name: '湖南博颢伟业科技有限公司', code: '' },
+      { id: '4-2_13', name: '上海美术设计有限公司', code: 'KJ-DSAmmRoJAp&lang=zh' },
+      { id: '4-2_14', name: '山东金晶科技股份有限公司', code: 'KJ-kjbtckZvjO&lang=zh' },
+      { id: '4-2_15', name: '上海麦艺文化艺术设计有限公司', code: 'KJ-RsGHUIg5WM&lang=zh' },
+      { id: '4-2_16', name: '西安玧复工贸有限公司', code: 'KJ-tU8IGjamYv&lang=zh' },
+      { id: '4-2_17', name: '广东华瑞照明科技有限公司', code: '' },
+      { id: '4-2_18', name: '廊坊市文博展览科技开发有限公司', code: 'KJ-vlLQBebm2X&lang=zh' },
+      { id: '4-2_19', name: '河南华要文博实业有限公司', code: 'KJ-oSXu8w1CRo&lang=zh' },
+      { id: '4-2_20', name: '广州力天文化创意产业集团有限公司', code: 'KJ-M56mGWPXkH&lang=zh' },
+    ]
+  },
+
+  {
+    //       { id: '4-3_', name: '', code: '' },
+
+    id: '3', name: '2C', son: [
+      { id: '4-3_1', name: '四川博物院', code: 'KJ-F0c4uJq7gf&lang=zh' },
+      { id: '4-3_2', name: '四川西部文物修复中心', code: 'KJ-2vI7LY7qgv&lang=zh' },
+      { id: '4-3_3', name: '成都展团', code: 'KJ-HbWlmUWit1&lang=zh' },
+      { id: '4-3_4', name: '泸州市博物馆', code: 'KJ-iJMNQq1YbG&lang=zh' },
+      { id: '4-3_5', name: '邓小平故居陈列馆', code: 'KJ-5HzzaTTiCA&lang=zh' },
+      { id: '4-3_6', name: '宜宾市博物院', code: 'KJ-uIumhrWqCo&lang=zh' },
+      { id: '4-3_7', name: '广汉三星堆博物馆', code: 'KJ-F7zHJOpSuz&lang=zh&pose=pano:26,qua:-0.0201,-0.0171,-0.0003,0.9997' },
+      { id: '4-3_8', name: '成都金沙遗址博物馆', code: 'KJ-F7zHJOpSuz&lang=zh&pose=pano:32,qua:0.0363,-0.0039,0.0001,0.9993' },
+      { id: '4-3_9', name: '重庆中国三峡博物馆', code: '' },
+      { id: '4-3_10', name: '重庆自然博物馆', code: '' },
+      { id: '4-3_11', name: '大足石刻博物馆', code: '' },
+      { id: '4-3_12', name: '重庆三峡移民纪念馆(万州区博物馆)、重庆三峡文化创意集团', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:34,qua:-0.0047,0.0088,0,1' },
+      { id: '4-3_13', name: '涪陵博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:32,qua:0.0001,0.9999,-0.013,0.0099' },
+      { id: '4-3_14', name: '重庆市大渡口区博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:22,qua:-0.0001,0.9999,0.0056,0.0131' },
+      { id: '4-3_15', name: '重庆市北碚区博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:30,qua:0.0008,0.7159,-0.0008,0.6982' },
+      { id: '4-3_16', name: '重庆市巴南区博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:40,qua:0.0191,-0.0117,0.0002,0.9997' },
+      { id: '4-3_17', name: '重庆市开州博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:44,qua:0.0112,0.1705,-0.0019,0.9853' },
+      { id: '4-3_18', name: '夔州博物馆', code: '' },
+      { id: '4-3_19', name: '巫山县文物管理所(巫山博物馆)', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:16,qua:-0.0003,0.0178,0,0.9998' },
+      { id: '4-3_20', name: '云阳县博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:8,qua:0.0006,0.9942,0.006,-0.1072' },
+      { id: '4-3_21', name: '忠州博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:14,qua:0.0211,-0.02,0.0004,0.9996' },
+      { id: '4-3_22', name: '重庆工业博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:6,qua:-0.0032,-0.7148,-0.0033,0.6993' },
+      { id: '4-3_23', name: '重庆历史名人馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:38,qua:-0.0074,-0.0053,0,1' },
+      { id: '4-3_24', name: '重庆巴渝民俗博物馆', code: 'KJ-UuxUkt9lwD&lang=zh&pose=pano:24,qua:0.0035,0.9199,-0.0083,0.3921' },
+      { id: '4-3_25', name: '重庆市梁平区博物馆', code: '' },
+      { id: '4-3_26', name: '吴文化博物馆(吴中博物馆)', code: 'KJ-ySOBANMP1B&lang=zh' },
+      { id: '4-3_27', name: '陕西历史博物馆', code: '' },
+      { id: '4-3_28', name: '福建文物展区', code: 'KJ-MTe2pu171f&lang=zh' },
+      { id: '4-3_29', name: '北京世纪超星信息技术发展责任有限公司', code: 'KJ-HUNV2Sgyc7&lang=zh' },
+      { id: '4-3_30', name: '中国建筑设计研究院有限公司', code: '' },
+      { id: '4-3_31', name: '上海风语筑文化科技股份有限公司', code: '' },
+      { id: '4-3_32', name: '上海妙文会展服务有限公司', code: 'KJ-rNHODbuwBE&lang=zh' },
+      { id: '4-3_33', name: '深圳市冠标科技发展有限公司', code: 'KJ-o77NpMQYoy&lang=zh' },
+      { id: '4-3_34', name: '惠州市西顿工业发展有限公司(Mayalit·玛雅照明)', code: 'KJ-TdMjisCUzo&lang=zh#/' },
+      { id: '4-3_35', name: '深蓝文化发展有限公司', code: 'KJ-8TbmA9lxdk&lang=zh' },
+      { id: '4-3_36', name: '深圳积木易搭科技技术有限公司', code: 'KJ-7roHTs4TJc&lang=zh' },
+      { id: '4-3_37', name: '河南显易文化科技有限公司', code: 'KJ-zHWrRiLiCQ&lang=zh' },
+      { id: '4-3_38', name: '河南文博信息科技有限公司', code: 'KJ-Umw7bNHrxg&lang=zh' },
+      { id: '4-3_39', name: '绥芬河星光量子科技有限公司', code: '' },
+      { id: '4-3_40', name: '上海宽创国际文化科技股份有限公司', code: 'KJ-AegaOcg1ot&lang=zh' },
+      { id: '4-3_41', name: '陕西十月文物保护有限公司', code: '' },
+      { id: '4-3_42', name: '苏州金螳螂文化发展股份有限公司', code: 'KJ-mFfRw5AYfy&lang=zh' },
+    ]
+  },
+
+  {
+    id: '4', name: '2D', son: [
+      { id: '4-4_1', name: '天津旺达文博展具有限公司', code: 'KJ-uUPVaIRFLf&lang=zh' },
+      { id: '4-4_2', name: '重庆声光电智联电子有限公司', code: '' },
+      { id: '4-4_3', name: '西安元智系统技术有限责任公司', code: 'KJ-ZJLHm817IR&lang=zh' },
+      { id: '4-4_4', name: '杭州众材科技股份有限公司', code: 'KJ-0G8IHOH13F&lang=zh' },
+      { id: '4-4_5', name: '北京四信数字技术有限公司', code: 'KJ-HysJSK3UWu&lang=zh' },
+      { id: '4-4_6', name: '上海衡元高分子材料有限公司', code: 'KJ-V5qUqkxPXV&lang=zh' },
+      { id: '4-4_7', name: '武汉旗云高科工程技术有限公司', code: '' },
+      { id: '4-4_8', name: '天津文博', code: '' },
+      { id: '4-4_9', name: '江西省博物馆', code: '' },
+      { id: '4-4_10', name: '景德镇中国陶瓷博物馆', code: 'KJ-8RvQO4WhPt&lang=zh' },
+      { id: '4-4_11', name: '瑞金中央革命根据地纪念馆', code: 'KJ-YMTaRNIphd&lang=zh' },
+      { id: '4-4_12', name: '赣州市博物馆', code: 'KJ-VKZLH88B3u&lang=zh' },
+      { id: '4-4_13', name: '九江市博物馆', code: 'KJ-ly9QvnRhSx&lang=zh' },
+      { id: '4-4_14', name: '庐山博物馆', code: '' },
+      { id: '4-4_15', name: '江西省九江市文物保护中心', code: '' },
+      { id: '4-4_16', name: '德安县博物馆', code: '' },
+      { id: '4-4_17', name: '八大山人纪念馆', code: 'KJ-EAuHl6vJED&lang=zh' },
+      { id: '4-4_18', name: '上饶市博物馆', code: '' },
+      { id: '4-4_19', name: '刘品三吉州窑陶瓷艺术博物馆', code: 'KJ-6aK0lUgcCm&lang=zh' },
+      { id: '4-4_20', name: '井冈山革命博物馆', code: 'KJ-ia00n5DBoV&lang=zh' },
+      { id: '4-4_21', name: '南昌八一起义纪念馆', code: '' },
+      { id: '4-4_22', name: '陕西文物', code: 'KJ-FbBBo9oBWr&lang=zh' },
+      { id: '4-4_23', name: '扬州博物馆', code: '' },
+      { id: '4-4_24', name: '宜兴市博物馆', code: '' },
+      { id: '4-4_25', name: '中原农耕文化博物馆', code: 'KJ-FROpb4aPIj&lang=zh' },
+      { id: '4-4_26', name: '龙山县里耶古城(秦简)博物馆', code: '' },
+      { id: '4-4_27', name: '曲靖市博物馆', code: 'KJ-J252hsisLO&lang=zh' },
+      { id: '4-4_28', name: '自贡恐龙博物馆', code: 'KJ-EMcEFecg06&lang=zh' },
+      { id: '4-4_29', name: '上海市知识青年历史文化研究会', code: 'KJ-7JO8XO2WWb&lang=zh' },
+      { id: '4-4_30', name: '吉林省博物馆协会', code: 'KJ-bE6doW0KXu&lang=zh' },
+      { id: '4-4_31', name: '白城市博物馆', code: '' },
+    ]
+  },
+
+  
+  {
+    id: '5', name: '2E', son: [
+      { id: '4-5_1', name: '贵州省博物馆', code: 'KJ-UXBnF4MrQM&lang=zh' },
+      { id: '4-5_2', name: '天津博物馆', code: 'KJ-qwymYupq79&lang=zh' },
+      { id: '4-5_3', name: '山东博物馆', code: 'KJ-Y85INipwFH&lang=zh' },
+      { id: '4-5_4', name: '孔子博物馆', code: 'KJ-6sI50HPE0v&lang=zh' },
+      { id: '4-5_5', name: '烟台市博物馆', code: 'KJ-6BDOQJHjhU&lang=zh' },
+      { id: '4-5_6', name: '淄博博物总馆', code: 'KJ-nyDrjC62N0&lang=zh#/' },
+      { id: '4-5_7', name: '青岛市博物馆', code: 'KJ-xFRj2KYAp2&lang=zh&pose=pano:8,qua:0.0171,0.0187,-0.0003,0.9997' },
+      { id: '4-5_8', name: '青岛啤酒博物馆', code: 'KJ-xFRj2KYAp2&lang=zh&pose=pano:10,qua:-0.0001,0.9895,-0.0005,-0.1445' },
+      { id: '4-5_9', name: '青岛一战遗址博物馆', code: 'KJ-xFRj2KYAp2&lang=zh&pose=pano:6,qua:0,1,-0.0063,-0.0014' },
+      { id: '4-5_10', name: '临沂市博物馆', code: 'KJ-3HOG6hEaxS&lang=zh' },
+      { id: '4-5_11', name: '滕州市汉画像石馆', code: '' },
+      { id: '4-5_12', name: '济南市博物馆', code: '' },
+      { id: '4-5_13', name: '浙江省博物馆', code: 'KJ-v1IYPIMscK&lang=zh' },
+      { id: '4-5_14', name: '浙江自然博物院', code: '' },
+      { id: '4-5_15', name: '杭州博物馆(杭州博物院(筹))', code: '' },
+      { id: '4-5_16', name: '杭州西湖博物馆总馆', code: '' },
+      { id: '4-5_17', name: '杭州工艺美术博物馆', code: '' },
+      { id: '4-5_18', name: '宁波博物院', code: 'KJ-L9vEgEsW3V&lang=zh' },
+      { id: '4-5_19', name: '中国港口博物馆', code: '' },
+      { id: '4-5_20', name: '新昌县博物馆', code: '' },
+      { id: '4-5_21', name: '温州博物馆', code: 'KJ-Y4HoeuKQuE&lang=zh' },
+      { id: '4-5_22', name: '宁夏回族自治区博物馆', code: 'KJ-pBs2MC05Hf&lang=zh' },
+      { id: '4-5_23', name: '长沙市博物馆', code: 'KJ-z52EUMUHKX&lang=zh' },
+      { id: '4-5_24', name: '河南驼人医学史博物馆', code: 'KJ-WkbpZ2f87G&lang=zh' },
+      { id: '4-5_25', name: '荆州博物馆', code: 'KJ-dOTu161qH8&lang=zh' },
+      { id: '4-5_26', name: '玉山县博物馆', code: 'KJ-Cc7fDqlb0Q&lang=zh' },
+      { id: '4-5_27', name: '南京中国科举博物馆', code: 'KJ-GjOUQIDOeR&lang=zh' },
+      { id: '4-5_28', name: '天津森罗科技股份有限公司', code: '' },
+      { id: '4-5_29', name: '航天康达(北京)科技发展有限公司', code: 'KJ-AyyEg91SP2&lang=zh' },
+      { id: '4-5_30', name: '安徽文保技术有限公司', code: '' },
+      { id: '4-5_31', name: '上海特锐艺术展览服务股份有限公司', code: 'KJ-qEb2ZdDDZW&lang=zh' },
+      { id: '4-5_32', name: '河北蓝器科技有限公司', code: '' },
+      { id: '4-5_33', name: '武汉安保通科技有限公司', code: 'KJ-5PvEq43ZDg&lang=zh' },
+      { id: '4-5_34', name: '北京鑫致城文博科技有限公司', code: 'KJ-hHP0lQGCa3&lang=zh' },
+      { id: '4-5_35', name: '中航规划设计研究总院有限公司', code: '' },
+      { id: '4-5_36', name: '机械工业仪器仪表综合技术经济研究所', code: 'KJ-H9thvun22U&lang=zh' },
+      { id: '4-5_37', name: '郑州枫华实业股份有限公司', code: 'KJ-nZqhtpaWYp&lang=zh' },
+      { id: '4-5_38', name: '北京亿鸿文博文化产业有限公司', code: 'KJ-CqjvdyFFmJ&lang=zh' },
+      { id: '4-5_39', name: '凯迈(洛阳)航空防护装备有限公司', code: 'KJ-y7Wa7n96m7&lang=zh' },
+      { id: '4-5_40', name: '北京东方大地虫害防治有限公司', code: 'KJ-eOckUUKfuA&lang=zh' },
+      { id: '4-5_41', name: '易元数字(北京)大数据科技有限公司', code: '' },
+    ]
+  },
+
+  {
+    id: '6', name: '2F', son: [
+      { id: '4-6_1', name: '首都博物馆', code: 'KJ-3JWgXDlXNz&lang=zh' },
+      { id: '4-6_2', name: '青海省博物馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:8,qua:0.0079,0.7191,-0.0082,0.6948' },
+      { id: '4-6_3', name: '西宁市博物馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:8,qua:0.0079,0.7191,-0.0082,0.6949' },
+      { id: '4-6_4', name: '海西州民族博物馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:8,qua:0.0153,-0.0336,0.0005,0.9993' },
+      { id: '4-6_5', name: '海南藏族自治州民族博物馆', code: 'KJ-KSG0lmlVv2&lang=zh' },
+      { id: '4-6_6', name: '黄南州民族博物馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:8,qua:0.0153,-0.0336,0.0005,0.9993' },
+      { id: '4-6_7', name: '青海藏医药文化博物馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:4,qua:-0.016,-0.006,-0.0001,0.9999' },
+      { id: '4-6_8', name: '青海原子城纪念馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:8,qua:0.0153,-0.0336,0.0005,0.9993' },
+      { id: '4-6_9', name: '青藏高原自然博物馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:4,qua:-0.016,-0.006,-0.0001,0.9999' },
+      { id: '4-6_10', name: '青海省马佳肴民族文化博物馆', code: 'KJ-KSG0lmlVv2&lang=zh&pose=pano:4,qua:-0.016,-0.006,-0.0001,0.9998' },
+      { id: '4-6_11', name: '上海大学博物馆', code: 'KJ-n88TPgrV9l&lang=zh' },
+      { id: '4-6_12', name: '故宫学校', code: 'KJ-8eNP7Uc4Wq&lang=zh' },
+      { id: '4-6_13', name: '中国图片社', code: 'KJ-xRb5PTJG4x&lang=zh' },
+      { id: '4-6_14', name: '博物馆进校园', code: 'KJ-66x5bS1HQX&lang=zh' },
+      { id: '4-6_15', name: '全国博物馆志愿者工作现状展示', code: 'KJ-QIXLGXv6wV&lang=zh' },
+    ]
+  },
+
+]
+
+export const exArr1 = [
+  {
+    id: '1', name: '分区一', son: [
+      { id: '1-1_1', name: '会展中心-东', code: 'fd720_JMzTknCLP' },
+      { id: '1-1_2', name: '会展中心-南', code: 'fd720_yRDf7M2hT' },
+      { id: '1-1_3', name: '会展中心-西', code: 'fd720_8Tcr5WYvs' },
+      { id: '1-1_4', name: '会展中心-北', code: 'fd720_dHt5DtjVe' },
+      { id: '1-1_5', name: '会展中心-俯视图', code: 'fd720_NDlTPkSgR' },
+    ]
+  },
+]
+
+export const exArr2 = [
+  {
+    id: '1', name: '分区一', son: [
+      { id: '2-1_1', name: '如意湖', code: 'fd720_NFHYfqOas' },
+      { id: '2-1_2', name: '会展中心-5号入口', code: 'fd720_X2AKORlBC' },
+      { id: '2-1_3', name: '二展区-2D入口', code: 'fd720_coNPIrnQc' },
+      { id: '2-1_4', name: '二展区-2C入口', code: 'fd720_VSWx00xHT' },
+      { id: '2-1_5', name: '二展区-2B入口', code: 'fd720_BJIu6XaVW' },
+      { id: '2-1_6', name: '二展区-2F入口', code: 'fd720_3M4cOwbO9' },
+      { id: '2-1_7', name: '二展区-2C入口', code: 'fd720_cjdEr43KC' },
+      { id: '2-1_8', name: '二展区-2E入口', code: 'fd720_uSStvJ9tj' },
+      { id: '2-1_9', name: '二展区-2A入口', code: 'fd720_cEB4rJe48' },
+      { id: '2-1_10', name: '会展中心-会议处入口', code: 'fd720_Hm68jJbA0' },
+      { id: '2-1_11', name: '一展区-1C入口', code: 'fd720_9mejO1Idz' },
+      { id: '2-1_12', name: '一展区-1C入口', code: 'fd720_cG3ZjLfYC' },
+      { id: '2-1_13', name: '会展中心-服务台', code: 'fd720_5vDN5o0Uz' },
+      { id: '2-1_14', name: '一展区-1B入口', code: 'fd720_puuJTvVS1' },
+      { id: '2-1_15', name: '一展区-1F入口', code: 'fd720_dG9qSUhcL' },
+      { id: '2-1_16', name: '一展区-1A入口', code: 'fd720_KMoH8qZkf' },
+      { id: '2-1_17', name: '一展区-1D入口', code: 'fd720_OmLksbhPj' },
+    ]
+  },
+]

+ 3 - 0
mo/vue.config.js

@@ -0,0 +1,3 @@
+module.exports = {
+  publicPath: './'
+}

+ 11 - 0
pc/package-lock.json

@@ -11,6 +11,7 @@
         "core-js": "^3.6.5",
         "element-ui": "^2.15.9",
         "vue": "^2.6.11",
+        "vue-lazyload": "^1.3.3",
         "vue-router": "^3.2.0"
       },
       "devDependencies": {
@@ -13323,6 +13324,11 @@
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },
+    "node_modules/vue-lazyload": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.3.4.tgz",
+      "integrity": "sha512-K0frbPQJuvFHVpdl/ov5CqCR/CHWeLGs8E8V1d/09DIETqBjeGhC1fLMmwUy3Go2Yd/VX610AZ7Mdn4B54592Q=="
+    },
     "node_modules/vue-loader": {
       "version": "15.10.0",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz",
@@ -25521,6 +25527,11 @@
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },
+    "vue-lazyload": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.3.4.tgz",
+      "integrity": "sha512-K0frbPQJuvFHVpdl/ov5CqCR/CHWeLGs8E8V1d/09DIETqBjeGhC1fLMmwUy3Go2Yd/VX610AZ7Mdn4B54592Q=="
+    },
     "vue-loader": {
       "version": "15.10.0",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz",

+ 2 - 1
pc/package.json

@@ -10,7 +10,8 @@
     "core-js": "^3.6.5",
     "element-ui": "^2.15.9",
     "vue": "^2.6.11",
-    "vue-router": "^3.2.0"
+    "vue-router": "^3.2.0",
+    "vue-lazyload": "^1.3.3"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "~4.5.13",

BIN
pc/public/favicon.ico


BIN
pc/public/img/4-3_12.jpg


BIN
pc/public/img/4-3_13.jpg


BIN
pc/public/img/4-3_14.jpg


BIN
pc/public/img/4-3_15.jpg


BIN
pc/public/img/4-3_16.jpg


BIN
pc/public/img/4-3_17.jpg


BIN
pc/public/img/4-3_19.jpg


BIN
pc/public/img/4-3_20.jpg


BIN
pc/public/img/4-3_21.jpg


BIN
pc/public/img/4-3_22.jpg


BIN
pc/public/img/4-3_23.jpg


BIN
pc/public/img/4-3_24.jpg


BIN
pc/public/img/4-3_7.jpg


+ 0 - 0
pc/public/img/4-3_8.jpg


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません