Parcourir la source

优化收入统计功能,更新API参数以支持更严格的用户ID检查,并在DashboardView中添加默认团队选项,简化团队统计数据加载逻辑。

wuyi il y a 2 mois
Parent
commit
35125ab498
2 fichiers modifiés avec 13 ajouts et 16 suppressions
  1. 1 1
      src/services/api.js
  2. 12 15
      src/views/DashboardView.vue

+ 1 - 1
src/services/api.js

@@ -199,7 +199,7 @@ export const getIncomeStatistics = async (startDate, endDate, userId) => {
   const params = {}
   const params = {}
   if (startDate) params.startDate = startDate
   if (startDate) params.startDate = startDate
   if (endDate) params.endDate = endDate
   if (endDate) params.endDate = endDate
-  if (userId) params.userId = userId
+  if (userId !== null && userId !== undefined) params.userId = userId
 
 
   const response = await api.get('/income/statistics/summary', { params })
   const response = await api.get('/income/statistics/summary', { params })
   return response.data
   return response.data

+ 12 - 15
src/views/DashboardView.vue

@@ -111,6 +111,7 @@ const selectedChartTeamId = ref(null) // 用于图表的团队选择
 const teamOptions = computed(() => {
 const teamOptions = computed(() => {
   return [
   return [
     { label: '所有团队', value: null },
     { label: '所有团队', value: null },
+    { label: '默认', value: 0 },
     ...teamStore.teams.map((team) => ({
     ...teamStore.teams.map((team) => ({
       label: team.name,
       label: team.name,
       value: team.id
       value: team.id
@@ -118,7 +119,6 @@ const teamOptions = computed(() => {
   ]
   ]
 })
 })
 
 
-
 // 格式化金额,保留2位小数
 // 格式化金额,保留2位小数
 const formatAmount = (amount) => {
 const formatAmount = (amount) => {
   if (amount === undefined || amount === null) return '0.00'
   if (amount === undefined || amount === null) return '0.00'
@@ -156,23 +156,15 @@ const loadTeamStats = async () => {
   try {
   try {
     loading.value = true
     loading.value = true
 
 
-    console.log('当前用户角色:', role.value)
-    console.log('用户信息:', userStore.userInfo)
-    console.log('角色判断:', { isAdmin, isTeam, isPromoter })
-
     if (isAdmin.value) {
     if (isAdmin.value) {
-      console.log('加载管理员团队统计数据')
       const data = await getAllTeamStatistics()
       const data = await getAllTeamStatistics()
-      console.log('管理员团队统计数据:', data)
       teamStats.value = data
       teamStats.value = data
       teams.value = data.allTeams || []
       teams.value = data.allTeams || []
       if (teams.value.length > 0 && !selectedTeamId.value) {
       if (teams.value.length > 0 && !selectedTeamId.value) {
         selectedTeamId.value = teams.value[0].id
         selectedTeamId.value = teams.value[0].id
       }
       }
     } else if (isTeam.value) {
     } else if (isTeam.value) {
-      console.log('加载队长团队统计数据')
       const data = await getAllTeamStatistics()
       const data = await getAllTeamStatistics()
-      console.log('队长团队统计数据:', data)
       // 为 team 角色添加团队名称
       // 为 team 角色添加团队名称
       if (data.allTeams && data.allTeams.length > 0) {
       if (data.allTeams && data.allTeams.length > 0) {
         data.name = data.allTeams[0].name
         data.name = data.allTeams[0].name
@@ -191,14 +183,19 @@ const loadIncomeStats = async () => {
   try {
   try {
     loading.value = true
     loading.value = true
     const { startDate, endDate } = getDateRange()
     const { startDate, endDate } = getDateRange()
-    
+
     // 如果是 admin 角色且选择了特定团队,传递 userId 参数
     // 如果是 admin 角色且选择了特定团队,传递 userId 参数
     let userId = null
     let userId = null
-    if (isAdmin.value && selectedChartTeamId.value) {
-      // 从团队列表中找到对应的团队,获取其 userId
-      const selectedTeam = teamStore.teams.find(team => team.id === selectedChartTeamId.value)
-      if (selectedTeam) {
-        userId = selectedTeam.userId
+    if (isAdmin.value && selectedChartTeamId.value !== null) {
+      if (selectedChartTeamId.value === 0) {
+        // 默认选项,传递 userId = 0
+        userId = 0
+      } else {
+        // 从团队列表中找到对应的团队,获取其 userId
+        const selectedTeam = teamStore.teams.find((team) => team.id === selectedChartTeamId.value)
+        if (selectedTeam) {
+          userId = selectedTeam.userId
+        }
       }
       }
     }
     }