diff --git a/src/api/api.js b/src/api/api.js index 1276501..f6c88f0 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -84,6 +84,16 @@ export const electricityBillApi = { delete: (id) => del(`/electricity-bills/${id}`) }; +// 费用支出管理API +export const expenseApi = { + getAll: (params = {}) => get('/expenses', params), + list: (params = {}) => get('/expenses/list', params), + getById: (id) => get(`/expenses/${id}`), + create: (data) => post('/expenses', data), + update: (id, data) => put(`/expenses/${id}`, data), + delete: (id) => del(`/expenses/${id}`) +}; + export default { apartment: apartmentApi, room: roomApi, @@ -92,5 +102,6 @@ export default { rental: rentalApi, statistics: statisticsApi, waterBill: waterBillApi, - electricityBill: electricityBillApi + electricityBill: electricityBillApi, + expense: expenseApi }; diff --git a/src/router/index.js b/src/router/index.js index e3fd71f..dbf1231 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -135,6 +135,22 @@ const routes = [ path: '/menu/list', name: 'MenuList', component: () => import('@/views/menu/List.vue') + }, + // 费用支出管理 + { + path: '/expenses', + name: 'ExpenseList', + component: () => import('@/views/expenses/List.vue') + }, + { + path: '/expenses/add', + name: 'ExpenseAdd', + component: () => import('@/views/expenses/Add.vue') + }, + { + path: '/expenses/edit/:id', + name: 'ExpenseEdit', + component: () => import('@/views/expenses/Edit.vue') } ] }, diff --git a/src/views/expenses/Add.vue b/src/views/expenses/Add.vue new file mode 100644 index 0000000..ad317e9 --- /dev/null +++ b/src/views/expenses/Add.vue @@ -0,0 +1,143 @@ + + + + + \ No newline at end of file diff --git a/src/views/expenses/Edit.vue b/src/views/expenses/Edit.vue new file mode 100644 index 0000000..37ffc80 --- /dev/null +++ b/src/views/expenses/Edit.vue @@ -0,0 +1,150 @@ + + + + + \ No newline at end of file diff --git a/src/views/expenses/List.vue b/src/views/expenses/List.vue new file mode 100644 index 0000000..c640808 --- /dev/null +++ b/src/views/expenses/List.vue @@ -0,0 +1,351 @@ + + + + + \ No newline at end of file diff --git a/src/views/statistics/Rent.vue b/src/views/statistics/Rent.vue index 5c81357..3b02c40 100644 --- a/src/views/statistics/Rent.vue +++ b/src/views/statistics/Rent.vue @@ -27,12 +27,24 @@ ¥{{ scope.row.depositRefunded || 0 }} + + + + + +
总租金收入:{{ totalAmount }} 元 已收押金:{{ totalDepositReceived }} 元 已退押金:{{ totalDepositRefunded }} 元 + 总费用支出:{{ totalExpense }} 元 + 总合计收入:{{ totalIncome }} 元
@@ -57,6 +69,12 @@ export default { }, totalDepositRefunded() { return this.rentData.reduce((sum, item) => sum + (item.depositRefunded || 0), 0) + }, + totalExpense() { + return this.rentData.reduce((sum, item) => sum + (item.expense || 0), 0) + }, + totalIncome() { + return this.rentData.reduce((sum, item) => sum + (item.amount || 0) + (item.depositReceived || 0) - (item.depositRefunded || 0) - (item.expense || 0), 0) } }, mounted() {