Approval.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <div class="approval">
  3. <m-header />
  4. <van-tabs :swipeable="true" :animated="true">
  5. <van-tab title="待处理">
  6. <van-list v-model="dataSection.loading" v-if="dataSection.show" key="data"
  7. :finished="dataSection.finished"
  8. finished-text="我是有底线的"
  9. @load="getClassGroupList">
  10. <div v-for="(item, index) in dataSection.dataList" :key="index" class="app-item">
  11. <div class="hd">
  12. <span class="orangeStatus">待处理</span>
  13. <span>2019-09-01</span>
  14. </div>
  15. <div class="bd">
  16. <p>申请人:黄青筝</p>
  17. <p>审批事项:调休</p>
  18. <p>开始时间:2019-09-01 9:00</p>
  19. <p>结束时间:2019-09-01 18:00</p>
  20. <p>备注:家中急事,调休一天</p>
  21. </div>
  22. </div>
  23. </van-list>
  24. <m-empty v-else key="data" />
  25. </van-tab>
  26. <van-tab title="已处理">
  27. <van-list v-model="recordSection.loading" v-if="recordSection.show" key="records"
  28. :finished="recordSection.finished"
  29. finished-text="我是有底线的"
  30. @load="getStudentAttendanceList">
  31. <div v-for="i in 6" :key="i" class="app-item">
  32. <div class="hd">
  33. <span class="orangeStatus">待处理</span>
  34. <span>2019-09-01</span>
  35. </div>
  36. <div class="bd">
  37. <p>申请人:黄青筝</p>
  38. <p>审批事项:调休</p>
  39. <p>开始时间:2019-09-01 9:00</p>
  40. <p>结束时间:2019-09-01 18:00</p>
  41. <p>备注:家中急事,调休一天</p>
  42. </div>
  43. </div>
  44. </van-list>
  45. <m-empty v-else key="records" />
  46. </van-tab>
  47. </van-tabs>
  48. </div>
  49. </template>
  50. <script>
  51. import MHeader from '@/components/MHeader'
  52. import MEmpty from '@/components/MEmpty'
  53. import { queryWaitList, queryProcessedList } from '@/api/teacher'
  54. export default {
  55. name: 'approval',
  56. components: { MHeader, MEmpty },
  57. data() {
  58. return {
  59. dataSection: {
  60. show: true, // 判断是否有数据
  61. dataList: [],
  62. loading: false,
  63. finished: false,
  64. params: {
  65. groupId: this.$route.params.groupId,
  66. pageNo: 1,
  67. pageSize: 10
  68. }
  69. },
  70. recordSection: {
  71. show: true, // 判断是否有数据
  72. recordList: [],
  73. loading: false,
  74. finished: false,
  75. params: {
  76. groupId: this.$route.params.groupId,
  77. pageNo: 1,
  78. pageSize: 10
  79. }
  80. }
  81. }
  82. },
  83. methods: {
  84. getClassGroupList() {
  85. let dataSection = this.dataSection
  86. let params = dataSection.params
  87. queryWaitList(params).then(res => {
  88. let result = res.data
  89. dataSection.loading = false
  90. if(result.code == 200) {
  91. dataSection.dataList = dataSection.dataList.concat(result.data.result)
  92. if(params.pageNo >= result.data.totalPages) {
  93. dataSection.finished = true
  94. }
  95. dataSection.params.pageNo++
  96. } else {
  97. dataSection.finished = true
  98. }
  99. if(dataSection.dataList.length <= 0) {
  100. dataSection.show = false
  101. }
  102. })
  103. },
  104. getStudentAttendanceList() {
  105. let recordSection = this.recordSection
  106. let params = recordSection.params
  107. queryProcessedList(params).then(res => {
  108. let result = res.data
  109. recordSection.loading = false
  110. if(result.returnCode == 200) {
  111. this.recordTotal = result.total
  112. recordSection.recordList = recordSection.recordList.concat(result.records)
  113. if(params.pageNo >= result.pages) {
  114. recordSection.finished = true
  115. }
  116. recordSection.params.pageNo++
  117. } else {
  118. recordSection.finished = true
  119. }
  120. if(recordSection.recordList.length <= 0) {
  121. recordSection.show = false
  122. }
  123. })
  124. },
  125. }
  126. }
  127. </script>
  128. <style lang='less' scoped>
  129. @import url("../../assets/commonLess/variable.less");
  130. .approval {
  131. min-height: 100vh;
  132. }
  133. /deep/.van-tab--active {
  134. color: #EF5A50;
  135. }
  136. /deep/.van-tabs__line {
  137. background-color: @mColor;
  138. }
  139. .app-item {
  140. margin: 0 .16rem .1rem;
  141. background: @whiteColor;
  142. border-radius: .1rem;
  143. font-size: .14rem;
  144. &:first-child {
  145. margin-top: .1rem;
  146. }
  147. .hd {
  148. padding: .1rem .15rem .1rem .19rem;
  149. border-bottom: 1px solid #f5f5f5;
  150. color: @tFontColor;
  151. display: flex;
  152. justify-content: space-between;
  153. }
  154. .bd {
  155. padding: .12rem .15rem .2rem .19rem;
  156. line-height: .2rem;
  157. }
  158. }
  159. </style>