Преглед на файлове

等级面板,绑定数据

martin.ma преди 4 години
родител
ревизия
010dfe1b3b

+ 1 - 0
assets/css/developer/index.scss

@@ -795,6 +795,7 @@
   margin-right: 46px;
   background: #f7f8fa;
   border-radius: 8px;
+  padding-bottom: 20px;
 }
 
 .dev-level-info {

+ 44 - 131
pages/frontend/developer/component/level-introduce.vue

@@ -3,7 +3,7 @@
     <!-- 等级明细 -->
     <div class="dev-level-detail">
         <div class="dev-level-info">
-            <span class="dev-level-info-tips">Lv.{{level}}</span>
+            <span class="dev-level-info-tips">Lv.{{user.dynamic_rand}}</span>
         </div>
         <div class="dev-level-line-container">
             <div class="dev-level-line">
@@ -11,123 +11,31 @@
                     'transform': 'translateX(-'+(100-lineW)+'%)'  }"></span>
             </div>
             <p class="dev-level-line-left">
-                <span class="dev-level-highline">Lv.{{level}}</span>经验值{{experience}}
+                <span class="dev-level-highline">Lv.{{user.dynamic_rand}}</span>经验值{{user.dynamic_experience}}
             </p>
             <p class="dev-level-line-right">
-                升级还需<span class="dev-level-highline">{{experienceDiff}}</span>经验值
+                升级还需<span class="dev-level-highline">{{user.total_experience - user.dynamic_experience}}</span>经验值
             </p>
         </div>
 
         <ul class="dev-level-details-list">
-            <li class="dev-level-details-item">
+            <li v-for="(item,index) in dynamic_rand_task"  :key="index" class="dev-level-details-item">
                 <div class="dev-level-details-tit">
-                    <span>每日打开APP</span>
+                    <span>{{item.title}}</span>
+                    <span v-if="item.desc != ''" class="label">{{item.desc}}</span>
                 </div>
-                <div class="dev-level-tips">+1</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>每日发布动态</span>
-                </div>
-                <div class="dev-level-tips">+1</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>每日发布评论</span>
-                </div>
-                <div class="dev-level-tips">+1</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>推荐动态</span>
-                </div>
-                <div class="dev-level-tips">+5</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>实名认证</span>
-                </div>
-                <div class="dev-level-tips">+50</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>签约开发者</span>
-                </div>
-                <div class="dev-level-tips">+50</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>技术等级认证</span>
-                </div>
-                <div class="dev-level-tips">+50</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>发布作品</span>
-                    <span class="label">通过审核+10,删除-10</span>
-                </div>
-                <div class="dev-level-tips">+10</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>发布课程</span>
-                    <span class="label">通过审核+10,删除-10</span>
-                </div>
-                <div class="dev-level-tips">+10</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>发布技能</span>
-                    <span class="label">通过审核+10,删除-10</span>
-                </div>
-                <div class="dev-level-tips">+10</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>发布咨询</span>
-                    <span class="label">通过审核+10,删除-10</span>
-                </div>
-                <div class="dev-level-tips">+10</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>接单好评</span>
-                </div>
-                <div class="dev-level-tips">+50</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>接单好评</span>
-                </div>
-                <div class="dev-level-tips">+50</div>
-            </li>
-            <li class="dev-level-details-item">
-                <div class="dev-level-details-tit">
-                    <span>开通会员</span>
-                </div>
-                <div class="dev-level-tips">+50</div>
+                <div class="dev-level-tips">+{{item.score}}</div>
             </li>
+           
         </ul>
     </div>
 
     <!-- 等级介绍 -->
     <div class="dev-level-introduce">
-        <div class="dev-level-introduce-section">
-            <h3>1.什么事经验值</h3>
-            <p>
-                经验值是程序员客栈推出的一种虚拟经验,用户可以使用经验值提升账户等级。
-            </p>
-        </div>
-        <div class="dev-level-introduce-section">
-            <h3>2.如何获取经验值?</h3>
+        <div class="dev-level-introduce-section" v-for="(item,index) in dynamic_rand_desc" :key="index">
+            <h3>{{index+1}}.{{item.title}}</h3>
             <p>
-                你可以通过【每日打开APP】【发布动态】等途径获取奖励,更多经验任务将持续上线,敬请期待。
-            </p>
-        </div>
-        <div class="dev-level-introduce-section">
-            <h3>3.我们会进行反作弊</h3>
-            <p>
-                为保证所有用户的正当权益,我们会严厉打击违法行为。对于恶意盗刷经验的行为,我们将对作弊者进行经验消零。对行为恶劣者,将封禁账户。
+                {{item.desc}}
             </p>
         </div>
         <div class="dev-level-table-container">
@@ -136,21 +44,9 @@
                     <th>等级</th>
                     <th>经验值</th>
                 </tr>
-                <tr>
-                    <td>1</td>
-                    <td>50</td>
-                </tr>
-                <tr>
-                    <td>2</td>
-                    <td>100</td>
-                </tr>
-                <tr>
-                    <td>3</td>
-                    <td>300</td>
-                </tr>
-                <tr>
-                    <td></td>
-                    <td></td>
+                <tr v-for="(item,index) in dynamic_rand" :key="index">
+                    <td>{{item.rand}}</td>
+                    <td>{{item.score}}</td>
                 </tr>
             </table>
         </div>
@@ -165,17 +61,34 @@ export default {
             type: Boolean,
             default: false
         },
-        level: {
-            type: Number,
-            default: 0
+        levelInfo: {
+            type: Object,
+            default: function () {
+                return {
+                    user: {
+                        dynamic_experience: 0,
+                        dynamic_rand: 0,
+                        total_experience: 0
+                    },
+                    dynamic_rand: [],
+                    dynamic_rand_task: [],
+                    dynamic_rand_desc: []
+                }
+            }
+        }
+    },
+    computed: {
+        'user': function () {
+            return this.levelInfo.user
+        },
+        'dynamic_rand': function () {
+            return this.levelInfo.dynamic_rand
         },
-        experience: {
-            type: Number,
-            default: 0
+        'dynamic_rand_task': function () {
+            return this.levelInfo.dynamic_rand_task
         },
-        experienceDiff: {
-            type: Number,
-            default: 0
+        'dynamic_rand_desc': function () {
+            return this.levelInfo.dynamic_rand_desc
         }
     },
 
@@ -183,8 +96,8 @@ export default {
         'show': function (val) {
             if (val) {
                 this.$nextTick(() => {
-                    let total = this.experience + this.experienceDiff
-                    let result = (this.experience / total) * 100
+                    let total = this.user.total_experience
+                    let result = (this.user.dynamic_experience / total) * 100
                     this.lineW = parseInt(result, 10)
                 })
             } else {
@@ -195,8 +108,8 @@ export default {
     created() {
         if (this.show) {
             this.$nextTick(() => {
-                let total = this.experience + this.experienceDiff
-                let result = (this.experience / total) * 100
+                let total = this.user.total_experience
+                let result = (this.user.dynamic_experience / total) * 100
                 this.lineW = parseInt(result, 10)
             })
         } else {

+ 23 - 2
pages/frontend/developer/developData.js

@@ -31,13 +31,15 @@ export default class DealSeoData {
             balanceInfo,
             workPlatInfo,
             typeList,
-            hotInfo
+            hotInfo,
+            levelInfo
         ] = await Promise.all([
             this._getUserInfo(),
             this._getUserBalance(),
             this._getWorkPlatInfo(),
             this._getTypeList(),
-            this._getHotData()
+            this._getHotData(),
+            this._getLevelInfo()
         ])
 
         let firstType = typeList[0]
@@ -54,6 +56,7 @@ export default class DealSeoData {
             workPlatInfo,
             typeList,
             hotInfo,
+            levelInfo,
             dynamicList,
             firstType,
             isMore
@@ -206,6 +209,24 @@ export default class DealSeoData {
         return hotInfo
     }
 
+
+    // 获取经验接口
+    async _getLevelInfo(){
+        let res = await this.$axios.$post('/uapi/dynamic/get_dynamic_experience_info')
+        let levelInfo = {}
+        if (Number(res.status) === 1) {
+            let {user,dynamic_rand,dynamic_rand_task,dynamic_rand_desc} = res.data
+
+            levelInfo = {
+                user,dynamic_rand,dynamic_rand_task,dynamic_rand_desc
+            }
+        } else if (Number(res.status) === 40001) {
+            this.isExist = false
+        }
+        return levelInfo
+
+    }
+
     dealThisMeta() {
         let title = ''
         let descriptionTitle = ''

+ 1 - 3
pages/frontend/developer/index.vue

@@ -500,9 +500,7 @@
         -->
       <Level-Introduce
         :show="levelIntroduceVisible"
-        :level="userInfo.dynamic_rand"
-        :experience="userinfo.dynamic_experience"
-        :experience-diff="100"
+        :level-info="levelInfo"
       ></Level-Introduce>
     </el-dialog>
   </div>