fixbug: 🐛 导入账单无法下载模板;查询账单添加多个类别查询

This commit is contained in:
Bunny 2024-12-27 15:57:22 +08:00
parent 00789d423d
commit 3bfff5a884
9 changed files with 47 additions and 32 deletions

View File

@ -5,6 +5,7 @@ import type { BaseResult, ResultTable } from '@/api/service/types';
export const fetchGetUserBillList = (data: any) => { export const fetchGetUserBillList = (data: any) => {
data = { data = {
amount: data.amount, amount: data.amount,
categoryIds: data.categoryIds,
type: data.type, type: data.type,
description: data.description, description: data.description,
startDate: data.startDate, startDate: data.startDate,

View File

@ -29,6 +29,8 @@ export const useBillUserStore = defineStore('billUserStore', {
form: { form: {
// 类型1 - 收入,-1 - 支出 // 类型1 - 收入,-1 - 支出
type: undefined, type: undefined,
// 类别id
categoryIds: undefined,
// 金额 // 金额
amount: undefined, amount: undefined,
// 描述 // 描述

View File

@ -7,15 +7,15 @@ export const columns: TableColumnList = [
{ type: 'selection', align: 'left' }, { type: 'selection', align: 'left' },
{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 }, { type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 },
// 模板名称 // 模板名称
{ label: $t('emailTemplate_templateName'), prop: 'templateName' }, { label: $t('emailTemplate_templateName'), prop: 'templateName', minWidth: 150 },
// 模板名称 // 模板名称
{ label: $t('emailTemplate_emailUser'), prop: 'emailUser', slot: 'emailUser' }, { label: $t('emailTemplate_emailUser'), prop: 'emailUser', slot: 'emailUser', minWidth: 200 },
// 主题 // 主题
{ label: $t('emailTemplate_subject'), prop: 'subject' }, { label: $t('emailTemplate_subject'), prop: 'subject', minWidth: 150 },
// 邮件内容 // 邮件内容
{ label: $t('emailTemplate_body'), prop: 'body' }, { label: $t('emailTemplate_body'), prop: 'body' },
// 邮件类型 // 邮件类型
{ label: $t('emailTemplate_type'), prop: 'summary' }, { label: $t('emailTemplate_type'), prop: 'summary', minWidth: 150 },
// 是否默认 // 是否默认
{ {
label: $t('isDefault'), label: $t('isDefault'),
@ -29,6 +29,7 @@ export const columns: TableColumnList = [
</ElTag> </ElTag>
); );
}, },
minWidth: 100,
}, },
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 }, { label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 },
{ label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 }, { label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 },

View File

@ -6,11 +6,11 @@ export const columns: TableColumnList = [
{ type: 'selection', align: 'left' }, { type: 'selection', align: 'left' },
{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 }, { type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 },
// 邮箱 // 邮箱
{ label: $t('emailUsers_email'), prop: 'email' }, { label: $t('emailUsers_email'), prop: 'email', minWidth: 150 },
// 密码 // 密码
{ label: $t('emailUsers_password'), prop: 'password' }, { label: $t('emailUsers_password'), prop: 'password', minWidth: 150 },
// Host地址 // Host地址
{ label: $t('emailUsers_host'), prop: 'host' }, { label: $t('emailUsers_host'), prop: 'host', minWidth: 100 },
// 端口号 // 端口号
{ label: $t('emailUsers_port'), prop: 'port', width: 90 }, { label: $t('emailUsers_port'), prop: 'port', width: 90 },
// 邮箱协议 // 邮箱协议

View File

@ -16,10 +16,13 @@ import { FormInstance } from 'element-plus';
import { incomeOrExpend } from '@/enums/baseConstant'; import { incomeOrExpend } from '@/enums/baseConstant';
import { getCurrentMouthDate } from '@/utils/date'; import { getCurrentMouthDate } from '@/utils/date';
import { currentMouth, currentWeek, currentYear, shortcutsAllMouth } from '@/enums/dateEnums'; import { currentMouth, currentWeek, currentYear, shortcutsAllMouth } from '@/enums/dateEnums';
import { useCategoryUserStore } from '@/store/financialUser/categoryUser';
const tableRef = ref(); const tableRef = ref();
const formRef = ref(); const formRef = ref();
const billStore = useBillUserStore(); const billStore = useBillUserStore();
const categoryUserStore = useCategoryUserStore();
// //
const shortcuts = [ const shortcuts = [
{ text: $t('thisWeek'), value: currentWeek }, { text: $t('thisWeek'), value: currentWeek },
@ -57,6 +60,7 @@ const resetForm = async (formEl: FormInstance | undefined) => {
onMounted(() => { onMounted(() => {
onSearch(); onSearch();
categoryUserStore.getCategoryUserAllList();
}); });
</script> </script>
@ -70,6 +74,13 @@ onMounted(() => {
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 类别id -->
<el-form-item :label="$t('category')" prop="categoryId">
<el-select v-model="billStore.form.categoryIds" :placeholder="$t('select') + $t('category')" class="!w-[180px]" clearable filterable multiple>
<el-option v-for="item in categoryUserStore.allCategoryList" :key="item.id" :label="item.categoryName" :navigationBar="false" :value="item.id" />
</el-select>
</el-form-item>
<!-- 金额 --> <!-- 金额 -->
<el-form-item :label="$t('amount')" prop="amount"> <el-form-item :label="$t('amount')" prop="amount">
<el-input v-model="billStore.form.amount" :min="0" :placeholder="$t('input') + $t('amount')" :step="0.01" autocomplete="off" type="number" /> <el-input v-model="billStore.form.amount" :min="0" :placeholder="$t('input') + $t('amount')" :step="0.01" autocomplete="off" type="number" />

View File

@ -8,15 +8,15 @@ export const columns: TableColumnList = [
// 消息标题 // 消息标题
{ label: $t('title'), prop: 'title' }, { label: $t('title'), prop: 'title' },
// 消息简介 // 消息简介
{ label: $t('summary'), prop: 'summary' }, { label: $t('summary'), prop: 'summary', minWidth: 150 },
// 发送人昵称 // 发送人昵称
{ label: $t('sendNickname'), prop: 'sendNickname', slot: 'sendNickname' }, { label: $t('sendNickname'), prop: 'sendNickname', minWidth: 150, slot: 'sendNickname' },
// 接受人昵称 // 接受人昵称
{ label: $t('receivedUserNickname'), prop: 'receivedUserNickname', slot: 'receivedUserNickname' }, { label: $t('receivedUserNickname'), prop: 'receivedUserNickname', minWidth: 150, slot: 'receivedUserNickname' },
// 消息类型 // 消息类型
{ label: $t('messageType'), prop: 'messageType', slot: 'messageType' }, { label: $t('messageType'), prop: 'messageType', minWidth: 120, slot: 'messageType' },
// 编辑器类型 // 编辑器类型
{ label: $t('editorType'), prop: 'editorType' }, { label: $t('editorType'), prop: 'editorType', minWidth: 150 },
// 封面 // 封面
{ label: $t('cover'), prop: 'cover', slot: 'cover', width: 80 }, { label: $t('cover'), prop: 'cover', slot: 'cover', width: 80 },
// 消息等级 // 消息等级

View File

@ -7,17 +7,17 @@ export const columns: TableColumnList = [
{ type: 'selection', align: 'left' }, { type: 'selection', align: 'left' },
{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 }, { type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 },
// 消息标题 // 消息标题
{ label: $t('title'), prop: 'title' }, { label: $t('title'), prop: 'title', minWidth: 150 },
// 消息简介 // 消息简介
{ label: $t('summary'), prop: 'summary' }, { label: $t('summary'), prop: 'summary', minWidth: 200 },
// 发送人昵称 // 发送人昵称
{ label: $t('sendNickname'), prop: 'sendNickname', slot: 'sendNickname' }, { label: $t('sendNickname'), prop: 'sendNickname', slot: 'sendNickname', minWidth: 150 },
// 接受人昵称 // 接受人昵称
{ label: $t('receivedUserNickname'), prop: 'receivedUserNickname' }, { label: $t('receivedUserNickname'), prop: 'receivedUserNickname', minWidth: 150 },
// 消息类型 // 消息类型
{ label: $t('messageType'), prop: 'messageType', slot: 'messageType' }, { label: $t('messageType'), prop: 'messageType', slot: 'messageType', minWidth: 150 },
// 编辑器类型 // 编辑器类型
{ label: $t('editorType'), prop: 'editorType' }, { label: $t('editorType'), prop: 'editorType', minWidth: 120 },
// 封面 // 封面
{ label: $t('cover'), prop: 'cover', slot: 'cover', width: 80 }, { label: $t('cover'), prop: 'cover', slot: 'cover', width: 80 },
// 消息等级 // 消息等级
@ -34,7 +34,7 @@ export const columns: TableColumnList = [
width: 100, width: 100,
}, },
// 消息等级详情 // 消息等级详情
{ label: $t('extra'), prop: 'extra', slot: 'extra' }, { label: $t('extra'), prop: 'extra', slot: 'extra', minWidth: 150 },
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 }, { label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 },
{ label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 }, { label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 },
{ label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 130 }, { label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 130 },

View File

@ -6,17 +6,17 @@ export const columns: TableColumnList = [
{ type: 'selection', align: 'left' }, { type: 'selection', align: 'left' },
{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 }, { type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 },
// 任务名称 // 任务名称
{ label: $t('quartzExecuteLog_jobName'), prop: 'jobName' }, { label: $t('quartzExecuteLog_jobName'), prop: 'jobName', minWidth: 150 },
// 任务分组 // 任务分组
{ label: $t('quartzExecuteLog_jobGroup'), prop: 'jobGroup' }, { label: $t('quartzExecuteLog_jobGroup'), prop: 'jobGroup', minWidth: 120 },
// 执行任务类名 // 执行任务类名
{ label: $t('quartzExecuteLog_jobClassName'), prop: 'jobClassName' }, { label: $t('quartzExecuteLog_jobClassName'), prop: 'jobClassName', minWidth: 150 },
// 执行任务core表达式 // 执行任务core表达式
{ label: $t('quartzExecuteLog_cronExpression'), prop: 'cronExpression' }, { label: $t('quartzExecuteLog_cronExpression'), prop: 'cronExpression', minWidth: 100 },
// 触发器名称 // 触发器名称
{ label: $t('quartzExecuteLog_triggerName'), prop: 'triggerName' }, { label: $t('quartzExecuteLog_triggerName'), prop: 'triggerName', minWidth: 150 },
// 执行结果 // 执行结果
{ label: $t('quartzExecuteLog_executeResult'), prop: 'executeResult', width: 410, slot: 'executeResult' }, { label: $t('quartzExecuteLog_executeResult'), prop: 'executeResult', minWidth: 410, slot: 'executeResult' },
// 执行时间 // 执行时间
{ label: $t('quartzExecuteLog_duration'), prop: 'duration' }, { label: $t('quartzExecuteLog_duration'), prop: 'duration' },
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 }, { label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 },

View File

@ -4,19 +4,19 @@ import { $t } from '@/plugins/i18n';
// 表格列 // 表格列
export const columns: TableColumnList = [ export const columns: TableColumnList = [
{ type: 'selection', align: 'left' }, { type: 'selection', align: 'left' },
{ type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 }, { type: 'index', index: (index: number) => index + 1, label: '序号', minWidth: 60 },
// 用户名 // 用户名
{ label: $t('userLoginLog_username'), prop: 'username', width: 180 }, { label: $t('userLoginLog_username'), prop: 'username', minWidth: 180 },
// 登录Ip // 登录Ip
{ label: $t('userLoginLog_ipAddress'), prop: 'ipAddress', width: 130 }, { label: $t('userLoginLog_ipAddress'), prop: 'ipAddress', minWidth: 130 },
// 登录Ip归属地 // 登录Ip归属地
{ label: $t('userLoginLog_ipRegion'), prop: 'ipRegion', width: 160 }, { label: $t('userLoginLog_ipRegion'), prop: 'ipRegion', minWidth: 160 },
// 登录时代理 // 登录时代理
{ label: $t('userLoginLog_userAgent'), prop: 'userAgent' }, { label: $t('userLoginLog_userAgent'), prop: 'userAgent', minWidth: 200 },
// 操作类型 // 操作类型
{ label: $t('userLoginLog_type'), prop: 'type', width: 130 }, { label: $t('userLoginLog_type'), prop: 'type', minWidth: 130 },
// 标识客户端是否是通过Ajax发送请求的 // 标识客户端是否是通过Ajax发送请求的
{ label: $t('userLoginLog_xRequestedWith'), prop: 'xRequestedWith', width: 150 }, { label: $t('userLoginLog_xRequestedWith'), prop: 'xRequestedWith', minWidth: 150 },
// 登录token // 登录token
{ label: $t('userLoginLog_token'), prop: 'token', width: 200 }, { label: $t('userLoginLog_token'), prop: 'token', width: 200 },
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 }, { label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 },