danger.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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 {getDangerByPage} 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. getDangerByPage(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. },
  98. onReachBottom() {
  99. if(this.total>=this.conditions.page*this.conditions.limit){
  100. this.conditions.page++
  101. this.getData()
  102. }
  103. }
  104. }
  105. </script>
  106. <style lang="scss" scoped>
  107. .container{
  108. padding-bottom: 100rpx;
  109. min-height: 100vh;
  110. box-sizing: border-box;
  111. background-color: #F5F6F8;
  112. }
  113. .isEmpty{
  114. width: 100%;
  115. height: 100vh;
  116. background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzkgODYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjM4Ljg1JSIgeTE9IjAlIiB4Mj0iNjEuMTUlIiB5Mj0iMTAwJSI+PHN0b3Agc3RvcC1jb2xvcj0iI0ZDRkNGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNFRUVGRjMiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMCUiIHkxPSI5LjUlIiB5Mj0iOTAuNSUiPjxzdG9wIHN0b3AtY29sb3I9IiNGQ0ZDRkQiIG9mZnNldD0iMCUiLz48c3RvcCBzdG9wLWNvbG9yPSIjRTlFQkVGIiBvZmZzZXQ9IjEwMCUiLz48L2xpbmVhckdyYWRpZW50PjxwYXRoIGlkPSJjIiBkPSJNMCAwaDE3djM2SDB6Ii8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHBhdGggZD0iTTM5LjUgODZDNjEuMzE1IDg2IDc5IDgzLjkxIDc5IDgxLjMzM1M1Ny4zMTUgNzggMzUuNSA3OCAwIDc4Ljc1NiAwIDgxLjMzM0MwIDgzLjkxMSAxNy42ODUgODYgMzkuNSA4NnoiIGZpbGw9IiNGN0Y4RkMiLz48cGF0aCBmaWxsPSIjRTVFN0U5IiBkPSJNMTMgNDVoNDBMNDIgNThIMnpNNjUuNTUxIDI5Ljk4bC0xNi4zMTMtNy42MDctMi44NDEtNS43MzggMTYuMzEzIDcuNjA3eiIvPjxwYXRoIGZpbGw9IiNFREVFRjIiIGQ9Ik02NS41NTEgMjkuOThsLTM0LjQ0LTE2LjA1OS0xNS4yMTQgMzIuNjI3IDM0LjQ0IDE2LjA2eiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIHRyYW5zZm9ybT0icm90YXRlKDI1IDI3LjQ0NiAtNDMuNDE2KSIgZD0iTTM4IDdoMTd2MzZIMzh6Ii8+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTE1LjcwNSA2LjczN2wxNS40MDcgNy4xODQgMTUuNjQ2LS40MjctMTUuNDA3LTcuMTg1eiIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMyA0NWg0MHYzNkgxM3oiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MyA0NSkiPjxtYXNrIGlkPSJkIiBmaWxsPSIjZmZmIj48dXNlIHhsaW5rOmhyZWY9IiNjIi8+PC9tYXNrPjx1c2UgZmlsbD0iI0UwRTNFOSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMTcgMCkiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggZmlsbD0iI0Q1RDdERSIgbWFzaz0idXJsKCNkKSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjQgMCkiIGQ9Ik03IDBoMTdsLTQgMTgtMjAtMnoiLz48L2c+PHBhdGggZmlsbD0iI0Y4RjlGQiIgZD0iTTcwIDQ1SDUzbDkgMTNoMTd6Ii8+PC9nPjwvc3ZnPg==);
  117. background-size: contain;
  118. background-repeat: no-repeat;
  119. position: relative;
  120. background-color: #fff;
  121. /* #ifndef MP-WEIXIN */
  122. height: calc( 100vh - 100px);
  123. /* #endif */
  124. .word{
  125. width: 100%;
  126. text-align: center;
  127. position: absolute;
  128. top: 80vh;
  129. left: 0;
  130. color: #999;
  131. font-size: 28rpx;
  132. letter-spacing: 2rpx;
  133. }
  134. }
  135. .item-list-wrap{
  136. padding: 0 20rpx;
  137. background-color: #F5F6F8;
  138. margin-top: 18rpx;
  139. .item-list{
  140. background-color: #fff;
  141. border-radius: 16rpx;
  142. overflow: hidden;
  143. &.basics{
  144. background-color: #F5F6F8;
  145. .basics-item{
  146. padding:30rpx 40rpx ;
  147. border-radius: 16rpx;
  148. margin-bottom: 20rpx;
  149. background-color: #fff;
  150. .basics-title{
  151. font-size: 32rpx;
  152. line-height: 48rpx;
  153. font-weight: 500;
  154. color: #212121;
  155. }
  156. .basics-body{
  157. display: flex;
  158. align-items: center;
  159. padding-top: 32rpx;
  160. .lf{
  161. flex: 1;
  162. .time{
  163. font-size: 24rpx;
  164. line-height: 48rpx;
  165. color: #999999;
  166. padding-left: 34rpx;
  167. background-position: center left;
  168. background-repeat: no-repeat;
  169. background-size: 24rpx 24rpx;
  170. background-image: url('/static/time.png');
  171. }
  172. .user{
  173. margin-left:24rpx ;
  174. font-size: 24rpx;
  175. line-height: 48rpx;
  176. color: #999999;
  177. padding-left: 34rpx;
  178. background-position: center left;
  179. background-repeat: no-repeat;
  180. background-size: 24rpx 24rpx;
  181. background-image: url('/static/user.png');
  182. }
  183. }
  184. .status{
  185. font-size: 28rpx;
  186. line-height: 48rpx;
  187. color: #4D73FF;
  188. }
  189. }
  190. }
  191. }
  192. }
  193. }
  194. </style>