earlyWarningDetail.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. <!-- 预案报警信息 -->
  2. <template>
  3. <view class="earlyWarning">
  4. <scroll-view scroll-y @scrolltolower="scrollGet" class="info-max-box">
  5. <!-- 预案报警 -->
  6. <view class="header" v-if="form.warningType==4">甲烷气体泄露-中风险</view>
  7. <!-- 化学品 -->
  8. <view class="header_tow" v-if="form.warningType==2">化学品违规带离</view>
  9. <!-- 气瓶 -->
  10. <view class="header_three" v-if="form.warningType==3">气瓶违规带离</view>
  11. <!-- 算法识别 -->
  12. <view class="header_four" v-if="form.warningType==1">多人未穿戴实验服</view>
  13. <!-- 预案报警 -->
  14. <view class="site" v-if="form.warningType==4">
  15. <img src="@/images/Version2.2/icon_wtzg_xx.png"/>
  16. <text>{{form.subName}}</text>
  17. <text></text>
  18. <text>{{form.buildName}}{{form.floorName}}{{form.roomNum}}</text>
  19. </view>
  20. <!-- 化学品 -->
  21. <view class="site_tow" v-if="form.warningType==2 || form.warningType==3 || form.warningType==1">
  22. <view class="site_tow_t">
  23. <img src="@/images/Version2.2/icon_wtzg_xx.png"/>
  24. <text>{{form.warningTime}}</text>
  25. </view>
  26. <view class="site_tow_b">
  27. <img src="@/images/Version2.2/icon_wtzg_xx.png"/>
  28. <text>{{form.subName}}</text>
  29. <text></text>
  30. <text>{{form.buildName}}{{form.floorName}}{{form.roomNum}}</text>
  31. </view>
  32. </view>
  33. <!-- 预案报警 -->
  34. <view class="basics" v-if="form.warningType==4">
  35. <view class="small_title"><text></text><text>风险概况</text></view>
  36. <view class="basics_li" style="margin-top:20rpx;">
  37. <text>发生时间:</text>
  38. <text>{{form.startTime}}至{{form.endTime}}</text>
  39. </view>
  40. <view class="basics_li">
  41. <text>持续时间:</text>
  42. <text>{{form.riskDuration}}</text>
  43. </view>
  44. <view class="basics_li">
  45. <text>风险响应人员:</text>
  46. <text>{{form.responder}}</text>
  47. </view>
  48. <view class="basics_li">
  49. <text>实验室内人员:</text>
  50. <text>{{form.indoorUser}}</text>
  51. </view>
  52. </view>
  53. <!-- 化学品 -->
  54. <view class="basics" v-if="form.warningType==2">
  55. <view class="small_title"><text></text><text>化学品信息</text></view>
  56. <view class="basics_li" style="margin-top:20rpx;">
  57. <text>{{form.name}}</text>
  58. <text></text>
  59. </view>
  60. <view class="basics_li">
  61. <text>存放位置:</text>
  62. <text>{{form.deposit}}</text>
  63. </view>
  64. <view class="basics_li">
  65. <text>化学品余量:</text>
  66. <text>{{form.margin}}</text>
  67. </view>
  68. <view class="basics_li">
  69. <text>申领人:</text>
  70. <text>{{form.apply}}</text>
  71. </view>
  72. <view class="basics_li">
  73. <text>申领时间:</text>
  74. <text>{{form.applyTime}}</text>
  75. </view>
  76. <view class="basics_li">
  77. <text>过期时间:</text>
  78. <text>{{form.applyTime}}</text>
  79. </view>
  80. </view>
  81. <!-- 气瓶 -->
  82. <view class="basics" v-if="form.warningType==3">
  83. <view class="small_title"><text></text><text>气瓶信息</text></view>
  84. <view class="basics_li" style="margin-top:20rpx;">
  85. <text>{{form.name}}</text>
  86. <text></text>
  87. </view>
  88. <view class="basics_li">
  89. <text>气体余量:</text>
  90. <text>{{form.margin}}</text>
  91. </view>
  92. <view class="basics_li">
  93. <text>气瓶规格:</text>
  94. <text>{{form.specification}}</text>
  95. </view>
  96. <view class="basics_li">
  97. <text>所有人:</text>
  98. <text>{{form.specification}}</text>
  99. </view>
  100. <view class="basics_li">
  101. <text>入库时间:</text>
  102. <text>{{form.specification}}</text>
  103. </view>
  104. <view class="basics_li">
  105. <text>申领人:</text>
  106. <text>{{form.apply}}</text>apply
  107. </view>
  108. <view class="basics_li">
  109. <text>申领时间:</text>
  110. <text>{{form.applyTime}}</text>
  111. </view>
  112. </view>
  113. <view class="note" v-if="form.warningType==4 || form.warningType==1">
  114. <view class="small_title"><text></text><text>通知短信</text></view>
  115. <view class="note_li" style="margin-top:20rpx;" v-for="(item,index) in form.messageVOList">
  116. <text>{{item.name}}</text>
  117. <view class="note_li_r" v-if="item.isSuccess=='成功'"><img src="@/images/icon_yjxx_ytz.png"/><text>已通知</text></view>
  118. </view>
  119. </view>
  120. <view class="note">
  121. <view class="small_title"><text></text><text>预警通知</text></view>
  122. <view class="note_li" style="margin-top:20rpx;">
  123. <text>语音播报</text>
  124. <view class="note_li_r"><img src="@/images/icon_yjxx_ytz.png"/><text>已通知</text></view>
  125. </view>
  126. </view>
  127. <view class="picture">
  128. <view class="small_title"><text></text><text>报警抓拍</text></view>
  129. <view class="picture_b" >
  130. <view class="video">
  131. <video id="myvideo" class="video_t" :src="configUrl+infoData.recordVideo"></video>
  132. <img class="video_b" @click="lockVideo()" src="@/images/icon_bjzp_spbof.png"/>
  133. </view>
  134. </view>
  135. </view>
  136. <view class="bottom_btn">查看监控</view>
  137. </scroll-view>
  138. </view>
  139. </template>
  140. <script>
  141. import { config } from '@/api/request/config.js'
  142. import {checkManageList,conditionCollegeInfo,warningNoticeLogDetail} from '@/api/index.js'
  143. export default {
  144. name: "rectifyList",
  145. components: {
  146. },
  147. data() {
  148. return {
  149. configUrl:config.base_url,
  150. //列表请求参数
  151. getData:{
  152. pageNum:1,
  153. pageSize:20,
  154. },
  155. total:0,
  156. id:'',
  157. form:{},
  158. }
  159. },
  160. onLoad(option) {
  161. if(option.id){
  162. this.id=option.id;
  163. }
  164. },
  165. onShow() {
  166. },
  167. mounted(){
  168. this.getInfo();
  169. },
  170. methods: {
  171. //滚动事件
  172. scrollGet(){
  173. let self=this;
  174. },
  175. //查看图片
  176. lockImg(list){
  177. console.log(list)
  178. if(!list[0]){
  179. return
  180. }
  181. let urlList=[];
  182. for(let i=0;i<list.length;i++){
  183. urlList.push(this.baseUrl+list[i].fileUrl)
  184. }
  185. wx.previewImage({
  186. urls: urlList, //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
  187. current: '', // 当前显示图片的http链接,默认是第一个
  188. success: function(res) {},
  189. fail: function(res) {},
  190. complete: function(res) {},
  191. })
  192. },
  193. //视频全屏播放
  194. lockVideo(){
  195. this.videoContext = uni.createVideoContext("myvideo", this);
  196. this.videoContext.requestFullScreen({ direction: 90 });
  197. this.videoContext.play();
  198. },
  199. //获取详情
  200. async getInfo(){
  201. let _this = this;
  202. const {data} = await warningNoticeLogDetail({id:this.id})
  203. if(data.code==200){
  204. let res=data.data
  205. this.form=res;
  206. if(res.warningType==1){
  207. uni.setNavigationBarTitle({
  208. title:'算法识别预警信息'
  209. })
  210. }else if(res.warningType==2){
  211. uni.setNavigationBarTitle({
  212. title:'化学品预警信息'
  213. })
  214. }else if(res.warningType==3){
  215. uni.setNavigationBarTitle({
  216. title:'气瓶预警信息'
  217. })
  218. }else if(res.warningType==4){
  219. uni.setNavigationBarTitle({
  220. title:'预案报警信息'
  221. })
  222. }
  223. }
  224. },
  225. handleClick(row,doType){
  226. let self=this;
  227. if( doType=='detail'){//详情
  228. }
  229. },
  230. }
  231. }
  232. </script>
  233. <style lang="stylus" scoped>
  234. .earlyWarning{
  235. height:100%;
  236. display flex;
  237. padding-bottom: 30rpx;
  238. box-sizing: border-box;
  239. .red_color{
  240. color: #D40000;
  241. border: 1rpx solid #D40000;
  242. }
  243. .orange_color{
  244. color: #FF4800;
  245. border: 1rpx solid #FF4800;
  246. }
  247. .yellow_color{
  248. color: #FFA34E;
  249. border: 1rpx solid #FFA34E;
  250. }
  251. .info-max-box{
  252. flex: 1;
  253. overflow: scroll;
  254. }
  255. .header{
  256. width: 750rpx;
  257. height: 80rpx;
  258. font-size: 28rpx;
  259. font-family: PingFang SC-Medium, PingFang SC;
  260. font-weight: 400;
  261. color: #D40000;
  262. line-height: 80rpx;
  263. text-align: center;
  264. background: rgba(212,0,0,0.2);
  265. }
  266. .header_tow{
  267. width: 750rpx;
  268. height: 80rpx;
  269. font-size: 28rpx;
  270. font-family: PingFang SC-Medium, PingFang SC;
  271. font-weight: 400;
  272. color: #FF4800;
  273. line-height: 80rpx;
  274. text-align: center;
  275. background: rgba(255,72,0,0.2);
  276. }
  277. .header_three{
  278. width: 750rpx;
  279. height: 80rpx;
  280. font-size: 28rpx;
  281. font-family: PingFang SC-Medium, PingFang SC;
  282. font-weight: 400;
  283. color: #FF4800;
  284. line-height: 80rpx;
  285. text-align: center;
  286. background: rgba(255,72,0,0.2);
  287. }
  288. .header_four{
  289. width: 750rpx;
  290. height: 80rpx;
  291. font-size: 28rpx;
  292. font-family: PingFang SC-Medium, PingFang SC;
  293. font-weight: 400;
  294. color: #FFA34E;
  295. line-height: 80rpx;
  296. text-align: center;
  297. background: rgba(255,163,78,0.2);
  298. }
  299. .site{
  300. width: 690rpx;
  301. height: 80rpx;
  302. background: #FFFFFF;
  303. display: flex;
  304. justify-content: flex-start;
  305. align-items: center;
  306. border-radius: 20rpx 20rpx 20rpx 20rpx;
  307. margin:20rpx 30rpx;
  308. >img{
  309. width: 30rpx;
  310. height: 30rpx;
  311. margin-right: 22rpx;
  312. margin-left: 30rpx;
  313. }
  314. >text:nth-of-type(1){
  315. font-size: 28rpx;
  316. font-family: PingFang SC-Medium, PingFang SC;
  317. font-weight: 400;
  318. color: #333333;
  319. line-height: 28rpx;
  320. }
  321. >text:nth-of-type(2){
  322. display: inline-block;
  323. width: 2rpx;
  324. height: 20rpx;
  325. background: #E0E0E0;
  326. margin: 0 24rpx 0 28rpx;
  327. }
  328. >text:nth-of-type(3){
  329. font-size: 28rpx;
  330. font-family: PingFang SC-Medium, PingFang SC;
  331. font-weight: 400;
  332. color: #333333;
  333. line-height: 28rpx;
  334. }
  335. }
  336. .site_tow{
  337. width: 690rpx;
  338. height: 170rpx;
  339. background: #FFFFFF;
  340. border-radius: 20rpx 20rpx 20rpx 20rpx;
  341. margin:20rpx 30rpx;
  342. overflow: hidden;
  343. .site_tow_t{
  344. height: 40rpx;
  345. display: flex;
  346. justify-content: flex-start;
  347. align-items: center;
  348. margin-top: 32rpx;
  349. >img{
  350. width: 30rpx;
  351. height: 30rpx;
  352. margin-right: 22rpx;
  353. margin-left: 30rpx;
  354. }
  355. >text:nth-of-type(1){
  356. font-size: 28rpx;
  357. font-family: PingFang SC-Medium, PingFang SC;
  358. font-weight: 400;
  359. color: #333333;
  360. line-height: 28rpx;
  361. }
  362. }
  363. .site_tow_b{
  364. height: 40rpx;
  365. display: flex;
  366. justify-content: flex-start;
  367. align-items: center;
  368. margin-top: 20rpx;
  369. >img{
  370. width: 30rpx;
  371. height: 30rpx;
  372. margin-right: 22rpx;
  373. margin-left: 30rpx;
  374. }
  375. >text:nth-of-type(1){
  376. font-size: 28rpx;
  377. font-family: PingFang SC-Medium, PingFang SC;
  378. font-weight: 400;
  379. color: #333333;
  380. line-height: 28rpx;
  381. }
  382. >text:nth-of-type(2){
  383. display: inline-block;
  384. width: 2rpx;
  385. height: 20rpx;
  386. background: #E0E0E0;
  387. margin: 0 24rpx 0 28rpx;
  388. }
  389. >text:nth-of-type(3){
  390. font-size: 28rpx;
  391. font-family: PingFang SC-Medium, PingFang SC;
  392. font-weight: 400;
  393. color: #333333;
  394. line-height: 28rpx;
  395. }
  396. }
  397. }
  398. .small_title{
  399. height: 90rpx;
  400. display: flex;
  401. justify-content: flex-start;
  402. align-items: center;
  403. border-bottom: 1rpx solid #E0E0E0;
  404. >text:nth-of-type(1){
  405. display: inline-block;
  406. width: 4rpx;
  407. height: 30rpx;
  408. background: #0183FA;
  409. margin: 0 22rpx 0 28rpx;
  410. }
  411. >text:nth-of-type(1){
  412. font-size: 30rpx;
  413. font-family: PingFang SC-Medium, PingFang SC;
  414. font-weight: 400;
  415. color: #333333;
  416. line-height: 30rpx;
  417. }
  418. }
  419. .basics{
  420. margin-left: 30rpx;
  421. width: 690rpx;
  422. height: auto;
  423. background: #FFFFFF;
  424. border-radius: 20rpx 20rpx 20rpx 20rpx;
  425. padding-bottom: 16rpx;
  426. box-sizing: border-box;
  427. .basics_li{
  428. display: flex;
  429. justify-content: space-between;
  430. margin: 0 30rpx;
  431. >text:nth-of-type(1){
  432. font-size: 28rpx;
  433. font-family: PingFang SC-Medium, PingFang SC;
  434. font-weight: 400;
  435. color: #333333;
  436. line-height: 60rpx;
  437. }
  438. >text:nth-of-type(2){
  439. font-size: 28rpx;
  440. font-family: PingFang SC-Medium, PingFang SC;
  441. font-weight: 400;
  442. color: #333333;
  443. line-height: 60rpx;
  444. flex: 1;
  445. text-align: right;
  446. }
  447. }
  448. }
  449. .note{
  450. margin-left: 30rpx;
  451. margin-top: 20rpx;
  452. width: 690rpx;
  453. height: auto;
  454. background: #FFFFFF;
  455. border-radius: 20rpx 20rpx 20rpx 20rpx;
  456. padding-bottom: 16rpx;
  457. box-sizing: border-box;
  458. .note_li{
  459. display: flex;
  460. justify-content: space-between;
  461. margin: 0 30rpx;
  462. >text:nth-of-type(1){
  463. font-size: 28rpx;
  464. font-family: PingFang SC-Medium, PingFang SC;
  465. font-weight: 400;
  466. color: #333333;
  467. line-height: 60rpx;
  468. }
  469. .note_li_r{
  470. display: flex;
  471. justify-content: flex-start;
  472. align-items: center;
  473. >img{
  474. width: 28rpx;
  475. height: 28rpx;
  476. margin-right: 10rpx;
  477. }
  478. font-size: 28rpx;
  479. font-family: PingFang SC-Medium, PingFang SC;
  480. font-weight: 400;
  481. color: #0183FA;
  482. line-height: 60rpx;
  483. }
  484. }
  485. }
  486. .picture{
  487. margin-left: 30rpx;
  488. width: 690rpx;
  489. height: auto;
  490. background: #FFFFFF;
  491. border-radius: 20rpx 20rpx 20rpx 20rpx;
  492. margin-top: 20rpx;
  493. .picture_b{
  494. display: flex;
  495. justify-content: flex-start;
  496. flex-wrap: wrap;
  497. padding: 40rpx 30rpx 10rpx;
  498. box-sizing: border-box;
  499. .video{
  500. position: relative;
  501. width: 150rpx;
  502. height: 150rpx;
  503. border-radius: 10rpx 10rpx 10rpx 10rpx;
  504. margin-right: 38rpx;
  505. margin-bottom: 10rpx;
  506. .video_t{
  507. width: 150rpx;
  508. height: 150rpx;
  509. border-radius: 10rpx 10rpx 10rpx 10rpx;
  510. position: absolute;
  511. }
  512. .video_b{
  513. width: 40rpx;
  514. height: 40rpx;
  515. position: absolute;
  516. left: 55rpx;
  517. top: 55rpx;
  518. }
  519. }
  520. }
  521. }
  522. .bottom_btn{
  523. width: 690rpx;
  524. height: 90rpx;
  525. border-radius: 10rpx 10rpx 10rpx 10rpx;
  526. opacity: 1;
  527. border: 1rpx solid #0183FA;
  528. font-size: 30rpx;
  529. font-family: PingFang SC-Medium, PingFang SC;
  530. font-weight: 400;
  531. color: #0183FA;
  532. line-height: 90rpx;
  533. text-align: center;
  534. background: #F5F5F5;
  535. margin: 90rpx 30rpx 30rpx;
  536. }
  537. }
  538. </style>