Compare commits

...

2 Commits

Author SHA1 Message Date
changtong d35366980d 对接公服 4 months ago
changtong 093c9d79a2 修改公服大屏 4 months ago
  1. 2
      config/index.js
  2. 11
      src/router/router.js
  3. 8
      src/views/common-components/common-live-player.vue
  4. 1765
      src/views/screen/public-service-scggfw.vue
  5. 20
      src/views/screen/public-service.vue
  6. 27
      src/views/screen/smart-travel.vue
  7. 45
      src/views/screen/test.vue

2
config/index.js

@ -12,7 +12,7 @@ module.exports = {
assetsPublicPath: '/', assetsPublicPath: '/',
proxyTable: { proxyTable: {
'/api': { '/api': {
target: 'http://192.168.111.200:9990', target: 'http://localhost:9990',
// target: 'http://60.255.186.185:9024/api', // target: 'http://60.255.186.185:9024/api',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {

11
src/router/router.js

@ -83,7 +83,7 @@ export const screenRouter = [
path: "/publicService", path: "/publicService",
name: "publicService", name: "publicService",
title: "广电公服", title: "广电公服",
component: () => import("@/views/screen/public-service.vue") component: () => import("@/views/screen/public-service-scggfw.vue")
}, },
{ {
path: "/duty-system", path: "/duty-system",
@ -270,6 +270,15 @@ export const screenRouter = [
open: true open: true
}, },
component: () => import("@/views/screen/smart-travel.vue") component: () => import("@/views/screen/smart-travel.vue")
},
{
path: "/test",
name: "test",
title: "test",
meta: {
open: true
},
component: () => import("@/views/screen/test.vue")
} }
]; ];

8
src/views/common-components/common-live-player.vue

@ -2,7 +2,7 @@
<template> <template>
<div style="width: 100%; height: 100%;"> <div style="width: 100%; height: 100%;">
<LivePlayer :videoUrl="videoUrl" :autoplay="true" :live="live" :muted="muted" :poster="poster" :aspect="aspect" <LivePlayer :videoUrl="videoUrl" :autoplay="true" :live="live" :muted="muted" :poster="poster" :aspect="aspect"
:loop="loop" @ended="ended"></LivePlayer> :loop="loop" @ended="ended" :alt="altText" @error="error"></LivePlayer>
</div> </div>
</template> </template>
@ -61,6 +61,7 @@ export default {
components: {LivePlayer}, components: {LivePlayer},
data() { data() {
return { return {
altText: "暂无监控资源"
}; };
}, },
// //
@ -72,7 +73,10 @@ export default {
methods: { methods: {
ended () { ended () {
this.$emit("ended") this.$emit("ended")
} },
error () {
this.$message.error("监控异常,请切换其他监控")
},
}, },
// - // -
mounted() { mounted() {

1765
src/views/screen/public-service-scggfw.vue

File diff suppressed because it is too large

20
src/views/screen/public-service.vue

@ -6,7 +6,6 @@
</div> </div>
<gis-map <gis-map
class="gismap" class="gismap"
pointType="广电公服" pointType="广电公服"
listItemKey="serverName" listItemKey="serverName"
:point-list="pointList" :point-list="pointList"
@ -81,7 +80,7 @@
<span class="num" <span class="num"
><CountTo ><CountTo
:startVal="0" :startVal="0"
:endVal="item.tvNum" :endVal="Number(item.tvNum)"
:duration="2000" :duration="2000"
/></span> /></span>
<span class="unit"></span> <span class="unit"></span>
@ -213,7 +212,10 @@
<td>{{ item.name }}</td> <td>{{ item.name }}</td>
<td> <td>
<viewer> <viewer>
<img :src="item.image" /> <img
:src="item.image || defaultImage"
@error="imgerr"
/>
</viewer> </viewer>
</td> </td>
<td>{{ item.post }}</td> <td>{{ item.post }}</td>
@ -229,7 +231,11 @@
<div class="item" v-if="currentPoint.serverVideo"> <div class="item" v-if="currentPoint.serverVideo">
<span class="item-label">监控视频</span> <span class="item-label">监控视频</span>
<div class="info"> <div class="info">
<CommonLivePlayer :video-url="currentPoint.serverVideo" :live="true" :muted="true"></CommonLivePlayer> <CommonLivePlayer
:video-url="currentPoint.serverVideo"
:live="true"
:muted="true"
></CommonLivePlayer>
</div> </div>
</div> </div>
</div> </div>
@ -360,6 +366,7 @@ import commonModal from "@/views/common-components/common-modal.vue";
import LivePlayer from "@liveqing/liveplayer"; import LivePlayer from "@liveqing/liveplayer";
import CommonLivePlayer from "@/views/common-components/common-live-player.vue"; import CommonLivePlayer from "@/views/common-components/common-live-player.vue";
import "echarts-liquidfill/src/liquidFill.js"; import "echarts-liquidfill/src/liquidFill.js";
import { logger } from "xgplayer-hls";
export default { export default {
name: "publicService", name: "publicService",
components: { components: {
@ -423,6 +430,7 @@ export default {
btnState: 0, btnState: 0,
deviceState: false, deviceState: false,
pointsState: false, pointsState: false,
defaultImage: require("@/assets/largeScreen/df.jpg")
}; };
}, },
watch: {}, watch: {},
@ -495,6 +503,10 @@ export default {
computed: {}, computed: {},
watch: {}, watch: {},
methods: { methods: {
imgerr(e) {
console.log(e);
e.target.src = this.defaultImage;
},
// //
initDataInfo(type, callback) { initDataInfo(type, callback) {
let params = { let params = {

27
src/views/screen/smart-travel.vue

@ -208,16 +208,7 @@ export default {
videoUrl: "", videoUrl: "",
tabs: ["省份", "城市"], tabs: ["省份", "城市"],
tabIndex: 0, tabIndex: 0,
videoList: [ videoList: [],
{
deviceName: "监控监控监控1111",
url: "",
},
{
deviceName: "监控监控监控1111",
url: "",
},
],
videoIndex: 0, videoIndex: 0,
treeList: [ treeList: [
{ {
@ -225,6 +216,11 @@ export default {
code: "F511502", code: "F511502",
expand: true, expand: true,
children: [ children: [
{
title: "合江门冠英街",
code: "F51150202",
expand: true,
},
{ {
title: "流杯池公园", title: "流杯池公园",
code: "F51150205", code: "F51150205",
@ -240,11 +236,6 @@ export default {
code: "F51150203", code: "F51150203",
expand: true, expand: true,
}, },
{
title: "合江门冠英街",
code: "F51150202",
expand: true,
},
{ {
title: "五粮液景区", title: "五粮液景区",
code: "F51150201", code: "F51150201",
@ -259,6 +250,7 @@ export default {
dayvalue: 0, dayvalue: 0,
provinceList: [], provinceList: [],
cityList: [], cityList: [],
timer: null
}; };
}, },
computed: {}, computed: {},
@ -268,9 +260,14 @@ export default {
calcRate(); calcRate();
windowDraw(); windowDraw();
this.changeTree(this.treeList[0].children[0]); this.changeTree(this.treeList[0].children[0]);
this.timer = setInterval(()=> {
this.realtimeTourist();
this.touristCumulative();
}, 300000)
}, },
beforeDestroy() { beforeDestroy() {
echartsClear(); echartsClear();
this.timer = null
}, },
methods: { methods: {
openApp () { openApp () {

45
src/views/screen/test.vue

@ -0,0 +1,45 @@
<template>
<div style="margin-left: 500px;">
<Input v-model="ciphertext" placeholder="Enter something..." style="width: 500px"></Input>
<Button @click="decryptDES" type="primary">加密</Button>
<Button @click="decryptDES" type="primary">解密</Button><br>
<Input v-model="str" placeholder="" type="textarea" :autosize="{ minRows: 2, maxRows: 20 }" style="width: 500px"></Input>
</div>
</template>
<script>
import CryptoJS from 'crypto-js';
export default {
data () {
return {
key: 'o08YQii9QF5MuzYj',
message: "ZZZZZZ",
ciphertext: "",
str: ""
}
},
methods: {
//
encryptDES () {
var encrypt = CryptoJS.DES.encrypt(this.message, CryptoJS.enc.Utf8.parse(this.key), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
let str = encrypt.toString();
console.log(str)
},
//
decryptDES () {
let decrypted = CryptoJS.DES.decrypt({ ciphertext: CryptoJS.enc.Hex.parse(this.ciphertext) }, CryptoJS.enc.Utf8.parse(this.key), {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
this.str = decrypted.toString(CryptoJS.enc.Utf8);
}
}
}
</script>
Loading…
Cancel
Save