Browse Source

物流园项目的跟新

feature
wangrongrong 4 years ago
parent
commit
7f6d73221b
  1. 6
      .env.development
  2. 387
      package-lock.json
  3. 3
      package.json
  4. 1
      src/App.vue
  5. 6
      src/api/index.ts
  6. BIN
      src/assets/audio.mp3
  7. BIN
      src/assets/fifvideo.mp4
  8. BIN
      src/assets/forvideo.mp4
  9. BIN
      src/assets/sedaudio.wav
  10. BIN
      src/assets/sedvideo.mp4
  11. BIN
      src/assets/sevenvideo.mp4
  12. BIN
      src/assets/sixvideo.mp4
  13. BIN
      src/assets/thvideo.mp4
  14. BIN
      src/assets/video.mp4
  15. 5
      src/components/amount.vue
  16. 11
      src/components/curve.vue
  17. 33
      src/components/finance.vue
  18. 8
      src/components/footer-bar.vue
  19. 75
      src/components/memorabilia.vue
  20. 21
      src/components/news.vue
  21. 2
      src/components/top-bar.vue
  22. 6
      src/main.ts
  23. 1
      src/router/index.ts
  24. 46
      src/views/audio.html
  25. 154
      src/views/jht.vue
  26. 216
      src/views/news.vue
  27. 116
      src/views/repo-5.vue
  28. 115
      src/views/repo-yj.vue
  29. 134
      src/views/xh.vue

6
.env.development

@ -1,5 +1,5 @@
VITE_API_URL=https://test.tall.wiki/gateway
VITE_ROOT_URL=https://test.tall.wiki
VITE_PROXY=[["/gateway", "https://test.tall.wiki/gateway"]]
VITE_API_URL=https://www.tall.wiki/gateway
VITE_ROOT_URL=https://www.tall.wiki
VITE_PROXY=[["/gateway", "https://www.tall.wiki/gateway"]]
VITE_BASE_URL=/gateway/logistics
VITE_PUBLIC_PATH=/public

387
package-lock.json

@ -4,6 +4,30 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@ant-design/colors": {
"version": "5.1.1",
"resolved": "https://registry.nlark.com/@ant-design/colors/download/@ant-design/colors-5.1.1.tgz",
"integrity": "sha1-gAshhrHifmZDLmfQPtlq8+IdiUA=",
"requires": {
"@ctrl/tinycolor": "^3.3.1"
}
},
"@ant-design/icons-svg": {
"version": "4.1.0",
"resolved": "https://registry.nlark.com/@ant-design/icons-svg/download/@ant-design/icons-svg-4.1.0.tgz",
"integrity": "sha1-SAsCX0sg73/o9H1KSEbk/uhOoGw="
},
"@ant-design/icons-vue": {
"version": "6.0.1",
"resolved": "https://registry.nlark.com/@ant-design/icons-vue/download/@ant-design/icons-vue-6.0.1.tgz",
"integrity": "sha1-nYBMPHTSz6+XyxjlgtO5QAk09f0=",
"requires": {
"@ant-design/colors": "^5.0.0",
"@ant-design/icons-svg": "^4.0.0",
"@types/lodash": "^4.14.165",
"lodash": "^4.17.15"
}
},
"@babel/code-frame": {
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
@ -47,6 +71,14 @@
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz",
"integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q=="
},
"@babel/runtime": {
"version": "7.14.8",
"resolved": "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.8.tgz",
"integrity": "sha1-cRmlb0IQGIUmlCkLn5FICXORtEY=",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"@babel/types": {
"version": "7.14.1",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz",
@ -56,6 +88,11 @@
"to-fast-properties": "^2.0.0"
}
},
"@ctrl/tinycolor": {
"version": "3.4.0",
"resolved": "https://registry.nlark.com/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz",
"integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8="
},
"@eslint/eslintrc": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz",
@ -125,6 +162,15 @@
"fastq": "^1.6.0"
}
},
"@simonwep/pickr": {
"version": "1.8.1",
"resolved": "https://registry.nlark.com/@simonwep/pickr/download/@simonwep/pickr-1.8.1.tgz?cache=0&sync_timestamp=1620897298440&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40simonwep%2Fpickr%2Fdownload%2F%40simonwep%2Fpickr-1.8.1.tgz",
"integrity": "sha1-4TbL2cNF3bt9cesUr1RMeYFl1JU=",
"requires": {
"core-js": "^3.12.1",
"nanopop": "^2.1.0"
}
},
"@types/json-schema": {
"version": "7.0.7",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
@ -137,6 +183,11 @@
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
"dev": true
},
"@types/lodash": {
"version": "4.14.172",
"resolved": "https://registry.nlark.com/@types/lodash/download/@types/lodash-4.14.172.tgz?cache=0&sync_timestamp=1627979605404&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Flodash%2Fdownload%2F%40types%2Flodash-4.14.172.tgz",
"integrity": "sha1-qtd0wo57/Xpn3iVAjgPuWow9Aoo="
},
"@types/node": {
"version": "15.0.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.2.tgz",
@ -226,6 +277,44 @@
"eslint-visitor-keys": "^2.0.0"
}
},
"@videojs/http-streaming": {
"version": "2.9.2",
"resolved": "https://registry.nlark.com/@videojs/http-streaming/download/@videojs/http-streaming-2.9.2.tgz",
"integrity": "sha1-R9M7sCvZwShyADmLHoXSE97oFNA=",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.2",
"aes-decrypter": "3.1.2",
"global": "^4.4.0",
"m3u8-parser": "4.7.0",
"mpd-parser": "0.17.0",
"mux.js": "5.12.2",
"video.js": "^6 || ^7"
}
},
"@videojs/vhs-utils": {
"version": "3.0.3",
"resolved": "https://registry.nlark.com/@videojs/vhs-utils/download/@videojs/vhs-utils-3.0.3.tgz?cache=0&sync_timestamp=1627312050415&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40videojs%2Fvhs-utils%2Fdownload%2F%40videojs%2Fvhs-utils-3.0.3.tgz",
"integrity": "sha1-cIvFB0LpSBcSA5aVKZsy2mWC75I=",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"global": "^4.4.0",
"url-toolkit": "^2.2.1"
}
},
"@videojs/xhr": {
"version": "2.5.1",
"resolved": "https://registry.nlark.com/@videojs/xhr/download/@videojs/xhr-2.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40videojs%2Fxhr%2Fdownload%2F%40videojs%2Fxhr-2.5.1.tgz",
"integrity": "sha1-JrxaeduzsDv7E3QsbOVZ+J6QcZ4=",
"dev": true,
"requires": {
"@babel/runtime": "^7.5.5",
"global": "~4.4.0",
"is-function": "^1.0.1"
}
},
"@vitejs/plugin-vue": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-1.2.2.tgz",
@ -348,6 +437,18 @@
"integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=",
"dev": true
},
"aes-decrypter": {
"version": "3.1.2",
"resolved": "https://registry.npm.taobao.org/aes-decrypter/download/aes-decrypter-3.1.2.tgz",
"integrity": "sha1-NUVUb46fa4eGQDOaJC7+Ihunp8s=",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.0",
"global": "^4.4.0",
"pkcs7": "^1.0.4"
}
},
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@ -381,6 +482,28 @@
"color-convert": "^1.9.0"
}
},
"ant-design-vue": {
"version": "2.2.3",
"resolved": "https://registry.nlark.com/ant-design-vue/download/ant-design-vue-2.2.3.tgz?cache=0&sync_timestamp=1628321501487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fant-design-vue%2Fdownload%2Fant-design-vue-2.2.3.tgz",
"integrity": "sha1-H8zV8BQ+JEYcUJhIx9OMJWm6b+E=",
"requires": {
"@ant-design/icons-vue": "^6.0.0",
"@babel/runtime": "^7.10.5",
"@simonwep/pickr": "~1.8.0",
"array-tree-filter": "^2.1.0",
"async-validator": "^3.3.0",
"dom-align": "^1.12.1",
"dom-scroll-into-view": "^2.0.0",
"lodash": "^4.17.21",
"lodash-es": "^4.17.15",
"moment": "^2.27.0",
"omit.js": "^2.0.0",
"scroll-into-view-if-needed": "^2.2.25",
"shallow-equal": "^1.0.0",
"vue-types": "^3.0.0",
"warning": "^4.0.0"
}
},
"anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.2.tgz?cache=0&sync_timestamp=1617747806715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-3.1.2.tgz",
@ -413,6 +536,11 @@
"is-string": "^1.0.5"
}
},
"array-tree-filter": {
"version": "2.1.0",
"resolved": "https://registry.nlark.com/array-tree-filter/download/array-tree-filter-2.1.0.tgz",
"integrity": "sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA="
},
"array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@ -436,6 +564,11 @@
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true
},
"async-validator": {
"version": "3.5.2",
"resolved": "https://registry.nlark.com/async-validator/download/async-validator-3.5.2.tgz",
"integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA="
},
"at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz",
@ -705,6 +838,11 @@
"integrity": "sha1-B5LraC37wyWZm7K4T93duhEKxzw=",
"dev": true
},
"compute-scroll-into-view": {
"version": "1.0.17",
"resolved": "https://registry.nlark.com/compute-scroll-into-view/download/compute-scroll-into-view-1.0.17.tgz",
"integrity": "sha1-aojxis2dQunPS6pr7H4FImB6t6s="
},
"comutils": {
"version": "1.1.19",
"resolved": "https://registry.npm.taobao.org/comutils/download/comutils-1.1.19.tgz",
@ -737,6 +875,11 @@
"integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
"dev": true
},
"core-js": {
"version": "3.16.1",
"resolved": "https://registry.nlark.com/core-js/download/core-js-3.16.1.tgz",
"integrity": "sha1-9Ehc5cnzxqfLGPqASI4I02IJckk="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@ -847,6 +990,22 @@
"esutils": "^2.0.2"
}
},
"dom-align": {
"version": "1.12.2",
"resolved": "https://registry.nlark.com/dom-align/download/dom-align-1.12.2.tgz",
"integrity": "sha1-D4Fk69DJwhsMeQMQSTzYVYkqzUs="
},
"dom-scroll-into-view": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/dom-scroll-into-view/download/dom-scroll-into-view-2.0.1.tgz",
"integrity": "sha1-DezIUigB/Y0/HGujVadNOCxfmJs="
},
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.nlark.com/dom-walk/download/dom-walk-0.1.2.tgz",
"integrity": "sha1-DFSL7wSPTR8qlySQAiNgYNqj/YQ=",
"dev": true
},
"duplexer2": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
@ -1482,6 +1641,16 @@
"is-glob": "^4.0.1"
}
},
"global": {
"version": "4.4.0",
"resolved": "https://registry.nlark.com/global/download/global-4.4.0.tgz",
"integrity": "sha1-PnsQUXkAajI+1xqvyj6cV6XMZAY=",
"dev": true,
"requires": {
"min-document": "^2.19.0",
"process": "^0.11.10"
}
},
"globals": {
"version": "13.8.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz",
@ -1598,6 +1767,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
"individual": {
"version": "2.0.0",
"resolved": "https://registry.nlark.com/individual/download/individual-2.0.0.tgz",
"integrity": "sha1-gzsJfa0jKU52EXqY+zjg2a1hu5c=",
"dev": true
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@ -1683,6 +1858,12 @@
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"is-function": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/is-function/download/is-function-1.0.2.tgz",
"integrity": "sha1-Twl/MKv2762smDOxfKXcA/gUTgg=",
"dev": true
},
"is-glob": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
@ -1710,6 +1891,11 @@
"integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==",
"dev": true
},
"is-plain-object": {
"version": "3.0.1",
"resolved": "https://registry.nlark.com/is-plain-object/download/is-plain-object-3.0.1.tgz",
"integrity": "sha1-Zi2S0kwKpDAkB7DUXSHyJRyF+Fs="
},
"is-regex": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
@ -1750,8 +1936,7 @@
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
"version": "3.14.1",
@ -1794,6 +1979,12 @@
"universalify": "^2.0.0"
}
},
"keycode": {
"version": "2.2.0",
"resolved": "https://registry.nlark.com/keycode/download/keycode-2.2.0.tgz",
"integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=",
"dev": true
},
"levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@ -1846,8 +2037,12 @@
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.nlark.com/lodash-es/download/lodash-es-4.17.21.tgz",
"integrity": "sha1-Q+YmxG5lkbd1C+srUBFzkMYJ4+4="
},
"lodash.camelcase": {
"version": "4.3.0",
@ -1879,6 +2074,14 @@
"integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
"dev": true
},
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.nlark.com/loose-envify/download/loose-envify-1.4.0.tgz",
"integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@ -1888,6 +2091,17 @@
"yallist": "^3.0.2"
}
},
"m3u8-parser": {
"version": "4.7.0",
"resolved": "https://registry.nlark.com/m3u8-parser/download/m3u8-parser-4.7.0.tgz?cache=0&sync_timestamp=1621435699786&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fm3u8-parser%2Fdownload%2Fm3u8-parser-4.7.0.tgz",
"integrity": "sha1-4B6M4TYJit4bFO5pHqIPxNxgq/Y=",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.0",
"global": "^4.4.0"
}
},
"magic-string": {
"version": "0.25.7",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
@ -1922,6 +2136,15 @@
"picomatch": "^2.2.3"
}
},
"min-document": {
"version": "2.19.0",
"resolved": "https://registry.npm.taobao.org/min-document/download/min-document-2.19.0.tgz",
"integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
"dev": true,
"requires": {
"dom-walk": "^0.1.0"
}
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@ -1952,18 +2175,49 @@
"integrity": "sha1-2o6AFA2SIUJr1PclxuESg9NPkLc=",
"dev": true
},
"moment": {
"version": "2.29.1",
"resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz",
"integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M="
},
"mpd-parser": {
"version": "0.17.0",
"resolved": "https://registry.nlark.com/mpd-parser/download/mpd-parser-0.17.0.tgz",
"integrity": "sha1-1/MALty3BvmJk+91hGpxPQVtMzI=",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/vhs-utils": "^3.0.2",
"global": "^4.4.0",
"xmldom": "^0.5.0"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"mux.js": {
"version": "5.12.2",
"resolved": "https://registry.nlark.com/mux.js/download/mux.js-5.12.2.tgz",
"integrity": "sha1-zYIzEvS7aa24ucX0VjW0RRBm1uY=",
"dev": true,
"requires": {
"@babel/runtime": "^7.11.2"
}
},
"nanoid": {
"version": "3.1.22",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
"integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==",
"dev": true
},
"nanopop": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/nanopop/download/nanopop-2.1.0.tgz",
"integrity": "sha1-I0dlE87iQFiIr9LopLVAZrcLnmA="
},
"natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@ -2077,6 +2331,11 @@
"has": "^1.0.3"
}
},
"omit.js": {
"version": "2.0.2",
"resolved": "https://registry.npm.taobao.org/omit.js/download/omit.js-2.0.2.tgz",
"integrity": "sha1-3ZuENvq5R6Xz/yFMslOGMeMT7C8="
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@ -2213,6 +2472,15 @@
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
"dev": true
},
"pkcs7": {
"version": "1.0.4",
"resolved": "https://registry.npm.taobao.org/pkcs7/download/pkcs7-1.0.4.tgz",
"integrity": "sha1-YJC55xFg2r9pIJ1xnLr6U4sAocs=",
"dev": true,
"requires": {
"@babel/runtime": "^7.5.5"
}
},
"pkg-dir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
@ -2379,6 +2647,12 @@
"integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
"dev": true
},
"process": {
"version": "0.11.10",
"resolved": "https://registry.nlark.com/process/download/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
"dev": true
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@ -2495,6 +2769,11 @@
}
}
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1626993001371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz",
"integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I="
},
"regexpp": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
@ -2556,12 +2835,38 @@
"queue-microtask": "^1.2.2"
}
},
"rust-result": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/rust-result/download/rust-result-1.0.0.tgz",
"integrity": "sha1-NMdbLm3Dn+WHXlveyFteD5FTb3I=",
"dev": true,
"requires": {
"individual": "^2.0.0"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
"safe-json-parse": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/safe-json-parse/download/safe-json-parse-4.0.0.tgz",
"integrity": "sha1-fA9XjPzNEtM6ccDgVBPi7KFx6qw=",
"dev": true,
"requires": {
"rust-result": "^1.0.0"
}
},
"scroll-into-view-if-needed": {
"version": "2.2.28",
"resolved": "https://registry.nlark.com/scroll-into-view-if-needed/download/scroll-into-view-if-needed-2.2.28.tgz",
"integrity": "sha1-WhWy9YpSZCyIyOylhGROAXA9ZFo=",
"requires": {
"compute-scroll-into-view": "^1.0.17"
}
},
"semver": {
"version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
@ -2594,6 +2899,11 @@
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
"dev": true
},
"shallow-equal": {
"version": "1.2.1",
"resolved": "https://registry.nlark.com/shallow-equal/download/shallow-equal-1.2.1.tgz",
"integrity": "sha1-TBar+lYEOqINBQMk76aJQLDaedo="
},
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@ -2949,6 +3259,11 @@
"which-boxed-primitive": "^1.0.2"
}
},
"uniapp-zaudio": {
"version": "2.2.51",
"resolved": "https://registry.nlark.com/uniapp-zaudio/download/uniapp-zaudio-2.2.51.tgz",
"integrity": "sha1-q/8Iy5G0NRqxmCXfSChsggqLQtI="
},
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz?cache=0&sync_timestamp=1603180048005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-2.0.0.tgz",
@ -2990,6 +3305,12 @@
"punycode": "^2.1.0"
}
},
"url-toolkit": {
"version": "2.2.3",
"resolved": "https://registry.nlark.com/url-toolkit/download/url-toolkit-2.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Furl-toolkit%2Fdownload%2Furl-toolkit-2.2.3.tgz",
"integrity": "sha1-ePqQEhWrusNBggZpMiICebgEUis=",
"dev": true
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@ -3012,6 +3333,42 @@
"spdx-expression-parse": "^3.0.0"
}
},
"video.js": {
"version": "7.14.3",
"resolved": "https://registry.nlark.com/video.js/download/video.js-7.14.3.tgz",
"integrity": "sha1-C2EsCaCoHvm85lxxDnMpHLBtwyw=",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"@videojs/http-streaming": "2.9.2",
"@videojs/vhs-utils": "^3.0.2",
"@videojs/xhr": "2.5.1",
"aes-decrypter": "3.1.2",
"global": "^4.4.0",
"keycode": "^2.2.0",
"m3u8-parser": "4.7.0",
"mpd-parser": "0.17.0",
"mux.js": "5.12.2",
"safe-json-parse": "4.0.0",
"videojs-font": "3.2.0",
"videojs-vtt.js": "^0.15.3"
}
},
"videojs-font": {
"version": "3.2.0",
"resolved": "https://registry.npm.taobao.org/videojs-font/download/videojs-font-3.2.0.tgz",
"integrity": "sha1-ISydP05Ow/pzRRZ9ZDFq3TXpIjI=",
"dev": true
},
"videojs-vtt.js": {
"version": "0.15.3",
"resolved": "https://registry.npm.taobao.org/videojs-vtt.js/download/videojs-vtt.js-0.15.3.tgz",
"integrity": "sha1-hCYDk7eUh/zxldk3L4Etf6uDqZM=",
"dev": true,
"requires": {
"global": "^4.3.1"
}
},
"vite": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-2.2.4.tgz",
@ -3090,6 +3447,22 @@
"unzipper": "0.10.11"
}
},
"vue-types": {
"version": "3.0.2",
"resolved": "https://registry.nlark.com/vue-types/download/vue-types-3.0.2.tgz?cache=0&sync_timestamp=1628476116401&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-types%2Fdownload%2Fvue-types-3.0.2.tgz",
"integrity": "sha1-7BbgXUEsA4Ji/B76TOuWR+f7YB0=",
"requires": {
"is-plain-object": "3.0.1"
}
},
"warning": {
"version": "4.0.3",
"resolved": "https://registry.nlark.com/warning/download/warning-4.0.3.tgz",
"integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=",
"requires": {
"loose-envify": "^1.0.0"
}
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@ -3124,6 +3497,12 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
"xmldom": {
"version": "0.5.0",
"resolved": "https://registry.nlark.com/xmldom/download/xmldom-0.5.0.tgz",
"integrity": "sha1-GTy5a4SqNIYSfqYnLEWWNUy0li4=",
"dev": true
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",

3
package.json

@ -9,9 +9,11 @@
"serve": "vite preview"
},
"dependencies": {
"ant-design-vue": "^2.2.3",
"axios": "^0.21.1",
"dayjs": "^1.10.4",
"echarts": "^5.1.1",
"uniapp-zaudio": "^2.2.51",
"vue": "^3.0.5",
"vue-router": "4",
"vue-seamless-scroll": "^1.1.23"
@ -31,6 +33,7 @@
"prettier": "^2.3.0",
"tailwindcss": "^2.1.2",
"typescript": "^4.1.3",
"video.js": "^7.14.3",
"vite": "^2.2.3",
"vue-tsc": "^0.0.24"
}

1
src/App.vue

@ -7,6 +7,7 @@ import { defineComponent } from "vue";
export default defineComponent({
name: "App",
methods: {},
});
</script>

6
src/api/index.ts

@ -39,3 +39,9 @@ export const getFireOrFlood = (param: GET_FIRE_OR_FLOOD_PARAM) => http.post('/mb
// 查询热成像信息
export const getHeatImaging = (param: GET_HEAT_IMAGING_PARAM) => http.post('/mbps/selHeatImaging', { param });
// 添加新闻
export const addNews = (param: any)=> http.post('/news/add', param);
// 查询新闻
export const getNews = (param: any)=> http.post('/news/query', {param});

BIN
src/assets/audio.mp3

Binary file not shown.

BIN
src/assets/fifvideo.mp4

Binary file not shown.

BIN
src/assets/forvideo.mp4

Binary file not shown.

BIN
src/assets/sedaudio.wav

Binary file not shown.

BIN
src/assets/sedvideo.mp4

Binary file not shown.

BIN
src/assets/sevenvideo.mp4

Binary file not shown.

BIN
src/assets/sixvideo.mp4

Binary file not shown.

BIN
src/assets/thvideo.mp4

Binary file not shown.

BIN
src/assets/video.mp4

Binary file not shown.

5
src/components/amount.vue

@ -1,6 +1,9 @@
<template>
<div class="box-bg">
<div :style="{ width: '92%', height: '94%',margin: 'auto 3% auto 5%' }" id="throughput"></div>
<div
:style="{ width: '92%', height: '94%', margin: 'auto 3% auto 5%' }"
id="throughput"
></div>
</div>
</template>

11
src/components/curve.vue

@ -5,12 +5,17 @@
:key="index"
@click="changeCycle(index)"
class="flex flex-nowrap"
v-for="(cycle,index) in cycles"
v-for="(cycle, index) in cycles"
>
<span :class="index === currentIndex ? 'active' : ''" class="cycle">{{ cycle }}</span>
<span :class="index === currentIndex ? 'active' : ''" class="cycle">{{
cycle
}}</span>
</div>
</div>
<div :style="{ width: '92%', height: '80%',margin: 'auto 3% auto 5%' }" id="comparisonChart"></div>
<div
:style="{ width: '92%', height: '80%', margin: 'auto 3% auto 5%' }"
id="comparisonChart"
></div>
</div>
</template>

33
src/components/finance.vue

@ -1,6 +1,9 @@
<template>
<div class="box-bg">
<div :style="{ width: '92%', height: '94%',margin: 'auto 3% auto 5%' }" id="finance"></div>
<div
:style="{ width: '92%', height: '94%', margin: 'auto 3% auto 5%' }"
id="finance"
></div>
</div>
</template>
@ -38,6 +41,9 @@ export default defineComponent({
type: "shadow",
},
},
legend: {
data: ["应到人数", "实到人数"],
},
grid: {
left: "0",
right: "6%",
@ -52,7 +58,7 @@ export default defineComponent({
color: "#fff",
},
},
data: ["2016", "2017", "2018", "2019", "2020"],
data: ["大前天", "前天", "昨天", "今天"],
},
yAxis: {
type: "value",
@ -61,7 +67,7 @@ export default defineComponent({
color: "#fff",
},
},
name: "",
name: "",
nameTextStyle: {
color: "#fff",
},
@ -74,11 +80,28 @@ export default defineComponent({
},
series: [
{
data: [300, 250, 280, 220, 290],
data: [60, 54, 55, 59],
type: "bar",
barCategoryGap: "50%",
itemStyle: {
barBorderRadius: [5, 5, 0, 0], //
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#83bff6" },
{ offset: 0.5, color: "#188df0" },
{ offset: 1, color: "#188df0" },
]),
},
label: {
show: true,
position: "top",
},
},
{
data: [60, 58, 57, 60],
type: "bar",
barCategoryGap: "50%",
itemStyle: {
barBorderRadius: [10, 10, 0, 0], //
barBorderRadius: [5, 5, 0, 0], //
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#83bff6" },
{ offset: 0.5, color: "#188df0" },

8
src/components/footer-bar.vue

@ -4,10 +4,12 @@
<div
:class="item.active ? 'active' : ''"
:key="index"
@click="changePage(item,index)"
@click="changePage(item, index)"
class="btn"
v-for="(item, index) in urls"
>{{ item.name }}</div>
>
{{ item.name }}
</div>
</div>
</div>
</template>
@ -38,7 +40,7 @@ export default defineComponent({
{
path: "/yj",
param: { parkId: "1", warehouseId: "6" },
name: "应急仓库",
name: "1号仓库",
active: false,
},
{

75
src/components/memorabilia.vue

@ -1,24 +1,28 @@
<template>
<div class="roll">
<div class="box-bg">
<div style="overflow:hidden">
<div style="overflow: hidden">
<div class="matter" id="memorabilia">
<div :key="index" class="content" v-for="(detail,index) in details">
<div :key="index" class="content" v-for="(detail, index) in details">
<div class="firewall">
<div class="firewall1">{{detail.title}}</div>
<div class="firewall2">{{detail.time}}</div>
<div class="firewall1">{{ detail.title }}</div>
<div class="firewall2">
{{ moment(+detail.time).format("YYYY-MM-DD HH:mm") }}
</div>
</div>
<div class="firewall3">
<p>{{detail.describe}}</p>
<p>{{ detail.digest }}</p>
</div>
</div>
<div :key="index" class="content" v-for="(detail,index) in details">
<div :key="index" class="content" v-for="(detail, index) in details">
<div class="firewall">
<div class="firewall1">{{detail.title}}</div>
<div class="firewall2">{{detail.time}}</div>
<div class="firewall1">{{ detail.title }}</div>
<div class="firewall2">
{{ moment(+detail.time).format("YYYY-MM-DD HH:mm") }}
</div>
</div>
<div class="firewall3">
<p>{{detail.describe}}</p>
<p>{{ detail.digest }}</p>
</div>
</div>
</div>
@ -28,42 +32,41 @@
</template>
<script lang="ts">
import moment from "moment";
import { getNews } from "api/index.ts";
import { defineComponent } from "vue";
export default defineComponent({
name: "memorabilia",
data() {
return {
details: [
{
title: "物流园区升级",
time: "两周前",
describe:
"中国第一个保税物流园区升级 形成1+1+3联动发展新格局。外高桥港综合保税区今后将发挥“保税+”功能优势,围绕“提质、升级、开放、创新”,推动产业链、供应链、价值链和创新链融合发展,探索具有创新示范意义、体现差异化竞争、发挥引领作用的外高桥港综合保税区创新试验新路子,为我国改革开放积累新经验、提供新样本。",
},
{
title: "物流园区资产证券化探索与突破",
time: "一个月前",
describe:
"观察当前物流市场,物流园区的盈利模式明确,现金流相对稳定,比较符合发行公募REITs的条件。对于一些自持物流园区的电商企业来说,扩大规模的需求是明确且迫切的,但自建仓储对财务的影响也是现实存在的。公募REITs的推行正好能缓解重资产对财务造成的压力。",
},
{
title: "物流园区的未来前景",
time: "一周前",
describe:
"利用信息互联网和设施物联网推动物流园区的全面接入,以信息互联、设施互联带动物流互联,实现园区业务线上化转型,打造在线物流园区。",
},
{
title: "积极开展安全生产检查",
time: "3天前",
describe:
"近日,物流园区安监局对落实企业安全生产主体责任情况进行专项检查,执法人员实地查看了公司的维修车间、配件存储库房、喷漆车间,并对公司安全生产各类档案建立情况进行检查。针对检查中发现的问题隐患,下达《责令限期整改指令书》,要求企业限期整改落实,确保企业生产安全。",
},
],
queryNum: 5,
details: [],
};
},
methods: {},
created() {
this.queryNews();
},
methods: {
moment,
//
async queryNews() {
try {
const { queryNum } = this;
const param = {
queryNum,
};
const data = await getNews(param);
this.details = data;
console.log(this.details);
} catch (error) {
console.log(error);
}
},
},
});
</script>

21
src/components/news.vue

@ -0,0 +1,21 @@
<template>
<div>
<p>标题</p>
<input placeholder="请输入标题" />
<p>时间</p>
<input placeholder="请输入新闻发布时间" />
<p>摘要</p>
<textarea placeholder="请输入摘要,最多140字"></textarea>
<div>
<button>重置</button>
<button>提交</button>
</div>
</div>
</template>
<script>
export default {
data() {
}
}
</script>

2
src/components/top-bar.vue

@ -46,7 +46,7 @@ export default defineComponent({
}
} else {
if (warehouseId === "6") {
return "晋恒通园区应急仓库";
return "晋恒通园区1号仓库";
}
if (warehouseId === "7") {
return "现海园区5号仓库";

6
src/main.ts

@ -4,12 +4,18 @@ import App from './App.vue'
import './index.css'
import http from 'utils/http';
import dayjs from 'utils/dayjs';
import { DatePicker } from 'ant-design-vue';
import { message } from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
// import { default as message } from './message';
(async () => {
const app = createApp(App);
app.config.globalProperties.$http = http;
app.config.globalProperties.$dayjs = dayjs;
app.use(DatePicker);
app.config.globalProperties.$message = message;
// Configure routing
setupRouter(app);

1
src/router/index.ts

@ -13,6 +13,7 @@ const router = createRouter({
{ path: '/jht', component: () => import('views/jht.vue') },
{ path: '/xh', component: () => import('views/xh.vue') },
{ path: '/yj', component: () => import('views/repo-yj.vue') },
{ path: '/news', component: () => import('views/news.vue') },
],
strict: true
});

46
src/views/audio.html

@ -0,0 +1,46 @@
<html>
<body>
<audio
src="../assets/audio.mp3"
controls="controls"
id="audioBtn"
ref="audio"
style="z-index: 200"
></audio>
<audio
src="../assets/sedaudio.wav"
controls="controls"
id="audioBtn"
ref="audio"
style="z-index: 200"
></audio>
<audio
autoplay="autoplay"
controls="controls"
loop="loop"
src="../assets/audio.mp3"
style="z-index: 200"
></audio>
<video
class="video"
src="./sedaudio.mp4"
controls
autoplay
loop="loop"
></video>
<video
class="video"
src="./video.mp4"
controls
autoplay
loop="loop"
></video>
<video
class="video"
src="./thvideo.mp4"
controls
autoplay
loop="loop"
></video>
</body>
</html>

154
src/views/jht.vue

@ -8,7 +8,7 @@
<memorabilia />
</side-item>
<side-item title="饱和量仪表盘">
<div class="flex justify-between" style="width:100%;height:100%">
<div class="flex justify-between" style="width: 100%; height: 100%">
<parking-space />
<usable-area />
</div>
@ -19,7 +19,11 @@
</template>
<template v-slot:center>
<iframe class="block frame" frameborder="0" src="https://www.tall.wiki/wl/1"></iframe>
<iframe
class="block frame"
frameborder="0"
src="https://www.tall.wiki/wl/1"
></iframe>
</template>
<template v-slot:right>
@ -29,17 +33,48 @@
<side-item title="进出车次统计">
<amount />
</side-item>
<side-item title="园区财务统计表">
<side-item title="人员数据统计表">
<finance />
</side-item>
</template>
</container>
<!-- 长时间不操作屏幕跳出视频 -->
<div
id="thvideo"
class="out-img flex justify-center align-center"
v-if="timeOut"
>
<video
id="myAudio"
class="video"
:src="vList[curr]"
controls
autoplay
></video>
</div>
<!-- 音频 -->
<audio
v-if="!timeOut"
:src="src"
controls
autoplay
loop="loop"
id="audioBtn"
ref="audio"
></audio>
<!-- 底部区域 -->
<footer-bar :showIndex="showIndex"></footer-bar>
<!-- 监控1 -->
<img @click="getWarehouses('show1')" class="monitor—btn" src="../assets/img/monitor.png" style />
<img
@click="getWarehouses('show1')"
class="monitor—btn"
src="../assets/img/monitor.png"
style
/>
<div class="vedio" v-show="show">
<div class="head">
<div class="camera">摄像头监控视频</div>
@ -47,15 +82,29 @@
</div>
<div class="monitor">
<div class="monitor1">
<iframe :src="iframeSrc1" frameborder="0" height="100%" scrolling="no" width="100%"></iframe>
<iframe
:src="iframeSrc1"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img @click="showScreen = true" class="monitor2" src="../assets/img/fullScreen.png" />
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen :iframeSrc="iframeSrc1" @closeScreen="closeScreen" v-if="showScreen" />
<video-screen
:iframeSrc="iframeSrc1"
@closeScreen="closeScreen"
v-if="showScreen"
/>
<!-- 监控2 -->
<img
@ -71,19 +120,39 @@
</div>
<div class="monitor">
<div class="monitor1">
<iframe :src="iframeSrc2" frameborder="0" height="100%" scrolling="no" width="100%"></iframe>
<iframe
:src="iframeSrc2"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img @click="showScreen = true" class="monitor2" src="../assets/img/fullScreen.png" />
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen :iframeSrc="iframeSrc2" @closeScreen="closeScreen" v-if="showScreen" />
<video-screen
:iframeSrc="iframeSrc2"
@closeScreen="closeScreen"
v-if="showScreen"
/>
</template>
<script lang="ts">
import senaudio from "../assets/sedaudio.wav";
import thvideo from "../assets/thvideo.mp4";
import forvideo from "../assets/forvideo.mp4";
import fifivideo from "../assets/fifvideo.mp4";
import sixvideo from "../assets/sixvideo.mp4";
import sevenvideo from "../assets/sevenvideo.mp4";
import { defineComponent } from "vue";
import TopBar from "comp/top-bar.vue";
import Container from "comp/content.vue";
@ -97,7 +166,7 @@ import ParkingSpace from "@/components/parkingSpace.vue";
import UsableArea from "@/components/usableArea.vue";
import Memorabilia from "@/components/memorabilia.vue";
import VideoScreen from "@/components/videoScreen.vue";
import { getWarehouses } from "api/index";
// import { getWarehouses } from "api/index";
export default defineComponent({
components: {
@ -122,9 +191,48 @@ export default defineComponent({
showIndex: 0,
iframeSrc1: "",
iframeSrc2: "",
timeOut: false, //1
timer: 0,
src: senaudio,
curr: 0,
vList: [thvideo, forvideo, fifivideo, sixvideo, sevenvideo],
};
},
mounted() {
const that = this;
// window.addEventListener("mousemove", this.move);
window.addEventListener("mousemove", function () {
that.move();
});
},
methods: {
//
move() {
this.timeOut = false;
const that = this;
setTimeout(async () => {
that.timeOut = true;
await that.videoEnd();
}, 5 * 60 * 1000);
},
//
videoEnd() {
var aud = document.getElementById("myAudio");
// console.log(aud);
const that = this;
aud.onended = function () {
// alert("");
if (that.curr === that.vList.length - 1) {
that.curr = 0;
} else {
that.curr++;
}
};
},
//
closeScreen() {
this.showScreen = false;
@ -145,11 +253,11 @@ export default defineComponent({
}
this.show2 = true;
}
const data = await getWarehouses({ parkId: 1 });
if (data && data.parkEquipment && data.parkEquipment.length) {
this.iframeSrc1 = data.parkEquipment[0].equipmentLocation;
this.iframeSrc2 = data.parkEquipment[1].equipmentLocation;
}
// const data = await getWarehouses({ parkId: 1 });
// if (data && data.parkEquipment && data.parkEquipment.length) {
// this.iframeSrc1 = data.parkEquipment[0].equipmentLocation;
// this.iframeSrc2 = data.parkEquipment[1].equipmentLocation;
// }
} catch (error) {
console.log("error: ", error);
}
@ -159,6 +267,20 @@ export default defineComponent({
</script>
<style scoped>
.out-img {
position: absolute;
height: 100% !important;
width: 100% !important;
z-index: 100;
/* padding: 30px; */
background-color: white;
}
/* .video {
border-top: 30px solid #fff;
border-bottom: 30px solid #fff;
} */
.monitorbtn {
position: absolute;
right: 0;

216
src/views/news.vue

@ -0,0 +1,216 @@
<template>
<div style="background: #fff; padding: 15px; height: 100%">
<p class="title-news">标题:</p>
<input v-model="title" class="textInput" placeholder="请输入标题" />
<p class="title-news">时间:</p>
<a-date-picker
class="datePicker"
placeholder="请选择新闻发布时间 "
format="YYYY-MM-DD HH:mm"
:date="disabledDate"
:time="disabledDateTime"
:show-time="{ defaultValue: moment('00:00:00', 'HH:mm') }"
@change="changeTime"
:value="moment(time)"
/>
<p class="title-news">摘要:</p>
<textarea
class="textareaInput"
v-model="digest"
placeholder="请输入摘要,最多140字"
></textarea>
<div class="btns">
<button class="resetBtn" @click="reset()">重置</button>
<button class="submitBtn" @click="setAddNews()">提交</button>
</div>
</div>
</template>
<script>
import moment from 'moment';
import {addNews} from 'api/index';
export default {
data() {
return{
title:'',
time:new Date().getTime(),
digest:'',
dateFormat:'YYYY-MM-DD HH:mm:ss'
}
},
methods: {
info() {
console.log('nihao');
this.$message.info('This is a normal message');
},
moment,
range(start, end) {
const result = [];
for (let i = start; i < end; i++) {
result.push(i);
}
return result;
},
//
disabledDate(current) {
// Can not select days before today and today
return current && current < moment().endOf('day');
},
//
disabledDateTime() {
return {
disabledHours: () => this.range(0, 24).splice(4, 20),
disabledMinutes: () => this.range(30, 60),
disabledSeconds: () => [55, 56],
};
},
changeTime(e){
const days = new Date(e._d).getTime();
this.time=days
},
//
reset(){
this.title = '';
this.time =new Date().getTime();
this.digest = '';
},
//
async setAddNews(event){
try {
if(!this.title){
this.$message.info('请输入标题');
}else if(!this.time){
this.$message.info('请选择新闻发布时间');
}else if(!this.digest){
this.$message.info('请输入摘要');
}else{
const {title,time,digest} = this;
const params ={
param:{
title,
time,
digest
}
};
const data = await addNews(params);
console.log(data);
}
} catch (error) {
console.log(error)
}
}
}
}
</script>
<style>
.datePicker {
width: 100%;
}
.title-news {
padding: 30px 0 5px 0;
font-size: 14px;
}
.textInput {
box-sizing: border-box;
margin: 0;
font-variant: tabular-nums;
list-style: none;
font-feature-settings: "tnum";
position: relative;
display: inline-block;
width: 100%;
height: 32px;
padding: 4px 11px;
color: rgba(0, 0, 0, 0.65);
font-size: 14px;
line-height: 1.5;
background-color: #fff;
background-image: none;
border: 1px solid #d9d9d9;
border-radius: 4px;
transition: all 0.3s;
}
.textareaInput {
box-sizing: border-box;
margin: 0;
font-variant: tabular-nums;
list-style: none;
font-feature-settings: "tnum";
display: inline-block;
padding: 4px 11px;
width: 100%;
color: rgba(0, 0, 0, 0.65);
font-size: 14px;
background-color: #fff;
background-image: none;
border: 1px solid #d9d9d9;
border-radius: 4px;
max-width: 100%;
height: auto;
min-height: 32px;
line-height: 1.5;
vertical-align: bottom;
transition: all 0.3s, height 0s;
}
.btns {
padding-top: 20px;
display: flex;
justify-content: space-around;
}
.resetBtn {
line-height: 1.499;
position: relative;
display: inline-block;
font-weight: 400;
white-space: nowrap;
text-align: center;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
user-select: none;
touch-action: manipulation;
height: 30px;
width: 75px;
padding: 0 15px;
font-size: 14px;
border-radius: 4px;
border: 1px solid #d9d9d9;
text-shadow: 0 -1px 0 rgb(0 0 0 / 12%);
box-shadow: 0 2px 0 rgb(0 0 0 / 5%);
color: #ff7875;
/* background-color: #ff7875; */
border-color: #ff7875;
}
.submitBtn {
line-height: 1.499;
position: relative;
display: inline-block;
font-weight: 400;
white-space: nowrap;
text-align: center;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
user-select: none;
touch-action: manipulation;
height: 30px;
width: 75px;
padding: 0 15px;
font-size: 14px;
border-radius: 4px;
border: 1px solid #d9d9d9;
text-shadow: 0 -1px 0 rgb(0 0 0 / 12%);
box-shadow: 0 2px 0 rgb(0 0 0 / 5%);
color: #fff;
background-color: #1890ff;
border-color: #1890ff;
}
p {
margin-top: 0;
margin-bottom: 0;
}
</style>

116
src/views/repo-5.vue

@ -11,7 +11,7 @@
<humidity />
</side-item>
<side-item title="使用面积、货物占比">
<div class="flex justify-between" style="width:100%;height:100%">
<div class="flex justify-between" style="width: 100%; height: 100%">
<usable-area />
<total-cargo />
</div>
@ -19,7 +19,11 @@
</template>
<template v-slot:center>
<iframe class="block frame" frameborder="0" src="https://www.tall.wiki/wl/4"></iframe>
<iframe
class="block frame"
frameborder="0"
src="https://www.tall.wiki/wl/4"
></iframe>
</template>
<template v-slot:right>
@ -29,17 +33,48 @@
<side-item title="园区人员统计表">
<statistics />
</side-item>
<side-item title="仓库热力图">
<side-item title="5号仓库热力图">
<heat />
</side-item>
</template>
</container>
<!-- 长时间不操作屏幕跳出视频 -->
<div
id="thvideo"
class="out-img flex justify-center align-center"
v-if="timeOut"
>
<video
id="myAudio"
class="video"
:src="vList[curr]"
controls
autoplay
></video>
</div>
<!-- 音频 -->
<audio
v-if="!timeOut"
:src="src"
controls
autoplay
loop="loop"
id="audioBtn"
ref="audio"
></audio>
<!-- 底部区域 -->
<footer-bar :showIndex="showIndex"></footer-bar>
<!-- 监控 -->
<img @click="getWarehouses" class="monitor—btn" src="../assets/img/monitor.png" style />
<img
@click="getWarehouses"
class="monitor—btn"
src="../assets/img/monitor.png"
style
/>
<div class="vedio" v-show="show">
<div class="head">
<div class="camera">摄像头监控视频</div>
@ -47,18 +82,38 @@
</div>
<div class="monitor">
<div class="monitor1">
<iframe :src="iframeSrc" frameborder="0" height="100%" scrolling="no" width="100%"></iframe>
<iframe
:src="iframeSrc"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img @click="showScreen = true" class="monitor2" src="../assets/img/fullScreen.png" />
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen :iframeSrc="iframeSrc" @closeScreen="closeScreen" v-if="showScreen" />
<video-screen
:iframeSrc="iframeSrc"
@closeScreen="closeScreen"
v-if="showScreen"
/>
</template>
<script lang="ts">
import senaudio from "../assets/sedaudio.wav";
import thvideo from "../assets/thvideo.mp4";
import forvideo from "../assets/forvideo.mp4";
import fifivideo from "../assets/fifvideo.mp4";
import sixvideo from "../assets/sixvideo.mp4";
import sevenvideo from "../assets/sevenvideo.mp4";
import { defineComponent } from "vue";
import TopBar from "comp/top-bar.vue";
import Container from "comp/content.vue";
@ -95,9 +150,47 @@ export default defineComponent({
showScreen: false,
showIndex: 3,
iframeSrc: "",
timeOut: false, //1
timer: 0,
src: senaudio,
curr: 0,
vList: [thvideo, forvideo, fifivideo, sixvideo, sevenvideo],
};
},
mounted() {
const that = this;
window.addEventListener("mousemove", function () {
that.move();
});
},
methods: {
//
move() {
this.timeOut = false;
const that = this;
setTimeout(() => {
that.timeOut = true;
that.videoEnd();
}, 5 * 60 * 1000);
},
//
videoEnd() {
var aud = document.getElementById("myAudio");
console.log(aud);
const that = this;
aud.onended = function () {
// alert("");
if (that.curr === that.vList.length - 1) {
that.curr = 0;
} else {
that.curr++;
}
};
},
//
closeScreen() {
this.showScreen = false;
@ -126,6 +219,15 @@ export default defineComponent({
</script>
<style scoped>
.out-img {
position: absolute;
height: 100%;
width: 100% !important;
z-index: 100;
background-color: white;
padding: 30px;
}
.frame {
position: fixed;
left: 0;

115
src/views/repo-yj.vue

@ -11,7 +11,7 @@
<humidity />
</side-item>
<side-item title="使用面积、货物占比">
<div class="flex justify-between" style="width:100%;height:100%">
<div class="flex justify-between" style="width: 100%; height: 100%">
<usable-area />
<total-cargo />
</div>
@ -19,7 +19,11 @@
</template>
<template v-slot:center>
<iframe class="block frame" frameborder="0" src="https://www.tall.wiki/wl/4"></iframe>
<iframe
class="block frame"
frameborder="0"
src="https://www.tall.wiki/wl/4"
></iframe>
</template>
<template v-slot:right>
@ -29,17 +33,48 @@
<side-item title="园区人员统计表">
<statistics />
</side-item>
<side-item title="仓库热力图">
<side-item title="1号仓库热力图">
<heat />
</side-item>
</template>
</container>
<!-- 长时间不操作屏幕跳出视频 -->
<div
id="thvideo"
class="out-img flex justify-center align-center"
v-if="timeOut"
>
<video
id="myAudio"
class="video"
:src="vList[curr]"
controls
autoplay
></video>
</div>
<!-- 音频 -->
<audio
v-if="!timeOut"
:src="src"
controls
autoplay
loop="loop"
id="audioBtn"
ref="audio"
></audio>
<!-- 底部区域 -->
<footer-bar :showIndex="showIndex"></footer-bar>
<!-- 监控 -->
<img @click="getWarehouses" class="monitor—btn" src="../assets/img/monitor.png" style />
<img
@click="getWarehouses"
class="monitor—btn"
src="../assets/img/monitor.png"
style
/>
<div class="vedio" v-show="show">
<div class="head">
<div class="camera">摄像头监控视频</div>
@ -47,18 +82,38 @@
</div>
<div class="monitor">
<div class="monitor1">
<iframe :src="iframeSrc" frameborder="0" height="100%" scrolling="no" width="100%"></iframe>
<iframe
:src="iframeSrc"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img @click="showScreen = true" class="monitor2" src="../assets/img/fullScreen.png" />
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen :iframeSrc="iframeSrc" @closeScreen="closeScreen" v-if="showScreen" />
<video-screen
:iframeSrc="iframeSrc"
@closeScreen="closeScreen"
v-if="showScreen"
/>
</template>
<script lang="ts">
import senaudio from "../assets/sedaudio.wav";
import thvideo from "../assets/thvideo.mp4";
import forvideo from "../assets/forvideo.mp4";
import fifivideo from "../assets/fifvideo.mp4";
import sixvideo from "../assets/sixvideo.mp4";
import sevenvideo from "../assets/sevenvideo.mp4";
import { defineComponent } from "vue";
import TopBar from "comp/top-bar.vue";
import Container from "comp/content.vue";
@ -95,9 +150,46 @@ export default defineComponent({
showScreen: false,
showIndex: 2,
iframeSrc: "",
timeOut: false, //1
timer: 0,
src: senaudio,
curr: 0,
vList: [thvideo, forvideo, fifivideo, sixvideo, sevenvideo],
};
},
mounted() {
const that = this;
window.addEventListener("mousemove", function () {
that.move();
});
},
methods: {
move() {
this.timeOut = false;
const that = this;
setTimeout(() => {
that.timeOut = true;
that.videoEnd();
}, 5 * 60 * 1000);
},
//
videoEnd() {
var aud = document.getElementById("myAudio");
console.log(aud);
const that = this;
aud.onended = function () {
// alert("");
if (that.curr === that.vList.length - 1) {
that.curr = 0;
} else {
that.curr++;
}
};
},
//
closeScreen() {
this.showScreen = false;
@ -126,6 +218,15 @@ export default defineComponent({
</script>
<style scoped>
.out-img {
position: absolute;
height: 100%;
width: 100% !important;
z-index: 100;
background-color: white;
padding: 30px;
}
.frame {
position: fixed;
left: 0;

134
src/views/xh.vue

@ -8,7 +8,7 @@
<memorabilia />
</side-item>
<side-item title="饱和量仪表盘">
<div class="flex justify-between" style="width:100%;height:100%">
<div class="flex justify-between" style="width: 100%; height: 100%">
<parking-space />
<usable-area />
</div>
@ -19,7 +19,11 @@
</template>
<template v-slot:center>
<iframe class="block frame" frameborder="0" src="https://www.tall.wiki/wl/1"></iframe>
<iframe
class="block frame"
frameborder="0"
src="https://www.tall.wiki/wl/1"
></iframe>
</template>
<template v-slot:right>
@ -35,11 +39,42 @@
</template>
</container>
<!-- 长时间不操作屏幕跳出视频 -->
<div
id="thvideo"
class="out-img flex justify-center align-center"
v-if="timeOut"
>
<video
id="myAudio"
class="video"
:src="vList[curr]"
controls
autoplay
></video>
</div>
<!-- 音频 -->
<audio
v-if="!timeOut"
:src="src"
controls
autoplay
loop="loop"
id="audioBtn"
ref="audio"
></audio>
<!-- 底部区域 -->
<footer-bar :showIndex="showIndex"></footer-bar>
<!-- 监控1 -->
<img @click="getWarehouses('show1')" class="monitor—btn" src="../assets/img/monitor.png" style />
<img
@click="getWarehouses('show1')"
class="monitor—btn"
src="../assets/img/monitor.png"
style
/>
<div class="vedio" v-show="show">
<div class="head">
<div class="camera">摄像头监控视频</div>
@ -47,15 +82,29 @@
</div>
<div class="monitor">
<div class="monitor1">
<iframe :src="iframeSrc1" frameborder="0" height="100%" scrolling="no" width="100%"></iframe>
<iframe
:src="iframeSrc1"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img @click="showScreen = true" class="monitor2" src="../assets/img/fullScreen.png" />
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen :iframeSrc="iframeSrc1" @closeScreen="closeScreen" v-if="showScreen" />
<video-screen
:iframeSrc="iframeSrc1"
@closeScreen="closeScreen"
v-if="showScreen"
/>
<!-- 监控2 -->
<img
@ -71,19 +120,39 @@
</div>
<div class="monitor">
<div class="monitor1">
<iframe :src="iframeSrc2" frameborder="0" height="100%" scrolling="no" width="100%"></iframe>
<iframe
:src="iframeSrc2"
frameborder="0"
height="100%"
scrolling="no"
width="100%"
></iframe>
<div class="screen">
<img @click="showScreen = true" class="monitor2" src="../assets/img/fullScreen.png" />
<img
@click="showScreen = true"
class="monitor2"
src="../assets/img/fullScreen.png"
/>
</div>
</div>
</div>
</div>
<!-- 全屏监控 -->
<video-screen :iframeSrc="iframeSrc2" @closeScreen="closeScreen" v-if="showScreen" />
<video-screen
:iframeSrc="iframeSrc2"
@closeScreen="closeScreen"
v-if="showScreen"
/>
</template>
<script lang="ts">
import senaudio from "../assets/sedaudio.wav";
import thvideo from "../assets/thvideo.mp4";
import forvideo from "../assets/forvideo.mp4";
import fifivideo from "../assets/fifvideo.mp4";
import sixvideo from "../assets/sixvideo.mp4";
import sevenvideo from "../assets/sevenvideo.mp4";
import { defineComponent } from "vue";
import TopBar from "comp/top-bar.vue";
import Container from "comp/content.vue";
@ -122,9 +191,47 @@ export default defineComponent({
showIndex: 1,
iframeSrc1: "",
iframeSrc2: "",
timeOut: false, //1
timer: 0,
src: senaudio,
curr: 0,
vList: [thvideo, forvideo, fifivideo, sixvideo, sevenvideo],
};
},
mounted() {
const that = this;
window.addEventListener("mousemove", function () {
that.move();
});
},
methods: {
//
move() {
this.timeOut = false;
const that = this;
setTimeout(() => {
that.timeOut = true;
that.videoEnd();
}, 5 * 60 * 1000);
},
//
videoEnd() {
var aud = document.getElementById("myAudio");
console.log(aud);
const that = this;
aud.onended = function () {
// alert("");
if (that.curr === that.vList.length - 1) {
that.curr = 0;
} else {
that.curr++;
}
};
},
//
closeScreen() {
this.showScreen = false;
@ -159,6 +266,15 @@ export default defineComponent({
</script>
<style scoped>
.out-img {
position: absolute;
height: 100%;
width: 100% !important;
z-index: 100;
background-color: white;
padding: 30px;
}
.monitorbtn {
position: absolute;
right: 0;

Loading…
Cancel
Save