userAlarm.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <template>
  2. <view style="overflow: hidden;">
  3. <!-- @click="openPop(item)" -->
  4. <view class="order-item" v-for="item,index in groupList" >
  5. <view class="ddflex order-item-header">
  6. <view class="order-time">{{item.createDate}}</view>
  7. <block>
  8. <view v-if="item.status!=1" class="order-state">待处理</view>
  9. <view v-else class="order-state" style="color: #0FCB27;border: 2rpx solid #0FCB27;">已处理</view>
  10. </block>
  11. </view>
  12. <view class="order-item-body">
  13. <view class="order-item-content ddflex">
  14. <view class="order-item-content-label">机柜编号</view>
  15. <view class="order-item-content-data fflex tover">{{item.devId?item.devId:'-'}}</view>
  16. </view>
  17. <view class="order-item-content ddflex">
  18. <view class="order-item-content-label">机柜名</view>
  19. <view class="order-item-content-data fflex tover">{{item.storeName?item.storeName:'未知'}}</view>
  20. </view>
  21. <view class="order-item-content dflex">
  22. <view class="order-item-content-label">机柜地址</view>
  23. <view class="order-item-content-data fflex">{{item.storeAddress?item.storeAddress:'未知'}}</view>
  24. </view>
  25. <view class="order-item-content ddflex">
  26. <view class="order-item-content-label">电池ID</view>
  27. <view class="order-item-content-data fflex tover">{{item.batteryId?item.batteryId:'-'}}</view>
  28. </view>
  29. <view class="order-item-content ddflex">
  30. <view class="order-item-content-label">报障问题</view>
  31. <view class="order-item-content-data fflex tover">{{getTypeString(item.type)}}</view>
  32. </view>
  33. </view>
  34. <view class="order-item-body2">
  35. <view class="order-item-content-label">问题补充描述</view>
  36. <view class="order-item-content ddflex" style="font-size: 24rpx;font-weight: 400;">
  37. {{item.content?item.content:'暂无'}}
  38. </view>
  39. <view class="images-box ddflex">
  40. <image class="images" v-for="it,idx in item.imageList" :src="it" mode="aspectFill" @click="previewImg(item.imageList,idx)"></image>
  41. <view class="video" v-if="item.videoUrl">
  42. <video style="width: 100%;height: 100%;" :src="item.videoUrl"></video>
  43. <!-- <image class="play-icon" src="../../static/images/play.png"></image> -->
  44. </view>
  45. </view>
  46. </view>
  47. <view v-if="item.status!=1" class="order-btns ddflex">
  48. <view style="justify-content: flex-end;" class="ddflex">
  49. <view class="order-btn" @click.stop="deal(item,index)">去处理</view>
  50. </view>
  51. </view>
  52. </view>
  53. <view v-if="groupList.length==0">
  54. <view class="nodata">
  55. <image :src="picUrlss+'empty.png'" mode="aspectFit"></image>
  56. <text>暂无报障~</text>
  57. </view>
  58. </view>
  59. <bottom-pop v-if="showPop" :showPop='showPop' :btnColor="'#11BB8B'" :showBtn='false' title="解除提醒"
  60. @closePop="closePop()" @popSubmit="popSubmit()">
  61. <view>
  62. <view>
  63. <image class="nodata-icon" src="../../static/pages/images/alarmUpload.png"></image>
  64. <view class="nodata-note">上传检修记录,恢复正常</view>
  65. </view>
  66. <view class="pop-btns ddflex">
  67. <view class="btn" @click="closePop">取消</view>
  68. <view class="btn2" @click="jumpUrl('warning/userAlarmUpload/userAlarmUpload')">上传检修记录</view>
  69. </view>
  70. </view>
  71. </bottom-pop>
  72. </view>
  73. </template>
  74. <script>
  75. const app = getApp();
  76. const req = require("../../utils/request.js");
  77. import bottomPop from "../../components/bottom-pop/index";
  78. export default {
  79. components: {
  80. bottomPop
  81. },
  82. props: {},
  83. data() {
  84. return {
  85. picUrlss: req.public.picUrls,
  86. showPop: false,
  87. tempData: null,
  88. groupList: [],
  89. page: 1,
  90. limit: 10,
  91. searchValue:'',
  92. isQuerying:false,//正在查询数据
  93. orderId:null
  94. }
  95. },
  96. onLoad(options) {
  97. if(options.orderId) this.orderId = options.orderId
  98. this.getMachineList()
  99. },
  100. onShow() {
  101. },
  102. onReachBottom() {
  103. this.getMachineList(true)
  104. },
  105. methods: {
  106. jumpUrl(url) {
  107. if (!req.isLogin()) return false;
  108. app.globalData.navigateTo(url);
  109. },
  110. getTypeString(type){
  111. let arr = ['充电柜故障','电池故障','电池断电故障','电池损坏故障','其它故障']
  112. return arr[Number(type)-1]?arr[Number(type)-1]:'其它故障'
  113. },
  114. // 弹窗弹出
  115. openPop(item) {
  116. this.tempData = JSON.parse(JSON.stringify(item))
  117. this.showPop = true
  118. },
  119. // 弹窗关闭
  120. closePop() {
  121. this.showPop = false
  122. this.tempData = null
  123. },
  124. // 弹窗确认
  125. popSubmit() {
  126. this.closePop()
  127. },
  128. // 获取机柜列表
  129. getMachineList(isPage){
  130. if(this.isQuerying) return
  131. else this.isQuerying = true
  132. if (!isPage) {
  133. this.page = 1
  134. }
  135. let queryParams = {
  136. page: this.page,
  137. limit: this.limit,
  138. }
  139. if(this.orderId){
  140. queryParams.orderId = this.orderId
  141. }
  142. req.getRequest(
  143. '/admin/v2/alarm/userAlarmPage',
  144. queryParams,
  145. data => {
  146. if (data != null && data.list.length > 0) {
  147. data.list.map(item=>{
  148. if(item.imageList.length>0){
  149. item.imageList = item.imageList.filter(item => item)
  150. }
  151. })
  152. if (!isPage) {
  153. this.groupList = data.list
  154. } else {
  155. this.groupList = this.groupList.concat(data.list)
  156. }
  157. this.page++
  158. } else {
  159. if (!isPage)
  160. this.groupList = data.list
  161. else {}
  162. }
  163. uni.hideLoading()
  164. this.isQuerying = false
  165. }
  166. )
  167. },
  168. // 处理
  169. deal(item,index){
  170. uni.showModal({
  171. title:'提示',
  172. content:'请确认故障是否已解除',
  173. success(res) {
  174. if(res.confirm){
  175. req.getRequest('/admin/v2/alarm/'+item.id,{},data=>{
  176. req.msg('故障已解除')
  177. item.status = 1
  178. })
  179. }
  180. }
  181. })
  182. },
  183. previewImg(list,index) {
  184. uni.previewImage({
  185. current: index,
  186. // 当前显示图片的http链接
  187. urls: list
  188. });
  189. },
  190. },
  191. mounted() {
  192. },
  193. onPageScroll: function(e) {
  194. }
  195. }
  196. </script>
  197. <style>
  198. @import "./userAlarm.css";
  199. </style>