From 9ab999189df61a7b8885e66a3eaeca4b9f1fe9a4 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Tue, 26 Nov 2024 23:09:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=9A=80=20=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E8=B4=A6=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/v1/email/emailTemplate.ts | 8 ++ src/api/v1/email/emailUsers.ts | 8 ++ src/api/v1/financial/admin/bill.ts | 5 + src/api/v1/financial/user/billUser.ts | 9 +- src/api/v1/system/system.ts | 4 +- src/store/configuration/emailTemplate.ts | 11 ++- src/store/configuration/emailUsers.ts | 11 ++- src/store/financial/bill.ts | 18 +++- src/store/financialUser/billUser.ts | 13 ++- .../account-bill/bill/bill-dialog.vue | 2 +- .../account-bill/bill/export-bill.vue | 51 +++++++++++ .../account-bill/bill/index.vue | 4 +- .../account-bill/bill/utils/hooks.ts | 26 ++++++ .../account-bill/bill/export-bill.vue | 91 +++++++++++++++++++ .../financial/account-bill/bill/index.vue | 4 +- .../account-bill/bill/utils/hooks.ts | 26 ++++++ 16 files changed, 274 insertions(+), 17 deletions(-) create mode 100644 src/views/financial-user/account-bill/bill/export-bill.vue create mode 100644 src/views/financial/account-bill/bill/export-bill.vue diff --git a/src/api/v1/email/emailTemplate.ts b/src/api/v1/email/emailTemplate.ts index b87cded..fc89364 100644 --- a/src/api/v1/email/emailTemplate.ts +++ b/src/api/v1/email/emailTemplate.ts @@ -3,6 +3,14 @@ import type { BaseResult, ResultTable } from '@/api/service/types'; /** 邮件模板表---获取邮件模板表列表 */ export const fetchGetEmailTemplateList = (data: any) => { + data = { + templateName: data.templateName, + subject: data.subject, + body: data.body, + type: data.type, + pageSize: data.pageSize, + currentPage: data.currentPage, + }; return http.request>('get', `emailTemplate/getEmailTemplateList/${data.currentPage}/${data.pageSize}`, { params: data }); }; diff --git a/src/api/v1/email/emailUsers.ts b/src/api/v1/email/emailUsers.ts index d6efedb..fac3219 100644 --- a/src/api/v1/email/emailUsers.ts +++ b/src/api/v1/email/emailUsers.ts @@ -3,6 +3,14 @@ import type { BaseResult, ResultTable } from '@/api/service/types'; /** 邮箱用户发送配置管理---获取邮箱用户发送配置管理列表 */ export const fetchGetEmailUsersList = (data: any) => { + data = { + email: data.email, + host: data.host, + port: data.port, + smtpAgreement: data.smtpAgreement, + pageSize: data.pageSize, + currentPage: data.currentPage, + }; return http.request>('get', `emailUsers/getEmailUsersList/${data.currentPage}/${data.pageSize}`, { params: data }); }; diff --git a/src/api/v1/financial/admin/bill.ts b/src/api/v1/financial/admin/bill.ts index ea1fc2b..baf6d2d 100644 --- a/src/api/v1/financial/admin/bill.ts +++ b/src/api/v1/financial/admin/bill.ts @@ -16,6 +16,11 @@ export const fetchGetBillList = (data: any) => { return http.request>('get', `bill/getBillList/${data.currentPage}/${data.pageSize}`, { params: data }); }; +/** 账单信息---导出用户账单信息 */ +export const fetchExportBill = (data: any) => { + return http.request>('post', 'bill/exportBillByAdmin', { data, responseType: 'blob' }); +}; + /** 账单信息---添加账单信息 */ export const fetchAddBill = (data: any) => { return http.request>('post', 'bill/addBill', { data }); diff --git a/src/api/v1/financial/user/billUser.ts b/src/api/v1/financial/user/billUser.ts index 4ac4eaa..49f4fa9 100644 --- a/src/api/v1/financial/user/billUser.ts +++ b/src/api/v1/financial/user/billUser.ts @@ -18,7 +18,14 @@ export const fetchGetUserBillList = (data: any) => { /** 账单信息---账单收入和支出 */ export const fetchGetExpendOrIncome = (data: any) => { data = { userId: data.userId, type: data.type, startDate: data.startDate, endDate: data.endDate }; - return http.request>('get', 'bill/noManage/getExpendOrIncome', { params: data }); + return http.request>('get', 'bill/noManage/getExpendOrIncome', { + params: data, + }); +}; + +/** 账单信息---导出用户账单信息 */ +export const fetchExportBill = (data: any) => { + return http.request>('post', 'bill/noManage/exportBill', { data, responseType: 'blob' }); }; /** 账单信息---添加账单信息 */ diff --git a/src/api/v1/system/system.ts b/src/api/v1/system/system.ts index 3c7009e..a73eab8 100644 --- a/src/api/v1/system/system.ts +++ b/src/api/v1/system/system.ts @@ -12,6 +12,6 @@ export const fetchUploadFile = (data: any) => { }; /** 账单信息---首页内容展示 */ -export const fetchHomeDatalist = (data: any) => { - return http.request>('get', 'noManage/homeDatalist', { params: data }); +export const fetchHomeDatalist = () => { + return http.request>('get', 'noManage/homeDatalist', {}); }; diff --git a/src/store/configuration/emailTemplate.ts b/src/store/configuration/emailTemplate.ts index 27c722c..aea2ff0 100644 --- a/src/store/configuration/emailTemplate.ts +++ b/src/store/configuration/emailTemplate.ts @@ -1,5 +1,11 @@ import { defineStore } from 'pinia'; -import { fetchAddEmailTemplate, fetchDeleteEmailTemplate, fetchGetEmailTemplateList, fetchGetEmailTypes, fetchUpdateEmailTemplate } from '@/api/v1/email/emailTemplate'; +import { + fetchAddEmailTemplate, + fetchDeleteEmailTemplate, + fetchGetEmailTemplateList, + fetchGetEmailTypes, + fetchUpdateEmailTemplate, +} from '@/api/v1/email/emailTemplate'; import { pageSizes } from '@/enums/baseConstant'; import { storeMessage } from '@/utils/message'; import { storePagination } from '@/store/useStorePagination'; @@ -51,9 +57,6 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', { async getEmailTemplateList() { // 整理请求参数 const data = { ...this.pagination, ...this.form }; - delete data.pageSizes; - delete data.total; - delete data.background; // 获取邮件模板表列表 const result = await fetchGetEmailTemplateList(data); diff --git a/src/store/configuration/emailUsers.ts b/src/store/configuration/emailUsers.ts index c40f2ad..54b6fbb 100644 --- a/src/store/configuration/emailUsers.ts +++ b/src/store/configuration/emailUsers.ts @@ -1,5 +1,11 @@ import { defineStore } from 'pinia'; -import { fetchAddEmailUsers, fetchDeleteEmailUsers, fetchGetEmailUsersList, fetchUpdateEmailUsers, fetchUpdateEmailUserStatus } from '@/api/v1/email/emailUsers'; +import { + fetchAddEmailUsers, + fetchDeleteEmailUsers, + fetchGetEmailUsersList, + fetchUpdateEmailUsers, + fetchUpdateEmailUserStatus, +} from '@/api/v1/email/emailUsers'; import { pageSizes } from '@/enums/baseConstant'; import { storeMessage } from '@/utils/message'; import { storePagination } from '@/store/useStorePagination'; @@ -42,9 +48,6 @@ export const useEmailUsersStore = defineStore('emailUsersStore', { async getEmailUsersList() { // 整理请求参数 const data = { ...this.pagination, ...this.form }; - delete data.pageSizes; - delete data.total; - delete data.background; // 获取邮箱用户发送配置列表 const result = await fetchGetEmailUsersList(data); diff --git a/src/store/financial/bill.ts b/src/store/financial/bill.ts index 90785fb..74420c9 100644 --- a/src/store/financial/bill.ts +++ b/src/store/financial/bill.ts @@ -1,8 +1,10 @@ import { defineStore } from 'pinia'; -import { fetchAddBill, fetchDeleteBill, fetchGetBillList, fetchUpdateBill } from '@/api/v1/financial/admin/bill'; +import { fetchAddBill, fetchDeleteBill, fetchExportBill, fetchGetBillList, fetchUpdateBill } from '@/api/v1/financial/admin/bill'; import { pageSizes } from '@/enums/baseConstant'; import { storeMessage } from '@/utils/message'; import { storePagination } from '@/store/useStorePagination'; +import dayjs from 'dayjs'; +import { download } from '@/utils/sso'; /** * 账单信息 Store @@ -63,6 +65,20 @@ export const useBillStore = defineStore('billStore', { return pagination(result); }, + /** 导出账单*/ + async exportBill(data: any) { + const userDataList = data.userDataList; + const userinfo = userDataList.filter(item => item.id === data.userId)[0]; + + data = { + userId: data.userId, + startDate: dayjs(data.transactionDate[0]).format('YYYY-MM-DD'), + endDate: dayjs(data.transactionDate[1]).format('YYYY-MM-DD'), + }; + const result = await fetchExportBill(data); + download(result, `${userinfo.username}-${data.startDate}~${data.endDate}.xlsx`); + }, + /** 添加账单信息 */ async addBill(data: any) { const result = await fetchAddBill(data); diff --git a/src/store/financialUser/billUser.ts b/src/store/financialUser/billUser.ts index 6100c18..288d849 100644 --- a/src/store/financialUser/billUser.ts +++ b/src/store/financialUser/billUser.ts @@ -1,9 +1,11 @@ import { defineStore } from 'pinia'; -import { fetchAddUserBill, fetchDeleteUserBill, fetchGetUserBillList, fetchUpdateUserBill } from '@/api/v1/financial/user/billUser'; +import { fetchAddUserBill, fetchDeleteUserBill, fetchExportBill, fetchGetUserBillList, fetchUpdateUserBill } from '@/api/v1/financial/user/billUser'; import { pageSizes } from '@/enums/baseConstant'; import { storeMessage } from '@/utils/message'; import { storePagination } from '@/store/useStorePagination'; import { getCurrentMouthDate } from '@/utils/date'; +import dayjs from 'dayjs'; +import { download } from '@/utils/sso'; /** * 账单信息 Store @@ -41,7 +43,6 @@ export const useBillUserStore = defineStore('billUserStore', { loading: false, }; }, - getters: {}, actions: { /** 获取账单信息 */ async getBillList() { @@ -65,6 +66,13 @@ export const useBillUserStore = defineStore('billUserStore', { return pagination(result); }, + /** 导出账单*/ + async exportBill(data: any) { + data = { startDate: dayjs(data[0]).format('YYYY-MM-DD'), endDate: dayjs(data[1]).format('YYYY-MM-DD') }; + const result = await fetchExportBill(data); + download(result, `${data.startDate}~${data.endDate}.xlsx`); + }, + /** 添加账单信息 */ async addBill(data: any) { const result = await fetchAddUserBill(data); @@ -83,4 +91,5 @@ export const useBillUserStore = defineStore('billUserStore', { return storeMessage(result); }, }, + getters: {}, }); diff --git a/src/views/financial-user/account-bill/bill/bill-dialog.vue b/src/views/financial-user/account-bill/bill/bill-dialog.vue index ec38c6d..925693f 100644 --- a/src/views/financial-user/account-bill/bill/bill-dialog.vue +++ b/src/views/financial-user/account-bill/bill/bill-dialog.vue @@ -62,7 +62,7 @@ defineExpose({ formRef }); +import { ref } from 'vue'; +import { FormInstance } from 'element-plus'; +import { FormProps } from '@/views/financial-user/account-bill/bill/utils/types'; +import { $t } from '@/plugins/i18n'; +import { currentMouth, currentWeek, currentYear } from '@/enums/dateEnums'; + +const props = withDefaults(defineProps(), { + formInline: () => ({ + // 交易日期 + transactionDate: currentMouth, + }), +}); + +// 日期范围选择 +const shortcuts = [ + { text: $t('thisWeek'), value: currentWeek }, + { text: $t('thisMonth'), value: currentMouth }, + { text: $t('thisYear'), value: currentYear }, +]; + +const formRef = ref(); +const form = ref(props.formInline); + +defineExpose({ formRef }); + + + diff --git a/src/views/financial-user/account-bill/bill/index.vue b/src/views/financial-user/account-bill/bill/index.vue index edfac8e..d1370ea 100644 --- a/src/views/financial-user/account-bill/bill/index.vue +++ b/src/views/financial-user/account-bill/bill/index.vue @@ -3,8 +3,9 @@ import { onMounted, ref } from 'vue'; import { columns } from '@/views/financial-user/account-bill/bill/utils/columns'; import PureTableBar from '@/components/TableBar/src/bar'; import AddFill from '@iconify-icons/ri/add-circle-line'; +import Upload from '@iconify-icons/ep/upload'; import PureTable from '@pureadmin/table'; -import { deleteIds, onAdd, onDelete, onDeleteBatch, onSearch, onUpdate } from '@/views/financial-user/account-bill/bill/utils/hooks'; +import { deleteIds, onAdd, onDelete, onDeleteBatch, onExportBill, onSearch, onUpdate } from '@/views/financial-user/account-bill/bill/utils/hooks'; import Delete from '@iconify-icons/ep/delete'; import EditPen from '@iconify-icons/ep/edit-pen'; import Refresh from '@iconify-icons/ep/refresh'; @@ -93,6 +94,7 @@ onMounted(() => {