myScore.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <template>
  2. <div class="detail">
  3. <mt-header class="detail_head" fixed title="我的评分">
  4. <router-link to="" slot="left">
  5. <mt-button icon="back" v-on:click="jumpBack()"></mt-button>
  6. </router-link>
  7. </mt-header>
  8. <div class="detail_body">
  9. <div class="noList" v-if="list.length==0">
  10. <img src="../../assets/image/noList.png">
  11. </div>
  12. <ul v-else class="recordBox" v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="10">
  13. <li v-for="item in list" class="one_recordBox detailBox">
  14. <div class="record_head">
  15. <div>{{parseInt(item.scoringYearMonth.split('-')[1])}}月得分:&nbsp;&nbsp;&nbsp;<span>{{item.total}}分</span></div>
  16. </div>
  17. <div class="record_body">
  18. <div>个人分:{{item.personalScore}}分</div>
  19. <div>建议分:{{item.ideaScore}}分</div>
  20. <div>评分人:{{item.rater}}</div>
  21. <div>时间:{{item.scoringYearMonth}} <span class="toDetail" v-on:click="toDetail(item.scoreId)">查看详情 ></span></div>
  22. </div>
  23. </li>
  24. <div class="order" v-if="haveMore">
  25. <span class="line"></span>
  26. <span class="txt">没有更多了</span>
  27. <span class="line"></span>
  28. </div>
  29. </ul>
  30. </div>
  31. </div>
  32. </template>
  33. <script>
  34. export default {
  35. data() {
  36. return {
  37. user: JSON.parse(sessionStorage.getItem("user")),
  38. list: [],
  39. pageNum: 1,
  40. pages: 1,
  41. haveMore: false,
  42. }
  43. },
  44. methods: {
  45. // 评分列表
  46. getList() {
  47. this.$indicator.open();
  48. this.http.post(this.port.my.scoreList, {
  49. 'uid': this.user.id,
  50. 'pageNum': this.pageNum
  51. } ,
  52. res => {
  53. this.$indicator.close();
  54. if (res.code == "ok") {
  55. this.list = res.data.list;
  56. this.pages = res.data.pages==0?1:res.data.pages;
  57. } else {
  58. this.$toast({
  59. message: res.msg,
  60. duration: 2000
  61. });
  62. }
  63. }, error => {
  64. this.$indicator.close();
  65. this.$toast({
  66. message: error,
  67. duration: 2000
  68. });
  69. })
  70. },
  71. loadMore() {
  72. if(this.pageNum == this.pages) {
  73. this.haveMore = true;
  74. } else if(this.pageNum < this.pages) {
  75. this.$indicator.open();
  76. this.http.post(this.port.my.scoreList, {
  77. 'uid': this.user.id,
  78. 'pageNum': ++this.pageNum
  79. } ,
  80. res => {
  81. this.$indicator.close();
  82. if (res.code == "ok") {
  83. this.pages = res.data.pages==0?1:res.data.pages;
  84. if(res.data.list.length != 0) {
  85. for(var i in res.data.list) {
  86. this.list.push(res.data.list[i]);
  87. }
  88. }
  89. } else {
  90. this.$toast({
  91. message: res.msg,
  92. duration: 2000
  93. });
  94. }
  95. }, error => {
  96. this.$indicator.close();
  97. this.$toast({
  98. message: error,
  99. duration: 2000
  100. });
  101. })
  102. }
  103. },
  104. toDetail(id) {
  105. this.$router.push("/myScore/" + id)
  106. },
  107. jumpBack() {
  108. this.$router.go(-1);
  109. }
  110. },
  111. created() {
  112. this.getList();
  113. },
  114. mounted() {
  115. }
  116. }
  117. </script>
  118. <style scoped>
  119. body {
  120. background: #EFEFEF;
  121. }
  122. .detail {
  123. background: #EFEFEF;
  124. }
  125. .detail_head {
  126. background: #fff;
  127. color: #333;
  128. height: 0.4rem;
  129. }
  130. .detail_body {
  131. margin-top: 0.4rem;
  132. padding-bottom: 0.15rem;
  133. }
  134. .detailBox {
  135. background: #fff;
  136. margin-bottom: 0.11rem;
  137. }
  138. .recordBox {
  139. margin: 0.12rem 0 0 0;
  140. }
  141. .one_recordBox {
  142. padding: 0.12rem 0.2rem;
  143. }
  144. .record_head {
  145. padding: 0 0 0.1rem 0;
  146. border-bottom: 1px solid #ccc;
  147. }
  148. .record_head > div {
  149. width: 100%;
  150. display: inline-block;
  151. vertical-align: middle;
  152. }
  153. .record_head > div span {
  154. color: #5FA1F0;
  155. }
  156. .record_body {
  157. color: #777;
  158. font-size: 0.12rem;
  159. line-height: 0.23rem;
  160. margin-top: 0.12rem;
  161. }
  162. .record_body .toDetail {
  163. float: right;
  164. color: #5FA1F0;
  165. }
  166. .noList {
  167. text-align: center;
  168. padding: 1.5rem 0;
  169. }
  170. .noList img {
  171. width: 1.2rem;
  172. height: 1.2rem;
  173. }
  174. .order {
  175. height: 0.6rem;
  176. line-height: 0.6rem;
  177. text-align: center;
  178. }
  179. .order .line {
  180. display: inline-block;
  181. width: 1.2rem;
  182. border-top: 1px solid #ccc ;
  183. vertical-align: middle;
  184. }
  185. .order .txt {
  186. color: #ccc;
  187. font-size: 0.13rem;
  188. vertical-align: middle;
  189. }
  190. </style>