userAlarm.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  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 in imageList" :src="it"></image>
  41. </view>
  42. </view>
  43. <view v-if="item.status!=1" class="order-btns ddflex">
  44. <view style="justify-content: flex-end;" class="ddflex">
  45. <view class="order-btn" @click.stop="deal(item,index)">去处理</view>
  46. </view>
  47. </view>
  48. </view>
  49. <view v-if="groupList.length==0">
  50. <view class="nodata">
  51. <image :src="picUrlss+'empty.png'"></image>
  52. <text>暂无报障~</text>
  53. </view>
  54. </view>
  55. <bottom-pop v-if="showPop" :showPop='showPop' :btnColor="'#11BB8B'" :showBtn='false' title="解除提醒"
  56. @closePop="closePop()" @popSubmit="popSubmit()">
  57. <view>
  58. <view>
  59. <image class="nodata-icon" src="../../static/pages/images/alarmUpload.png"></image>
  60. <view class="nodata-note">上传检修记录,恢复正常</view>
  61. </view>
  62. <view class="pop-btns ddflex">
  63. <view class="btn" @click="closePop">取消</view>
  64. <view class="btn2" @click="jumpUrl('warning/userAlarmUpload/userAlarmUpload')">上传检修记录</view>
  65. </view>
  66. </view>
  67. </bottom-pop>
  68. </view>
  69. </template>
  70. <script>
  71. const app = getApp();
  72. const req = require("../../utils/request.js");
  73. import bottomPop from "../../components/bottom-pop/index";
  74. export default {
  75. components: {
  76. bottomPop
  77. },
  78. props: {},
  79. data() {
  80. return {
  81. picUrlss: req.public.picUrls,
  82. showPop: false,
  83. tempData: null,
  84. groupList: [],
  85. page: 1,
  86. limit: 10,
  87. searchValue:'',
  88. isQuerying:false,//正在查询数据
  89. }
  90. },
  91. onLoad(options) {
  92. this.getMachineList()
  93. },
  94. onShow() {
  95. },
  96. onReachBottom() {
  97. this.getMachineList(true)
  98. },
  99. methods: {
  100. jumpUrl(url) {
  101. if (!req.isLogin()) return false;
  102. app.globalData.navigateTo(url);
  103. },
  104. getTypeString(type){
  105. let arr = ['充电柜故障','电池故障','电池断电故障','电池损坏故障','其它故障']
  106. return arr[Number(type)-1]?arr[Number(type)-1]:'其它故障'
  107. },
  108. // 弹窗弹出
  109. openPop(item) {
  110. this.tempData = JSON.parse(JSON.stringify(item))
  111. this.showPop = true
  112. },
  113. // 弹窗关闭
  114. closePop() {
  115. this.showPop = false
  116. this.tempData = null
  117. },
  118. // 弹窗确认
  119. popSubmit() {
  120. this.closePop()
  121. },
  122. // 获取机柜列表
  123. getMachineList(isPage){
  124. if(this.isQuerying) return
  125. else this.isQuerying = true
  126. if (!isPage) {
  127. this.page = 1
  128. }
  129. let queryParams = {
  130. page: this.page,
  131. limit: this.limit,
  132. }
  133. req.getRequest(
  134. '/admin/v2/alarm/userAlarmPage',
  135. queryParams,
  136. data => {
  137. if (data != null && data.list.length > 0) {
  138. if (!isPage) {
  139. this.groupList = data.list
  140. } else {
  141. this.groupList = this.groupList.concat(data.list)
  142. }
  143. this.page++
  144. } else {
  145. if (!isPage)
  146. this.groupList = data.list
  147. else {}
  148. }
  149. uni.hideLoading()
  150. this.isQuerying = false
  151. }
  152. )
  153. },
  154. // 处理
  155. deal(item,index){
  156. uni.showModal({
  157. title:'提示',
  158. content:'请确认故障是否已解除',
  159. success(res) {
  160. if(res.confirm){
  161. req.getRequest('/admin/v2/alarm/'+item.id,{},data=>{
  162. req.msg('故障已解除')
  163. item.status = 1
  164. })
  165. }
  166. }
  167. })
  168. }
  169. },
  170. mounted() {
  171. },
  172. onPageScroll: function(e) {
  173. }
  174. }
  175. </script>
  176. <style>
  177. @import "./userAlarm.css";
  178. </style>