danger.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <view class="container">
  3. <view class="item-list-wrap" v-if="total>0">
  4. <view class="item-list basics danger">
  5. <view class="basics-item" v-for="(danger,dangerIdx) in items" :key="dangerIdx" @click="linkTo(danger)">
  6. <view class="basics-title">{{danger.dangerTitle}}</view>
  7. <view class="basics-body">
  8. <view class="lf">
  9. <text class="time">{{danger.dangerDeadLine}}</text>
  10. <text class="user">{{danger.curAccountName}}</text>
  11. </view>
  12. <view class="status">{{dangerStatus(danger.status)}}</view>
  13. </view>
  14. </view>
  15. </view>
  16. </view>
  17. <template v-else>
  18. <view class="isEmpty" >
  19. <p class="word">没有数据 ^_^ </p>
  20. </view>
  21. </template>
  22. </view>
  23. </template>
  24. <script>
  25. import {getMyHandlingDangerByPage} from '@/api/aqpt/dangerApi.js'
  26. export default {
  27. data() {
  28. return {
  29. conditions:{
  30. page:1,
  31. limit:15,
  32. },
  33. total:0,
  34. items:[]
  35. }
  36. },
  37. onLoad() {
  38. this.init()
  39. },
  40. methods: {
  41. dangerStatus(i) {
  42. if (i >= 0) {
  43. const strs = ['待提交','待评审','待整改','待验收','已完成']
  44. return strs[i]
  45. } else {
  46. return '已撤销'
  47. }
  48. },
  49. dangerLevelFilter(val){
  50. let levels=['未知','一般隐患','重大隐患'];
  51. return levels[val]
  52. },
  53. init(){
  54. this.items=[]
  55. this.total=0
  56. this.conditions={
  57. limit:15,
  58. page:1
  59. }
  60. this.getData()
  61. this.clearDetail()
  62. },
  63. getData(){
  64. getMyHandlingDangerByPage(this.conditions).then((res)=>{
  65. let items=JSON.parse(JSON.stringify(this.items))
  66. this.items=items.concat(res.data)
  67. this.total=res.total
  68. })
  69. },
  70. changePageNumber({type,current}){
  71. this.conditions.page=current
  72. this.getData()
  73. },
  74. clearDetail(){
  75. if(uni.getStorageSync('detail-info')){
  76. uni.removeStorageSync('detail-info')
  77. }
  78. },
  79. linkTo(item){
  80. uni.setStorageSync('detail-info',item)
  81. uni.navigateTo({
  82. url:'/pages/history/detail/detail'
  83. })
  84. },
  85. isEmpty(val){
  86. if(val!=="undefined"&&val!==undefined&&val!==""&&val!==null){
  87. return false
  88. }
  89. return true
  90. }
  91. },
  92. onUnload() {
  93. uni.$off('type')
  94. },
  95. onPullDownRefresh() {
  96. this.init()
  97. uni.stopPullDownRefresh()
  98. },
  99. onReachBottom() {
  100. if(this.total>=this.conditions.page*this.conditions.limit){
  101. this.conditions.page++
  102. this.getData()
  103. }
  104. }
  105. }
  106. </script>
  107. <style lang="scss" scoped>
  108. .container{
  109. padding-bottom: 100rpx;
  110. min-height: 100vh;
  111. box-sizing: border-box;
  112. background-color: #F5F6F8;
  113. }
  114. .isEmpty{
  115. width: 100%;
  116. height: 100vh;
  117. background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzkgODYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjM4Ljg1JSIgeTE9IjAlIiB4Mj0iNjEuMTUlIiB5Mj0iMTAwJSI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDRkNGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFRUVGRjMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMCUiIHkxPSI5LjUlIiB5Mj0iOTAuNSUiPjxzdG9wIHN0b3AtY29sb3I9IiNGQ0ZDRkQiIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTlFQkVGIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGlkPSJjIiBkPSJNMCAwaDE3djM2SDB6Ii8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTM5LjUgODZDNjEuMzE1IDg2IDc5IDgzLjkxIDc5IDgxLjMzM1M1Ny4zMTUgNzggMzUuNSA3OCAwIDc4Ljc1NiAwIDgxLjMzM0MwIDgzLjkxMSAxNy42ODUgODYgMzkuNSA4NnoiIGZpbGw9IiNGN0Y4RkMiLz48cGF0aCBmaWxsPSIjRTVFN0U5IiBkPSJNMTMgNDVoNDBMNDIgNThIMnpNNjUuNTUxIDI5Ljk4bC0xNi4zMTMtNy42MDctMi44NDEtNS43MzggMTYuMzEzIDcuNjA3eiIvPjxwYXRoIGZpbGw9IiNFREVFRjIiIGQ9Ik02NS41NTEgMjkuOThsLTM0LjQ0LTE2LjA1OS0xNS4yMTQgMzIuNjI3IDM0LjQ0IDE2LjA2eiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIHRyYW5zZm9ybT0icm90YXRlKDI1IDI3LjQ0NiAtNDMuNDE2KSIgZD0iTTM4IDdoMTd2MzZIMzh6Ii8+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTE1LjcwNSA2LjczN2wxNS40MDcgNy4xODQgMTUuNjQ2LS40MjctMTUuNDA3LTcuMTg1eiIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMyA0NWg0MHYzNkgxM3oiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MyA0NSkiPjxtYXNrIGlkPSJkIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNjIi8+PC9tYXNrPjx1c2UgZmlsbD0iI0UwRTNFOSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMTcgMCkiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggZmlsbD0iI0Q1RDdERSIgbWFzaz0idXJsKCNkKSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjQgMCkiIGQ9Ik03IDBoMTdsLTQgMTgtMjAtMnoiLz48L2c+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTcwIDQ1SDUzbDkgMTNoMTd6Ii8+PC9nPjwvc3ZnPg==);
  118. background-size: contain;
  119. background-repeat: no-repeat;
  120. position: relative;
  121. background-color: #fff;
  122. /* #ifndef MP-WEIXIN */
  123. height: calc( 100vh - 100px);
  124. /* #endif */
  125. .word{
  126. width: 100%;
  127. text-align: center;
  128. position: absolute;
  129. top: 80vh;
  130. left: 0;
  131. color: #999;
  132. font-size: 28rpx;
  133. letter-spacing: 2rpx;
  134. }
  135. }
  136. .item-list-wrap{
  137. padding: 0 20rpx;
  138. background-color: #F5F6F8;
  139. margin-top: 18rpx;
  140. .item-list{
  141. background-color: #fff;
  142. border-radius: 16rpx;
  143. overflow: hidden;
  144. &.basics{
  145. background-color: #F5F6F8;
  146. .basics-item{
  147. padding:30rpx 40rpx ;
  148. border-radius: 16rpx;
  149. margin-bottom: 20rpx;
  150. background-color: #fff;
  151. .basics-title{
  152. font-size: 32rpx;
  153. line-height: 48rpx;
  154. font-weight: 500;
  155. color: #212121;
  156. }
  157. .basics-body{
  158. display: flex;
  159. align-items: center;
  160. padding-top: 32rpx;
  161. .lf{
  162. flex: 1;
  163. .time{
  164. font-size: 24rpx;
  165. line-height: 48rpx;
  166. color: #999999;
  167. padding-left: 34rpx;
  168. background-position: center left;
  169. background-repeat: no-repeat;
  170. background-size: 24rpx 24rpx;
  171. background-image: url('/static/time.png');
  172. }
  173. .user{
  174. margin-left:24rpx ;
  175. font-size: 24rpx;
  176. line-height: 48rpx;
  177. color: #999999;
  178. padding-left: 34rpx;
  179. background-position: center left;
  180. background-repeat: no-repeat;
  181. background-size: 24rpx 24rpx;
  182. background-image: url('/static/user.png');
  183. }
  184. }
  185. .status{
  186. font-size: 28rpx;
  187. line-height: 48rpx;
  188. color: #4D73FF;
  189. }
  190. }
  191. }
  192. }
  193. }
  194. }
  195. </style>