From 4a251892baf1ff8525d2f797a5a0b3240e0c9dae Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Fri, 11 Oct 2024 15:40:56 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=9A=80=20=E9=82=AE=E4=BB=B6?=
=?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../emailTemplate/email-template-dialog.vue | 2 +-
.../system/emailUsers/email-users-dialog.vue | 6 ++---
src/views/system/emailUsers/index.vue | 19 +++++++++++++--
src/views/system/emailUsers/utils/columns.ts | 7 ++++--
src/views/system/emailUsers/utils/hooks.ts | 24 ++++++++++++++++++-
src/views/system/files/utils/columns.ts | 4 +---
6 files changed, 50 insertions(+), 12 deletions(-)
diff --git a/src/views/system/emailTemplate/email-template-dialog.vue b/src/views/system/emailTemplate/email-template-dialog.vue
index 2190544..a66f9ab 100644
--- a/src/views/system/emailTemplate/email-template-dialog.vue
+++ b/src/views/system/emailTemplate/email-template-dialog.vue
@@ -33,7 +33,7 @@ defineExpose({ formRef });
-
+
diff --git a/src/views/system/emailUsers/email-users-dialog.vue b/src/views/system/emailUsers/email-users-dialog.vue
index dfc5a96..cf8293f 100644
--- a/src/views/system/emailUsers/email-users-dialog.vue
+++ b/src/views/system/emailUsers/email-users-dialog.vue
@@ -21,7 +21,7 @@ const props = withDefaults(defineProps(), {
// 邮箱协议
smtpAgreement: undefined,
// 是否为默认邮件
- isDefault: undefined,
+ isDefault: false,
}),
});
@@ -48,10 +48,10 @@ defineExpose({ formRef });
-
+
-
+
diff --git a/src/views/system/emailUsers/index.vue b/src/views/system/emailUsers/index.vue
index 5802de6..65f1532 100644
--- a/src/views/system/emailUsers/index.vue
+++ b/src/views/system/emailUsers/index.vue
@@ -4,7 +4,7 @@ import { columns } from '@/views/system/emailUsers/utils/columns';
import PureTableBar from '@/components/TableBar/src/bar';
import AddFill from '@iconify-icons/ri/add-circle-line';
import PureTable from '@pureadmin/table';
-import { onAdd, onChangeDefault, onDelete, onSearch, onUpdate, switchLoadMap } from '@/views/system/emailUsers/utils/hooks';
+import { deleteIds, onAdd, onChangeDefault, onDelete, onDeleteBatch, onSearch, onUpdate, switchLoadMap } from '@/views/system/emailUsers/utils/hooks';
import Delete from '@iconify-icons/ep/delete';
import EditPen from '@iconify-icons/ep/edit-pen';
import Refresh from '@iconify-icons/ep/refresh';
@@ -13,6 +13,7 @@ import { $t } from '@/plugins/i18n';
import { useEmailUsersStore } from '@/store/system/emailUsers';
import { useRenderIcon } from '@/components/CommonIcon/src/hooks';
import { usePublicHooks } from '@/views/hooks';
+import { FormInstance } from 'element-plus';
const tableRef = ref();
const formRef = ref();
@@ -41,12 +42,20 @@ const onPageSizeChange = async (value: number) => {
* 重置表单
* @param formEl
*/
-const resetForm = async formEl => {
+const resetForm = async (formEl: FormInstance | undefined) => {
if (!formEl) return;
formEl.resetFields();
await onSearch();
};
+/**
+ * * 选择多行
+ * @param rows
+ */
+const onSelectionChange = (rows: Array) => {
+ deleteIds.value = rows.map((row: any) => row.id);
+};
+
onMounted(() => {
onSearch();
});
@@ -79,6 +88,11 @@ onMounted(() => {
{{ $t('add_new') }}
+
+
+
+ {{ $t('delete_batches') }}
+
@@ -98,6 +112,7 @@ onMounted(() => {
row-key="id"
showOverflowTooltip
table-layout="auto"
+ @selection-change="onSelectionChange"
@page-size-change="onPageSizeChange"
@page-current-change="onCurrentPageChange"
>
diff --git a/src/views/system/emailUsers/utils/columns.ts b/src/views/system/emailUsers/utils/columns.ts
index 616fbc8..a3d4c03 100644
--- a/src/views/system/emailUsers/utils/columns.ts
+++ b/src/views/system/emailUsers/utils/columns.ts
@@ -27,9 +27,12 @@ export const columns: TableColumnList = [
];
// 添加规则
-export const rules = reactive({
+export const rules: any = reactive({
// 邮箱
- email: [{ required: true, message: `${$t('input')}${$t('emailUsers_email')}`, trigger: 'blur' }],
+ email: [
+ { required: true, message: `${$t('input')}${$t('emailUsers_email')}`, trigger: 'blur' },
+ { type: 'email', message: `${$t('input')}${$t('adminUser_email')}${$t('format_error')}` },
+ ],
// 密码
password: [{ required: true, message: `${$t('input')}${$t('emailUsers_password')}`, trigger: 'blur' }],
// Host地址
diff --git a/src/views/system/emailUsers/utils/hooks.ts b/src/views/system/emailUsers/utils/hooks.ts
index 6d53675..6c0a75e 100644
--- a/src/views/system/emailUsers/utils/hooks.ts
+++ b/src/views/system/emailUsers/utils/hooks.ts
@@ -9,6 +9,8 @@ import { $t } from '@/plugins/i18n';
export const formRef = ref();
// 用户是否停用加载集合
export const switchLoadMap = ref({});
+// 删除ids
+export const deleteIds = ref([]);
const emailUsersStore = useEmailUsersStore();
/**
@@ -35,7 +37,7 @@ export function onAdd() {
host: undefined,
port: undefined,
smtpAgreement: undefined,
- isDefault: undefined,
+ isDefault: false,
},
},
draggable: true,
@@ -113,6 +115,26 @@ export const onDelete = async (row: any) => {
await onSearch();
};
+/**
+ * 批量删除
+ */
+export const onDeleteBatch = async () => {
+ const ids = deleteIds.value;
+
+ // 是否确认删除
+ const result = await messageBox({
+ title: $t('confirm_delete'),
+ showMessage: false,
+ confirmMessage: undefined,
+ cancelMessage: $t('cancel_delete'),
+ });
+ if (!result) return;
+
+ // 删除数据
+ await emailUsersStore.deleteEmailUsers(ids);
+ await onSearch();
+};
+
/**
* * 修改是否默认
* @param row
diff --git a/src/views/system/files/utils/columns.ts b/src/views/system/files/utils/columns.ts
index 06d9cb8..813a292 100644
--- a/src/views/system/files/utils/columns.ts
+++ b/src/views/system/files/utils/columns.ts
@@ -3,8 +3,8 @@ import { $t } from '@/plugins/i18n';
// 表格列
export const columns: TableColumnList = [
- { type: 'index', index: (index: number) => index + 1 },
{ type: 'selection', align: 'left' },
+ { type: 'index', index: (index: number) => index + 1 },
// 文件的名称
{ label: $t('files_filename'), prop: 'filename', width: 400 },
// 文件在服务器上的存储路径
@@ -28,6 +28,4 @@ export const rules = reactive({
filepath: [{ required: true, message: `${$t('input')}${$t('files_filepath')}`, trigger: 'blur' }],
// 文件的MIME类型
fileType: [{ required: true, message: `${$t('input')}${$t('files_fileType')}`, trigger: 'blur' }],
- // 下载数量
- downloadCount: [{ required: true, message: `${$t('input')}${$t('files_downloadCount')}`, trigger: 'blur' }],
});