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 @@
-
+
- + - +
@@ -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 @@ + + + + + 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 @@