Browse Source

修改 7.26

tanyanfei 2 years ago
parent
commit
ebdadc7cee
100 changed files with 2303 additions and 556 deletions
  1. 12 2
      app.json
  2. 96 0
      pages/article/article.js
  3. 3 0
      pages/article/article.json
  4. 14 0
      pages/article/article.wxml
  5. 33 0
      pages/article/article.wxss
  6. 109 0
      pages/baike/baike.js
  7. 3 0
      pages/baike/baike.json
  8. 21 0
      pages/baike/baike.wxml
  9. 95 0
      pages/baike/baike.wxss
  10. 80 0
      pages/black/black.js
  11. 3 0
      pages/black/black.json
  12. 5 0
      pages/black/black.wxml
  13. 29 0
      pages/black/black.wxss
  14. 21 0
      pages/detail/detail.js
  15. 27 3
      pages/homepage/homepage.js
  16. 8 1
      pages/homepage/homepage.wxml
  17. 10 5
      pages/homepage/homepage.wxss
  18. 96 0
      pages/hotuser/hotuser.js
  19. 3 0
      pages/hotuser/hotuser.json
  20. 27 0
      pages/hotuser/hotuser.wxml
  21. 70 0
      pages/hotuser/hotuser.wxss
  22. 89 182
      pages/index/index.js
  23. 190 215
      pages/index/index.wxml
  24. 198 10
      pages/index/index.wxss
  25. 107 0
      pages/myfollow/myfollow.js
  26. 3 0
      pages/myfollow/myfollow.json
  27. 33 0
      pages/myfollow/myfollow.wxml
  28. 50 0
      pages/myfollow/myfollow.wxss
  29. 47 27
      pages/stock/stock.js
  30. 1 1
      pages/stock/stock.json
  31. 117 79
      pages/stock/stock.wxml
  32. 80 28
      pages/stock/stock.wxss
  33. 108 0
      pages/tlb/tlb.js
  34. 3 0
      pages/tlb/tlb.json
  35. 25 0
      pages/tlb/tlb.wxml
  36. 85 0
      pages/tlb/tlb.wxss
  37. 1 1
      pages/today/today.wxss
  38. 96 0
      pages/todayExp/todayExp.js
  39. 3 0
      pages/todayExp/todayExp.json
  40. 24 0
      pages/todayExp/todayExp.wxml
  41. 47 0
      pages/todayExp/todayExp.wxss
  42. 1 1
      pages/user/user.wxss
  43. 72 0
      pages/winlost/winlost.js
  44. 3 0
      pages/winlost/winlost.json
  45. 52 0
      pages/winlost/winlost.wxml
  46. 68 0
      pages/winlost/winlost.wxss
  47. 1 1
      project.private.config.json
  48. 10 0
      utils/api.js
  49. 24 0
      utils/toFixed.wxs
  50. BIN
      xiao/.DS_Store
  51. BIN
      xiao/1.png
  52. BIN
      xiao/2.png
  53. BIN
      xiao/3.png
  54. BIN
      xiao/about.png
  55. BIN
      xiao/about@2x.png
  56. BIN
      xiao/about@3x.png
  57. BIN
      xiao/add@2x.png
  58. BIN
      xiao/add@3x.png
  59. BIN
      xiao/baike@2x.png
  60. BIN
      xiao/baike@3x.png
  61. BIN
      xiao/bs.png
  62. BIN
      xiao/bs@2x.png
  63. BIN
      xiao/bs@3x.png
  64. BIN
      xiao/choosedown@2x.png
  65. BIN
      xiao/choosedown@3x.png
  66. BIN
      xiao/codebg@2x.png
  67. BIN
      xiao/codebg@3x.png
  68. BIN
      xiao/cyouke@2x.png
  69. BIN
      xiao/cyouke@3x.png
  70. BIN
      xiao/czixun@2x.png
  71. BIN
      xiao/czixun@3x.png
  72. BIN
      xiao/default_img@2x.png
  73. BIN
      xiao/default_img@3x.png
  74. BIN
      xiao/default_user@2x.png
  75. BIN
      xiao/default_user@3x.png
  76. BIN
      xiao/delete.png
  77. BIN
      xiao/delete@2x.png
  78. BIN
      xiao/delete@3x.png
  79. BIN
      xiao/dianzan@2x.png
  80. BIN
      xiao/dianzan@3x.png
  81. BIN
      xiao/down.png
  82. BIN
      xiao/down@2x.png
  83. BIN
      xiao/down@3x.png
  84. BIN
      xiao/down_white@2x.png
  85. BIN
      xiao/down_white@3x.png
  86. BIN
      xiao/error@2x.png
  87. BIN
      xiao/error@3x.png
  88. BIN
      xiao/finance_delete@2x.png
  89. BIN
      xiao/finance_delete@3x.png
  90. BIN
      xiao/gonggao@2x.png
  91. BIN
      xiao/gonggao@3x.png
  92. BIN
      xiao/home@2x.png
  93. BIN
      xiao/home@3x.png
  94. BIN
      xiao/home_0.png
  95. BIN
      xiao/home_1.png
  96. BIN
      xiao/home_h@2x.png
  97. BIN
      xiao/home_h@3x.png
  98. BIN
      xiao/icon_down@2x.png
  99. BIN
      xiao/icon_down@3x.png
  100. 0 0
      xiao/icon_rise@2x.png

+ 12 - 2
app.json

@@ -1,17 +1,24 @@
 {
   "pages": [
+    
     "pages/index/index",
     "pages/rank/rank",
     "pages/upload/upload",
+    "pages/stock/stock",
+    "pages/tlb/tlb",
+    "pages/baike/baike",
+    "pages/black/black",
+    "pages/myfollow/myfollow",
+    "pages/todayExp/todayExp",
     "pages/user/user",
     "pages/choice/choice",
+    "pages/hotuser/hotuser",
     "pages/homepage/homepage",
     "pages/today/today",
     "pages/signup/signup",
     "pages/rethink/rethink",
     "pages/message/message",
     "pages/change/change",
-    "pages/stock/stock",
     "pages/apply/apply",
     "pages/login/user",
     "pages/myMatchDetail/myMatchDetail",
@@ -26,11 +33,14 @@
     "pages/detail/detail",
     "pages/list/list",
     "pages/comment/comment",
+    "pages/winlost/winlost",
+    "pages/article/article",
+    
     "pages/matchdetail/matchdetail"
   ],
   "window": {
     "backgroundTextStyle": "light",
-    "navigationBarBackgroundColor": "#D94B24",
+    "navigationBarBackgroundColor": "#ff0f03",
     "navigationBarTitleText": "顽主杯",
     "navigationBarTextStyle": "white"
   },

+ 96 - 0
pages/article/article.js

@@ -0,0 +1,96 @@
+// pages/article/article.js
+const app = getApp()
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    list:[],
+    total:0,
+    page:1
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    this.setData({
+      type:options.type
+    })
+    wx.setNavigationBarTitle({
+      title: options.type,
+    })
+    this.getData()
+  },
+  getData:function(){
+    var list = this.data.list
+    $api.getChampionlList({category:this.data.type,page:this.data.page}).then(res=>{
+      res.data.data.list.forEach(item => {
+        list.push(item)
+      })
+      this.setData({
+        list: list,
+        total: res.data.data.total
+      })
+    })
+  },
+  next: function () {
+    if (this.data.list.length < this.data.total) {
+      const page = this.data.page + 1
+      this.setData({
+        page: page
+      })
+      this.getData()
+    }
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/article/article.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 14 - 0
pages/article/article.wxml

@@ -0,0 +1,14 @@
+<scroll-view  scroll-y='{{true}}'  bindscrolltolower='next'>
+<view class="up-down">
+        <navigator wx:for="{{list}}"  hover-class="none" url="../detail/detail?id={{item.id}}" >
+          <view class="article-name">
+          {{item.name}}
+          <text>{{item.ctime}}</text>
+          </view>
+          <image class="article-img" mode="aspectFill" src="{{item.img}}"></image>
+        </navigator>
+</view>
+<block wx:if='{{total >= 20}}'>
+      <view class='loading' wx:if='{{list.length < total}}'>上拉加载更多...</view>
+</block>
+</scroll-view>

+ 33 - 0
pages/article/article.wxss

@@ -0,0 +1,33 @@
+/* pages/article/article.wxss */
+scroll-view{
+  height: 100vh;
+}
+.up-down{
+  padding: 20rpx;
+}
+.up-down>navigator{
+  padding: 20rpx 0;
+  border-bottom: 1px solid #f2f2f2;
+  display: flex;
+  font-size: 26rpx;
+  position: relative;
+}
+.article-img{
+  max-width: 150rpx;
+  height: 150rpx;
+  border-radius: 8rpx;
+}
+.article-name{
+  display: inline-block;
+  width: 82%;
+  line-height: 38rpx !important;
+  height: 38rpx;
+}
+.article-name text{
+  display: block;
+  color: #999;
+  font-size: 24rpx;
+  position: absolute;
+  left: 0;
+  bottom: 20rpx;
+}

+ 109 - 0
pages/baike/baike.js

@@ -0,0 +1,109 @@
+// pages/hotuser/hotuser.js
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    cat:[],
+    list:[],
+    total:0,
+    page:1,
+    date:'',
+    cur:'win'
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    $api.getBaikeCategory().then(res=>{
+      this.setData({
+        cat:res.data.data[0].children,
+        cur:res.data.data[0].children[0].id
+      })
+      this.getData()
+    })
+    
+  },
+  tab(e){
+    this.setData({
+      cur:e.target.dataset.id,
+      list:[],
+      page:1
+    })
+    this.getData()
+},
+  getData:function(){
+    wx.showNavigationBarLoading()
+    var list = this.data.list
+    $api.getBaike({category_id:this.data.cur,page:this.data.page,page_size:20}).then(res=>{
+      wx.hideNavigationBarLoading()
+      res.data.data.list.forEach(item => {
+        list.push(item)
+      })
+      this.setData({
+        list: list,
+        total: res.data.data.total
+      })
+    })
+  },
+  next: function () {
+    if (this.data.list.length < this.data.total) {
+      const page = this.data.page + 1
+      this.setData({
+        page: page
+      })
+      this.getData()
+    }
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/baike/baike.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": ""
+}

+ 21 - 0
pages/baike/baike.wxml

@@ -0,0 +1,21 @@
+<wxs module="filters" src="../../utils/toFixed.wxs" />
+<view class="top_bg">
+      <image mode="widthFix" src="../../xiao/titlebg@2x.png"></image>
+      <view class="top_title">短线百科 <text>吃瓜群众</text></view>
+</view>
+<view class="tab">
+  <view wx:for="{{cat}}" bindtap="tab"   data-id='{{item.id}}' class="{{cur==item.id?'act':''}}">{{item.name}}</view>
+</view>
+<scroll-view scroll-y="{{true}}" bindscrolltolower='next'>
+  <navigator wx:for="{{list}}" class="list" url="../detail/detail?id={{item.category_id}}&type=百科">
+    <view>{{item.name}}</view>
+    <view class="info">
+      <image wx:if='{{item.img}}' mode="aspectFill" src="{{item.img}}"></image>
+      <image wx:else mode="aspectFill" src="../../xiao/default_img@2x.png"></image>
+      <text>{{item.intro}}</text>
+    </view>
+  </navigator>
+  <block wx:if='{{total >= 20}}'>
+      <view class='loading' wx:if='{{list.length < total}}'>加载更多...</view>
+  </block>
+</scroll-view>

+ 95 - 0
pages/baike/baike.wxss

@@ -0,0 +1,95 @@
+/* pages/tlb/tlb.wxss */
+.top_bg {
+  position: relative;
+}
+.top_bg>image{
+  width: 100%;
+}
+.top_bg .top_title{
+  position: absolute;
+  left: 0;
+  right: 0;
+  margin: auto;
+  color: #fff;
+  text-align: center;
+  top: 20rpx;
+  font-size: 46rpx;
+  font-weight: 600;
+}
+.top_title text{
+  display: block;
+  font-size: 25rpx;
+  color: #fff;
+  font-weight: 400;
+}
+.tab{
+  background: #fff;
+  padding:0 20rpx;
+  display: flex;
+  border-bottom: 1px solid #f2f2f2;
+  position: relative;
+  top: -40rpx;
+  border-radius: 20rpx;
+  justify-content: space-between;
+}
+.tab view{
+  font-size: 28rpx;
+  color: #333;
+  line-height: 80rpx;
+  transition: all .1s linear;
+  margin-right: 30rpx;
+  font-weight: 500;
+}
+.tab .act{
+  color: #FF583D;
+  border-bottom: 2px solid #FF583D;
+}
+.number{
+  width: 38rpx;
+  display: inline-block;
+  text-align: center;
+  color: #999;
+  font-size: 24rpx;
+  font-weight: 600;
+  position: relative;
+  top: -3rpx;
+}
+image.number{
+  top: 4rpx;
+  margin-right: 10rpx;
+}
+scroll-view{
+  height: calc(100vh - 285rpx);
+  position: relative;
+  top: -20rpx;
+}
+.list{
+  color: #333;
+  font-size: 24rpx;
+  margin-bottom: 20rpx;
+  padding: 0 20rpx 20rpx;
+  font-weight: 500;
+  border-bottom: 1px solid #f2f2f2;
+}
+.list text{
+  margin-right: 10rpx;
+}
+.info{
+  display: flex;
+  margin-top: 10rpx;
+}
+.info image{
+  width: 200rpx;
+  height: 200rpx;
+  border-radius: 10rpx;
+}
+.info text{
+  display: block;
+  width: 70%;
+  padding: 20rpx;
+  color: #666;
+  text-overflow: -o-ellipsis-lastline;
+  overflow: hidden;text-overflow: ellipsis;display: -webkit-box;
+  -webkit-line-clamp: 3;-webkit-box-orient: vertical;align-content: center;
+  height: 120rpx;
+}

+ 80 - 0
pages/black/black.js

@@ -0,0 +1,80 @@
+// pages/hotuser/hotuser.js
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    list:[]
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    this.getData()
+  },
+
+  getData:function(){
+    wx.showNavigationBarLoading()
+    $api.getBlacklist().then(res=>{
+      wx.hideNavigationBarLoading()
+      this.setData({
+        list: res.data.data.list
+      })
+    })
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+    this.setData({
+      list: [],
+      total: 0
+    })
+    this.getData()
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/black/black.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "黑名单"
+}

+ 5 - 0
pages/black/black.wxml

@@ -0,0 +1,5 @@
+<navigator wx:for="{{list}}" url="../homepage/homepage?user_id={{item.id}}">
+  <image src="{{item.avatar}}"></image>
+  <text>{{item.black_user__username}}</text>
+</navigator>
+<view class="end">~END~</view>

+ 29 - 0
pages/black/black.wxss

@@ -0,0 +1,29 @@
+/* pages/black/black.wxss */
+page{
+  padding: 20rpx;
+}
+navigator{
+  margin-bottom: 20rpx;
+}
+navigator image{
+  width: 50rpx;
+  height:50rpx;
+  border-radius: 50%;
+}
+navigator text{
+  display: inline-block;
+  line-height: 50rpx;
+  margin-left: 20rpx;
+  font-size: 28rpx;
+  padding-bottom: 20rpx;
+  position: relative;
+  top: -10rpx;
+  width: 80%;
+  border-bottom: 1px solid #f2f2f2;
+}
+.end{
+  text-align: center;
+  color: #999;
+  line-height: 50rpx;
+  font-size: 28rpx;
+}

+ 21 - 0
pages/detail/detail.js

@@ -14,6 +14,27 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
+    if(options.type == '百科'){
+      $api.getBaikeDetail({category_id:options.id}).then(res=>{
+        let data = res.data.data
+        data.content = data.content.replaceAll('<img', '<img class="rich-img"')
+        data.content = data.content.replace(/style="[^"]+"/gi, "")
+        .replace(/style='[^']+'/gi, "")   //小程序展示要自己统一的样式,替换了行内样式
+        .replace(/(<!--(.|[\r\n])*?-->)/gi, "") //替换了注释的内容这能替掉大部分
+        .replace(/<xml[^>]*>(.|\n)*<\/xml>/gi, "") //替换了xml标签<xml></xml>word粘贴带出一堆标签包含在xml里
+        .replace(/undefined/gi, "") //里面莫名有个undefined 
+        this.setData({
+          info:data,
+          name:res.data.data.name,
+          articleid:options.id,
+        })
+        this.data.info.content = this.data.info.content.replace('<img', '<img class="rich-img"')
+        wx.setNavigationBarTitle({
+          title: res.data.data.name,
+        })
+      })
+      return
+    }
     $api.getArticle({id:options.id}).then(res=>{
       let data = res.data.data
       data.content = data.content.replaceAll('<img', '<img class="rich-img"')

+ 27 - 3
pages/homepage/homepage.js

@@ -15,6 +15,7 @@ Page({
     fans:0,
     followers:0,
     is_follow:0,
+    is_black:0,
     age:0,
     is_auth_user:1,
   },
@@ -51,10 +52,12 @@ Page({
     data.user_id  = user_id
     var year      = new Date().getFullYear() 
     $api.getUserInfo(data).then(res=>{
+      
       this.setData({
         datas:res.data.data,
-        age:year - res.data.data.join_time,
+        age:res.data.data.join_time?(year - res.data.data.join_time):0,
         is_follow:res.data.data.is_follow,
+        is_black:res.data.data.is_black,
       })
     })
   },
@@ -69,7 +72,29 @@ Page({
       })
     })
   },
-  
+  // 拉黑
+  black(){
+    $api.blackUser({ black_user_id: this.data.user_id}).then(res=>{
+      wx.showToast({
+        title: '已拉黑'
+      })
+      this.setData({
+        is_black: 1
+      })
+    })
+  },
+  // 取消拉黑
+  cancelBlack(){
+    $api.cancelBlack({ black_user_id: this.data.user_id}).then(res=>{
+      wx.showToast({
+        title: '已取消'
+      })
+      this.setData({
+        is_black: 0
+      })
+    })
+  },
+  // 关注 取消
   followPlayer(e){
     let action = e.target.dataset.action;
     $api.follow({ follow_id: this.data.user_id, action:action}).then(res=>{
@@ -80,7 +105,6 @@ Page({
         is_follow: !this.data.is_follow
       })
       app.globalData.follow=1
-
     })
   },
 

+ 8 - 1
pages/homepage/homepage.wxml

@@ -8,11 +8,18 @@
           <navigator url="../follow/follow?id={{user_id}}&type=1" style="display: inline-block;"><text style="margin-left: 20rpx;">{{datas.followers}}</text>关注</navigator>
       </view>
     </view>
+    <view class="follow_black">
     <block wx:if='{{is_auth_user}}'>
       <view class="follow" style="width:140rpx;" wx:if='{{is_follow}}' data-action='cancel' bindtap="followPlayer">取消关注</view>
       <view class="follow" wx:else  bindtap="followPlayer">+ 关注</view>
+      <view class="lahei" wx:if='{{is_black}}'  bindtap="cancelBlack">取消拉黑</view>
+      <view class="lahei" wx:else  bindtap="black">+ 拉黑</view>
     </block>
-    <navigator class="follow" url="../style/style" wx:else>编辑</navigator>
+    <block wx:else>
+      <navigator class="follow" url="../style/style" >编辑</navigator>
+      <navigator class="lahei" url="../black/black" >黑名单</navigator>
+    </block>
+  </view>
 </view>
 <view class="style">
   <view wx:if='{{datas.style.length>0}}' style="padding-bottom: 0;">

+ 10 - 5
pages/homepage/homepage.wxss

@@ -30,7 +30,7 @@ ec-canvas {
   height: 138rpx;
   position: relative;
   padding:24rpx;
-  background: #D94B24;
+  background: #ff0f03;
 }
 .per_top>image{
   width: 90rpx;
@@ -57,16 +57,21 @@ ec-canvas {
   font-weight: bold;
   margin-right: 10rpx;
 }
-.per_top .follow {
-  color: #fff;
-  font-size: 28rpx;
+.follow_black{
   position: absolute;
-  right: 24rpx;
+  right: 20rpx;
   top: 32rpx;
+}
+.per_top .follow,.lahei{
+  display: inline-block;
+  color: #fff;
+  font-size: 28rpx;
   border: 1px solid #fff;
   border-radius: 8rpx;
   padding: 5rpx 8rpx;
+  margin-left: 20rpx;
 }
+
 .style{
   background: #fff;
   padding: 30rpx;

+ 96 - 0
pages/hotuser/hotuser.js

@@ -0,0 +1,96 @@
+// pages/hotuser/hotuser.js
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    list:[],
+    total:0,
+    page:1,
+    date:''
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    $api.getDate().then(res=>{
+      this.setData({
+        date:res.data.data
+      })
+      this.getData()
+    })
+    
+  },
+  getData:function(){
+    var list = this.data.list
+    $api.getHotFollow({page:this.data.page,page_size:20,stock_date:this.data.date}).then(res=>{
+      res.data.data.list.forEach(item => {
+        list.push(item)
+      })
+      this.setData({
+        list: list,
+        total: res.data.data.total
+      })
+    })
+  },
+  next: function () {
+    if (this.data.list.length < this.data.total) {
+      const page = this.data.page + 1
+      this.setData({
+        page: page
+      })
+      this.getData()
+    }
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/hotuser/hotuser.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": "热门选手"
+}

+ 27 - 0
pages/hotuser/hotuser.wxml

@@ -0,0 +1,27 @@
+<scroll-view  scroll-y='{{true}}' bindscrolltolower='next'>
+          <view class="item3">
+             <navigator hover-class="none" class="win" wx:for='{{list}}' url="../homepage/homepage?id={{item.match_id}}&user_id={{item.id}}">
+              <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+              <text wx:else class="number">{{index+1}}</text>
+                <view class="name">
+                  {{item.player_name}}  <text>{{item.badge}}</text>
+                  <view>关注
+                    <text>{{item.count}}</text>
+                  </view>
+                </view>
+                <view class="info" wx:if='{{item.style.length>0}}'>风格:
+                <label class="tag" wx:for='{{item.style}}' wx:for-item='i'>{{i}}</label></view>
+                <view class="info">
+                    资产
+                    <label style="margin-right: 10rpx;">{{item.today_fund}}w</label>总收益 
+                    <text class="{{item.total_income[0]=='-' ?'down':'up'}}" > {{item.total_income}} </text> 
+                      <text style="margin-left: 10rpx;">胜率</text>
+                      <text class="{{item.win_rate[0]=='-' ?'down':'up'}}"> {{item.win_rate}} </text>
+                
+                </view>
+             </navigator>
+          </view>
+          <block wx:if='{{total >= 20}}'>
+            <view class='loading' wx:if='{{list.length < total}}'>上拉加载更多...</view>
+          </block>
+</scroll-view>

+ 70 - 0
pages/hotuser/hotuser.wxss

@@ -0,0 +1,70 @@
+/* pages/hotuser/hotuser.wxss */
+page{
+  padding: 0 20rpx;
+}
+scroll-view{
+  height: 100vh;
+}
+.win{
+  position: relative;
+  padding: 30rpx 0;
+  padding-left: 59rpx;
+  border-bottom: 1px solid #F5F5F5;
+}
+.win .number{
+  width: 50rpx;
+  position: absolute;
+  top: 28rpx;
+  left: 0;
+}
+
+.win .name view{
+  float: right;
+  color: #333;
+  font-size: 24rpx;
+  text-align: center;
+  position: relative;
+  top: 0;
+  font-weight: 400;
+}
+.name{
+  font-weight: 600;
+  margin-bottom: 20rpx;
+}
+.name>text{
+  font-size: 24rpx;
+  color: #999;
+  font-weight: 400;
+}
+.win .name view text{
+  font-size: 36rpx;
+  color: #E90001;
+  display: inline;
+  top: 0;
+}
+.win .tag{
+  font-size: 26rpx;
+  color: #999;
+  border: 1px solid #999;
+  margin-right: 8rpx;
+  font-weight: 400;
+  padding: 4rpx 10rpx;
+  margin-bottom: 10rpx;
+  display: inline-block;
+}
+.number{
+  width: 38rpx;
+  display: inline-block;
+  text-align: center;
+  color: #CE994F;
+  font-size: 26rpx;
+  font-weight: 600;
+  margin-right: 10rpx;
+  margin-top: 6rpx;
+}
+image.number{
+  top: 25rpx;
+}
+.info{
+  font-size: 28rpx;
+}

+ 89 - 182
pages/index/index.js

@@ -6,32 +6,22 @@ Page({
   data: {
     loading:0,
     notices:[],
-    tabs:['关注','热门股票','热门选手','今日留言','冠军心得'],
+    tabs:['今日留言','我的关注'],
     cur:0,
-    hot:0,
     date:'2022-04-27',
-    followList:[],
-    defendList:[],
-    winList:[],
-    hotFollowList:[],
-    hotbuyList:[],
-    championList:[],
-    explist:[],
-    page:1,
-    total:-1,
-    page1: 1,
-    total1: 0,
-    page2: 1,
-    total2: 0,
-    page3: 1,
-    total3: 0,
-    page4: 1,
-    total4: 0,
-    page5:1,
-    total5:0,
-    error:0,
-    page6:1, 
-    total6:0,
+    explist:[],   //留言
+    total1:0,
+    page1:1,
+    followList:[],  //关注
+    total2:-1,
+    page2:1,
+    banners:[],
+    winLost:{},
+    baikeList:[],
+    articleList1:[],
+    articleList2:[],
+    articleList3:[],
+    articleList4:[]
   },
   onLoad() {
     
@@ -47,137 +37,111 @@ Page({
         })
       })
     })
-
     this.getFollow()
-   
+    this.getIndexData()
+    this.getExp()
   },
   fresh: function () {
-    this.setData({
-      page:1,
-      total:-1,
-      loading:1
-    })
-    this.getFollow()
+
   },
-  //关注分页
-  next: function () {
-    if (this.data.followList.length < this.data.total) {
-      const page = this.data.page + 1
+  // 获取首页数据
+  getIndexData:function(){
+    $api.getChampionlList({isbanner:1}).then(res=>{
+      console.log(res)
       this.setData({
-        page: page
+        banners:res.data.data.list
       })
-      this.getFollow()
-    }
-  },
-  getFollow(){
-    var followList = this.data.followList
-    if(this.data.loading){
-      followList=[]
-    }
-    $api.getMyFollowV3({
-      page: this.data.page, page_size: 20
-    }).then(res => {
-      wx.hideNavigationBarLoading()
+    })
+    $api.getWinList({new:1}).then(res=>{
       this.setData({
-        followList: res.data.data.list,
-        total:res.data.data.total,
-        error:0,
-        loading: 0
+        winLost:res.data.data[0]
       })
-
-      app.globalData.follow = 0
     })
-    .catch(err=>{
+    $api.getBaikeRandom().then(res=>{
       this.setData({
-        error:1
+        baikeList:res.data.data
       })
     })
-  },
-  //胜率分页
-  next1: function () {
-    if (this.data.winList.length < this.data.total1) {
-      const page = this.data.page1 + 1
+    $api.getChampionlList({category:'游资专场',page:1}).then(res=>{
       this.setData({
-        page1: page
+        articleList1:res.data.data.list
       })
-      this.getWin()
-    }
-  },
-  getWin() {
-    var winList = this.data.winList
-    $api.getRinrate({
-      page: this.data.page1, page_size: 20
-    }).then(res => {
-      res.data.data.list.forEach(item => {
-        winList.push(item)
+    })
+    $api.getChampionlList({category:'冠军交割',page:1}).then(res=>{
+      this.setData({
+        articleList2:res.data.data.list
       })
+    })
+    $api.getChampionlList({category:'牛人专场',page:1}).then(res=>{
       this.setData({
-        winList: winList,
-        total1: res.data.data.total
+        articleList3:res.data.data.list
+      })
+    })
+    $api.getChampionlList({category:'妖股列传',page:1}).then(res=>{
+      this.setData({
+        articleList4:res.data.data.list
       })
     })
   },
-
-  getData(){
-    //心得
-    var championList = this.data.championList;
-    $api.getChampionlList({page: this.data.page6, page_size: 20}).then(res => {
+  //获取今日留言
+  getExp:function(){
+    var list = this.data.explist
+    $api.getExperience({page:this.data.page1,page_size:20}).then(res=>{
       res.data.data.list.forEach(item => {
-        championList.push(item)
+        list.push(item)
       })
       this.setData({
-        championList: championList,
-        total6: res.data.data.total
+        explist: list,
+        total1: res.data.data.total
       })
     })
-  }, 
-  next6: function () {
-    if (this.data.championList.length < this.data.total6) {
-      const page = this.data.page6 + 1
-      this.setData({
-        page6: page
-      })
-      this.getData()
-    }
   },
-  //热门选手分页
-  next3: function () {
-    if (this.data.hotFollowList.length < this.data.total3) {
-      const page = this.data.page3 + 1
+  //留言分页
+  next1: function () {
+    if (this.data.explist.length < this.data.total1) {
+      const page = this.data.page1 + 1
       this.setData({
-        page3: page
+        page1: page
       })
-      this.getHotFollowList()
+      this.getExp()
     }
   },
-  getHotFollowList() {
-    var hotFollowList = this.data.hotFollowList
-    let stock_date = this.data.date
-    $api.getHotFollow({
-      page: this.data.page3, page_size: 20, stock_date: stock_date
+  //我的关注
+  getFollow(){
+    var followList = this.data.followList
+    if(this.data.loading){
+      followList=[]
+    }
+    $api.getMyFollowV3({
+      page: this.data.page2, page_size: 20
     }).then(res => {
-      
+      wx.hideNavigationBarLoading()
       res.data.data.list.forEach(item => {
-        hotFollowList.push(item)
+        followList.push(item)
       })
       this.setData({
-        hotFollowList: hotFollowList,
-        total3: res.data.data.total
+        followList: followList,
+        total2:res.data.data.total,
+        error:0,
+        loading: 0
       })
+      app.globalData.follow = 0
     })
-  },
-  getHot(){
-    //热门
-    let stock_date = this.data.date
-
-    $api.getHotbuyList({ stock_date: stock_date }).then(res => {
-      
+    .catch(err=>{
       this.setData({
-        hotbuyList: res.data.data.list
+        error:1
       })
-      wx.hideNavigationBarLoading()
     })
-    
+  },
+  //关注分页
+  next2: function () {
+    if (this.data.followList.length < this.data.total2) {
+      const page = this.data.page2 + 1
+      this.setData({
+        page2: page
+      })
+      this.getFollow()
+    }
   },
   tabChange(e){
       this.setData({
@@ -185,14 +149,8 @@ Page({
       })
       this.renew()
   },
-  tabChange1(e){
-    this.setData({
-      hot:e.target.dataset.id
-    })
-  },
   //预览
   preview(e){
-    console.log(e)
     wx.previewImage({
       urls: e.target.dataset.urls,
       current: e.target.dataset.src
@@ -203,80 +161,29 @@ Page({
         this.setData({
           cur: e.detail.current
         })
-
         this.renew()
     }
-  
-
-  },
-  //热门股票
-  bindDateChange(e){
-    this.setData({
-      date:e.detail.value
-    })
-    wx.showNavigationBarLoading()
-    this.getHot()
   },
 
-   //今日留言
-   next5: function () {
-    if (this.data.explist.length < this.data.total5) {
-      const page = this.data.page5 + 1
-      this.setData({
-        page5: page
-      })
-      this.getExp()
-    }
-  },
 
-  getExp(){
-    $api.getExperience({page:this.data.page5,page_size:20}).then(res=>{
-      var hotFollowList = this.data.explist
-      res.data.data.list.forEach(item => {
-        hotFollowList.push(item)
-      })
-      this.setData({
-        explist: hotFollowList,
-        total5: res.data.data.total
-      })
-    })
-  },
+
   renew(){
     this.setData({
       followList:[],
-      defendList:[],
-      winList:[],
-      hotFollowList:[],
-      hotbuyList:[],
-      championList:[],
       explist:[],
-      page:1,
-      total:-1,
       page1: 1,
       total1: 0,
       page2: 1,
-      total2: 0,
-      page3: 1,
-      total3: 0,
-      page5: 1,
-      total5: 0
+      total2: -1
     })
     switch(this.data.cur){
       case 0:
-        this.getFollow()
-        break;
-      case 1:
-        this.getHot()
-        break;
-      case 2:
-        this.getHotFollowList()
-        break;
-      case 3:
+        this.data.page1 = 1
         this.getExp()
         break;
-      case 4:
-        this.data.page6 = 1
-        this.getData()
+      case 1:
+        this.data.page2 = 1
+        this.getFollow()
         break;
     }
   },
@@ -292,8 +199,8 @@ Page({
     
     if(this.data.cur == 0 && app.globalData.follow == 1){
       this.data.loading = 1
-      this.data.page    = 1
-      this.data.total   = -1,
+      this.data.page2    = 1
+      this.data.total2   = -1,
       this.getFollow()
     }
   },

+ 190 - 215
pages/index/index.wxml

@@ -1,265 +1,240 @@
+<wxs module="filters" src="../../utils/toFixed.wxs" />
 <!--index.wxml-->
-<view   class="marquee_container"  
+<!-- <view   class="marquee_container"  
   style="{{'--marqueeWidth--:'+-12*notices.length+'em'}}">
     <view class="zd"></view>
     <image src="../../images/tttz.png" mode="widthFix"></image>
       <view class="marquee_text">
         <navigator hover-class="none" url="../detail/detail?id={{item.id}}" wx:for="{{notices}}">{{item.name}}</navigator>
       </view>
+  </view> -->
+
+<view class="list-top">
+    <navigator url="../stock/stock?type=1">
+      <image mode="widthFix" src="../../xiao/rmgp@2x.png"></image>
+      热门股票
+    </navigator>
+    <navigator url="../hotuser/hotuser">
+      <image mode="widthFix" src="../../xiao/rmxs@2x.png"></image>
+      热门选手
+    </navigator>
+    <navigator url="../tlb/tlb?match_id={{winLost.match_id}}">
+      <image mode="widthFix" src="../../xiao/jryk@2x.png"></image>
+      屠龙榜
+    </navigator>
+    <navigator url="../baike/baike">
+      <image mode="widthFix" src="../../xiao/baike@2x.png"></image>
+      短线百科
+    </navigator>
+    <navigator url="../todayExp/todayExp">
+      <image mode="widthFix" src="../../xiao/baike@2x.png"></image>
+      今日留言
+    </navigator>
+    <navigator url="../myfollow/myfollow">
+      <image mode="widthFix" src="../../xiao/baike@2x.png"></image>
+      我的关注
+    </navigator>
+    <navigator url="../article/article?type=游资专场">
+      <image mode="widthFix" src="../../xiao/jcwz@2x.png"></image>
+      游资专场
+    </navigator>
+    <navigator url="../article/article?type=冠军交割">
+      <image mode="widthFix" src="../../xiao/jcwz@2x.png"></image>
+      冠军交割
+    </navigator>
+    <navigator url="../article/article?type=牛人专场">
+      <image mode="widthFix" src="../../xiao/jcwz@2x.png"></image>
+      牛人专场
+    </navigator>
+    <navigator url="../article/article?type=妖股列传">
+      <image mode="widthFix" src="../../xiao/jcwz@2x.png"></image>
+      妖股列传
+    </navigator>
+</view>
+
+<swiper class="banner-list" 	indicator-active-color='#FF583D'	indicator-color='rgba(255,255,255,.6)'  indicator-dots='{{true}}'>
+        <block wx:for="{{banners}}" wx:key="*this">
+          <swiper-item>
+            <navigator url="../detail/detail?id={{item.id}}"><image mode="widthFix" src="{{item.img}}"></image></navigator>
+            <view class="name">{{item.name}}</view>
+          </swiper-item>
+        </block>
+</swiper>
+
+<view class="notice">
+  <view>
+    <image mode="widthFix" src="../../xiao/gonggao@2x.png"></image>
+    <text>公告:</text>
+  </view>
+  <view class="notice-list">
+        <navigator hover-class="none" url="../detail/detail?id={{item.id}}" wx:for="{{notices}}">{{item.name}}</navigator>
   </view>
+</view>
+
+<view class="up-down-view">
+  <view class="up-title">
+        {{winLost.match_name}}
+        <navigator url="../winlost/winlost">历届最高> </navigator>
+  </view>
+  <scroll-view 	scroll-x='{{true}}' >
+    <view class="content-list">
+      <view class="up-down">
+        <text>盈利榜</text>
+        <navigator wx:for="{{winLost.total_income_up}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"   src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="up">{{ filters.toFix2(item.total_income*100)}}%</text>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <text>赚钱榜</text>
+        <navigator wx:for="{{winLost.total_win_up}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"  src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="up">{{ filters.toFix2(item.total_win)}}w</text>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <text>亏损榜</text>
+        <navigator wx:for="{{winLost.total_income_down}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"   src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="down">{{ filters.toFix2(item.total_income*100)}}%</text>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <text>亏钱榜</text>
+        <navigator wx:for="{{winLost.total_win_down}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"   src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="down">{{ filters.toFix2(item.total_win)}}w</text>
+        </navigator>
+      </view>
+    </view>
+  </scroll-view>
+</view>
+
+<view class="up-down-view">
+  <scroll-view scroll-x='{{true}}'>
+    <view class="content-list">
+      <view class="up-down">
+        <view class="article-title"> <navigator url="../article/article?type=游资专场">more> </navigator>游资专场</view>
+        <navigator wx:for="{{articleList1}}" wx:if="{{index<5}}" hover-class="none" url="../detail/detail?id={{item.id}}" >
+          <text class="article-name">{{item.name}}</text>
+          <image class="article-img" mode="aspectFill" src="{{item.img}}"></image>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <view class="article-title"> <navigator url="../article/article?type=冠军交割">more> </navigator>冠军交割</view>
+        <navigator wx:for="{{articleList2}}" wx:if="{{index<5}}" hover-class="none" url="../detail/detail?id={{item.id}}" >
+          <text class="article-name">{{item.name}}</text>
+          <image class="article-img" mode="aspectFill" src="{{item.img}}"></image>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <view class="article-title"> <navigator url="../article/article?type=牛人专场">more> </navigator>牛人专场</view>
+        <navigator wx:for="{{articleList3}}" wx:if="{{index<5}}" hover-class="none" url="../detail/detail?id={{item.id}}" >
+          <text class="article-name">{{item.name}}</text>
+          <image class="article-img" mode="aspectFill" src="{{item.img}}"></image>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <view class="article-title"> <navigator url="../article/article?type=妖股列传">more> </navigator>妖股列传</view>
+        <navigator wx:for="{{articleList4}}" wx:if="{{index<5}}" hover-class="none" url="../detail/detail?id={{item.id}}" >
+          <text class="article-name">{{item.name}}</text>
+          <image class="article-img" mode="aspectFill" src="{{item.img}}"></image>
+        </navigator>
+      </view>
+    </view>
+  </scroll-view>
+</view>
+
+
+<view class="baike">
+        <view class="article-title"> <navigator url="../baike/baike">more> </navigator>短线百科</view>
+        <navigator wx:for="{{baikeList}}" class="baike-list" url="../detail/detail?id={{item.category_id}}&type=百科">
+          <view>{{item.name}}</view>
+          <view class="baike-info">
+            <image wx:if='{{item.img}}' mode="aspectFill" src="{{item.img}}"></image>
+            <image wx:else mode="aspectFill" src="../../xiao/default_img@2x.png"></image>
+            <text>{{item.intro}}</text>
+          </view>
+        </navigator>
+</view>
+
+
 
 <view class="tab">
     <view wx:for='{{tabs}}' bindtap="tabChange" data-id='{{index}}' class="{{index==cur?'act':''}}">{{item}}</view>
 </view>
 
-<swiper current='{{cur}}'  bindchange='curChange'>
+<swiper class="swiper-content" current='{{cur}}'  bindchange='curChange'>
   <swiper-item>
-      <scroll-view   upper-threshold="0" bindscrolltoupper='fresh' scroll-y='{{true}}' bindscrolltolower='next'>
-          <view wx:if='{{loading}}' class="loading">下拉刷新</view>
-          <view  class="item1" wx:for='{{followList}}'>
+      <scroll-view  scroll-y='{{true}}'  bindscrolltolower='next1'>
+          <view  class="item1" wx:for='{{explist}}'>
             <navigator hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
               <view class="relist">
-                  <image src="{{item.avatar}}" ></image>
+                <image  src="{{filters.defaultImg(item.user_avatar)}}"></image>
                   <view class="msg">
                       <text class="name">{{item.username}}</text>
-                      <view>日期:{{item.stock_date}}(今日收益 <label class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</label>)
-                      </view>
-                      <view>资产:{{item.today_fund}}w(总收益 <label class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</label>|胜率 {{item.win_rate}})</view>
+                      <view>资产:{{item.today_fund}}w(总收益 <label class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</label>  |  今日收益 <label class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</label>)</view>
                   </view>
               </view>
               <view class="content" wx:if="{{item.experience}}">{{item.experience}}</view>
-              <view class="imgs">
-                <image wx:for='{{item.today_stock_img}}' wx:for-item='i'  catchtap="preview" data-src='{{i}}' data-urls='{{item.today_stock_img}}'
-                 class="img" src="{{i}}"  mode="heightFix"></image>
-              </view> 
               <view class="recomment">
                   <image mode="widthFix" src="../../images/msg.png"></image>
                   <text>{{item.comments_count}}</text>
                   <image mode="widthFix" src="../../images/zan.png"></image>
-                  <text>{{item.zan_count}}</text>
-              </view>
-
-
-              <!-- <view class="name">{{item.username}}  <text wx:if='{{item.badge}}'>{{item.badge}}</text> 
-              <view>TOP <text>{{item.group_rank}}</text></view></view> 
-              <view class="info">
-                日期: <view>{{item.stock_date}}(今日收益 
-                <text  class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</text>)</view>
-              </view>
-              <view class="info">
-                资产:  <view><label>{{item.today_fund}}w</label> (总收益 
-                <text  class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</text>
-                胜率<text  class="{{item.win_rate[0]=='-' ?'down':'up'}}"> {{item.win_rate}}</text>
-                )</view>
-              </view>
-               <view class="info">
-                  持仓: 
-                    <view wx:if='{{item.is_markt}}'>开超市</view>
-                    <view wx:elif='{{item.today_stock.length>0}}'>
-                        <block wx:for="{{item.today_stock}}" wx:for-item='i'> {{i.name}}({{i.fund}}w) </block>
-                    </view>
-                    <view wx:else>空仓</view>
-                </view>-->
-                </navigator>
-              
-          </view>
-          <block wx:if='{{total >= 20}}'>
-            <view class='loading' wx:if='{{followList.length < total}}'>上拉加载更多...</view>
-          </block>
-          <block wx:if='{{total == 0}}'>
-            <view class='loading' style="margin-top:200rpx;">暂无关注选手</view>
-          </block>
-      </scroll-view>
-  </swiper-item>
-  <swiper-item>
-      
-          <view class="item2">
-              <picker mode="date" value="{{date}}"  bindchange="bindDateChange">
-                <view class="date-picker">
-                   {{date}}
-                   <image style="width:26rpx;height: 24rpx;" mode="widthFix" src="../../images/icon_down@2x.png"></image>
-                </view>
-              </picker>
-              <view class="hot">
-                    <!-- <view class="tab1">热门持仓</view>
-                     -->
-                    <!-- <view class="hot_tab">
-                        <view bindtap="tabChange1" data-id='0' class="{{hot==0?'act1':''}}">今日热门 <text></text></view>
-                        <view bindtap="tabChange1" data-id='1' class="{{hot==1?'act1':''}}">我的自选 <text></text></view>
-                    </view> -->
-                    <scroll-view style="padding:0;" scroll-y='{{true}}' style="height:calc(100vh - 377rpx);">
-                        <view wx:if='{{hot==0}}'>
-                          <navigator hover-class="none" url="../stock/stock?id={{item.id}}&date={{date}}" class="gp" wx:for='{{hotbuyList}}' wx:if='{{index<10}}'>
-                              <image wx:if='{{index==0}}' mode="widthFix" src="../../images/1.png"></image>
-                              <image wx:if='{{index==1}}' mode="widthFix" src="../../images/2.png"></image>
-                              <image wx:if='{{index==2}}' mode="widthFix" src="../../images/3.png"></image>
-                              <text class="rank" wx:if='{{index>2}}'>{{index+1}}</text>
-                              <view class="gp-name">{{item.stock_name}}</view>
-                              <view class="num"> <text>{{item.count}}</text> 人持仓</view>
-                             <view class="comment"><text>留言 {{item.comments_count}} 条</text></view>
-                          </navigator>
-                          <navigator hover-class="none" url="../stock/stock?date={{date}}&type=1"  class="more">查看更多 <image mode="widthFix" src="../../images/right_icon.png"></image></navigator>
-                        </view>
-                        <view wx:if='{{hot==1}}'>
-                          <navigator hover-class="none" url="../stock/stock?id={{item.stock_id}}&date={{date}}" class="gp" wx:for='{{myList}}'>
-                              <!-- <image wx:if='{{index==0}}' mode="widthFix" src="../../images/1.png"></image>
-                              <image wx:if='{{index==1}}' mode="widthFix" src="../../images/2.png"></image>
-                              <image wx:if='{{index==2}}' mode="widthFix" src="../../images/3.png"></image> -->
-                              <text class="rank">{{index+1}}</text>
-                              <view class="gp-name">{{item.stock_name}}</view>
-                              <view class="num"> <text>{{item.count}}</text> 人持仓</view>
-                              <view class="comment"><text>留言 {{item.comments_count}} 条</text>|<text>跟踪 {{item.choice_count}} 人</text></view>
-                          </navigator>
-                          <view class="loading" wx:if='{{!myList}}'>暂无数据</view>
-                        </view>
-                  </scroll-view>
+                  <text>{{item.zans_count}}</text>
               </view>
-              <!-- <view class="hot">
-                    <view class="tab2">热门清仓</view>
-                    <navigator hover-class="none" url="../stock/stock?id={{item.id}}&date={{date}}&type=2" class="gp" wx:for='{{hotsellList}}' wx:if='{{index<3}}'>
-                        <image wx:if='{{index==0}}' mode="widthFix" src="../../images/1.png"></image>
-                        <image wx:if='{{index==1}}' mode="widthFix" src="../../images/2.png"></image>
-                        <image wx:if='{{index==2}}' mode="widthFix" src="../../images/3.png"></image>
-                        <view class="gp-name">{{item.stock_name}}</view>
-                        <view class="num">清仓 <text>{{item.count}}</text> 人</view>
-                    </navigator>
-                    <navigator hover-class="none"  url="../stock/stock?date={{date}}&type=2" class="more">查看更多 <image mode="widthFix" src="../../images/right_icon.png"></image></navigator>
-              </view> -->
-          </view>
-      
-  </swiper-item>
-  <swiper-item>
-      <scroll-view  scroll-y='{{true}}' bindscrolltolower='next3'>
-          <view class="item3">
-             <navigator hover-class="none" class="win" wx:for='{{hotFollowList}}' url="../today/today?id={{item.match_id}}&user_id={{item.id}}">
-                <image wx:if='{{index==0}}' mode="widthFix" src="../../images/1.png"></image>
-                <image wx:if='{{index==1}}' mode="widthFix" src="../../images/2.png"></image>
-                <image wx:if='{{index==2}}' mode="widthFix" src="../../images/3.png"></image>
-                <text class="rank" wx:if='{{index>2}}'>{{index+1}}</text>
-                <view class="name">
-                  {{item.player_name}}  <text>{{item.badge}}</text>
-                  <view>关注
-                    <text>{{item.count}}</text>
-                  </view>
-                </view>
-                <view class="info" wx:if='{{item.style.length>0}}'>风格:
-                <label class="tag" wx:for='{{item.style}}' wx:for-item='i'>{{i}}</label></view>
-                <view class="info">
-                    资产:  
-                    <view><label>{{item.today_fund}}w</label>(总收益 <text class="{{item.total_income[0]=='-' ?'down':'up'}}"> {{item.total_income}} </text> 
-                      <text style="color:#F5F5F5;">  |  </text>
-                      <text style="color:#666;">胜率</text>
-                      <text class="{{item.win_rate[0]=='-' ?'down':'up'}}"> {{item.win_rate}} </text>)
-                  </view>
-                </view>
-             </navigator>
+              </navigator>
           </view>
-          <block wx:if='{{total3 >= 20}}'>
-            <view class='loading' wx:if='{{hotFollowList.length < total3}}'>上拉加载更多...</view>
+          <block wx:if='{{total1 >= 20}}'>
+            <view class='loading' wx:if='{{explist.length < total1}}'>上拉加载更多...</view>
           </block>
       </scroll-view>
   </swiper-item>
   <swiper-item>
-      <scroll-view  scroll-y='{{true}}'  bindscrolltolower='next5'>
-          <view  class="item1" wx:for='{{explist}}'>
+      <scroll-view   upper-threshold="0" bindscrolltoupper='fresh' scroll-y='{{true}}' bindscrolltolower='next2'>
+          <view wx:if='{{loading}}' class="loading">下拉刷新</view>
+          <view  class="item1" wx:for='{{followList}}'>
             <navigator hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
               <view class="relist">
-                  <image src="{{item.user_avatar}}" ></image>
+                  <image src="{{item.avatar}}" ></image>
                   <view class="msg">
                       <text class="name">{{item.username}}</text>
-                      <view>资产:{{item.today_fund}}w(总收益 <label class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</label>  |  今日收益 <label class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</label>)</view>
+                      <view>日期:{{item.stock_date}}(今日收益 <label class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</label>)
+                      </view>
+                      <view>资产:{{item.today_fund}}w(总收益 <label class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</label>|胜率 {{item.win_rate}})</view>
                   </view>
               </view>
               <view class="content" wx:if="{{item.experience}}">{{item.experience}}</view>
+              <view class="imgs">
+                <image wx:for='{{item.today_stock_img}}' wx:for-item='i'  catchtap="preview" data-src='{{i}}' data-urls='{{item.today_stock_img}}'
+                 class="img" src="{{i}}"  mode="heightFix"></image>
+              </view> 
               <view class="recomment">
                   <image mode="widthFix" src="../../images/msg.png"></image>
                   <text>{{item.comments_count}}</text>
                   <image mode="widthFix" src="../../images/zan.png"></image>
-                  <text>{{item.zans_count}}</text>
+                  <text>{{item.zan_count}}</text>
               </view>
-              </navigator>
-          </view>
-          <block wx:if='{{total5 >= 20}}'>
-            <view class='loading' wx:if='{{explist.length < total5}}'>上拉加载更多...</view>
-          </block>
-      </scroll-view>
-  </swiper-item>
-  <!-- <swiper-item>
-      <scroll-view  scroll-y='{{true}}' bindscrolltolower='next1'>
-          <view class="item3">
-          <view class="exp">释义:开赛以来选手单日收益为正天数占总天数比重,检验进攻稳定性</view>
-             <navigator hover-class="none" class="win" wx:for='{{winList}}' url="../today/today?id={{item.match_id}}&player_id={{item.player_id}}">
-                <image wx:if='{{index==0}}' mode="widthFix" src="../../images/1.png"></image>
-                <image wx:if='{{index==1}}' mode="widthFix" src="../../images/2.png"></image>
-                <image wx:if='{{index==2}}' mode="widthFix" src="../../images/3.png"></image>
-                <text class="rank" wx:if='{{index>2}}'>{{index+1}}</text>
-                <view class="name">
-                  {{item.username}}  <text>{{item.badge}}</text>
-                  <view>胜率 
-                    <text class="{{item.win_rate[0]=='-' ?'down':'up'}}">{{item.win_rate}}</text>
-                  </view>
-                </view>
-                <view class="info" wx:if='{{item.style.length>0}}'>风格:
-                <label class="tag" wx:for='{{item.style}}' wx:for-item='i'>{{i}}</label></view>
-                <view class="info">
-                    资产:  
-                    <view><label>{{item.today_fund}}w</label>(总收益 <text class='up'> {{item.total_income}} </text> 
-                      <text style="color:#F5F5F5;">  |  </text>
-                      <text style="color:#666;">最大回撤</text>
-                      <text class="{{item.badest_income[0]=='-' ?'down':'up'}}"> {{item.badest_income}} </text>)
-                  </view>
-                </view>
-             </navigator>
-          </view>
-          <block wx:if='{{total1 >= 20}}'>
-            <view class='loading' wx:if='{{winList.length < total1}}'>上拉加载更多...</view>
-          </block>
-      </scroll-view>
-  </swiper-item> -->
-  <!-- <swiper-item>
-      <scroll-view  scroll-y='{{true}}' bindscrolltolower='next2'>
-          <view class="item4">
-          <view class="exp">释义:开赛以来选手最大单日回撤,检验防守稳固性</view>
-            <navigator hover-class="none" class="win" wx:for='{{defendList}}' url="../today/today?id={{item.match_id}}&player_id={{item.player_id}}">
-                <image wx:if='{{index==0}}' mode="widthFix" src="../../images/1.png"></image>
-                <image wx:if='{{index==1}}' mode="widthFix" src="../../images/2.png"></image>
-                <image wx:if='{{index==2}}' mode="widthFix" src="../../images/3.png"></image>
-                <text class="rank" wx:if='{{index>2}}'>{{index+1}}</text>
-                <view class="name">
-                  {{item.username}}  <text>{{item.badge}}</text>
-                  <view>最大回撤  
-                  <text class="{{item.badest_income[0]=='-' ?'down':'up'}}">{{item.badest_income}}</text></view>
-                </view>
-                <view class="info" wx:if='{{item.style.length>0}}'>风格:
-                <label class="tag" wx:for='{{item.style}}' wx:for-item='i'>{{i}}</label></view>
-                <view class="info">
-                    资产:  
-                    <view><label>{{item.today_fund}}w</label>(总收益 <text class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</text> 
-                      <text style="color:#F5F5F5;">  |  </text>
-                      胜率
-                      <text class="{{item.win_rate[0]=='-' ?'down':'up'}}">{{item.win_rate}}</text> )
-                  </view>
-                </view>
             </navigator>
+              
           </view>
           <block wx:if='{{total2 >= 20}}'>
-            <view class='loading' wx:if='{{defendList.length < total2}}'>上拉加载更多...</view>
+            <view class='loading' wx:if='{{followList.length < total2}}'>上拉加载更多...</view>
           </block>
-      </scroll-view>
-  </swiper-item> -->
-  <swiper-item>
-      <scroll-view  scroll-y='{{true}}' bindscrolltolower='next6'>
-          <navigator hover-class="none" url="../detail/detail?id={{item.id}}" class="list" wx:for='{{championList}}'>
-             <view>
-                <view class="title">
-                   {{item.name}}
-                </view>
-                <text>{{item.ctime}}</text>
-             </view>
-             <image src="{{item.img}}"></image>
-          </navigator>
-          <block wx:if='{{total6 >= 20}}'>
-            <view class='loading' wx:if='{{championList.length < total6}}'>上拉加载更多...</view>
+          <block wx:if='{{total2 == 0}}'>
+            <view class='loading' style="margin-top:200rpx;">暂无关注选手</view>
           </block>
       </scroll-view>
   </swiper-item>

+ 198 - 10
pages/index/index.wxss

@@ -55,36 +55,224 @@
 page{
   background: #F7F7F7;
 }
+.list-top{
+  display: flex;
+  flex-wrap: wrap;
+  background-color: #fff;
+  padding: 10rpx 0;
+}
+.list-top navigator{
+  width: 20%;
+  text-align: center;
+  padding: 10rpx 0;
+  font-size: 24rpx;
+}
+.list-top image{
+  width: 50rpx;
+  display: block;
+  margin: 0 auto 5rpx;
+}
+.banner-list{
+  height: 370rpx;
+  background-color: #fff;
+  margin-bottom: 20rpx;
+}
+.banner-list navigator{
+  height: 300rpx;
+  overflow: hidden;
+}
+.banner-list image{
+  width: 100%;
+}
+.banner-list .name{
+  padding:0 20rpx;
+  line-height: 70rpx;
+  font-size: 25rpx;
+  font-weight: 600;
+}
+.banner-list .wx-swiper-dots.wx-swiper-dots-horizontal {
+  position: absolute;
+  bottom: 90rpx;
+  right:auto;
+  left: 75%;
+}
+.notice{
+  background-color: #fff;
+  padding: 20rpx;
+  display: flex;
+}
+.notice image{
+  width: 40rpx;
+}
+.notice text{
+  color: #FF583D;
+  font-size: 26rpx;
+  position: relative;
+  left: 10rpx;
+  top: -12rpx;
+}
+.notice-list{
+  width: 80%;
+  font-size: 26rpx;
+  line-height: 55rpx;
+  margin-top: -6rpx;
+  padding-left: 20rpx;
+}
+.up-down-view{
+  background-color: #fff;
+  margin-top: 20rpx;
+}
+.content-list{
+  display: flex;
+  width: 250vw;
+}
+.number{
+  width: 38rpx;
+  display: inline-block;
+  text-align: center;
+  color: #CE994F;
+  font-size: 26rpx;
+  font-weight: 600;
+  margin-right: 10rpx;
+  margin-top: 6rpx;
+}
+image.number{
+  margin-top: 10rpx;
+}
+.avatar{
+  width: 50rpx;
+  height: 50rpx;
+  border-radius: 50%;
+  margin-right: 10rpx;
+}
+.up-down{
+  width: 60vw;
+  margin-right: 40rpx;
+}
+.up-down>navigator{
+  padding: 20rpx 0;
+  border-bottom: 1px solid #f2f2f2;
+  display: flex;
+  font-size: 26rpx;
+}
+.up-down .usm{
+  width: 50%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.up-title{
+  font-size: 28rpx;
+  padding: 20rpx;
+  
+}
+.up-title navigator{
+  float: right;
+  font-size: 24rpx;
+}
+.up-down navigator text{
+  line-height: 50rpx;
+}
+.up-down>text{
+  color: #999;
+  font-size: 24rpx;
+  margin-bottom: 10rpx;
+  display: block;
+}
+.article-img{
+  max-width: 60rpx;
+  height: 60rpx;
+  border-radius: 8rpx;
+}
+.article-name{
+  display: inline-block;
+  width: 82%;
+  line-height: 38rpx !important;
+  height: 38rpx;
+}
+.article-title{
+  font-size: 28rpx;
+  padding-right: 20rpx;
+  margin-bottom: 10rpx;
+}
+.article-title navigator{
+  font-size: 24rpx;
+  color: #999;
+  float: right !important;
+}
+.baike{
+  background-color: #fff;
+  width: 100%;
+  padding:20rpx;
+  margin: 20rpx 0;
+}
+.baike .article-title{
+  margin-bottom: 20rpx;
+}
+.baike-list{
+  color: #333;
+  font-size: 24rpx;
+  margin-bottom: 20rpx;
+  padding: 0 0 20rpx;
+  font-weight: 500;
+  border-bottom: 1px solid #f2f2f2;
+}
+.baike-list text{
+  margin-right: 10rpx;
+}
+.baike-info{
+  display: flex;
+  margin-top: 10rpx;
+}
+.baike-info image{
+  width: 150rpx;
+  height: 150rpx;
+  border-radius: 10rpx;
+}
+.baike-info text{
+  display: block;
+  width: 75%;
+  padding: 20rpx;
+  color: #666;
+  text-overflow: -o-ellipsis-lastline;
+  overflow: hidden;text-overflow: ellipsis;display: -webkit-box;
+  -webkit-line-clamp: 3;-webkit-box-orient: vertical;align-content: center;
+  height: 123rpx;
+}
 .tab{
   background: #fff;
   margin-top: 16rpx;
-  padding:0 25rpx;
+  padding:0 20rpx;
   display: flex;
-  justify-content: space-between;
+  border-bottom: 1px solid #f2f2f2;
   
 }
 .tab view{
   font-size: 28rpx;
   color: #333;
-  line-height: 90rpx;
+  line-height: 80rpx;
   transition: all .1s linear;
+  margin-right: 30rpx;
 }
 .tab .act{
-  font-size: 38rpx;
-  font-weight: 500;
-  line-height: 88rpx;
+  color: #FF583D;
+  border-bottom: 2px solid #FF583D;
 }
-swiper{
+.swiper-content{
   background: #fff;
-  height: calc(100vh - 92rpx - 100rpx);
+  height: calc(100vh - 86rpx);
 }
+
 scroll-view{
   height: 100%;
-  padding: 20rpx 25rpx 0;
+  padding: 25rpx 25rpx 0;
+}
+.swiper-content scroll-view{
+  padding-top: 0;
 }
 .item1{
   border-bottom: 1px solid #F5F5F5;
-  margin-bottom: 30rpx;
+  margin: 30rpx 0;
 }
 .name{
   font-size: 32rpx;

+ 107 - 0
pages/myfollow/myfollow.js

@@ -0,0 +1,107 @@
+// pages/article/article.js
+const app = getApp()
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    list:[],
+    total:0,
+    page:1
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    this.setData({
+      type:options.type
+    })
+    wx.setNavigationBarTitle({
+      title: '我的关注',
+    })
+    this.getData()
+  },
+  getData:function(){
+    var list = this.data.list
+    $api.getMyFollowV3({page:this.data.page}).then(res=>{
+      res.data.data.list.forEach(item => {
+        list.push(item)
+      })
+      this.setData({
+        list: list,
+        total: res.data.data.total
+      })
+    })
+  },
+  next: function () {
+    if (this.data.list.length < this.data.total) {
+      const page = this.data.page + 1
+      this.setData({
+        page: page
+      })
+      this.getData()
+    }
+  },
+  //预览
+  preview(e){
+    wx.previewImage({
+      urls: e.target.dataset.urls,
+      current: e.target.dataset.src
+    })
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+    this.setData({
+      list: [],
+      total: 0
+    })
+    this.getData()
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/myfollow/myfollow.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 33 - 0
pages/myfollow/myfollow.wxml

@@ -0,0 +1,33 @@
+<wxs module="filters" src="../../utils/toFixed.wxs" />
+<scroll-view  scroll-y='{{true}}'  bindscrolltolower='next'>
+<view class="up-down">
+  <navigator wx:for="{{list}}" hover-class="none"  url="../homepage/homepage?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+              <view class="relist">
+                  <image src="{{item.avatar}}" ></image>
+                  <view class="msg">
+                      <text class="name">{{item.username}}</text>
+                      <view>日期:{{item.stock_date}}(今日收益 <label class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</label>)
+                      </view>
+                      <view>资产:{{item.today_fund}}w(总收益 <label class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</label>|胜率 {{item.win_rate}})</view>
+                  </view>
+              </view>
+              <view class="content" wx:if="{{item.experience}}">{{item.experience}}</view>
+              <view class="imgs">
+                <image wx:for='{{item.today_stock_img}}' wx:for-item='i'  catchtap="preview" data-src='{{i}}' data-urls='{{item.today_stock_img}}'
+                 class="img" src="{{i}}"  mode="heightFix"></image>
+              </view> 
+              <view class="recomment">
+                  <image mode="widthFix" src="../../images/msg.png"></image>
+                  <text>{{item.comments_count}}</text>
+                  <image mode="widthFix" src="../../images/zan.png"></image>
+                  <text>{{item.zan_count}}</text>
+              </view>
+  </navigator>
+</view>
+<block wx:if='{{total >= 20}}'>
+            <view class='loading' wx:if='{{followList.length < total2}}'>上拉加载更多...</view>
+</block>
+<block wx:if='{{total == 0}}'>
+            <view class='loading' style="margin-top:200rpx;">暂无关注选手</view>
+</block>
+</scroll-view>

+ 50 - 0
pages/myfollow/myfollow.wxss

@@ -0,0 +1,50 @@
+/* pages/myfollow/myfollow.wxss */
+page{
+  padding: 20rpx;
+}
+scroll-view{
+  height: 99vh;
+}
+navigator{
+  margin-bottom: 20rpx;
+}
+.relist{
+  position: relative;
+  padding-left: 80rpx;
+  margin-bottom: 24rpx;
+}
+.relist>image{
+  width: 64rpx;
+  height: 64rpx;
+  position: absolute;
+  left: 0;
+  top: 0;
+  border-radius: 100%;
+}
+.content,.msg .name{
+  font-size: 30rpx;
+  line-height: 48rpx;
+  color: #333;
+}
+.msg view{
+  color: #666;
+  font-size: 28rpx;
+}
+.msg view label{
+  font-size: 28rpx;
+}
+.recomment{
+  padding:  24rpx 0;
+  border-bottom: 1px solid rgba(245, 245, 245, 1);
+}
+.recomment image{
+  width: 32rpx;
+  margin-right: 10rpx;
+  position: relative;
+  top: 5rpx;
+}
+.recomment text{
+  color: #999;
+  font-size: 28rpx;
+  margin-right: 40rpx;
+}

+ 47 - 27
pages/stock/stock.js

@@ -9,24 +9,26 @@ Page({
     name:'',
     id:'',
     stock_date:'',
-    type:'',
+    type:1,
     page:1,
     total:0,
     cur:1,
-    text:'留下你的观点',
+    text:'我要解读',
     comment:'',
     list:[],
-    myList:[]
+    myList:[],
+    searchList:[]
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-
+    // options.type=1
+    options.stock_date='2023-07-21'
     this.setData({
-      stock_date: options.date,
-      type: options.type
+      type:options.type,
+      stock_date:options.stock_date
     })
     $api.getAuthinfo().then(res=>{
       this.setData({
@@ -65,7 +67,21 @@ Page({
     }else{
       this.getData()
       
-    }
+    } 
+  },
+  bindDateChange(e){
+    this.setData({
+      stock_date:e.detail.value,
+      list:[]
+    })
+    wx.showNavigationBarLoading()
+    this.getData()
+  },
+  toSearch(){
+
+    wx.navigateTo({
+      url: '../stock/stock?type=2',
+    })
     
   },
   getMylist(){
@@ -92,7 +108,7 @@ Page({
     this.setData({
       comment:'',
       pid:null,
-      text:'留下你的观点'
+      text:'我要解读'
     })
   },
   sendmsg(){
@@ -110,7 +126,7 @@ Page({
       this.setData({
         comment:'',
         pid:null,
-        text:'留下你的观点'
+        text:'我要解读'
       })
     })
   },
@@ -166,7 +182,7 @@ Page({
     this.setData({
       name: e.detail.value
     })
-    this.getData()
+    this.getData('search')
   },
   search() {
     this.setData({
@@ -185,32 +201,36 @@ Page({
       this.getData()
     }
   },
-  getData(){
+  getData(type){
     wx.showNavigationBarLoading()
     var list = this.data.list;
-    if(this.data.type == 1){
-      $api.getHotbuyList({ name: this.data.name, stock_date: this.data.stock_date, page: this.data.page, page_size: 20}).then(res => {
-        res.data.data.list.forEach(item => {
-          list.push(item)
-        })
-        wx.hideNavigationBarLoading()
-        this.setData({
-          list: list,
-          total: res.data.data.total
-        })
+    var data={}
+    if(type == 'search'){
+      data={ name: this.data.name, stock_date: this.data.stock_date}
+      this.setData({
+        searchList:[]
       })
     }else{
-      $api.getHotsellList({ name: this.data.name, stock_date: this.data.stock_date, page: this.data.page, page_size: 20 }).then(res => {
+      data={ name: this.data.name, stock_date: this.data.stock_date, page: this.data.page, page_size: 20}
+    }
+      $api.getHotbuyList(data).then(res => {
         res.data.data.list.forEach(item => {
           list.push(item)
         })
         wx.hideNavigationBarLoading()
-        this.setData({
-          list: list,
-          total: res.data.data.total
-        })
+        if(type == 'search'){
+          this.setData({
+            searchList: res.data.data.list
+          })
+        }else{
+          this.setData({
+            list: list,
+            total: res.data.data.total
+          })
+        }
+        
       })
-    }
+    
     
   },
 

+ 1 - 1
pages/stock/stock.json

@@ -1,3 +1,3 @@
 {
-  "usingComponents": {}
+  "navigationBarTitleText": ""
 }

+ 117 - 79
pages/stock/stock.wxml

@@ -1,87 +1,125 @@
-<!--pages/stock/stock.wxml-->
-<view wx:if='{{!id}}' style="background: #fff;padding: 30rpx;">
-  <view class="search">
-    <image mode="heightFix" src="../../images/ss1.png"></image>
-    <input bindinput="inputChange" placeholder-style="color:#999;" placeholder=""></input>
-    <text bindtap="search">搜索</text>
-  </view>
-</view>
+<wxs module="filters" src="../../utils/toFixed.wxs" />
 
-<view wx:if='{{id}}'>
-  <view class="stock_name">{{info.name}} <text wx:if='{{info.code}}'>{{info.code}}</text>
-  <!-- <view wx:if='{{!info.choiced}}' bindtap="choice">加入自选</view>
-  <view wx:else bindtap="delchoice">取消自选</view> -->
-  </view>
-  <image wx:if='{{info.img}}' mode="withFix" src="{{info.img}}"></image>
-  <view wx:if='{{info.desc}}' class="desc">{{info.desc}}</view>
-  <view class="tab">
-   <view bindtap="tab"   data-id='1' class="{{cur==1?'act':''}}">今日持仓 {{info.list.length}}<text></text></view>
-      <view bindtap="tab" data-id='0' class="{{cur==0?'act':''}}">留言 {{comment_count}} <text></text></view>
-     
-      <!-- <view bindtap="tab"   data-id='2' class="{{cur==2?'act':''}}">自选 {{myList.length}}<text></text></view> -->
-  </view>
-  <scroll-view bindtap="blur"  scroll-y='{{true}}' style="height:calc(100vh - 380rpx);background: #fff;padding: 30rpx;">
-    <view class="content" wx:if='{{cur==0}}'>
-        <view class="_list" wx:for="{{comment_list}}">
-          <navigator url="../homepage/homepage?user_id={{item.user_id}}"><image src="{{item.user_avatar}}" ></image></navigator>
-            <view class="msg">
-                <navigator url="../homepage/homepage?user_id={{item.user_id}}" class="_name">{{item.user_name}}</navigator>
-                <view class="_content">{{item.content}}</view>
-                <view class="answer" wx:if="{{item.children.length>0}}">
-                    <view  wx:for="{{item.children}}" wx:for-item='i'>
-                    <text>{{i.user_name}}:</text>
-                    {{i.content}}</view>
-                </view>
-                <view class="addr">
-                    <text>{{item.ctime}}</text><text>来自{{item.location}}</text>
-                    <image wx:if="{{item.user_id==user_id}}" class="del" data-id='{{item.id}}' data-name='{{item.user_name}}' catchtap="delmsg" mode="widthFix" src="../../images/delete.png"></image>
-                    <image data-id='{{item.id}}' data-name='{{item.user_name}}' catchtap="answer" mode="widthFix" src="../../images/msg.png"></image>
-                </view>
-            </view>
+
+
+
+
+
+
+
+
+
+<view wx:if="{{type==1}}">
+  <view wx:if='{{id}}' class="detail">
+    <view class="stock_name">{{info.name}} 
+    <text>{{info.code}}</text>
+    </view>
+    <image wx:if='{{info.img}}' mode="withFix" src="{{info.img}}"></image>
+    <view wx:if='{{info.desc}}' class="desc">{{info.desc}}</view>
+    <view class="tab">
+        <view bindtap="tab"   data-id='1' class="{{cur==1?'act':''}}">今日持仓<text></text></view>
+        <view bindtap="tab" data-id='0' class="{{cur==0?'act':''}}">我要解读<text></text></view>
+    </view>
+    <scroll-view bindtap="blur"  scroll-y='{{true}}' style="height:calc(100vh - 380rpx);background: #fff;padding: 30rpx;">
+      <view class="content" wx:if='{{cur==0}}'>
+          <view class="_list" wx:for="{{comment_list}}">
+            <navigator url="../homepage/homepage?user_id={{item.user_id}}"><image src="{{item.user_avatar}}" ></image></navigator>
+              <view class="msg">
+                  <navigator url="../homepage/homepage?user_id={{item.user_id}}" class="_name">{{item.user_name}}</navigator>
+                  <view class="_content">{{item.content}}</view>
+                  <view class="answer" wx:if="{{item.children.length>0}}">
+                      <view  wx:for="{{item.children}}" wx:for-item='i'>
+                      <text>{{i.user_name}}:</text>
+                      {{i.content}}</view>
+                  </view>
+                  <view class="addr">
+                      <text>{{item.ctime}}</text><text>来自{{item.location}}</text>
+                      <image wx:if="{{item.user_id==user_id}}" class="del" data-id='{{item.id}}' data-name='{{item.user_name}}' catchtap="delmsg" mode="widthFix" src="../../images/delete.png"></image>
+                      <image data-id='{{item.id}}' data-name='{{item.user_name}}' catchtap="answer" mode="widthFix" src="../../images/msg.png"></image>
+                  </view>
+              </view>
+          </view>
         </view>
-      </view>
-      <view wx:if='{{cur==1}}'>
-        <navigator hover-class="none" class="player" wx:for='{{info.list}}' url="../today/today?id={{item.match_id}}&user_id={{item.user_id}}">
-            <view class="name">{{item.username}}  <text>{{item.badge}}</text> 
-            <view>TOP <text>{{item.group_rank}}</text></view></view> 
-            <view class="info">
-                        日期: <view>{{item.stock_date}}</view>
-            </view>
-            <view class="info">
-                        资产:<view><label>{{item.today_fund}}w</label>(今日收益 <text  class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</text><text style="color:#F5F5F5;">  |  </text>总收益<text  class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</text>)</view>
-            </view>
+        <view wx:if='{{cur==1}}'>
+          <navigator hover-class="none" class="player" wx:for='{{info.list}}' url="../today/today?id={{item.match_id}}&user_id={{item.user_id}}">
+              <view class="name">{{item.username}}  <text>{{item.badge}}</text> 
+              </view> 
+              <view class="info">
+                          资产:<view><label style="font-weight: 600;">{{item.today_fund}}w</label>(今日收益 <text  class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</text><text style="color:#F5F5F5;">  |  </text>总收益<text  class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</text>)</view>
+              </view>
 
-            <view class="info">
-                          持仓: 
-                            <view wx:if='{{item.is_markt}}'>开超市</view>
-                            <view wx:elif='{{item.today_stock.length>0}}'>
-                                <block wx:for="{{item.today_stock}}" wx:for-item='i'> {{i.name}}({{i.fund}}w) </block>
-                            </view>
-                            <view wx:else>空仓</view>
-            </view>
+              <view class="info">
+                            持仓: 
+                              <view wx:if='{{item.is_markt}}'>开超市</view>
+                              <view wx:elif='{{item.today_stock.length>0}}'>
+                                  <block wx:for="{{item.today_stock}}" wx:for-item='i'> {{i.name}}({{i.fund}}w) </block>
+                              </view>
+                              <view wx:else>空仓</view>
+              </view>
+            </navigator>
+        </view>
+        <view wx:if='{{cur==2}}'>
+          <navigator hover-class="none"  class="_list" wx:for="{{myList}}" url="../homepage/homepage?id={{item.match_id}}&user_id={{item.user_id}}">
+            <image src="{{item.user_avatar}}" ></image>
+              <view class="msg">
+                  <text class="_name" style="line-height:60rpx;">{{item.user_name}}</text>
+              </view>
           </navigator>
+        </view>
+    </scroll-view>
+
+    <view class="post">
+        <input value="{{comment}}" confirm-type='send' bindconfirm='sendmsg' placeholder-style="color:#999" maxlength="500" bindinput="inputchange1" focus='{{focus}}' type="text" placeholder="{{text}}"/>
+        <!-- <button bindtap="sendmsg">提交</button> -->
+    </view>
+  </view>
+  <view wx:else class="hot_list">
+    <view class="top_bg">
+      <image mode="widthFix" src="../../xiao/titlehot@2x.png"></image>
+      <view class="top_title">顽主杯热榜
+      <image bindtap="toSearch" class="search-img" mode="widthFix" src="../../xiao/search@2x.png"></image>
+        <picker mode="date" value="{{stock_date}}"  bindchange="bindDateChange">
+                    <view class="date-picker">
+                      {{stock_date}}
+                      <image style="width: 16rpx;" mode="widthFix" src="../../xiao/choosedown@2x.png"></image>
+                    </view>
+        </picker>
       </view>
-      <view wx:if='{{cur==2}}'>
-        <navigator hover-class="none"  class="_list" wx:for="{{myList}}" url="../homepage/homepage?id={{item.match_id}}&user_id={{item.user_id}}">
-          <image src="{{item.user_avatar}}" ></image>
-            <view class="msg">
-                <text class="_name" style="line-height:60rpx;">{{item.user_name}}</text>
-            </view>
+    </view>
+    <scroll-view  scroll-y='{{true}}' bindscrolltolower='next' style="background: #fff;padding:0 30rpx;">
+        <navigator hover-class="none" class="list" url="../stock/stock?id={{item.id}}&&date={{stock_date}}&type=1" wx:for='{{list}}'>
+          <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+          <text wx:else class="number">{{index+1}}</text>
+          <view class="stock-name">
+            {{item.stock_name}}
+            <text>持仓金额:{{filters.toFix2(item.total_fund)}}w</text>
+          </view>
+        <view class="num" wx:if='{{type==1}}'> <text>{{item.count}}</text> 人持仓</view>
+        <view class="num" wx:else>清仓 <text>{{item.count}}</text> 人</view>
         </navigator>
-      </view>
-  </scroll-view>
-
-  <view class="post">
-      <input value="{{comment}}" confirm-type='send' bindconfirm='sendmsg' placeholder-style="color:#999" maxlength="500" bindinput="inputchange1" focus='{{focus}}' type="text" placeholder="{{text}}"/>
-      <button bindtap="sendmsg">提交</button>
+        <block wx:if='{{total >= 20}}'>
+                <view class='loading' wx:if='{{list.length < total}}'>上拉加载更多...</view>
+        </block>
+    </scroll-view>
   </view>
 </view>
-<scroll-view wx:else scroll-y='{{true}}' bindscrolltolower='next' style="background: #fff;padding:0 30rpx;">
-    <navigator hover-class="none" class="list" url="../stock/stock?id={{item.id}}&&date={{stock_date}}&type={{type}}" wx:for='{{list}}'>{{item.stock_name}}
-    <view class="num" wx:if='{{type==1}}'>持仓 <text>{{item.count}}</text> 人</view>
-    <view class="num" wx:else>清仓 <text>{{item.count}}</text> 人</view>
-    </navigator>
-    <block wx:if='{{total >= 20}}'>
-            <view class='loading' wx:if='{{list.length < total}}'>上拉加载更多...</view>
-    </block>
-</scroll-view>
+<view wx:else>
+  <view   style="background: #fff;padding: 20rpx;">
+    <view class="search">
+      <image mode="heightFix" src="../../images/ss1.png"></image>
+      <input bindconfirm="inputChange" confirm-type='search' placeholder-style="color:#999;" placeholder="输入股票名称"></input>
+    </view>
+  </view>
+  <scroll-view  scroll-y='{{true}}' bindscrolltolower='next' style="background: #fff;padding:0 30rpx;">
+        <navigator hover-class="none" class="list" url="../stock/stock?id={{item.id}}&&date={{stock_date}}&type=1" wx:for='{{searchList}}'>
+          <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+          <text wx:else class="number">{{index+1}}</text>
+          <view class="stock-name">
+            {{item.stock_name}}
+            <text>持仓金额:{{filters.toFix2(item.total_fund)}}w</text>
+          </view>
+        <view class="num" wx:if='{{type==1}}'> <text>{{item.count}}</text> 人持仓</view>
+        <view class="num" wx:else>清仓 <text>{{item.count}}</text> 人</view>
+        </navigator>
+    </scroll-view>
+</view>

+ 80 - 28
pages/stock/stock.wxss

@@ -3,13 +3,58 @@ page{
   /* padding: 30rpx; */
   background-color: #F7F7F7;
 }
-scroll-view{
-  height: calc(100vh - 140rpx);
+.top_bg {
+  position: relative;
 }
-image{
+.top_bg>image{
+  width: 100%;
+}
+.top_bg .top_title{
+  position: absolute;
+  left: 0;
+  right: 0;
+  margin: auto;
+  color: #fff;
+  text-align: center;
+  top: 20rpx;
+  font-size: 46rpx;
+  font-weight: 600;
+}
+.search-img{
+  width: 40rpx;
+  position: absolute;
+  right: 20rpx;
+  top: 15rpx;
+}
+.date-picker{
+  color: #fff;
+  padding-top: 10rpx;
+  font-size: 26rpx;
+  font-weight: 400;
+}
+.hot_list scroll-view{
+  height: calc(100vh - 180rpx);
+  position: relative;
+  top: -48rpx;
+  border-radius: 37rpx;
+}
+.detail image{
   width: 100%;
   border-radius: 8rpx;
 }
+.number{
+  width: 38rpx;
+  display: inline-block;
+  text-align: center;
+  color: #CE994F;
+  font-size: 26rpx;
+  font-weight: 600;
+  margin-right: 10rpx;
+  margin-top: 6rpx;
+}
+image.number{
+  margin-top: 10rpx;
+}
 .desc{
   font-size: 30rpx;
   line-height: 48rpx;
@@ -17,14 +62,13 @@ image{
   padding: 0 30rpx;
 }
 .name{
-  font-size: 32rpx;
+  font-size: 28rpx;
   font-weight: 500;
-  margin-bottom: 20rpx;
 }
 .name>text{
   color: #AAAAAA;
   font-size: 22rpx;
-  border: 1px solid #AAAAAA;
+  /* border: 1px solid #AAAAAA; */
   border-radius: 4rpx;
   font-weight: 400;
   padding: 0 4rpx;
@@ -40,19 +84,18 @@ image{
   top: -5rpx;
 }
 .info{
-  font-size: 29rpx;
+  font-size: 26rpx;
   padding: 10rpx 0;
   display: flex;
+  color: #333;
 }
 .info view{
-  color: #666;
   width: 85%;
   vertical-align: top;
-  /* font-size: 27rpx; */
+  font-size: 27rpx !important;
 }
 .info label{
   font-weight: 500;
-  color: #333;
 }
 .info .tag{
   font-size: 28rpx;
@@ -65,7 +108,7 @@ image{
 }
 .player{
   border-bottom: 1px solid #F5F5F5;
-  padding: 30rpx 0;
+  margin-bottom: 20rpx;
 }
 .name view{
   float: right;
@@ -86,14 +129,13 @@ image{
   position: relative;
   display: flex;
   justify-content: space-between;
-  margin-bottom: 20rpx;
 }
 .search input{
-  width: 88%;
+  width: 100%;
   background: #F7F7F7;
   height: 68rpx;
   padding-left: 70rpx;
-  border-radius: 8rpx;
+  border-radius: 16rpx;
   box-sizing: border-box;
   font-size: 30rpx;
 }
@@ -110,8 +152,18 @@ image{
   margin: auto;
 }
 .list{
-  padding: 40rpx 0;
+  padding: 20rpx 0;
   border-bottom: 1px solid #F5F5F5;
+  display: flex;
+  justify-content: space-between;
+}
+.stock-name{
+  width: 70%;
+}
+.stock-name text{
+  display: block;
+  font-size: 24rpx;
+  color: #666;
 }
 .num{
   font-size: 28rpx;
@@ -120,28 +172,27 @@ image{
   float: right;
 }
 .num text{
-  font-size: 36rpx;
+  font-size: 30rpx;
   font-weight: 500;
+  color: red;
 }
 .stock_name{
   line-height: 100rpx;
   padding: 0 30rpx;
-  font-size: 36rpx;
-  font-weight: bold;
+  font-size: 30rpx;
   color: #333;
   background: #fff;
   position: relative;
 }
 .stock_name text{
-  color: #2383E5;
+  color: #999;
   font-weight: 400;
-  font-size: 28rpx;
-  background-color: #F7F7F7;
+  font-size: 26rpx;
   padding: 5rpx 10rpx;
 }
 .tab{
   background: #fff;
-  margin-top: 20rpx;
+  border-bottom: 1px solid #f2f2f2;
 }
 .tab view{
   line-height: 90rpx;
@@ -153,12 +204,12 @@ image{
   padding: 0 30rpx;
 }
 .tab .act{
-  font-weight: bold;
+  color: #FF583D;
 }
 .act text{
   position: absolute;
-  width: 64rpx;
-  height: 6rpx;
+  width: 120rpx;
+  height: 4rpx;
   bottom: 0;
   left: 0;
   right: 0;
@@ -232,9 +283,10 @@ image{
   width: 100%;
 }
 .post input{
-  width: 75%;
-  height: 64rpx;
-  border: 1px solid rgba(224, 224, 224, 1);
+  width: 100%;
+  height: 80rpx;
+  border:none;
+  background-color: #f2f2f2;
   border-radius: 9rpx;
   font-size: 30rpx;
   color: #666;

+ 108 - 0
pages/tlb/tlb.js

@@ -0,0 +1,108 @@
+// pages/hotuser/hotuser.js
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    list:[],
+    total:0,
+    page:1,
+    date:'',
+    cur:'win'
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    $api.getDate().then(res=>{
+      this.setData({
+        date:res.data.data,
+        id:options.match_id
+      })
+      this.getData()
+    })
+    
+  },
+  tab(e){
+    this.setData({
+      cur:e.target.dataset.id,
+      list:[],
+      page:1
+    })
+    this.getData()
+},
+  getData:function(){
+    wx.showNavigationBarLoading()
+    var list = this.data.list
+    $api.getTLBlist({match_id:this.data.id,type:this.data.cur,page:this.data.page,page_size:20,stock_date:this.data.date}).then(res=>{
+      wx.hideNavigationBarLoading()
+      res.data.data.list.forEach(item => {
+        list.push(item)
+      })
+      this.setData({
+        list: list,
+        total: res.data.data.total
+      })
+    })
+  },
+  next: function () {
+    if (this.data.list.length < this.data.total) {
+      const page = this.data.page + 1
+      this.setData({
+        page: page
+      })
+      this.getData()
+    }
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/tlb/tlb.json

@@ -0,0 +1,3 @@
+{
+  "navigationBarTitleText": ""
+}

+ 25 - 0
pages/tlb/tlb.wxml

@@ -0,0 +1,25 @@
+<wxs module="filters" src="../../utils/toFixed.wxs" />
+<view class="top_bg">
+      <image mode="widthFix" src="../../xiao/titlebg@2x.png"></image>
+      <view class="top_title">顽主杯屠龙榜</view>
+</view>
+<view class="tab">
+  <view bindtap="tab"   data-id='win' class="{{cur=='win'?'act':''}}">今日盈利榜</view>
+  <view bindtap="tab"   data-id='loss' class="{{cur=='loss'?'act':''}}">今日亏损榜</view>
+  <view bindtap="tab"   data-id='total_win' class="{{cur=='total_win'?'act':''}}">总盈利榜</view>
+  <view bindtap="tab"   data-id='total_loss' class="{{cur=='total_loss'?'act':''}}">总亏损榜</view>
+</view>
+<scroll-view scroll-y="{{true}}" bindscrolltolower='next'>
+  <navigator wx:for="{{list}}" class="list" url="../homepage/homepage?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+    <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+    <text wx:else class="number">{{index+1}}</text>
+    <text class="usn">{{item.username}}</text>
+    <text wx:if="{{cur == 'win' || cur == 'loss'}}" class="bar" style="background-color: {{filters.getColor()}};width:{{item.win_loss/list[0].win_loss*300}}rpx"></text>
+    <text wx:else class="bar" style="background-color: {{filters.getColor()}};width:{{item.total_win_loss/list[0].total_win_loss*300}}rpx"></text>
+    <text wx:if="{{cur == 'win' || cur == 'loss'}}">{{item.win_loss}}w</text>
+    <text wx:else>{{item.total_win_loss}}w</text>
+  </navigator>
+  <block wx:if='{{total >= 20}}'>
+      <view class='loading' wx:if='{{list.length < total}}'>加载更多...</view>
+  </block>
+</scroll-view>

+ 85 - 0
pages/tlb/tlb.wxss

@@ -0,0 +1,85 @@
+/* pages/tlb/tlb.wxss */
+.top_bg {
+  position: relative;
+}
+.top_bg>image{
+  width: 100%;
+}
+.top_bg .top_title{
+  position: absolute;
+  left: 0;
+  right: 0;
+  margin: auto;
+  color: #fff;
+  text-align: center;
+  top: 20rpx;
+  font-size: 46rpx;
+  font-weight: 600;
+}
+.tab{
+  background: #fff;
+  padding:0 20rpx;
+  display: flex;
+  border-bottom: 1px solid #f2f2f2;
+  position: relative;
+  top: -40rpx;
+  border-radius: 20rpx;
+  justify-content: space-between;
+}
+.tab view{
+  font-size: 28rpx;
+  color: #333;
+  line-height: 80rpx;
+  transition: all .1s linear;
+  margin-right: 30rpx;
+  font-weight: 500;
+}
+.tab .act{
+  color: #FF583D;
+  border-bottom: 2px solid #FF583D;
+}
+.number{
+  width: 38rpx;
+  display: inline-block;
+  text-align: center;
+  color: #999;
+  font-size: 24rpx;
+  font-weight: 600;
+  position: relative;
+  top: -3rpx;
+}
+image.number{
+  top: 4rpx;
+  margin-right: 10rpx;
+}
+scroll-view{
+  height: calc(100vh - 285rpx);
+  position: relative;
+  top: -20rpx;
+}
+.list{
+  color: #333;
+  font-size: 24rpx;
+  margin-bottom: 20rpx;
+  padding: 0 20rpx;
+  font-weight: 500;
+}
+.list text{
+  margin-right: 10rpx;
+}
+.bar{
+  display: inline-block;
+  height: 30rpx;
+  position: relative;
+  top: 4rpx;
+}
+.list .usn{
+  display: inline-block;
+  width: 25%;
+  text-align: right;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  position: relative;
+  top: 6rpx;
+}

+ 1 - 1
pages/today/today.wxss

@@ -30,7 +30,7 @@ ec-canvas {
   height: 138rpx;
   position: relative;
   padding:20rpx;
-  background: #D94B24;
+  background: #ff0f03;
 }
 .per_top>image{
   width: 90rpx;

+ 96 - 0
pages/todayExp/todayExp.js

@@ -0,0 +1,96 @@
+// pages/article/article.js
+const app = getApp()
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    list:[],
+    total:0,
+    page:1
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    this.setData({
+      type:options.type
+    })
+    wx.setNavigationBarTitle({
+      title: '今日留言',
+    })
+    this.getData()
+  },
+  getData:function(){
+    var list = this.data.list
+    $api.getExperience({page:this.data.page}).then(res=>{
+      res.data.data.list.forEach(item => {
+        list.push(item)
+      })
+      this.setData({
+        list: list,
+        total: res.data.data.total
+      })
+    })
+  },
+  next: function () {
+    if (this.data.list.length < this.data.total) {
+      const page = this.data.page + 1
+      this.setData({
+        page: page
+      })
+      this.getData()
+    }
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/todayExp/todayExp.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 24 - 0
pages/todayExp/todayExp.wxml

@@ -0,0 +1,24 @@
+<wxs module="filters" src="../../utils/toFixed.wxs" />
+<scroll-view  scroll-y='{{true}}'  bindscrolltolower='next'>
+<view class="up-down">
+        <navigator wx:for="{{list}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+              <view class="relist">
+                  <image  src="{{filters.defaultImg(item.user_avatar)}}"></image>
+                  <view class="msg">
+                      <text class="name">{{item.username}}</text>
+                      <view>资产:{{item.today_fund}}w(总收益 <label class="{{item.total_income[0]=='-' ?'down':'up'}}">{{item.total_income}}</label>  |  今日收益 <label class="{{item.today_income[0]=='-' ?'down':'up'}}">{{item.today_income}}</label>)</view>
+                  </view>
+              </view>
+              <view class="content" wx:if="{{item.experience}}">{{item.experience}}</view>
+              <view class="recomment">
+                  <image mode="widthFix" src="../../images/msg.png"></image>
+                  <text>{{item.comments_count}}</text>
+                  <image mode="widthFix" src="../../images/zan.png"></image>
+                  <text>{{item.zans_count}}</text>
+              </view>
+        </navigator>
+</view>
+<block wx:if='{{total >= 20}}'>
+      <view class='loading' wx:if='{{list.length < total}}'>上拉加载更多...</view>
+</block>
+</scroll-view>

+ 47 - 0
pages/todayExp/todayExp.wxss

@@ -0,0 +1,47 @@
+/* pages/todayExp/todayExp.wxss */
+page{
+  padding: 20rpx;
+}
+scroll-view{
+  height: 100vh;
+}
+.relist{
+  position: relative;
+  padding-left: 80rpx;
+  margin-bottom: 24rpx;
+}
+.relist>image{
+  width: 64rpx;
+  height: 64rpx;
+  position: absolute;
+  left: 0;
+  top: 0;
+  border-radius: 100%;
+}
+.content,.msg .name{
+  font-size: 30rpx;
+  line-height: 48rpx;
+  color: #333;
+}
+.msg view{
+  color: #666;
+  font-size: 28rpx;
+}
+.msg view label{
+  font-size: 28rpx;
+}
+.recomment{
+  padding:  24rpx 0;
+  border-bottom: 1px solid rgba(245, 245, 245, 1);
+}
+.recomment image{
+  width: 32rpx;
+  margin-right: 10rpx;
+  position: relative;
+  top: 5rpx;
+}
+.recomment text{
+  color: #999;
+  font-size: 28rpx;
+  margin-right: 40rpx;
+}

+ 1 - 1
pages/user/user.wxss

@@ -29,7 +29,7 @@ page{
 }
 .info{
   position: relative;
-  background: #D94B24;
+  background: #ff0f03;
   display: flex;
   padding: 30rpx;
 }

+ 72 - 0
pages/winlost/winlost.js

@@ -0,0 +1,72 @@
+// pages/winlost/winlost.js
+const app = getApp()
+const $api = require('../../utils/api.js').API;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    winLost:[]
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    $api.getWinList().then(res=>{
+      this.setData({
+        winLost:res.data.data
+      })
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/winlost/winlost.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 52 - 0
pages/winlost/winlost.wxml

@@ -0,0 +1,52 @@
+<wxs module="filters" src="../../utils/toFixed.wxs" />
+<view class="up-down-view" wx:for="{{winLost}}" wx:for-item="list">
+  <view class="up-title">
+        {{list.match_name}}
+  </view>
+  <scroll-view 	scroll-x='{{true}}' >
+    <view class="content-list">
+      <view class="up-down">
+        <text>盈利榜</text>
+        <navigator wx:for="{{list.total_income_up}}"   hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"   src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="up">{{ filters.toFix2(item.total_income*100)}}%</text>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <text>赚钱榜</text>
+        <navigator wx:for="{{list.total_win_up}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"  src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="up">{{ filters.toFix2(item.total_win)}}w</text>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <text>亏损榜</text>
+        <navigator wx:for="{{list.total_income_down}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"   src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="down">{{ filters.toFix2(item.total_income*100)}}%</text>
+        </navigator>
+      </view>
+      <view class="up-down">
+        <text>亏钱榜</text>
+        <navigator wx:for="{{list.total_win_down}}" hover-class="none"  url="../today/today?id={{item.match_id}}&record_id={{item.id}}&user_id={{item.user_id}}">
+            <image wx:if="{{index<3}}" class="number" mode="widthFix" src="../../xiao/{{index+1}}.png"></image>
+            <text wx:else class="number">{{index+1}}</text>
+            <image class="avatar"   src="{{filters.defaultImg(item.avatar)}}"></image>
+            <text class="usm">{{item.username}}</text>
+            <text class="down">{{ filters.toFix2(item.total_win)}}w</text>
+        </navigator>
+      </view>
+    </view>
+  </scroll-view>
+</view>
+<view wx:if="{{winLost.length>0}}" class="end">~END~</view>
+<view style="margin-top: 100rpx;" wx:else class="end">~正在加载~</view>

+ 68 - 0
pages/winlost/winlost.wxss

@@ -0,0 +1,68 @@
+/* pages/winlost/winlost.wxss */
+.up-down-view{
+  background-color: #fff;
+  padding: 20rpx;
+}
+.content-list{
+  display: flex;
+  width: 250vw;
+}
+.number{
+  width: 38rpx;
+  display: inline-block;
+  text-align: center;
+  color: #CE994F;
+  font-size: 26rpx;
+  font-weight: 600;
+  margin-right: 10rpx;
+  margin-top: 6rpx;
+}
+image.number{
+  margin-top: 10rpx;
+}
+.avatar{
+  width: 50rpx;
+  height: 50rpx;
+  border-radius: 50%;
+  margin-right: 10rpx;
+}
+.up-down{
+  width: 60vw;
+  margin-right: 40rpx;
+}
+.up-down>navigator{
+  padding: 20rpx 0;
+  border-bottom: 1px solid #f2f2f2;
+  display: flex;
+  font-size: 26rpx;
+}
+.up-down .usm{
+  width: 50%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.up-title{
+  font-size: 28rpx;
+  padding-bottom: 20rpx;
+  
+}
+.up-title navigator{
+  float: right;
+  font-size: 24rpx;
+}
+.up-down navigator text{
+  line-height: 50rpx;
+}
+.up-down>text{
+  color: #999;
+  font-size: 24rpx;
+  margin-bottom: 10rpx;
+  display: block;
+}
+.end{
+  text-align: center;
+  color: #999;
+  line-height: 50rpx;
+  font-size: 28rpx;
+}

+ 1 - 1
project.private.config.json

@@ -1,5 +1,5 @@
 {
-  "projectname": "xiaochengxu-4",
+  "projectname": "wanzb_xcxv3-1",
   "setting": {
     "compileHotReLoad": true
   },

+ 10 - 0
utils/api.js

@@ -107,8 +107,13 @@ const API = {
   getAuthinfo: (data) => request(GET, `/api/wx/authinfo`, data),
   getEnumList: (data) => request(GET, `/api/wx/v2/enum/list`, data),
   getIndex: (data) => request(GET, `/api/wx/index`, data),
+  getBaikeCategory: (data) => request(GET, `/api/wx/v3/baike/category/list`, data),
+  getBaike: (data) => request(GET, `/api/wx/v3/baike/list`, data),
+  getBaikeDetail: (data) => request(GET, `/api/wx/v3/baike/detail`, data),
+  getBaikeRandom: (data) => request(GET, `/api/wx/v3/baike/random`, data),
   getRank: (data) => request(GET, `/api/wx/group/rank/list`, data),
   getRankList: (data) => request(GET, `/api/wx/group/rank`, data),
+  getWinList: (data) => request(GET, `/api/wx/v3/match/winlost/top5`, data),
   getPlayerMatch: (data) => request(GET, `/api/wx/player/match`, data),//参赛资料
   updateFollow: (data) => request(POST, `/api/wx/v2/user/follow`, data),
   getRinrate: (data) => request(GET, `/api/wx/v2/winrate/rank`, data),
@@ -160,6 +165,11 @@ const API = {
   getUserMatch: (data) => request(GET, `/api/wx/v3/user/match/list`, data),
   getUserInfo: (data) => request(GET, `/api/wx/user/info`, data),
   isUserLogin: (data) => request(GET, `/api/wx/v3/authinfo`, data),
+  getTLBlist: (data) => request(GET, `/api/wx/v3/profit/rank/list`, data),
+  getBlacklist: (data) => request(GET, `/api/wx/v3/user/black/list`, data),
+  cancelBlack: (data) => request(DELETE, `/api/wx/v3/user/black`, data),
+  blackUser: (data) => request(POST, `/api/wx/v3/user/black`, data),
+  
 }; 
 module.exports = {
   API: API

+ 24 - 0
utils/toFixed.wxs

@@ -0,0 +1,24 @@
+var filters = {
+  toFix2: function (value) {
+    return parseFloat(value).toFixed(2)//此处2为保留两位小数
+  },
+  defaultImg: function (value) {
+    if(value.indexOf('http')>=0){
+      return value
+    }else{
+      return '../../xiao/default_img@2x.png'
+    }
+  },
+  getColor: function () {
+    var r = Math.floor(Math.random()*256);
+    var g = Math.floor(Math.random()*256);
+    var b = Math.floor(Math.random()*256);
+    return "rgb("+r+","+g+","+b+")";
+  }
+}
+// filters为自定义的字段,可以改成自己喜欢的字段,记得将module中的叶修改为同一个字段
+module.exports = {
+  toFix2: filters.toFix2,
+  defaultImg:filters.defaultImg,
+  getColor:filters.getColor
+}

BIN
xiao/.DS_Store


BIN
xiao/1.png


BIN
xiao/2.png


BIN
xiao/3.png


BIN
xiao/about.png


BIN
xiao/about@2x.png


BIN
xiao/about@3x.png


BIN
xiao/add@2x.png


BIN
xiao/add@3x.png


BIN
xiao/baike@2x.png


BIN
xiao/baike@3x.png


BIN
xiao/bs.png


BIN
xiao/bs@2x.png


BIN
xiao/bs@3x.png


BIN
xiao/choosedown@2x.png


BIN
xiao/choosedown@3x.png


BIN
xiao/codebg@2x.png


BIN
xiao/codebg@3x.png


BIN
xiao/cyouke@2x.png


BIN
xiao/cyouke@3x.png


BIN
xiao/czixun@2x.png


BIN
xiao/czixun@3x.png


BIN
xiao/default_img@2x.png


BIN
xiao/default_img@3x.png


BIN
xiao/default_user@2x.png


BIN
xiao/default_user@3x.png


BIN
xiao/delete.png


BIN
xiao/delete@2x.png


BIN
xiao/delete@3x.png


BIN
xiao/dianzan@2x.png


BIN
xiao/dianzan@3x.png


BIN
xiao/down.png


BIN
xiao/down@2x.png


BIN
xiao/down@3x.png


BIN
xiao/down_white@2x.png


BIN
xiao/down_white@3x.png


BIN
xiao/error@2x.png


BIN
xiao/error@3x.png


BIN
xiao/finance_delete@2x.png


BIN
xiao/finance_delete@3x.png


BIN
xiao/gonggao@2x.png


BIN
xiao/gonggao@3x.png


BIN
xiao/home@2x.png


BIN
xiao/home@3x.png


BIN
xiao/home_0.png


BIN
xiao/home_1.png


BIN
xiao/home_h@2x.png


BIN
xiao/home_h@3x.png


BIN
xiao/icon_down@2x.png


BIN
xiao/icon_down@3x.png


+ 0 - 0
xiao/icon_rise@2x.png


Some files were not shown because too many files changed in this diff