Detail.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <template>
  2. <uni-popup ref="popup" type="top">
  3. <uni-section type="line" :title="type==='dl'?'地质灾害点详情':'水库淤堤坝详情'">
  4. <template v-slot:right>
  5. <uni-icons type="closeempty" size="24" color="#999" @click="close"></uni-icons>
  6. </template>
  7. </uni-section>
  8. <view class="detail-cont">
  9. <uni-list v-if="type==='dl'">
  10. <uni-list-item title="地质灾害点名称" :rightText="viewData.dlName"></uni-list-item>
  11. <uni-list-item title="地理位置" :rightText="viewData.dlAddress"></uni-list-item>
  12. <uni-list-item title="灾害类别" :rightText="viewData.disasterCatTitle"></uni-list-item>
  13. <uni-list-item title="规模等级" :rightText="viewData.disasterLevelTitle"></uni-list-item>
  14. <uni-list-item title="威胁人数" :rightText="viewData.dlPeopleNum"></uni-list-item>
  15. <uni-list-item title="威胁房屋" :rightText="viewData.dlHouseNum"></uni-list-item>
  16. <uni-list-item title="备注" :note="viewData.remark"></uni-list-item>
  17. </uni-list>
  18. <uni-list v-if="type==='rd'">
  19. <uni-list-item title="监管单位" :rightText="viewData.groupName"></uni-list-item>
  20. <uni-list-item title="水库堤坝名称" :rightText="viewData.rdName"></uni-list-item>
  21. <uni-list-item title="地址" :rightText="viewData.rdAddress"></uni-list-item>
  22. <uni-list-item title="责任人" :rightText="viewData.respName"></uni-list-item>
  23. <uni-list-item title="责任人电话" :rightText="viewData.respPhone"></uni-list-item>
  24. <uni-list-item title="描述" :note="viewData.remark"></uni-list-item>
  25. </uni-list>
  26. <view class="camerasbox">
  27. <view class="item" v-for="item in cameras" :key="item.cameraId">
  28. <view class="item-card">
  29. <view class="title" v-if="item.cameraTitle">{{item.cameraTitle}}</view>
  30. <uni-icons type="videocam-filled" size="40" color="#999" @click="showCamera"></uni-icons>
  31. </view>
  32. </view>
  33. </view>
  34. </view>
  35. </uni-popup>
  36. </template>
  37. <script>
  38. import disasterApi from '@/api/disaster.js'
  39. export default{
  40. name:"DisasteDetail",
  41. props:{
  42. type:{
  43. type:[String,Number],
  44. default:'dl'
  45. }
  46. },
  47. data(){
  48. return{
  49. viewData:{
  50. groupId: 0,
  51. groupName: '',
  52. dlName: '',
  53. dlAddress: '',
  54. dlCatId: 1,
  55. dlLevelId: 1,
  56. dlPeopleNum: 0,
  57. dlHouseNum: 0,
  58. remark: '',
  59. //水库淤堤坝详情
  60. rdId: 0,
  61. rdName: '',
  62. rdAddress: '',
  63. respName: '',
  64. respPhone: ''
  65. },
  66. cameras:[]
  67. }
  68. },
  69. methods:{
  70. showCamera(){
  71. },
  72. show(item){
  73. this.$refs.popup.open('bottom')
  74. this.viewData={...item}
  75. if(item.cameraNum>0){
  76. this.getCameras()
  77. }
  78. },
  79. getCameras(){
  80. const id=this.type==='dl'?this.viewData.dlId:this.viewData.rdId;
  81. disasterApi.getCameraByListWithLocation(id).then((res)=>{
  82. this.cameras=res.data;
  83. })
  84. },
  85. close(){
  86. this.$refs.popup.close()
  87. }
  88. }
  89. }
  90. </script>
  91. <style lang="scss" scoped>
  92. .detail-cont{
  93. &{
  94. max-height: 80vh;
  95. overflow-y: auto;
  96. }
  97. .camerasbox{
  98. width:100%;
  99. display: flex;
  100. align-items: center;
  101. flex-wrap: wrap;
  102. background-color: #fff;
  103. .item{
  104. width: 33.33%;
  105. padding: 20rpx;
  106. background-color: #fff;
  107. box-sizing: border-box;
  108. .item-card{
  109. display: flex;
  110. justify-content: center;
  111. align-items: center;
  112. flex-direction: column;
  113. box-shadow: 0 0 1px rgba(0,0,0,0.6);
  114. padding: 20rpx;
  115. .title{
  116. width: 100%;
  117. font-size: 24rpx;
  118. color: #424242;
  119. line-height: 1.4;
  120. padding-bottom: 15rpx;
  121. overflow:hidden;
  122. text-overflow:ellipsis;
  123. white-space:nowrap;
  124. }
  125. }
  126. }
  127. }
  128. }
  129. </style>