From a1eb4acacd4c427e70981c5eda958c177b579b98 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Thu, 19 Dec 2024 11:19:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=A7=A9=20=E5=BC=80=E5=85=B3?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=B0=81=E8=A3=85=E5=92=8C=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E5=8F=91=E9=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/utils.ts | 5 +- .../account-settings/account-management.vue | 161 ++++++++++++++---- .../emailTemplate/email-template-dialog.vue | 18 ++ .../configuration/emailTemplate/index.vue | 21 ++- .../utils/{columns.ts => columns.tsx} | 17 +- .../emailTemplate/utils/hooks.tsx | 2 + .../emailTemplate/utils/types.ts | 2 + .../emailUsers/email-users-dialog.vue | 10 +- .../account-bill/bill/bill-dialog.vue | 1 + src/views/hooks.ts | 14 +- .../system/adminUser/admin-user-dialog.vue | 20 ++- src/views/system/adminUser/index.vue | 56 +++++- src/views/welcome/index.vue | 18 +- src/views/welcome/utils/hooks.tsx | 2 +- 14 files changed, 290 insertions(+), 57 deletions(-) rename src/views/configuration/emailTemplate/utils/{columns.ts => columns.tsx} (82%) diff --git a/src/router/utils.ts b/src/router/utils.ts index ac4c219..c2cd8c0 100644 --- a/src/router/utils.ts +++ b/src/router/utils.ts @@ -264,7 +264,9 @@ function addAsyncRoutes(arrRoutes: Array) { v.component = IFrame; } else { // 对后端传component组件路径和不传做兼容(如果后端传component组件路径,那么path可以随便写,如果不传,component组件路径会跟path保持一致) - const index = v?.component ? modulesRoutesKeys.findIndex(ev => ev.includes(v.component as any)) : modulesRoutesKeys.findIndex(ev => ev.includes(v.path)); + const index = v?.component + ? modulesRoutesKeys.findIndex(ev => ev.includes(v.component as any)) + : modulesRoutesKeys.findIndex(ev => ev.includes(v.path)); v.component = modulesRoutes[modulesRoutesKeys[index]]; } if (v?.children && v.children.length !== 0) { @@ -316,6 +318,7 @@ function hasAuth(value: string | Array): boolean { if (metaAuths.includes('*::*::*') || metaAuths.includes('*::*') || metaAuths.includes('*')) { return true; } + return isString(value) ? metaAuths.includes(value) : isIncludeAllChildren(value, metaAuths); } diff --git a/src/views/account-settings/account-management.vue b/src/views/account-settings/account-management.vue index 3bc1a5a..49ce532 100644 --- a/src/views/account-settings/account-management.vue +++ b/src/views/account-settings/account-management.vue @@ -7,16 +7,26 @@ import { useAdminUserStore } from '@/store/system/adminUser'; import ResetPasswordDialog from '@/components/Table/ResetPasswords.vue'; import { removeToken } from '@/utils/auth'; import { useRouter } from 'vue-router'; +import { switchLoadMapControl, usePublicHooks } from '@/views/hooks'; +import { messageBox } from '@/utils/message'; -const router = useRouter(); +// 用户是否停用样式 +const { switchStyle } = usePublicHooks(); +// 用户是否停用加载集合 +const switchLoadMap = ref({}); // 重置密码表单校验Ref const ruleFormByRestPasswordRef = ref(); +const router = useRouter(); const adminUserStore = useAdminUserStore(); - // 重置密码表单 const restPasswordForm = reactive({ password: '', }); +// 提醒状态 +const reminderStatus = reactive({ + week: false, // 周账单状态 + mouth: false, // 月账单状态 +}); /** 重置密码 */ const onResetPassword = () => { @@ -46,46 +56,129 @@ const onResetPassword = () => { }); }; -const list = ref([ - { - title: $t('account_password'), - illustrate: $t('rest_password_tip'), - button: $t('modify'), - callback: onResetPassword, - }, - // { - // title: '密保手机', - // illustrate: '已经绑定手机:158****6789', - // button: '修改', - // }, - // { - // title: '密保问题', - // illustrate: '未设置密保问题,密保问题可有效保护账户安全', - // button: '修改', - // }, - // { - // title: '备用邮箱', - // illustrate: '已绑定邮箱:pure***@163.com', - // button: '修改', - // }, -]); +/** 更新用户周账单提醒是否开启 */ +const updateUserReportStatusByWeek = async (index: number) => { + // 点击时开始loading加载 + switchLoadMapControl(switchLoadMap, index, true); + + // 是否确认修改弹窗内容 + const confirm = await messageBox({ + title: $t('confirm_update_status'), + showMessage: false, + confirmMessage: undefined, + cancelMessage: $t('cancel'), + }); + + // 如果不修改将值恢复到之前状态 + if (!confirm) { + reminderStatus.week = !reminderStatus.week; + switchLoadMapControl(switchLoadMap, index, false); + return; + } + + // 修改用户状态 + // const data = { userId: row.id, status: row.status }; + // const result = await adminUserStore.updateUserStatusByAdmin(data); + // if (!result) { + // row.status = !row.status; + // switchLoadMap.value[index] = Object.assign({}, switchLoadMap.value[index], { + // loading: false, + // }); + // return; + // } + // await onSearch(); + switchLoadMapControl(switchLoadMap, index, false); +}; + +/** 更新用户周账单提醒是否开启 */ +const updateUserReportStatusByMouth = async (index: number) => { + // 点击时开始loading加载 + switchLoadMapControl(switchLoadMap, index, true); + + // 是否确认修改弹窗内容 + const confirm = await messageBox({ + title: $t('confirm_update_status'), + showMessage: false, + confirmMessage: undefined, + cancelMessage: $t('cancel'), + }); + + // 如果不修改将值恢复到之前状态 + if (!confirm) { + reminderStatus.week = !reminderStatus.week; + switchLoadMapControl(switchLoadMap, index, false); + return; + } + + // 修改用户状态 + // const data = { userId: row.id, status: row.status }; + // const result = await adminUserStore.updateUserStatusByAdmin(data); + // if (!result) { + // row.status = !row.status; + // switchLoadMap.value[index] = Object.assign({}, switchLoadMap.value[index], { + // loading: false, + // }); + // return; + // } + // await onSearch(); + switchLoadMapControl(switchLoadMap, index, false); +}; diff --git a/src/views/configuration/emailTemplate/email-template-dialog.vue b/src/views/configuration/emailTemplate/email-template-dialog.vue index c7e2287..674c6ad 100644 --- a/src/views/configuration/emailTemplate/email-template-dialog.vue +++ b/src/views/configuration/emailTemplate/email-template-dialog.vue @@ -5,6 +5,7 @@ import { rules } from '@/views/configuration/emailTemplate/utils/columns'; import { FormProps } from '@/views/configuration/emailTemplate/utils/types'; import { $t } from '@/plugins/i18n'; import { useEmailTemplateStore } from '@/store/configuration/emailTemplate'; +import { usePublicHooks } from '@/views/hooks'; const props = withDefaults(defineProps(), { formInline: () => ({ @@ -14,6 +15,8 @@ const props = withDefaults(defineProps(), { emailUser: undefined, // 主题 subject: undefined, + // 是否默认 + isDefault: false, // 邮件内容 body: undefined, // 邮件类型 @@ -21,6 +24,8 @@ const props = withDefaults(defineProps(), { }), }); +// 用户是否停用样式 +const { switchStyle } = usePublicHooks(); const formRef = ref(); const form = ref(props.formInline); const emailTemplateStore = useEmailTemplateStore(); @@ -51,6 +56,19 @@ defineExpose({ formRef }); + + + + + diff --git a/src/views/configuration/emailTemplate/index.vue b/src/views/configuration/emailTemplate/index.vue index 12709dc..621d366 100644 --- a/src/views/configuration/emailTemplate/index.vue +++ b/src/views/configuration/emailTemplate/index.vue @@ -55,7 +55,12 @@ onMounted(() => { - + @@ -67,7 +72,9 @@ onMounted(() => { - {{ $t('search') }} + + {{ $t('search') }} + {{ $t('buttons.reset') }} @@ -126,7 +133,15 @@ onMounted(() => { {{ $t('view') }} - + {{ $t('modify') }} diff --git a/src/views/configuration/emailTemplate/utils/columns.ts b/src/views/configuration/emailTemplate/utils/columns.tsx similarity index 82% rename from src/views/configuration/emailTemplate/utils/columns.ts rename to src/views/configuration/emailTemplate/utils/columns.tsx index 813941a..598a79d 100644 --- a/src/views/configuration/emailTemplate/utils/columns.ts +++ b/src/views/configuration/emailTemplate/utils/columns.tsx @@ -1,5 +1,6 @@ import { reactive } from 'vue'; import { $t } from '@/plugins/i18n'; +import { ElTag } from 'element-plus'; // 表格列 export const columns: TableColumnList = [ @@ -14,7 +15,21 @@ export const columns: TableColumnList = [ // 邮件内容 { label: $t('emailTemplate_body'), prop: 'body' }, // 邮件类型 - { label: $t('emailTemplate_type'), prop: 'type' }, + { label: $t('emailTemplate_type'), prop: 'summary' }, + // 是否默认 + { + label: $t('isDefault'), + prop: 'isDefault', + formatter({ isDefault }) { + return isDefault ? ( + {$t('default')} + ) : ( + + {$t('no_default')} + + ); + }, + }, { label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 }, { label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 }, { label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 130 }, diff --git a/src/views/configuration/emailTemplate/utils/hooks.tsx b/src/views/configuration/emailTemplate/utils/hooks.tsx index 7dbb535..34cdedf 100644 --- a/src/views/configuration/emailTemplate/utils/hooks.tsx +++ b/src/views/configuration/emailTemplate/utils/hooks.tsx @@ -29,6 +29,7 @@ export function onAdd() { templateName: undefined, emailUser: undefined, subject: undefined, + isDefault: undefined, body: undefined, type: undefined, }, @@ -64,6 +65,7 @@ export function onUpdate(row: any) { templateName: row.templateName, emailUser: row.emailUser, subject: row.subject, + isDefault: row.isDefault, body: row.body, type: row.type, }, diff --git a/src/views/configuration/emailTemplate/utils/types.ts b/src/views/configuration/emailTemplate/utils/types.ts index f503d8b..55f82fb 100644 --- a/src/views/configuration/emailTemplate/utils/types.ts +++ b/src/views/configuration/emailTemplate/utils/types.ts @@ -6,6 +6,8 @@ export interface FormItemProps { emailUser: string; // 主题 subject: string; + // 是否默认 + isDefault: boolean; // 邮件内容 body: string; // 邮件类型 diff --git a/src/views/configuration/emailUsers/email-users-dialog.vue b/src/views/configuration/emailUsers/email-users-dialog.vue index a5be2f0..f208bb9 100644 --- a/src/views/configuration/emailUsers/email-users-dialog.vue +++ b/src/views/configuration/emailUsers/email-users-dialog.vue @@ -61,7 +61,15 @@ defineExpose({ formRef }); - + 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 f89dbc9..e9fc9c2 100644 --- a/src/views/financial-user/account-bill/bill/bill-dialog.vue +++ b/src/views/financial-user/account-bill/bill/bill-dialog.vue @@ -63,6 +63,7 @@ defineExpose({ formRef }); >, index: number, loading: boolean) => { + switchLoadMap.value[index] = Object.assign({}, switchLoadMap.value[index], { + loading, + }); +}; diff --git a/src/views/system/adminUser/admin-user-dialog.vue b/src/views/system/adminUser/admin-user-dialog.vue index 64c156f..dac932f 100644 --- a/src/views/system/adminUser/admin-user-dialog.vue +++ b/src/views/system/adminUser/admin-user-dialog.vue @@ -92,7 +92,15 @@ defineExpose({ formRef }); - +