From ab67279587a0d72b14c080b3edb1192d6c61cf62 Mon Sep 17 00:00:00 2001
From: hzj <1304805162@qq.com>
Date: Thu, 27 Nov 2025 21:39:42 +0800
Subject: [PATCH] =?UTF-8?q?feat(=E7=AE=A1=E7=90=86=E5=91=98=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2=E4=BB=A5=E5=8F=8A=E7=9B=B8=E5=85=B3=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?):=20=E5=AF=B9=E6=8E=A5=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/admin.js | 24 +++
.../Yemen/IndependenceDay/index.vue | 50 +++--
src/views/AdminCenter/MyAgencyTeams.vue | 140 ++++++++++----
src/views/AdminCenter/MyBDLeaderTeams.vue | 142 +++++++++++----
src/views/AdminCenter/MyBDTeams.vue | 138 ++++++++++----
src/views/AdminCenter/MyRechargeAgency.vue | 106 +++++++++--
.../AdminCenter/components/historySalary.vue | 172 ++++++++++++++++++
src/views/AdminCenter/index.vue | 130 ++++++++++---
8 files changed, 737 insertions(+), 165 deletions(-)
create mode 100644 src/views/AdminCenter/components/historySalary.vue
diff --git a/src/api/admin.js b/src/api/admin.js
index 4224f5b..1f489df 100644
--- a/src/api/admin.js
+++ b/src/api/admin.js
@@ -71,3 +71,27 @@ export const cancelInvite = async (userId) => {
throw error
}
}
+
+//查询BD团队概览
+export const apiGetTeamOverview = async (data) => {
+ try {
+ const response = await post('/bd/team/overview', data)
+ return response
+ } catch (error) {
+ console.error('Failed to get team overview:', error)
+ console.error('error:' + error.response.errorMsg)
+ throw error
+ }
+}
+
+// 查询BD团队成员详情(More弹框)
+export const apiGetTeamMemberDetail = async (data) => {
+ try {
+ const response = await post('/bd/team/member/detail', data)
+ return response
+ } catch (error) {
+ console.error('Failed to get team member detail:', error)
+ console.error('error:' + error.response.errorMsg)
+ throw error
+ }
+}
diff --git a/src/views/Activities/Yemen/IndependenceDay/index.vue b/src/views/Activities/Yemen/IndependenceDay/index.vue
index f8f3cc0..28ba536 100644
--- a/src/views/Activities/Yemen/IndependenceDay/index.vue
+++ b/src/views/Activities/Yemen/IndependenceDay/index.vue
@@ -271,26 +271,29 @@
@error="(e) => handleImageError(e, reward.type)"
/>
-
- {{ showDetail(reward.type, reward) }}
+
+
+ {{ showDetail(reward.type, reward) }}
+
@@ -587,6 +590,13 @@ onUnmounted(() => {
z-index: 1;
}
+.valueBg {
+ background-image: url(../../../../assets/images/Activities/Yemen/IndependenceDay/valueBg.png);
+ background-size: auto 100%;
+ background-repeat: no-repeat;
+ background-position: center center;
+}
+
.timeText {
color: #fff;
font-weight: 590;
diff --git a/src/views/AdminCenter/MyAgencyTeams.vue b/src/views/AdminCenter/MyAgencyTeams.vue
index b1231ba..37dd26c 100644
--- a/src/views/AdminCenter/MyAgencyTeams.vue
+++ b/src/views/AdminCenter/MyAgencyTeams.vue
@@ -36,11 +36,11 @@
>
Total income:
-
$1000
+
${{ TeamOverview?.totalIncome || 0 }}
Previous period income:
-
$1000
+
${{ TeamOverview?.previousPeriodIncome || 0 }}
@@ -60,12 +60,14 @@
"
>
- Agencies: 3
- Team Total Income: $900
+ Agencies: {{ TeamOverview?.memberCount || 0 }}
+
+ Team Total Income: ${{ TeamOverview?.teamTotalIncome || 0 }}
+
![]()
- User1
+ {{ AgencyInfo.userName || '-' }}
- ID:1234567890
+ ID:{{ AgencyInfo.account || '-' }}
@@ -143,9 +145,11 @@
"
>
- Number Of Hosts Personnel:10
+ Number Of Hosts Personnel: {{ AgencyInfo?.subMemberCount || 0 }}
+
+
+ Total Income: ${{ AgencyInfo?.totalIncome || 0 }}
- Total Income:$300
@@ -159,7 +163,7 @@
color: #bb92ff;
font-weight: 500;
"
- @click="incomeShow('1')"
+ @click="incomeShow(AgencyInfo.userId)"
>
{{ t('more') }}
@@ -186,7 +190,9 @@
@click.stop
>
-
Agency's lD:1234567890
+
+ Agency's lD: {{ moreUserId }}
+
@@ -200,9 +206,11 @@
>
-
{{ t('total_income') }}: $0
- {{ t('previous_period_income') }}: $0
+ {{ t('total_income') }}: ${{ moreDetail?.totalIncome || 0 }}
+
+
+ {{ t('previous_period_income') }}: ${{ moreDetail?.previousPeriodIncome || 0 }}
@@ -212,27 +220,38 @@
-
+
-
+
- 2025.10.01-2025.10.15:
+ {{ incomeInfo.settlementPeriod }}
-
Host: 10
+
Host: {{ incomeInfo.memberCount }}
-
Team Income:$300
+
Team total Income: ${{ incomeInfo.teamTotalIncome }}
-
+
- 2025.10.01-2025.10.15:
- Host: 10
+ {{ incomeInfo.settlementPeriod }}
+ Host: {{ incomeInfo.memberCount }}
- Team top-up: $500
+ Team total income: ${{ incomeInfo.teamTotalIncome }}
@@ -254,15 +273,19 @@
class="overflow-y-auto"
@click.stop
>
-
2025.10.01-2025.10.15:
+
{{ incomeDetailsItem.settlementPeriod }}
-
Host:5
-
Team Total income: $1000
+
+ Host:{{ incomeDetailsItem.memberCount }}
+
+
+ Team Total income: ${{ incomeDetailsItem.teamTotalIncome }}
+
![]()
- User1
+ {{ member.userName }}
- ID:1234567890
+ ID:{{ member.account }}
@@ -338,7 +361,7 @@
"
>
Host income:
-
$0
+
${{ member.income }}
@@ -352,14 +375,25 @@ import { computed, onMounted, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { setDocumentDirection } from '@/locales/i18n'
+import {
+ apiGetTeamOverview, //查询BD团队概览
+ apiGetTeamMemberDetail, // 查询BD团队成员详情(More弹框)
+} from '@/api/admin.js'
+
import GeneralHeader from '@/components/GeneralHeader.vue'
import maskLayer from '@/components/MaskLayer.vue'
+import historySalary from './components/historySalary.vue'
const { t, locale } = useI18n()
// 监听语言变化并设置文档方向
locale.value && setDocumentDirection(locale.value)
+const TeamOverview = ref(null) //团队概览
+const moreUserId = ref('') //选中的成员id
+const moreDetail = ref(null) //某个成员的详情
+const incomeDetailsItem = ref(null) //某个时期的收益详情
+
const showIncome = ref(false)
const showHistory = ref(false)
// 遮罩层显示状态
@@ -368,13 +402,16 @@ const maskLayerShow = computed(() => showIncome.value || showHistory.value)
const incomeShow = (targetId) => {
console.log('点击了收入按钮')
console.log('targetId:', targetId)
+ moreUserId.value = targetId
+ getTeamMemberDetail(targetId)
showIncome.value = true
}
-const historyShow = (targetId) => {
+const historyShow = (incomeInfo) => {
console.log('点击了历史薪资按钮')
- console.log('targetId:', targetId)
+ console.log('incomeInfo:', incomeInfo)
+ incomeDetailsItem.value = incomeInfo
showIncome.value = false
showHistory.value = true
@@ -384,6 +421,9 @@ const historyShow = (targetId) => {
const closedPopup = () => {
showIncome.value = false
showHistory.value = false
+ moreUserId.value = ''
+ moreDetail.value = null
+ incomeDetailsItem.value = null
}
const defaultAvatarUrl = (e) => {
@@ -391,6 +431,40 @@ const defaultAvatarUrl = (e) => {
e.target.onerror = null //防止循环
e.target.src = new URL('/src/assets/images/WeeklyStar/defaultAvatar.png', import.meta.url).href
}
+
+// 获取任务列表
+const getTeamOverview = async () => {
+ let data = {
+ type: 'AGENCY',
+ }
+ const resInvitedList = await apiGetTeamOverview(data)
+ console.log('任务列表:', resInvitedList)
+ if (resInvitedList.status && resInvitedList.body) {
+ TeamOverview.value = resInvitedList.body
+ }
+}
+
+// 查询AGENCY团队成员详情(More弹框)
+const getTeamMemberDetail = async (userId) => {
+ let data = {
+ targetId: userId,
+ type: 'AGENCY',
+ }
+ const resInvitedList = await apiGetTeamMemberDetail(data)
+ console.log('任务列表:', resInvitedList)
+ if (resInvitedList.status && resInvitedList.body) {
+ moreDetail.value = resInvitedList.body
+ }
+}
+
+// 初始化数据
+const init = () => {
+ getTeamOverview()
+}
+
+onMounted(() => {
+ init()
+})
diff --git a/src/views/AdminCenter/components/historySalary.vue b/src/views/AdminCenter/components/historySalary.vue
new file mode 100644
index 0000000..ce5ea85
--- /dev/null
+++ b/src/views/AdminCenter/components/historySalary.vue
@@ -0,0 +1,172 @@
+
+
+
![]()
+
+
+
+ {{ getTypeText(type) }}
+
+
+
+
+
+
+
+
{{ t('more') }}
+
+
+
+
+
+
+
diff --git a/src/views/AdminCenter/index.vue b/src/views/AdminCenter/index.vue
index ded27a7..afbdf96 100644
--- a/src/views/AdminCenter/index.vue
+++ b/src/views/AdminCenter/index.vue
@@ -18,7 +18,7 @@
display: flex;
flex-direction: column;
- gap: 12px;
+ gap: 8px;
"
>
@@ -52,7 +52,7 @@
"
>
- User1
+ {{ userInfo.userNickname || userInfo.name }}
- ID:1234567890
+ ID: {{ userInfo.id || userInfo.account }}
@@ -106,7 +106,7 @@
display: flex;
flex-direction: column;
- gap: 10px;
+ gap: 4px;
"
>
@@ -129,21 +129,23 @@
Task completion status:
-
(0)
+
({{ taskData.completedTaskCount || 0 }})
-
-
2025.11.1-2025.11.16
+
+
+ {{ taskData.cycleStartDate }}-{{ taskData.cycleEndDate }}
+
- Mic usage time:
+ {{ taskName(task) }}
- (0/20h)
+ {{ taskCompletedText(task) }}
@@ -161,12 +163,15 @@
display: flex;
flex-direction: column;
- gap: 10px;
+ gap: 4px;
"
>
-
-
Team earnings this period: $3000
+
+
Team earnings this period

-
+
-
My BD Leader Teams(3)
+
My BD Leader Teams

-
+
-
My BD Teams(5)
+
My BD Teams

-
+
-
My Agency Teams(2)
+
My Agency Teams

-
+
-
Number of recharge agents linvited(1)
+
Number of recharge agents linvited
-

+ /> -->

Total income:$1500
+
+
+
@@ -305,7 +313,7 @@
display: flex;
justify-content: space-between;
- gap: 10px;
+ gap: 4px;
"
@click="send"
>
@@ -330,7 +338,7 @@
display: flex;
justify-content: space-between;
- gap: 10px;
+ gap: 4px;
"
@click="gotoAppPage('editingUser')"
>
@@ -355,7 +363,7 @@
display: flex;
justify-content: space-between;
- gap: 10px;
+ gap: 4px;
"
@click="gotoAppPage('editingRoom')"
>
@@ -373,10 +381,17 @@