Reword.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div class="AttendanceEvent">
  3. <van-nav-bar :title="headTie($route.query.type)" left-text="返回" left-arrow @click-left="$route_back" />
  4. <!-- 奖扣页面 -->
  5. <!-- <div class="headerWrapper">
  6. <img src="static/images/head_default.png" class="avatar" alt />
  7. <div class="info">
  8. <div class="name">范奎奎</div>
  9. <div class="dept">技术部</div>
  10. </div>
  11. <div class="detail">
  12. <div class="point">-20分</div>
  13. <div class="desc">迟到2次,共20分钟</div>
  14. </div>
  15. </div> -->
  16. <scroller :onInfinite="loadMore" ref="list_scroller" :refreshText="'下拉刷新'" :noDataText="'已经到底了'" :onRefresh="loadTop" class="scrollAll">
  17. <event-item :list="list"></event-item>
  18. <div style="padding-bottom: 1.5rem;"></div>
  19. </scroller>
  20. </div>
  21. </template>
  22. <script>
  23. import EventItem from '@/attendance/components/EventItem';
  24. export default {
  25. components: {
  26. EventItem
  27. },
  28. data() {
  29. return {
  30. list: [],
  31. page: 0,
  32. page_size: 10
  33. };
  34. },
  35. computed: {
  36. type() {
  37. return this.$route.query.type;
  38. }
  39. },
  40. methods: {
  41. headTie(type) {
  42. switch (type) {
  43. case 6:
  44. return '考勤奖分';
  45. break;
  46. case 7:
  47. return '考勤扣分';
  48. break;
  49. default:
  50. return '考勤';
  51. }
  52. },
  53. loadMore(done) {
  54. if (!this.enabledLoadpage2) {
  55. done();
  56. return false;
  57. }
  58. let self = this;
  59. self.page += 1;
  60. self.lodData();
  61. },
  62. loadTop(done) {
  63. let self = this;
  64. self.page = 0;
  65. self.enabledLoadpage2 = false;
  66. self.list = [];
  67. self.lodData();
  68. },
  69. lodData() {
  70. let self = this;
  71. self.loading = true;
  72. let params = {};
  73. params.page = this.page;
  74. params.page_size = this.page_size;
  75. params.type = this.type;
  76. this.$axiosKq('post', '/ad/statistics/employee/reward_deduction_event', params).then(res => {
  77. if (res.data.code == 1) {
  78. if (this.page == 0) {
  79. self.list = [];
  80. }
  81. self.list = self.list.concat(res.data.data.list);
  82. }
  83. setTimeout(function() {
  84. self.$refs.list_scroller.finishPullToRefresh();
  85. }, 500);
  86. if (res.data.data.list.length < 10) self.$refs.list_scroller.finishInfinite(res.data.data.list.length < 10);
  87. self.loading = false;
  88. self.$toast.clear();
  89. self.$nextTick(() => {
  90. self.enabledLoadpage2 = true;
  91. });
  92. });
  93. }
  94. }
  95. };
  96. </script>
  97. <style lang="scss" scoped>
  98. .AttendanceEvent {
  99. background-color: #f5f7fa;
  100. .headerWrapper {
  101. display: flex;
  102. align-items: center;
  103. background-color: #fff;
  104. margin-bottom: 0.24rem;
  105. .avatar {
  106. width: 0.84rem;
  107. height: 0.84rem;
  108. border-right: 0.42rem;
  109. margin: 0.18rem 0.14rem 0.18rem 0.32rem;
  110. }
  111. .info {
  112. .name {
  113. font-size: 0.32rem;
  114. color: rgba(48, 49, 51, 1);
  115. line-height: 0.44rem;
  116. }
  117. .dept {
  118. font-size: 0.28rem;
  119. color: rgba(144, 147, 153, 1);
  120. line-height: 0.4rem;
  121. margin-top: 0.04rem;
  122. }
  123. }
  124. .detail {
  125. margin: 0 0.32rem 0 auto;
  126. .point {
  127. font-size: 0.32rem;
  128. color: #f56c6c;
  129. line-height: 0.44rem;
  130. text-align: right;
  131. }
  132. .desc {
  133. font-size: 0.28rem;
  134. color: rgba(144, 147, 153, 1);
  135. line-height: 0.4rem;
  136. margin-top: 0.04rem;
  137. }
  138. }
  139. }
  140. }
  141. .scrollAll {
  142. position: relative !important;
  143. height: calc(100% - 0.96rem) !important;
  144. }
  145. </style>