平安校园
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

296 lines
9.1 KiB

  1. <template>
  2. <view class="warningDetail">
  3. <view class="title cli">
  4. 周界入侵-2024-08-20 18:01:41
  5. </view>
  6. <image style="width: 100%;" src="../../static/image/add.png" mode="widthFix"></image>
  7. <view class="cli">
  8. <view class="labelBox">
  9. 所属学校:
  10. </view>
  11. <view class="valueBox">
  12. 演示学校
  13. </view>
  14. </view>
  15. <view class="cli">
  16. <view class="labelBox">
  17. 班级:
  18. </view>
  19. <view class="valueBox">
  20. 暂无数据
  21. </view>
  22. </view>
  23. <view class="cli">
  24. <view class="labelBox">
  25. 告警摄像头:
  26. </view>
  27. <view class="valueBox">
  28. 演示学校
  29. </view>
  30. </view>
  31. <view class="cli">
  32. <view class="labelBox">
  33. 告警类型:
  34. </view>
  35. <view class="valueBox">
  36. 演示学校
  37. </view>
  38. </view>
  39. <view class="cli">
  40. <view class="labelBox">
  41. 告警时间:
  42. </view>
  43. <view class="valueBox">
  44. 2024-8-24 16:42:13
  45. </view>
  46. </view>
  47. <view class="cli">
  48. <view class="labelBox">
  49. 复核视频:
  50. </view>
  51. <view class="valueBox">
  52. <text style="color: #2388FF;" @click="seeVideo">查看视频</text>
  53. <text>暂无数据</text>
  54. </view>
  55. </view>
  56. <view class="cli2">
  57. <view class="labelBox">
  58. 备注信息:
  59. </view>
  60. <view class="valueBox">
  61. 11111111111111111111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa撒大大飒飒水水水水水水顶顶顶顶顶反对
  62. </view>
  63. </view>
  64. <view class="cli2">
  65. <view class="labelBox">
  66. 处理意见:
  67. </view>
  68. <view class="valueBox">
  69. 11111111111111111111111111111111111111111111111aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa撒大大飒飒水水水水水水顶顶顶顶顶反对
  70. </view>
  71. </view>
  72. <u-popup :show="showVideo" :closeable="true" @close="close" @open="open" mode="center">
  73. <!-- <view class="">
  74. 视频
  75. </view> -->
  76. <view class="poupBox">
  77. <view style="width: 750rpx;height: 400rpx;">
  78. <DomVideoPlayer ref="domVideoPlayer" object-fit='contain' :controls="controls" :autoplay="autoplay"
  79. :loop="loop" :src="src" :playback-rate="playbackRate" :is-loading="isLoading" @play="onPlay"
  80. @pause="onPause" @ended="onEnded" @durationchange="onDurationChange" @timeupdate="onTimeUpdate"
  81. @ratechange="onRateChange" @fullscreenchange="onFullscreenChange" />
  82. </view>
  83. </view>
  84. </u-popup>
  85. </view>
  86. </template>
  87. <script>
  88. import DomVideoPlayer from '@/components/DomVideoPlayer/DomVideoPlayer.vue'
  89. // 将xx秒转为 xx:xx 分秒格式
  90. const formatSec2Time = (time) => {
  91. const min = Math.floor(time / 60)
  92. const sec = Math.floor(time % 60)
  93. return `${min}:${sec < 10 ? '0' + sec : sec}`
  94. }
  95. export default {
  96. components: {
  97. DomVideoPlayer
  98. },
  99. data() {
  100. return {
  101. value1: '',
  102. showVideo: false,
  103. // 视频参数
  104. src: '',
  105. // src: 'http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/acp/quanjiang/DEMO00001/20240708/video/wander/SXT001__quanjiang__DEMO00001_video_wm_1720400435638.mp4?Expires=1724745909&OSSAccessKeyId=STS.NV49VEGSbWMNi7Wp4e76VrWKk&Signature=wXTdiWQHGNp%2FtbtezUBmD%2Fziy1E%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5WBcuzxqoxD4I%2BlaxHmlDQwO7l6nZLgiTz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4zIJb0D10s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxKRpnrU0rgxd8uAx9DyyfH1x3TObqd7jjqzaKs3NYdtswV4BUlvK5CGWEjhzQEO8mJtNIDT39ax%2Bf3elrfsIeBqAAaamZEcVMZBN29tT2k9jMRQfJjNJzZRtx5Z4sYbOwDoRAq%2F4qEv07jBx5PUAAB3q9IqDapPoeUw8Yccvlo9q5VG8AsY%2BZkidTAw%2B7s7%2BTKuJC93tJfdSUYdycPZ%2BZneA%2BlZqpdvfhTtZCteGsdnoQU4H7x%2B9ph9K%2Bg3HGMQrtuFdIAA%3D',
  106. playing: false,
  107. loop: false,
  108. controls: true,
  109. autoplay: false,
  110. isLoading: true,
  111. playbackRate: 1,
  112. currentTime: 0,
  113. duration: 0,
  114. }
  115. },
  116. computed: {
  117. // 播放进度
  118. // progress() {
  119. // const percent = this.currentTime / this.duration * 100
  120. // return percent.toFixed(2) + '%'
  121. // },
  122. // // 显示当前时间
  123. // showPlayTime() {
  124. // const curr = formatSec2Time(this.currentTime)
  125. // const dur = formatSec2Time(this.duration)
  126. // return `${curr} / ${dur}`
  127. // },
  128. },
  129. methods: {
  130. seeVideo() {
  131. this.showVideo = true;
  132. },
  133. open() {
  134. // console.log('open');
  135. setTimeout(() => {
  136. this.src =
  137. 'http://deepvision.oss-cn-zhangjiakou.aliyuncs.com/acp/quanjiang/DEMO00001/20240708/video/wander/SXT001__quanjiang__DEMO00001_video_wm_1720400435638.mp4?Expires=1724748181&OSSAccessKeyId=STS.NTwCzwCtwDDYeE7RAhHue5mDb&Signature=qY%2F82lk1K9VJEX95ImeNH9wMHiw%3D&security-token=CAIS0wN1q6Ft5B2yfSjIr5fCCMDDrqtW84ayZ2OGtkE9RPpJ2qjvgDz2IHFMf3huCeodsv8%2BlGxS5%2FgelrpqVpZDR03Na8RHwrly1lv5O9KY4z1YIkL10s%2FLI3OaLjKm9hi7AYygPgK0GJqEb1TDiVUto9%2FTfimjWFqIKICAjYUdAP0cQgi%2Fa0gwZrJRPRAwh8IGEnHTOP2xUHvtmXGCNFd0nQB%2BhGhjk7TdpPeR8R3Dllb35%2FYIroDqWPieYtJrIY10XqWBvqx%2FfbGT1zVLuVoYtvV6gaFc5zbcv9abRFVf4hiCP6%2Ff6MBuNw5%2Fae94efZNp%2BOukuZj6K6B1db7xhtVI%2BBOUiPZA4mr2IzdBeqvNNcwc7m8F1no9YjXbsGs9EEGGStLaVgVI4F8dyAhWEd9FWjgR%2FX5qAyQUGCKULOY1aw6651xwmjz8MCCT1r1GOTBindGasVnMxh5Z0JMjDK9aNkKfgFUbVJ8BrGTCIh%2FYx0bsq7yowDIEyp71TRMo%2Bbu%2FDBhIifKpO4VN7AxMup1DPwu2wNCxKQmwS5Se2k%2BwM10kxsnMbhsSH5O0sXx5M%2B5TxBoZB5p9PtUj15fgYQDR12uT0nToulHQz7%2BX6zfLqvSrfsIeBqAAUdgBEBn%2BksEpfpynILn8V8z3O5GaZcm3NmplGe%2F2XtD9%2FbnSWWTEzR1JJ45DnANEEIGzfjd6UvxpIcrk5Ggr0I52UqVdGUhcovTegZXYeBMsXYze8OLsu0UOhtpHsy8nCCJzpNnrwUBZOfUdZtwsCYHC4Bs8BRQ9JORs4ECvUnyIAA%3D'
  138. }, 3000)
  139. },
  140. close() {
  141. this.showVideo = false;
  142. // console.log('close');
  143. },
  144. // 播放 - 事件
  145. onPlay() {
  146. console.log('onPlay')
  147. this.playing = true
  148. },
  149. // 暂停 - 事件
  150. onPause() {
  151. console.log('onPause')
  152. this.playing = false
  153. },
  154. // 播放完毕 - 事件
  155. onEnded() {
  156. console.log('onEnded')
  157. this.playing = false
  158. },
  159. // 总时长变化 - 事件
  160. onDurationChange(e) {
  161. console.log('onDurationChange', e)
  162. this.duration = e
  163. },
  164. // 播放时间更新 - 事件
  165. onTimeUpdate(e) {
  166. // console.log('onTimeUpdate', e)
  167. this.currentTime = e
  168. },
  169. // 倍速变化 - 事件
  170. onRateChange(e) {
  171. console.log('onRateChange', e)
  172. this.playbackRate = e
  173. },
  174. // 进入/退出全屏 - 事件
  175. onFullscreenChange(e) {
  176. console.log('onFullScreenChange', e)
  177. },
  178. // // 切换播放/暂停 - 函数
  179. // doPlaying() {
  180. // const domVideoPlayer = this.$refs.domVideoPlayer
  181. // if (domVideoPlayer.playing) {
  182. // this.doPause()
  183. // } else {
  184. // this.doPlay()
  185. // }
  186. // },
  187. // // 播放 - 函数
  188. // doPlay() {
  189. // const domVideoPlayer = this.$refs.domVideoPlayer
  190. // domVideoPlayer.play()
  191. // },
  192. // // 暂停 - 函数
  193. // doPause() {
  194. // const domVideoPlayer = this.$refs.domVideoPlayer
  195. // domVideoPlayer.pause()
  196. // },
  197. // // 快退/快进 - 函数
  198. // doSeek(time) {
  199. // const domVideoPlayer = this.$refs.domVideoPlayer
  200. // time += domVideoPlayer.currentTime
  201. // domVideoPlayer.toSeek(time)
  202. // },
  203. // // 全屏播放 - 函数
  204. // doFullScreen() {
  205. // const domVideoPlayer = this.$refs.domVideoPlayer
  206. // domVideoPlayer.fullScreen()
  207. // },
  208. // // 移除视频 - 函数
  209. // doRemove() {
  210. // this.src = ''
  211. // const domVideoPlayer = this.$refs.domVideoPlayer
  212. // domVideoPlayer.remove()
  213. // },
  214. // // 更换src - 函数
  215. // doUpdateSrc() {
  216. // this.src = 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/create-schema2code-video.mp4'
  217. // },
  218. // doUpdateSrcToSeek() {
  219. // // 切换视频
  220. // this.src = 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/create-schema2code-video.mp4'
  221. // setTimeout(() => {
  222. // const domVideoPlayer = this.$refs.domVideoPlayer
  223. // // 视频加载完后,延迟调用toSeek()方法,跳转到第60s位置
  224. // domVideoPlayer.toSeek(60, true)
  225. // }, 100)
  226. // },
  227. // // 切换倍速 - 函数
  228. // switchRate() {
  229. // this.playbackRate = this.playbackRate === 1 ? 2 : 1
  230. // },
  231. // // 切换视频控制栏 - 函数
  232. // switchControls() {
  233. // this.controls = !this.controls
  234. // },
  235. }
  236. }
  237. </script>
  238. <style lang="scss" scoped>
  239. .warningDetail {
  240. // height: 100%;
  241. background: #fff;
  242. .title {
  243. color: #2388FF;
  244. font-size: 30rpx;
  245. height: 88rpx;
  246. line-height: 88rpx;
  247. background: rgba(35, 136, 255, 0.06);
  248. }
  249. .cli {
  250. font-size: 30rpx;
  251. padding: 20rpx 30rpx;
  252. display: flex;
  253. justify-content: space-between;
  254. align-items: center;
  255. .labelBox {
  256. color: #333333;
  257. }
  258. .valueBox {
  259. color: #333333;
  260. font-weight: 700;
  261. }
  262. }
  263. .cli2 {
  264. font-size: 30rpx;
  265. padding: 20rpx 30rpx;
  266. .labelBox {
  267. color: #333333;
  268. }
  269. .valueBox {
  270. margin-top: 20rpx;
  271. color: #333333;
  272. font-weight: 700;
  273. min-height: 100rpx;
  274. word-break: break-all;
  275. }
  276. }
  277. .poupBox {
  278. width: 100%;
  279. padding: 80rpx 20rpx 20rpx 20rpx;
  280. box-sizing: border-box;
  281. }
  282. }
  283. </style>