gemer пре 4 година
комит
259750749a
100 измењених фајлова са 12091 додато и 0 уклоњено
  1. 3 0
      .browserslistrc
  2. 3 0
      .env
  3. 17 0
      .eslintrc.js
  4. 22 0
      .gitignore
  5. 24 0
      README.md
  6. 5 0
      babel.config.js
  7. 11656 0
      package-lock.json
  8. 31 0
      package.json
  9. 30 0
      public/index.html
  10. 30 0
      public/mobile.html
  11. 195 0
      public/static/js/audio.min.1.0.4.js
  12. 4 0
      public/static/js/jquery-2.1.1.min.js
  13. 71 0
      src/App.vue
  14. BIN
      src/assets/images/backtotop.png
  15. BIN
      src/assets/images/bg_1.jpg
  16. BIN
      src/assets/images/bg_1.png
  17. BIN
      src/assets/images/bg_2.jpg
  18. BIN
      src/assets/images/bg_3.jpg
  19. BIN
      src/assets/images/bg_3.png
  20. BIN
      src/assets/images/bg_4.jpg
  21. BIN
      src/assets/images/bg_5.jpg
  22. BIN
      src/assets/images/bg_end.jpg
  23. BIN
      src/assets/images/bg_qianyan.jpg
  24. BIN
      src/assets/images/bg_tapian.jpg
  25. BIN
      src/assets/images/biaotikuang.png
  26. BIN
      src/assets/images/biaotikuang_anhuang.png
  27. BIN
      src/assets/images/biaotikuang_ganlanlv.png
  28. BIN
      src/assets/images/biaotikuang_juhong.png
  29. BIN
      src/assets/images/biaotikuang_tianlan.png
  30. BIN
      src/assets/images/bofang.png
  31. BIN
      src/assets/images/bottom1.png
  32. BIN
      src/assets/images/bottom2.png
  33. BIN
      src/assets/images/bottom3.png
  34. BIN
      src/assets/images/bottom4.png
  35. BIN
      src/assets/images/cbottom1.png
  36. BIN
      src/assets/images/close.png
  37. BIN
      src/assets/images/collection/1_1.png
  38. BIN
      src/assets/images/collection/1_2.png
  39. BIN
      src/assets/images/collection/1_3.png
  40. BIN
      src/assets/images/collection/2_1.png
  41. BIN
      src/assets/images/collection/2_2.png
  42. BIN
      src/assets/images/collection/2_3.png
  43. BIN
      src/assets/images/collection/3_1.png
  44. BIN
      src/assets/images/collection/3_2.png
  45. BIN
      src/assets/images/collection/3_3.png
  46. BIN
      src/assets/images/collection/4_1.png
  47. BIN
      src/assets/images/collection/4_2.png
  48. BIN
      src/assets/images/collection/4_3.png
  49. BIN
      src/assets/images/collection/5_1.png
  50. BIN
      src/assets/images/collection/5_2.png
  51. BIN
      src/assets/images/collection/5_3.png
  52. BIN
      src/assets/images/collection_bg.png
  53. BIN
      src/assets/images/commentary@2x.png
  54. BIN
      src/assets/images/commentary_active@2x.png
  55. BIN
      src/assets/images/commentary_activey@2x.png
  56. BIN
      src/assets/images/commentaryw@2x.png
  57. BIN
      src/assets/images/content.png
  58. BIN
      src/assets/images/content_anhuang.png
  59. BIN
      src/assets/images/content_ganlanlv.png
  60. BIN
      src/assets/images/content_juhong.png
  61. BIN
      src/assets/images/content_tianlan.png
  62. BIN
      src/assets/images/cright1.png
  63. BIN
      src/assets/images/ctop1.png
  64. BIN
      src/assets/images/ctop2.png
  65. BIN
      src/assets/images/digital_bg.png
  66. BIN
      src/assets/images/dynamic_bg.png
  67. BIN
      src/assets/images/end_bg.png
  68. BIN
      src/assets/images/footer-logo.png
  69. BIN
      src/assets/images/full.png
  70. BIN
      src/assets/images/hb.png
  71. BIN
      src/assets/images/hz_w.jpg
  72. BIN
      src/assets/images/hz_w.png
  73. BIN
      src/assets/images/hz_y.jpg
  74. BIN
      src/assets/images/hz_y.png
  75. BIN
      src/assets/images/itemBg_r.png
  76. BIN
      src/assets/images/itemBg_y.png
  77. BIN
      src/assets/images/jiantou.png
  78. BIN
      src/assets/images/logo.png
  79. BIN
      src/assets/images/lstar.png
  80. BIN
      src/assets/images/lstar_anhuang.png
  81. BIN
      src/assets/images/lstar_ganlanlv.png
  82. BIN
      src/assets/images/lstar_juhong.png
  83. BIN
      src/assets/images/lstar_tianlan.png
  84. BIN
      src/assets/images/lunbotu.jpg
  85. BIN
      src/assets/images/mobile/banner.jpg
  86. BIN
      src/assets/images/mobile/menu.png
  87. BIN
      src/assets/images/next_r.png
  88. BIN
      src/assets/images/next_w.png
  89. BIN
      src/assets/images/noresult.png
  90. BIN
      src/assets/images/notice.png
  91. BIN
      src/assets/images/notice_anhuang.png
  92. BIN
      src/assets/images/notice_ganlanlv.png
  93. BIN
      src/assets/images/notice_juhong.png
  94. BIN
      src/assets/images/notice_tianlan.png
  95. BIN
      src/assets/images/outfull.png
  96. BIN
      src/assets/images/prev_r.png
  97. BIN
      src/assets/images/prev_w.png
  98. BIN
      src/assets/images/qrcode.jpg
  99. BIN
      src/assets/images/readmore.png
  100. 0 0
      src/assets/images/readmore@2x.png

+ 3 - 0
.browserslistrc

@@ -0,0 +1,3 @@
+> 1%
+last 2 versions
+not dead

+ 3 - 0
.env

@@ -0,0 +1,3 @@
+VUE_APP_MAIN_COLOR=''
+VUE_APP_STATIC_DIR=static
+VUE_APP_PROXY_URL=''

+ 17 - 0
.eslintrc.js

@@ -0,0 +1,17 @@
+module.exports = {
+  root: true,
+  env: {
+    node: true
+  },
+  'extends': [
+    'plugin:vue/essential',
+    'eslint:recommended'
+  ],
+  parserOptions: {
+    parser: 'babel-eslint'
+  },
+  rules: {
+    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
+  }
+}

+ 22 - 0
.gitignore

@@ -0,0 +1,22 @@
+.DS_Store
+node_modules
+/dist
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?

+ 24 - 0
README.md

@@ -0,0 +1,24 @@
+# web
+
+## Project setup
+```
+npm install
+```
+
+### Compiles and hot-reloads for development
+```
+npm run serve
+```
+
+### Compiles and minifies for production
+```
+npm run build
+```
+
+### Lints and fixes files
+```
+npm run lint
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).

+ 5 - 0
babel.config.js

@@ -0,0 +1,5 @@
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ]
+}

Разлика између датотеке није приказан због своје велике величине
+ 11656 - 0
package-lock.json


+ 31 - 0
package.json

@@ -0,0 +1,31 @@
+{
+  "name": "web",
+  "version": "0.1.0",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build",
+    "lint": "vue-cli-service lint"
+  },
+  "dependencies": {
+    "axios": "^0.19.2",
+    "core-js": "^3.8.2",
+    "swiper": "^5.4.5",
+    "vue": "^2.6.11",
+    "vue-awesome-swiper": "^4.1.1",
+    "vue-router": "^3.2.0",
+    "vuex": "^3.5.1"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "~4.4.0",
+    "@vue/cli-plugin-eslint": "~4.4.0",
+    "@vue/cli-plugin-router": "~4.4.0",
+    "@vue/cli-service": "~4.4.0",
+    "babel-eslint": "^10.1.0",
+    "eslint": "^6.7.2",
+    "eslint-plugin-vue": "^6.2.2",
+    "less": "^3.0.4",
+    "less-loader": "^5.0.0",
+    "vue-template-compiler": "^2.6.11"
+  }
+}

+ 30 - 0
public/index.html

@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="renderer" content="webkit">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
+    <meta name="format-detection" content="telephone=no">
+    <link rel="icon" href="<%= BASE_URL %>favicon.png">
+    <title>川陕苏区税收文物陈列展</title>
+    <script>
+      (function(){
+        if (navigator.userAgent.indexOf('iPhone') > -1 || navigator.userAgent.indexOf('Android') > -1) {
+                window.location.href = '/mobile.html';
+            }
+        })();
+    </script>
+  </head>
+  <body>
+    <noscript>
+      <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>
+    <script src="<%= VUE_APP_STATIC_DIR %>/js/jquery-2.1.1.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/js/audio.min.1.0.4.js"></script>
+
+    <!-- built files will be auto injected -->
+  </body>
+</html>

+ 30 - 0
public/mobile.html

@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="renderer" content="webkit">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
+    <meta name="format-detection" content="telephone=no">
+    <link rel="icon" href="<%= BASE_URL %>favicon.png">
+    <title>川陕苏区税收文物陈列展</title>
+    <script>
+      (function(){
+        if (!(navigator.userAgent.indexOf('iPhone') > -1 || navigator.userAgent.indexOf('Android') > -1)) {
+                window.location.href = '/';
+            }
+        })();
+    </script>
+  </head>
+  <body>
+    <noscript>
+      <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>
+    <script src="<%= VUE_APP_STATIC_DIR %>/js/jquery-2.1.1.min.js"></script>
+    <script src="<%= VUE_APP_STATIC_DIR %>/js/audio.min.1.0.4.js"></script>
+
+    <!-- built files will be auto injected -->
+  </body>
+</html>

+ 195 - 0
public/static/js/audio.min.1.0.4.js

@@ -0,0 +1,195 @@
+/*
+ * $(selector).initAudioPlayer();
+ * 不支持自动播放-想了下,用播放器样式的一般都不自动播放,影响用户体验。一般要自动播放的都不需要进度条之类的,需要一个切换按钮即可。
+ * 不支持audio的浏览器直接return
+ */
+
+(function ($, window, document, undefined) {
+  // 播放器样式 - 替换到css更改样式即可
+
+  var onMobile = 'ontouchstart' in window,
+    eStart = onMobile ? 'touchstart' : 'mousedown',
+    eMove = onMobile ? 'touchmove' : 'mousemove',
+    eCancel = onMobile ? 'touchcancel' : 'mouseup',
+    hackPrefixes = ['webkit', 'moz', 'ms', 'o'],
+    hackHiddenProperty = getHackHidden();
+
+  $.fn.initAudioPlayer = function () {
+    // 遍历处理audio
+    this.each(function () {
+      if ($(this).prop('tagName').toLowerCase() !== 'audio') {
+        return;
+      }
+
+      var $this = $(this),
+        file = $this.attr('src'),
+        isSupport = false;
+
+      if (canFilePlay(file)) {
+        isSupport = true;
+      } else {
+        $this.find('source').each(function () {
+          if (canFilePlay($(this).attr('src'))) {
+            isSupport = true;
+            return false;
+          }
+        });
+      }
+
+      if (!isSupport) {
+        return;
+      }
+
+      // 添加播放器盒子
+      var $player = $('<div class="ppq-audio-player">' + $('<div>').append($this.eq(0).clone()).html() + '<div class="play-pause-btn"><a href="javascript: void(0);" class="play-pause-icon"></a></div></div>'),
+        audioEle = $player.find('audio')[0];
+
+      $player.find('audio').addClass('audio-hidden');
+      $player.append('<div class="player-time player-time-current"></div>\
+				<div class="player-time player-time-duration"></div>\
+				<div class="player-bar">\
+					<div class="player-bar-loaded"></div>\
+					<div class="player-bar-played"></div>\
+				</div>');
+
+      var $bar = $player.find('.player-bar'),
+        $played = $player.find('.player-bar-played'),
+        $loaded = $player.find('.player-bar-loaded'),
+        $current = $player.find('.player-time-current'),
+        $duration = $player.find('.player-time-duration');
+
+      $current.html('00:00');
+      $duration.html('&hellip;');
+
+      initAudioEvents();
+      bindPageEvents();
+      $this.replaceWith($player);
+
+      function initAudioEvents() {
+        // 监听loadeddata,渲染进度条和时间
+        audioEle.addEventListener('loadeddata', function () {
+          var loadTimer = setInterval(function () {
+            if (audioEle.buffered.length < 1) {
+              return true;
+            }
+            $loaded.width((audioEle.buffered.end(0) / audioEle.duration) * 100 + '%');
+            if (Math.floor(audioEle.buffered.end(0)) >= Math.floor(audioEle.duration)) {
+              clearInterval(loadTimer);
+            }
+          }, 100);
+          $duration.html($.isNumeric(audioEle.duration) ? convertTimeStr(audioEle.duration) : '&hellip;');
+        });
+
+        // 监听timeupdate,更新时间和进度条
+        audioEle.addEventListener('timeupdate', function () {
+          $current.html(convertTimeStr(audioEle.currentTime));
+          $played.width((audioEle.currentTime / audioEle.duration) * 100 + '%');
+        });
+
+        // 监听ended,播放完恢复暂停状态
+        audioEle.addEventListener('ended', function () {
+          $player.removeClass('player-playing').addClass('player-paused');
+        });
+      }
+
+      function bindPageEvents() {
+        // 监听进度条touch,更新进度条和播放进度
+        $bar.on(eStart, function (e) {
+          audioEle.currentTime = getCurrentTime(e);
+          $bar.on(eMove, function (e) {
+            audioEle.currentTime = getCurrentTime(e);
+          });
+        }).on(eCancel, function () {
+          $bar.unbind(eMove);
+        });
+
+        // 监听播放暂停按钮click
+        $player.find('.play-pause-btn').on('click', function () {
+          if ($player.hasClass('player-playing')) {
+            $player.removeClass('player-playing').addClass('player-paused');
+            audioEle.pause();
+          } else {
+            $player.addClass('player-playing').removeClass('player-paused');
+            audioEle.play();
+          }
+          return false;
+        });
+      }
+
+      function getCurrentTime(e) {
+        var et = onMobile ? e.originalEvent.touches[0] : e;
+        return Math.round((audioEle.duration * (et.pageX - $bar.offset().left)) / $bar.width());
+      }
+
+      if (hackHiddenProperty) {
+        var evtname = hackHiddenProperty.replace(/[H|h]idden/, '') + 'visibilitychange';
+        document.addEventListener(evtname, function () {
+          if (isHidden() || getHackVisibilityState() === 'hidden') {
+            $player.removeClass('player-playing').addClass('player-paused');
+            audioEle.pause();
+          }
+        }, false);
+      }
+
+      window.addEventListener('beforeunload', function () {
+        $player.removeClass('player-playing').addClass('player-paused');
+        audioEle.pause();
+      }, false);
+    });
+    return this;
+  }
+
+  // 秒转为时间字符串
+  function convertTimeStr(secs) {
+    var m = Math.floor(secs / 60),
+      s = Math.floor(secs - m * 60);
+    return (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s);
+  }
+
+  // 判断文件能不能播放
+  function canFilePlay(file) {
+    if (!file) {
+      return false;
+    }
+    var media = document.createElement('audio');
+    if (typeof media.canPlayType !== 'function') {
+      return false;
+    }
+
+    var res = media.canPlayType('audio/' + file.split('.').pop().toLowerCase());
+    return res === 'probably' || res === 'maybe';
+  }
+
+  function getHackHidden() {
+    if ('hidden' in document) {
+      return 'hidden';
+    }
+    for (var i = 0; i < hackPrefixes.length; i++) {
+      if ((hackPrefixes[i] + 'Hidden') in document) {
+        return hackPrefixes[i] + 'Hidden';
+      }
+    }
+    return null;
+  }
+
+  function getHackVisibilityState() {
+    if ('visibilityState' in document) {
+      return 'visibilityState';
+    }
+    for (var i = 0; i < hackPrefixes.length; i++) {
+      if ((hackPrefixes[i] + 'VisibilityState') in document) {
+        return hackPrefixes[i] + 'VisibilityState';
+      }
+    }
+    return null;
+  }
+
+  function isHidden() {
+    var hide = getHackHidden();
+    if (!hide) {
+      return false;
+    }
+
+    return document[hide];
+  }
+})(jQuery, window, document);

Разлика између датотеке није приказан због своје велике величине
+ 4 - 0
public/static/js/jquery-2.1.1.min.js


+ 71 - 0
src/App.vue

@@ -0,0 +1,71 @@
+<template>
+  <div id="app" :class="`theme${theme}`">
+    <!-- <Welcome @close="welcome = false" v-if="welcome"/> -->
+
+    <layout/>
+    <!-- <div class="banbentips" v-else>
+      <div>浏览器版内核版本过低,无法正常浏览网页,建议使用Chrome(谷歌)浏览器,Firefox(火狐)浏览器(版本号80或以上),360安全浏览器(版本10或以上)</div>
+      <div>
+        <p v-html="tips[0]"></p>
+        <p v-html="tips[1]"></p>
+      </div>
+      <div>{{link}}</div>
+    </div> -->
+    <!-- <button @click="changeColor">改变颜色</button> -->
+  </div>
+</template>
+
+<script>
+import '@/assets/style/reset.less'
+import '@/assets/style/public.less'
+import '@/assets/theme/color.less'
+import Welcome from "@/components/welcome";
+
+import layout from '@/views/layout/index.vue'
+import {mapState} from 'vuex'
+import broswer from './config/broswer'
+
+export default {
+  components:{
+    layout,
+    Welcome
+  },
+  data(){
+    return {
+      broswer,
+      link: window.location.href,
+      tips:[],
+      canUse:false,
+      welcome:true
+    }
+  },
+  methods:{
+    changeColor(){
+      document.getElementById('app').className = 'theme2'
+    }
+  },
+  mounted(){
+    
+  },
+  computed:{
+    ...mapState({
+      theme: state => state.common.theme
+    })
+  }
+}
+</script>
+
+<style lang="less">
+#app {
+  text-align: center;
+  color: #2c3e50;
+}
+
+.banbentips{
+  color: #000;
+  width: 100%;
+  padding-top: 80px;
+  line-height: 2;
+}
+
+</style>

BIN
src/assets/images/backtotop.png


BIN
src/assets/images/bg_1.jpg


BIN
src/assets/images/bg_1.png


BIN
src/assets/images/bg_2.jpg


BIN
src/assets/images/bg_3.jpg


BIN
src/assets/images/bg_3.png


BIN
src/assets/images/bg_4.jpg


BIN
src/assets/images/bg_5.jpg


BIN
src/assets/images/bg_end.jpg


BIN
src/assets/images/bg_qianyan.jpg


BIN
src/assets/images/bg_tapian.jpg


BIN
src/assets/images/biaotikuang.png


BIN
src/assets/images/biaotikuang_anhuang.png


BIN
src/assets/images/biaotikuang_ganlanlv.png


BIN
src/assets/images/biaotikuang_juhong.png


BIN
src/assets/images/biaotikuang_tianlan.png


BIN
src/assets/images/bofang.png


BIN
src/assets/images/bottom1.png


BIN
src/assets/images/bottom2.png


BIN
src/assets/images/bottom3.png


BIN
src/assets/images/bottom4.png


BIN
src/assets/images/cbottom1.png


BIN
src/assets/images/close.png


BIN
src/assets/images/collection/1_1.png


BIN
src/assets/images/collection/1_2.png


BIN
src/assets/images/collection/1_3.png


BIN
src/assets/images/collection/2_1.png


BIN
src/assets/images/collection/2_2.png


BIN
src/assets/images/collection/2_3.png


BIN
src/assets/images/collection/3_1.png


BIN
src/assets/images/collection/3_2.png


BIN
src/assets/images/collection/3_3.png


BIN
src/assets/images/collection/4_1.png


BIN
src/assets/images/collection/4_2.png


BIN
src/assets/images/collection/4_3.png


BIN
src/assets/images/collection/5_1.png


BIN
src/assets/images/collection/5_2.png


BIN
src/assets/images/collection/5_3.png


BIN
src/assets/images/collection_bg.png


BIN
src/assets/images/commentary@2x.png


BIN
src/assets/images/commentary_active@2x.png


BIN
src/assets/images/commentary_activey@2x.png


BIN
src/assets/images/commentaryw@2x.png


BIN
src/assets/images/content.png


BIN
src/assets/images/content_anhuang.png


BIN
src/assets/images/content_ganlanlv.png


BIN
src/assets/images/content_juhong.png


BIN
src/assets/images/content_tianlan.png


BIN
src/assets/images/cright1.png


BIN
src/assets/images/ctop1.png


BIN
src/assets/images/ctop2.png


BIN
src/assets/images/digital_bg.png


BIN
src/assets/images/dynamic_bg.png


BIN
src/assets/images/end_bg.png


BIN
src/assets/images/footer-logo.png


BIN
src/assets/images/full.png


BIN
src/assets/images/hb.png


BIN
src/assets/images/hz_w.jpg


BIN
src/assets/images/hz_w.png


BIN
src/assets/images/hz_y.jpg


BIN
src/assets/images/hz_y.png


BIN
src/assets/images/itemBg_r.png


BIN
src/assets/images/itemBg_y.png


BIN
src/assets/images/jiantou.png


BIN
src/assets/images/logo.png


BIN
src/assets/images/lstar.png


BIN
src/assets/images/lstar_anhuang.png


BIN
src/assets/images/lstar_ganlanlv.png


BIN
src/assets/images/lstar_juhong.png


BIN
src/assets/images/lstar_tianlan.png


BIN
src/assets/images/lunbotu.jpg


BIN
src/assets/images/mobile/banner.jpg


BIN
src/assets/images/mobile/menu.png


BIN
src/assets/images/next_r.png


BIN
src/assets/images/next_w.png


BIN
src/assets/images/noresult.png


BIN
src/assets/images/notice.png


BIN
src/assets/images/notice_anhuang.png


BIN
src/assets/images/notice_ganlanlv.png


BIN
src/assets/images/notice_juhong.png


BIN
src/assets/images/notice_tianlan.png


BIN
src/assets/images/outfull.png


BIN
src/assets/images/prev_r.png


BIN
src/assets/images/prev_w.png


BIN
src/assets/images/qrcode.jpg


BIN
src/assets/images/readmore.png


+ 0 - 0
src/assets/images/readmore@2x.png


Неке датотеке нису приказане због велике количине промена