myScore.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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.uid,item.scoringYearMonth)">查看详情 ></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': 1
  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(uid,time) {
  105. this.$router.push("/myScore/" + uid + "/" + time)
  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. background: #EFEFEF;
  134. }
  135. .detailBox {
  136. background: #fff;
  137. margin-bottom: 0.11rem;
  138. }
  139. .recordBox {
  140. margin: 0.12rem 0 0 0;
  141. }
  142. .one_recordBox {
  143. padding: 0.12rem 0.2rem;
  144. }
  145. .record_head {
  146. padding: 0 0 0.1rem 0;
  147. border-bottom: 1px solid #ccc;
  148. }
  149. .record_head > div {
  150. width: 100%;
  151. display: inline-block;
  152. vertical-align: middle;
  153. }
  154. .record_head > div span {
  155. color: #5FA1F0;
  156. }
  157. .record_body {
  158. color: #777;
  159. font-size: 0.12rem;
  160. line-height: 0.23rem;
  161. margin-top: 0.12rem;
  162. }
  163. .record_body .toDetail {
  164. float: right;
  165. color: #5FA1F0;
  166. }
  167. .noList {
  168. text-align: center;
  169. padding: 1.5rem 0;
  170. }
  171. .noList img {
  172. width: 1.2rem;
  173. height: 1.2rem;
  174. }
  175. .order {
  176. height: 0.6rem;
  177. line-height: 0.6rem;
  178. text-align: center;
  179. }
  180. .order .line {
  181. display: inline-block;
  182. width: 1.2rem;
  183. border-top: 1px solid #ccc ;
  184. vertical-align: middle;
  185. }
  186. .order .txt {
  187. color: #ccc;
  188. font-size: 0.13rem;
  189. vertical-align: middle;
  190. }
  191. </style>