金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
3.3 KiB

  1. <template>
  2. <view id="recommendation">
  3. <view class="content-list">
  4. <block v-for="(items, idx) in list" :key="idx">
  5. <view class="item" v-for="(item, index) in items" :key="index" :data-id="item.id" @tap="jump" >
  6. <view class="name">
  7. {{item.title}}
  8. </view>
  9. <view class="author">
  10. <span class="iconfont icon-yonghu"></span>
  11. {{item.author}}
  12. </view>
  13. <view class="img-box">
  14. <image mode="widthFix" :src="item.img"></image>
  15. </view>
  16. </view>
  17. </block>
  18. </view>
  19. </view>
  20. </template>
  21. <script>
  22. import {pageLogin, getUrl,config} from '@/common/js/utils.js';
  23. export default {
  24. data() {
  25. return {
  26. list: [],
  27. banner: [],
  28. type: '',
  29. more: true,
  30. page: 1
  31. };
  32. },
  33. //下拉刷新
  34. onReachBottom() {
  35. if (this.more) {
  36. let page = this.page + 1;
  37. this.getArticleList(page);
  38. } else {
  39. wx.showToast({
  40. image: '../../../static/error.png',
  41. title: '再拉也没有啦'
  42. });
  43. }
  44. },
  45. onShow(e) {
  46. this.getArticleList(1);
  47. wx.getSystemInfo({
  48. success: res => {
  49. this.windowWidth=res.windowWidth;
  50. }
  51. });
  52. },
  53. methods: {
  54. jump(e) {
  55. let id = e.currentTarget.dataset.id;
  56. wx.navigateTo({
  57. url: '/pages/article/detail/detail?id=' + id
  58. });
  59. },
  60. //获取文章列表
  61. getArticleList(page) {
  62. wx.showLoading({
  63. title: "加载中",
  64. mask: true
  65. });
  66. this.$http
  67. .get({
  68. api: 'api/article/list',
  69. data: {
  70. page: page,
  71. type: 1
  72. }
  73. }).then(res => {
  74. if (res.statusCode == 200) {
  75. res = res.data;
  76. if (res.status) {
  77. var pages = res.meta.pagination;
  78. var current_page = pages.current_page;
  79. var total_pages = pages.total_pages;
  80. this.setData({
  81. // [`list[${page - 1}]`]: res.data,
  82. more: current_page < total_pages,
  83. page: current_page,
  84. banner: res.meta.img_list
  85. });
  86. this.$set(this.list, page -1, res.data);
  87. wx.setNavigationBarTitle({
  88. title: res.meta.title
  89. });
  90. } else {
  91. wx.showModal({
  92. content: res.message || '请求失败',
  93. showCancel: false
  94. });
  95. }
  96. } else {
  97. wx.showModal({
  98. content: res.message || '请求失败',
  99. showCancel: false
  100. });
  101. }
  102. this.show=false;
  103. wx.hideLoading();
  104. }).catch(rej => {
  105. wx.hideLoading();
  106. console.log(rej);return;
  107. wx.showModal({
  108. content: res.message || '请求失败',
  109. showCancel: false
  110. });
  111. });
  112. },
  113. setData:function(obj){
  114. let that = this;
  115. let keys = [];
  116. let val,data;
  117. Object.keys(obj).forEach(function(key){
  118. keys = key.split('.');
  119. val = obj[key];
  120. data = that.$data;
  121. keys.forEach(function(key2,index){
  122. if(index+1 == keys.length){
  123. that.$set(data,key2,val);
  124. }else{
  125. if(!data[key2]){
  126. that.$set(data,key2,{});
  127. }
  128. }
  129. data = data[key2];
  130. })
  131. });
  132. }
  133. },
  134. };
  135. </script>
  136. <style rel="stylesheet/less" lang="less">
  137. @import "recommendation";
  138. </style>