Эх сурвалжийг харах

新增收入、财务、团队和推广链接相关的路由及API接口,并在主视图中更新导航项以支持新功能。

wuyi 4 сар өмнө
parent
commit
e14f716816

+ 20 - 0
src/router/index.js

@@ -35,6 +35,26 @@ const router = createRouter({
           name: 'sys-config',
           component: () => import('@/views/SysConfigView.vue')
         },
+        {
+          path: 'income',
+          name: 'income',
+          component: () => import('@/views/IncomeView.vue')
+        },
+        {
+          path: 'finance',
+          name: 'finance',
+          component: () => import('@/views/FinanceView.vue')
+        },
+        {
+          path: 'team',
+          name: 'team',
+          component: () => import('@/views/TeamView.vue')
+        },
+        {
+          path: 'link',
+          name: 'link',
+          component: () => import('@/views/LinkView.vue')
+        },
       ]
     },
     {

+ 215 - 0
src/services/api.js

@@ -134,3 +134,218 @@ export const downloadFile = async (key) => {
   )
   return response.data
 }
+
+// ==================== 收入记录相关API ====================
+
+// 创建收入记录
+export const createIncome = async (incomeData) => {
+  const response = await api.post('/income', incomeData)
+  return response.data
+}
+
+// 获取收入记录列表
+export const listIncome = async (page = 0, size = 20, agentName, incomeType, startDate, endDate) => {
+  const params = { page, size }
+  if (agentName) params.agentName = agentName
+  if (incomeType) params.incomeType = incomeType
+  if (startDate) params.startDate = startDate
+  if (endDate) params.endDate = endDate
+
+  const response = await api.get('/income', { params })
+  return response.data
+}
+
+// 获取单个收入记录
+export const getIncome = async (id) => {
+  const response = await api.get(`/income/${id}`)
+  return response.data
+}
+
+// 更新收入记录
+export const updateIncome = async (id, incomeData) => {
+  const response = await api.put(`/income/${id}`, incomeData)
+  return response.data
+}
+
+// 软删除收入记录
+export const deleteIncome = async (id) => {
+  const response = await api.delete(`/income/${id}`)
+  return response.data
+}
+
+// 永久删除收入记录
+export const hardDeleteIncome = async (id) => {
+  const response = await api.delete(`/income/${id}/hard`)
+  return response.data
+}
+
+// 获取收入统计数据
+export const getIncomeStatistics = async (startDate, endDate) => {
+  const params = {}
+  if (startDate) params.startDate = startDate
+  if (endDate) params.endDate = endDate
+
+  const response = await api.get('/income/statistics/summary', { params })
+  return response.data
+}
+
+// ==================== 财务记录相关API ====================
+
+// 创建财务记录
+export const createFinance = async (financeData) => {
+  const response = await api.post('/finance', financeData)
+  return response.data
+}
+
+// 获取财务记录列表
+export const listFinance = async (page = 0, size = 20, status, paymentName, startDate, endDate) => {
+  const params = { page, size }
+  if (status) params.status = status
+  if (paymentName) params.paymentName = paymentName
+  if (startDate) params.startDate = startDate
+  if (endDate) params.endDate = endDate
+
+  const response = await api.get('/finance', { params })
+  return response.data
+}
+
+// 获取单个财务记录
+export const getFinance = async (id) => {
+  const response = await api.get(`/finance/${id}`)
+  return response.data
+}
+
+// 更新财务记录
+export const updateFinance = async (id, financeData) => {
+  const response = await api.put(`/finance/${id}`, financeData)
+  return response.data
+}
+
+// 更新财务状态
+export const updateFinanceStatus = async (id, statusData) => {
+  const response = await api.patch(`/finance/${id}/status`, statusData)
+  return response.data
+}
+
+// 软删除财务记录
+export const deleteFinance = async (id) => {
+  const response = await api.delete(`/finance/${id}`)
+  return response.data
+}
+
+// 永久删除财务记录
+export const hardDeleteFinance = async (id) => {
+  const response = await api.delete(`/finance/${id}/hard`)
+  return response.data
+}
+
+// 获取财务统计数据
+export const getFinanceStatistics = async (startDate, endDate) => {
+  const params = {}
+  if (startDate) params.startDate = startDate
+  if (endDate) params.endDate = endDate
+
+  const response = await api.get('/finance/statistics/summary', { params })
+  return response.data
+}
+
+// ==================== 团队相关API ====================
+
+// 创建团队
+export const createTeam = async (teamData) => {
+  const response = await api.post('/teams', teamData)
+  return response.data
+}
+
+// 获取团队列表
+export const listTeams = async (page = 0, size = 20, name) => {
+  const params = { page, size }
+  if (name) params.name = name
+
+  const response = await api.get('/teams', { params })
+  return response.data
+}
+
+// 获取单个团队
+export const getTeam = async (id) => {
+  const response = await api.get(`/teams/${id}`)
+  return response.data
+}
+
+// 更新团队
+export const updateTeam = async (id, teamData) => {
+  const response = await api.put(`/teams/${id}`, teamData)
+  return response.data
+}
+
+// 更新团队收入
+export const updateTeamRevenue = async (id, revenueData) => {
+  const response = await api.patch(`/teams/${id}/revenue`, revenueData)
+  return response.data
+}
+
+// 删除团队
+export const deleteTeam = async (id) => {
+  const response = await api.delete(`/teams/${id}`)
+  return response.data
+}
+
+// 重置今日收入
+export const resetAllTodayRevenue = async () => {
+  const response = await api.post('/teams/reset-today-revenue')
+  return response.data
+}
+
+// 获取团队统计数据
+export const getTeamStatistics = async () => {
+  const response = await api.get('/teams/statistics/summary')
+  return response.data
+}
+
+// ==================== 推广链接相关API ====================
+
+// 创建推广链接
+export const createLink = async (linkData) => {
+  const response = await api.post('/links', linkData)
+  return response.data
+}
+
+// 获取推广链接列表
+export const listLinks = async (page = 0, size = 20, name, type) => {
+  const params = { page, size }
+  if (name) params.name = name
+  if (type) params.type = type
+
+  const response = await api.get('/links', { params })
+  return response.data
+}
+
+// 获取单个推广链接
+export const getLink = async (id) => {
+  const response = await api.get(`/links/${id}`)
+  return response.data
+}
+
+// 更新推广链接
+export const updateLink = async (id, linkData) => {
+  const response = await api.put(`/links/${id}`, linkData)
+  return response.data
+}
+
+// 删除推广链接
+export const deleteLink = async (id) => {
+  const response = await api.delete(`/links/${id}`)
+  return response.data
+}
+
+// 按类型获取推广链接
+export const getLinksByType = async (type) => {
+  const response = await api.get(`/links/type/${type}`)
+  return response.data
+}
+
+// 获取推广链接统计数据
+export const getLinkStatistics = async () => {
+  const response = await api.get('/links/statistics/summary')
+  return response.data
+}

+ 20 - 0
src/views/MainView.vue

@@ -32,6 +32,26 @@ const navItems = [
     icon: 'pi pi-fw pi-home',
     name: 'dashboard'
   },
+  {
+    label: '团队管理',
+    icon: 'pi pi-fw pi-building',
+    name: 'team'
+  },
+  {
+    label: '推广链接',
+    icon: 'pi pi-fw pi-link',
+    name: 'link'
+  },
+  {
+    label: '财务记录',
+    icon: 'pi pi-fw pi-credit-card',
+    name: 'finance'
+  },
+  {
+    label: '收入记录',
+    icon: 'pi pi-fw pi-wallet',
+    name: 'income'
+  },
   {
     label: '用户管理',
     icon: 'pi pi-fw pi-user',