ソースを参照

[FE]首页修改

chenxr3 4 年 前
コミット
0906c46018
共有2 個のファイルを変更した62 個の追加21 個の削除を含む
  1. 2 0
      security-protection-platform/package.json
  2. 60 21
      security-protection-platform/src/modules/dashboard/index.vue

+ 2 - 0
security-protection-platform/package.json

@ -78,6 +78,8 @@
78 78
    "vuedraggable": "2.19",
79 79
    "video.js": "7.10.2",
80 80
    "videojs-playlist": "4.3.1",
81
    "videojs-flash": "2.2.1",
82
    "vue-video-player": "5.0.2",
81 83
    "echarts": "^4.9.0"
82 84
  }
83 85
}

+ 60 - 21
security-protection-platform/src/modules/dashboard/index.vue

@ -5,7 +5,7 @@
5 5
    </div>
6 6
    <div>
7 7
      <div class="time"><span style="color: #00d8f3;font-size: 21px;">{{ nowDate | dateFormat }}</span></div>
8
      <div class="goto"><t-icon icon="arrow-right-outline"></t-icon>进入系统</div>
8
      <div class="goto" @click="gotoSystem"><t-icon icon="arrow-right-outline"></t-icon>进入系统</div>
9 9
    </div>
10 10
    <div class="body">
11 11
      <div class="body-left">
@ -57,7 +57,9 @@
57 57
        <div :style="`background-image: url(${titleImgBg})`" class="title" style="width: 370px;">
58 58
          <span class="title-span">重点区域监控</span>
59 59
        </div>
60
        <img src="@/assets/images/indexT1.png" style="width: 730px;height: 730px;padding-left: 20px;padding-top: 10px;">
60
        <video-player ref="videoPlayer" :options="videoOptions" class="vjs-custom-skin videoPlayer" :playsinline="true"></video-player>
61
62
<!--        <img src="@/assets/images/indexT1.png" style="width: 730px;height: 730px;padding-left: 20px;padding-top: 10px;">-->
61 63
      </div>
62 64
      <div class="body-right">
63 65
        <div :style="`background-image: url(${titleImgBg})`" class="title" style="width: 330px;">
@ -75,6 +77,10 @@ import titleImgBg from '@/assets/images/indexTitle.png'
75 77
import polygon from '@/assets/images/polygon.png'
76 78
import echarts from 'echarts'
77 79
import dasapi from '@/api/dashboard'
80
import 'video.js/dist/video-js.css'
81
import 'vue-video-player/src/custom-theme.css'
82
import { videoPlayer } from 'vue-video-player'
83
import 'videojs-flash'
78 84
79 85
export default {
80 86
  filters: {
@ -108,10 +114,13 @@ export default {
108 114
      )
109 115
    }
110 116
  },
111
  components: {},
117
  components: {
118
    videoPlayer
119
  },
112 120
  data() {
113 121
    return {
114 122
      nowDate: new Date(),
123
      videoOptions: {},
115 124
      imgBg: imgBg,
116 125
      titleImgBg: titleImgBg,
117 126
      polygon: polygon,
@ -120,15 +129,42 @@ export default {
120 129
      alarmDataX: [],
121 130
      alarmDataY: [],
122 131
      topData: [
123
        {name: '未戴安全帽', value: 0},
124
        {name: '人员聚集', value: 0},
125
        {name: '吸烟', value: 0},
126
        {name: '摔倒', value: 0}]
132
        {name: '未戴安全帽', value: ''},
133
        {name: '人员聚集', value: ''},
134
        {name: '吸烟', value: ''},
135
        {name: '摔倒', value: ''}],
136
      topData1: []
127 137
    }
128 138
  },
129 139
  computed: {
130 140
  },
131 141
  mounted () {
142
143
    this.videoOptions = {
144
      live: true,
145
      autoplay: true,
146
      fluid: true,
147
      notSupportedMessage: '暂时无法播放',
148
      controlBar: {
149
        timeDivider: true,
150
        durationDisplay: true,
151
        remainingTimeDisplay: false,
152
        fullscreenToggle: true // 全屏按钮
153
      },
154
      techOrder: ['flash'],
155
      flash: {
156
        hls: { withCredentials: false },
157
        swf: 'static/video-js.swf' // 引入静态文件swf
158
      },
159
      sources: [{ // 流配置,数组形式,会根据兼容顺序自动切换
160
        type: 'rtmp/mp4',
161
        src: 'rtmp://58.200.131.2:1935/livetv/hunantv' 
162
      }]
163
    }
164
165
166
167
132 168
    setInterval(() => { // 当前时间
133 169
      this.nowDate = new Date()
134 170
    }, 1000)
@ -137,10 +173,12 @@ export default {
137 173
    this.init24Top()
138 174
  },
139 175
  methods: {
176
177
    gotoSystem() {
178
      this.$router.push({name:'videoSurveillance'})
179
    },
140 180
    initAttendance() {
141
      debugger
142 181
      this.attendanceData = dasapi.queryAttendanceChart().then(res => {
143
        debugger
144 182
        this.population = res.data.totalSize
145 183
        res.data.dataList.forEach(e => {
146 184
          if (e.name === '在岗') {
@ -158,9 +196,7 @@ export default {
158 196
      })
159 197
    },
160 198
    initAlarm() {
161
      debugger
162 199
      this.population = dasapi.queryAlarmAnalysisChart().then(res => {
163
        debugger
164 200
        res.data.forEach(e => {
165 201
          this.alarmDataX.push(e.name)
166 202
          this.alarmDataY.push(e.value)
@ -169,10 +205,11 @@ export default {
169 205
      })
170 206
    },
171 207
    init24Top() {
172
      debugger
173
      this.topData = dasapi.queryAlarmAnalysisTopList().then(res => {
174
        debugger
175
        this.topData = res.data
208
      this.topData1 = dasapi.queryAlarmAnalysisTopList().then(res => {
209
        this.topData1 = res.data
210
        if (res.data.length>3){
211
          this.topData = this.topData1
212
        }
176 213
      })
177 214
    },
178 215
    initAttendanceData() {
@ -251,12 +288,14 @@ export default {
251 288
      var wordNum = parseInt((gridWidth / this.alarmDataX.length) / fontsize);
252 289
      var flag = 0
253 290
      this.alarmDataX.forEach(value => {
254
        var strs = value.split('')
255
        var str = ''
256
        for (var i = 0, s; s = strs[i++];) {
257
          str += s
258
          if (!(i % wordNum)) {
259
            flag = -20
291
        if (value){
292
          var strs = value.split('')
293
          var str = ''
294
          for (var i = 0, s; s = strs[i++];) {
295
            str += s
296
            if (!(i % wordNum)) {
297
              flag = -20
298
            }
260 299
          }
261 300
        }
262 301
      })