userAlarm.vue 4.7 KB

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