userAlarm.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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="false">
  42. <image style="width: 100%;height: 100%;"></image>
  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'"></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. }
  94. },
  95. onLoad(options) {
  96. this.getMachineList()
  97. },
  98. onShow() {
  99. },
  100. onReachBottom() {
  101. this.getMachineList(true)
  102. },
  103. methods: {
  104. jumpUrl(url) {
  105. if (!req.isLogin()) return false;
  106. app.globalData.navigateTo(url);
  107. },
  108. getTypeString(type){
  109. let arr = ['充电柜故障','电池故障','电池断电故障','电池损坏故障','其它故障']
  110. return arr[Number(type)-1]?arr[Number(type)-1]:'其它故障'
  111. },
  112. // 弹窗弹出
  113. openPop(item) {
  114. this.tempData = JSON.parse(JSON.stringify(item))
  115. this.showPop = true
  116. },
  117. // 弹窗关闭
  118. closePop() {
  119. this.showPop = false
  120. this.tempData = null
  121. },
  122. // 弹窗确认
  123. popSubmit() {
  124. this.closePop()
  125. },
  126. // 获取机柜列表
  127. getMachineList(isPage){
  128. if(this.isQuerying) return
  129. else this.isQuerying = true
  130. if (!isPage) {
  131. this.page = 1
  132. }
  133. let queryParams = {
  134. page: this.page,
  135. limit: this.limit,
  136. }
  137. req.getRequest(
  138. '/admin/v2/alarm/userAlarmPage',
  139. queryParams,
  140. data => {
  141. if (data != null && data.list.length > 0) {
  142. data.list.map(item=>{
  143. if(item.imageList.length>0){
  144. item.imageList = item.imageList.filter(item => item)
  145. }
  146. })
  147. if (!isPage) {
  148. this.groupList = data.list
  149. } else {
  150. this.groupList = this.groupList.concat(data.list)
  151. }
  152. this.page++
  153. } else {
  154. if (!isPage)
  155. this.groupList = data.list
  156. else {}
  157. }
  158. uni.hideLoading()
  159. this.isQuerying = false
  160. }
  161. )
  162. },
  163. // 处理
  164. deal(item,index){
  165. uni.showModal({
  166. title:'提示',
  167. content:'请确认故障是否已解除',
  168. success(res) {
  169. if(res.confirm){
  170. req.getRequest('/admin/v2/alarm/'+item.id,{},data=>{
  171. req.msg('故障已解除')
  172. item.status = 1
  173. })
  174. }
  175. }
  176. })
  177. },
  178. previewImg(list,index) {
  179. uni.previewImage({
  180. current: index,
  181. // 当前显示图片的http链接
  182. urls: list
  183. });
  184. },
  185. },
  186. mounted() {
  187. },
  188. onPageScroll: function(e) {
  189. }
  190. }
  191. </script>
  192. <style>
  193. @import "./userAlarm.css";
  194. </style>