Explorar o código

修改我的团队和邀请百姓

fly hai 10 horas
pai
achega
09d20f9294
Modificáronse 5 ficheiros con 79 adicións e 62 borrados
  1. 11 1
      src/api/profile.js
  2. 31 40
      src/views/Dynamic.vue
  3. 7 7
      src/views/Member.vue
  4. 4 4
      src/views/Share.vue
  5. 26 10
      src/views/TeamDetail.vue

+ 11 - 1
src/api/profile.js

@@ -29,4 +29,14 @@ export const getMyTeam = (type) => {
     data: formData,
     loading: true
   });
-};
+};
+// 领取红旗资产奖励
+export function getShareccb(renshu) {
+  return request({
+    url: 'index/get_shareccb',
+    method: 'post',
+    data: new URLSearchParams({ renshu }),
+    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
+    loading: true
+  });
+}

+ 31 - 40
src/views/Dynamic.vue

@@ -4,55 +4,44 @@
       邀请好友获得红旗资产
     </div>
     <div class="invite-list">
-      <div class="invite-item">
+      <div class="invite-item" v-for="item in rewards" :key="item.renshu">
         <div class="invite-info">
-          <div class="invite-title">邀请5人实名认证</div>
-          <div class="invite-reward">奖励60000元红旗资产</div>
+          <div class="invite-title">{{ item.title }}</div>
+          <div class="invite-reward">{{ item.reward }}</div>
         </div>
-        <button class="btn received">已领取</button>
-      </div>
-      <div class="invite-item">
-        <div class="invite-info">
-          <div class="invite-title">邀请10人实名认证</div>
-          <div class="invite-reward">奖励150000元红旗资产</div>
-        </div>
-        <button class="btn not-reached">未达标</button>
-      </div>
-      <div class="invite-item">
-        <div class="invite-info">
-          <div class="invite-title">邀请20人实名认证</div>
-          <div class="invite-reward">奖励300000元红旗资产</div>
-        </div>
-        <button class="btn not-reached">未达标</button>
-      </div>
-      <div class="invite-item">
-        <div class="invite-info">
-          <div class="invite-title">邀请50人实名认证</div>
-          <div class="invite-reward">奖励800000元红旗资产</div>
-        </div>
-        <button class="btn not-reached">未达标</button>
-      </div>
-      <div class="invite-item">
-        <div class="invite-info">
-          <div class="invite-title">邀请100人实名认证</div>
-          <div class="invite-reward">奖励1800000元红旗资产</div>
-        </div>
-        <button class="btn not-reached">未达标</button>
-      </div>
-      <div class="invite-item">
-        <div class="invite-info">
-          <div class="invite-title">邀请150人实名认证</div>
-          <div class="invite-reward">获得国家神秘奖励</div>
-        </div>
-        <button class="btn not-reached">未达标</button>
+        <button class="btn" @click="receiveReward(item.renshu)">领取</button>
       </div>
     </div>
   </div>
 </template>
 
 <script>
+import { getShareccb } from '@/api/profile';
+
 export default {
-  name: 'Dynamic'
+  name: 'Dynamic',
+  data() {
+    return {
+      rewards: [
+        { renshu: 5, title: '邀请5人实名认证', reward: '奖励60000元红旗资产' },
+        { renshu: 10, title: '邀请10人实名认证', reward: '奖励150000元红旗资产' },
+        { renshu: 20, title: '邀请20人实名认证', reward: '奖励300000元红旗资产' },
+        { renshu: 50, title: '邀请50人实名认证', reward: '奖励800000元红旗资产' },
+        { renshu: 100, title: '邀请100人实名认证', reward: '奖励1800000元红旗资产' },
+        { renshu: 150, title: '邀请150人实名认证', reward: '获得国家神秘奖励' }
+      ]
+    }
+  },
+  methods: {
+    async receiveReward(renshu) {
+      try {
+        const res = await getShareccb(renshu);
+        alert(res.data.msg);
+      } catch (e) {
+        // 接口异常时不弹窗
+      }
+    }
+  }
 }
 </script>
 
@@ -125,6 +114,8 @@ export default {
   font-weight: 500;
   padding: 0 18px;
   cursor: default;
+  background: #d0021b;
+  color: #fff;
 }
 
 .btn.received {

+ 7 - 7
src/views/Member.vue

@@ -33,7 +33,7 @@
             <div class="tit">我的邀请收益</div>
             <div class="xia">
               <div class="num">
-                <span>{{ userInfo.inviteProfit || 0 }}</span>
+                <span>{{ userInfo.xianjin || 0 }}</span>
               </div>
             </div>
             <div class="tit" style="font-size: 3.4vw;">邀请好友立享返佣 !</div>
@@ -55,21 +55,21 @@
         <div class="show-content">
           <div class="view-category">
             <div class="num1">
-              <span>{{ userInfo.level1Profit || 0 }}</span>
+              <span>{{ userInfo.totleonemo || 0 }}</span>
             </div>
             <div class="text">一级收益</div>
           </div>
           <div class="line"></div>
           <div class="view-category">
             <div class="num1">
-              <span>{{ userInfo.level2Profit || 0 }}</span>
+              <span>{{ userInfo.totletwomo || 0 }}</span>
             </div>
             <div class="text">二级收益</div>
           </div>
           <div class="line"></div>
           <div class="view-category">
             <div class="num1">
-              <span>{{ userInfo.level3Profit || 0 }}</span>
+              <span>{{ userInfo.totlethreemo || 0 }}</span>
             </div>
             <div class="text">三级收益</div>
           </div>
@@ -87,21 +87,21 @@
         <div class="show-content">
           <div class="view-category">
             <div class="num1">
-              <span>{{ userInfo.level1Count || 0 }}</span>
+              <span>{{ userInfo.totleone || 0 }}</span>
             </div>
             <div class="text">一级人数</div>
           </div>
           <div class="line"></div>
           <div class="view-category">
             <div class="num1">
-              <span>{{ userInfo.level2Count || 0 }}</span>
+              <span>{{ userInfo.totletwo || 0 }}</span>
             </div>
             <div class="text">二级人数</div>
           </div>
           <div class="line"></div>
           <div class="view-category">
             <div class="num1">
-              <span>{{ userInfo.level3Count || 0 }}</span>
+              <span>{{ userInfo.totlethree || 0 }}</span>
             </div>
             <div class="text">三级人数</div>
           </div>

+ 4 - 4
src/views/Share.vue

@@ -31,11 +31,11 @@
             <div class="action-btn" @click="copyLink">复制链接</div>
           </div>
 
-          <div class="divider">
+          <!-- <div class="divider">
             <div class="divider-text">领取任务</div>
-          </div>
+          </div> -->
 
-          <div class="task-list">
+          <!-- <div class="task-list">
             <div v-for="task in tasks" :key="task.people" class="task-card">
               <div class="task-header-row">
                 <div class="task-title">邀请{{ task.people }}人</div>
@@ -57,7 +57,7 @@
                 <div class="task-action-btn" @click="claimReward(task)">领取</div>
               </div>
             </div>
-          </div>
+          </div> -->
         </div>
       </div>
     </div>

+ 26 - 10
src/views/TeamDetail.vue

@@ -30,13 +30,21 @@
 
       <!-- 统计信息 -->
       <div class="stats-bar">
-        <div class="stats-item">总人数:{{ teamInfo.totalCount || 0 }}人</div>
-        <div class="stats-item">有效总人数:{{ teamInfo.validCount || 0 }}人</div>
+        <div class="stats-item">总人数:{{ teamList.length || 0 }}人</div>
+        <div class="stats-item">有效总人数:{{ teamInfo.yxuser || 0 }}人</div>
       </div>
 
       <!-- 团队列表 -->
       <div class="team-list">
-        <!-- 这里可以添加团队成员列表 -->
+        <div v-for="item in teamList" :key="item.userId" class="member-card">
+          <div style="display: flex; align-items: center; margin-bottom: 8px;">
+            <span style="color: #888;">{{ item.id }}</span>
+            <span style="background: #e6b7e6; color: #fff; border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; margin-right: 10px;margin-left: 10px;">{{ item.level }}</span>
+            <span style="font-weight: bold; margin-right: 10px;">{{ item.mobile }}</span>
+          </div>
+          <div style="margin-bottom: 4px;">直推人数 {{ item.zhituicount }}人</div>
+          <div>邀请时间 {{ item.createtime }}</div>
+        </div>
       </div>
     </div>
   </div>
@@ -51,9 +59,9 @@ export default {
     return {
       currentType: 1,
       teamInfo: {
-        totalCount: 0,
-        validCount: 0
-      }
+        yxuser: 0
+      },
+      teamList: []
     }
   },
   created() {
@@ -65,16 +73,16 @@ export default {
         const res = await getMyTeam(this.currentType);
         if (res && res.data) {
           this.teamInfo = {
-            totalCount: res.data.totalCount || 0,
-            validCount: res.data.validCount || 0
+            yxuser: res.data.yxuser || 0
           };
+          this.teamList = res.data.list || [];
         }
       } catch (error) {
         console.error('获取团队信息失败:', error);
         this.teamInfo = {
-          totalCount: 0,
-          validCount: 0
+          yxuser: 0
         };
+        this.teamList = [];
       }
     },
     switchType(type) {
@@ -186,4 +194,12 @@ export default {
 .team-list {
   margin-top: 15px;
 }
+
+.member-card {
+  background: #fff;
+  border-radius: 12px;
+  padding: 16px;
+  margin-bottom: 16px;
+  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
+}
 </style>