Bladeren bron

新增各个我的页面排名和更改名字

Limengbo 6 jaren geleden
bovenliggende
commit
d60cd8bf72

+ 83 - 0
README.md

@@ -0,0 +1,83 @@
+## 账号
+
+appId: wx7b5ea6422847ea64;
+
+
+[登录微信公共平台](https://mp.weixin.qq.com/);
+
+账号:sunzhilei@efunbox.cn, 密码:efunbox@3366;
+
+## 关于代码
+这个小程序基本上都是tab切换由于微信的tabBar中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。
+所以只好把导航条封装成公用组件采用wx.switchTab(OBJECT)来跳转页面,达到tab切换的效果其他的一些组件和功能主要是用微信小程序API来实现的。
+
+目录结构如下
+
+```├── README.md
+.
+├── README.md
+├── app.js      // 小程序逻辑
+├── app.json    // 小程序公共设置
+├── app.wxss    // 小程序公共样式表式
+├── compontents   // 所有的组件都在这里
+│   ├── chat     //  分享或答疑功能组件
+│   │
+│   ├── curriculum       //  学习记录功能组件
+│   │
+│   ├── discuss      // 评论内容功能组件
+│   │
+│   ├── lesson_list       // 课程列表组件
+│   │
+│   ├── preview     //  预览组件
+│   │
+│   ├── rank-tarbar      //  排名导航栏组件
+│   │
+│   ├── ranking      // 排名组件
+│   │
+│   ├── share     //  分享组件
+│   │
+│   ├── tarbar      //  主页导航栏组件
+│   │
+│   ├── target     // 学习目标组件
+│   │
+├── pages   // 所有的页面都在这里
+│   ├── accuracy_rank     //  正确率排名
+│   │
+│   ├── image       //  小程序tabbar里面的图片
+│   │
+│   ├── art      // 艺术课页面
+│   │
+│   ├── chinese       // 中文页面
+│   │
+│   ├── accuracy_rank     //  正确率排名
+│   │
+│   ├── english      //  英语页面
+│   │
+│   ├── grade_rank      // 等级排名
+│   │
+│   ├── index        // 我的页面
+│   ├── input_content     //  分享和有疑问页面
+│   │
+│   ├── language      //  语文页面
+│   │
+│   ├── mathematics      // 数学页面
+│   │
+│   ├── medal_rank        // 勋章排名页面
+│   ├── quantity_rank     //  答题排名排名
+│   │
+│   ├── recommend       //  本周推荐
+│   │
+│   ├── science     // 科学页面
+│   │
+│   ├── set_name       // 更改名字
+│   │
+│   ├── transmit       // 通过用户分享进来的页面
+└── utils					// 公共文件夹
+    ├── APIClient.js        // 所有的接口请求都在这
+    ├── WXHttpRequest.js        // 重新封装了一下微信请求接口
+    ├── const.js        // 定义了一些请求常量
+    ├── loginSchedule.js     // 小程序注册登录的代码
+    └── util.js     // 一些公共的方法
+```
+
+代码中方法基本都有注释

+ 2 - 1
app.json

@@ -15,7 +15,8 @@
     "pages/medal_rank/medal_rank",
     "pages/grade_rank/grade_rank",
     "pages/quantity_rank/quantity_rank",
-    "pages/accuracy_rank/accuracy_rank"
+    "pages/accuracy_rank/accuracy_rank",
+    "pages/set_name/set_name"
   ],
   "window": {
     "backgroundTextStyle": "light",

+ 1 - 24
compontents/preview/preview.wxml

@@ -16,27 +16,4 @@
         </view>
     </view>
     <text class="unfold" data-flag="{{flag}}" bindtap="onTap">展开</text>
-</view>
-
-<!-- <view class="lesson-list">
-    <view class="this-week">
-        <image src="../../pages/image/courseware.png"></image>
-        <view class="lesson-name">
-            <text>课件列表</text>
-            <text>本周推荐课已经完成了</text>
-        </view>
-    </view>
-    <view class=" timer-shaft " animation="{{animationData}}">
-        <view class="art-lesson" wx:for="{{lessonData}}" wx:key="{{index}}" >
-            <view class="graph" wx:if="{{!item.isStudy}}">
-                <view class="yuan check"></view>
-                <view class="long-line check {{(lessonData.length - 1 == index) || (index == 4 && !flag) ? 'none' : ''}}" ></view>
-            </view>
-            <view class="{{item.isStudy ? 'art-con' : 'art-con-color'}}">
-                <text >{{item.title}}</text>
-                <text>{{item.isStudy ? '28分钟前' : '未学习'}}</text>
-            </view>
-        </view>
-    </view>
-    <text class="unfold" data-flag="{{flag}}" bindtap="onTap">展开</text>
-</view> -->
+</view>

+ 10 - 1
pages/index/index.js

@@ -15,7 +15,7 @@ Page({
     data: {},
     grade: "",
     time: "",
-    oneData: {},
+    rankData: {},
     share: false,
   },
   
@@ -65,6 +65,15 @@ Page({
           time: util.day(res.data.data.timeSpend)
         })
       })
+      //获取排名
+      APIClient.getFriendSchedule('wx/friendsRank/user', {
+        uid: res.data.data.uid
+      }).success(res => {
+        console.log(res)
+        this.setData({
+          rankData: res.data.data,
+        })
+      })
     }, function() {
       wx.showModal({
         title: '提示',

+ 13 - 40
pages/index/index.wxml

@@ -23,7 +23,9 @@
                     </view>
                   </view>
                 </view>
-                <view class='grade'>更改昵称</view>
+                <view class='grade'>
+                  <navigator url="../set_name/set_name" >更改昵称</navigator>
+                </view>
               </view>
               <view class='personal'>
                 <view class="particulars">
@@ -51,28 +53,24 @@
               </view>
               <view class="ranking-con">
                 <view class="rank">
-                  <text>好友数</text>
-                  <text>第九名</text>
-                </view>
-                <view class="rank">
-                  <text>好友数</text>
-                  <text>第九名</text>
+                  <text>好友数: {{rankData.friendsRank.number}}</text>
+                  <text>第{{rankData.friendsRank.rank}}名</text>
                 </view>
                 <view class="rank">
-                  <text>好友数</text>
-                  <text>第名</text>
+                  <text>勋章数量:{{rankData.metalsRank.number}}</text>
+                  <text>第{{rankData.metalsRank.rank}}名</text>
                 </view>
                 <view class="rank">
-                  <text>好友数</text>
-                  <text>第名</text>
+                  <text>等级:LV{{rankData.expRank.number}}</text>
+                  <text>第{{rankData.expRank.rank}}名</text>
                 </view>
                 <view class="rank">
-                  <text>好友数</text>
-                  <text>第名</text>
+                  <text>答题量:{{rankData.userQuestionRank.number}}</text>
+                  <text>第{{rankData.userQuestionRank.rank}}名</text>
                 </view>
                 <view class="rank">
-                  <text>好友数</text>
-                  <text>第名</text>
+                  <text>答题准确率:{{rankData.userQuestionCorrectRank.numberCorrect * 100}}%</text>
+                  <text>第{{rankData.userQuestionCorrectRank.rank}}名</text>
                 </view>
               </view>
               <view class="particular">
@@ -96,32 +94,7 @@
             <view>
               <curriculum studyLog="{{ data.studyLog }}"/>
             </view>
-            <!-- <view class='questions'>
-              <scroll-view>
-              <text class="{{questionsPreviewing ? 'adsorb' : ''}}">答疑</text>
-              <view>
-              </view>
-              </scroll-view>
-            </view>
-            <view class='share'>
-             <text class="{{questionsShare ? 'adsorb' : ''}}">分享</text>
-             <view></view>
-            </view> -->
           </view>
-          <!-- 本周推荐 -->
-          <!-- <view class="recommend {{navBtnSelectIdx == 1 ? '' : 'none'}}">
-            <recommend recommendData="{{recommendData}}"/>
-          </view> -->
-          <!-- 科学艺术 -->
-          <!-- <view class="art {{navBtnSelectIdx == 7 ? '' : 'none'}}">
-            <one wx:if="{{share}}"
-            productionData="{{oneData}}" 
-            title="作品分享"
-            type="2"/>
-            <art wx:else 
-            productionData="{{productionData}}"
-            questionsData="{{questionsData}}"/>
-          </view> -->
       </scroll-view>
   </view>
 </view>

+ 71 - 0
pages/set_name/set_name.js

@@ -0,0 +1,71 @@
+// pages/set_name/set_name.js
+const APIClient = require('../../utils/APIClient.js');
+const login = require('../../utils/loginSchedule.js');
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    textValue: ''
+  },
+  /*获取输入内容*/
+  bindKeyInput: function(e) {
+    this.setData({
+      textValue: e.detail.value
+    })
+  },
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    wx.setNavigationBarTitle({
+      title: '更改昵称'
+    })
+  },
+  /*点击更改*/
+  save: function () {
+    if(this.data.textValue == '') {
+      wx.showModal({
+        title: '提示',
+        content: '请输入要更改的昵称',
+        success: function(res) {
+          if (res.confirm) {
+            console.log('用户点击确定')
+          } else if (res.cancel) {
+            console.log('用户点击取消')
+          }
+        }
+      })
+      return false;
+    };
+    login.getOpenidSessionKey((res) => {
+      //console.log(res.data.data.uid);
+      APIClient.getSetNameSchedule({
+        uid: res.data.data.uid
+      }, {
+        wechatName: this.data.textValue
+      }).success(res => {
+        console.log(res)
+        if(res.data.success) {  
+          wx.redirectTo({
+            url: '../index/index?ind=0'
+          })
+        }
+      })      
+    }, function() {
+      wx.showModal({
+        title: '提示',
+        content: '需要获取您的公开信息(昵称、头像等),请从小程序列表删除小学王者班后再次扫码进入,允许授权后可正常使用',
+        showCancel: false,
+        success: function (res) {
+          if (res.confirm) {
+            console.log('用户点击确定')
+          } else if (res.cancel) {
+            console.log('用户点击取消')
+          }
+        }
+      })
+    });
+  }
+})

+ 1 - 0
pages/set_name/set_name.json

@@ -0,0 +1 @@
+{}

+ 6 - 0
pages/set_name/set_name.wxml

@@ -0,0 +1,6 @@
+<!--pages/set_name/set_name.wxml-->
+<view class="set-name">
+    <input placeholder="请输入昵称(不能超出五个字符)" bindinput="bindKeyInput" maxlength="5"/>
+    <text>此昵称仅在小学王者班平台显示,更改后TV端同步显示</text>
+    <view class="btn" bindtap="save">保存</view>
+</view>

+ 29 - 0
pages/set_name/set_name.wxss

@@ -0,0 +1,29 @@
+/* pages/set_name/set_name.wxss */
+.set-name {
+    padding: 50rpx 79rpx 0 79rpx;
+}
+
+.set-name input {
+    border-bottom: 2rpx solid #000;
+    font-size: 30rpx;
+}
+
+.set-name  text {
+    width: 100%;
+    font-size: 24rpx;
+    color: #999;
+    display: block;
+    text-align: center;
+    margin: 48rpx 0;
+}
+
+.btn {
+    width: 100%;
+    height: 80rpx;
+    background: #ea6aa0;
+    text-align: center;
+    line-height: 80rpx;
+    color: #fff;
+    font-size: 38rpx;
+    border-radius: 10rpx;
+}

+ 5 - 0
utils/APIClient.js

@@ -47,5 +47,10 @@ module.exports = {
 	getFriendSchedule(urls, header) {
 		let url = genAPIUrl(urls);
 		return request.getInstance().url(url).header(header).method('GET').send();
+	},
+	//更改昵称
+	getSetNameSchedule(header, data) {
+		let url = genAPIUrl('wx/ucenter/user/update');
+		return request.getInstance().url(url).header(header).data(data).method('GET').send();
 	}
 }