diff --git a/apps/web-antd/src/views/system/mail/log/data.ts b/apps/web-antd/src/views/system/mail/log/data.ts new file mode 100644 index 000000000..6a383bb04 --- /dev/null +++ b/apps/web-antd/src/views/system/mail/log/data.ts @@ -0,0 +1,167 @@ +import type { VbenFormSchema } from '#/adapter/form'; +import type { OnActionClickFn, VxeTableGridOptions } from '#/adapter/vxe-table'; +import type { SystemMailLogApi } from '#/api/system/mail/log'; + +import { getSimpleMailAccountList } from '#/api/system/mail/account'; +import { DICT_TYPE, getDictOptions } from '#/utils/dict'; + +/** 列表的搜索表单 */ +export function useGridFormSchema(): VbenFormSchema[] { + return [ + { + fieldName: 'toMail', + label: '收件邮箱', + component: 'Input', + }, + { + fieldName: 'accountId', + label: '邮箱账号', + component: 'ApiSelect', + componentProps: { + api: async () => await getSimpleMailAccountList(), + labelField: 'mail', + valueField: 'id', + allowClear: true, + }, + }, + { + fieldName: 'templateId', + label: '模板编号', + component: 'Input', + }, + { + fieldName: 'sendStatus', + label: '发送状态', + component: 'Select', + componentProps: { + allowClear: true, + options: getDictOptions(DICT_TYPE.SYSTEM_MAIL_SEND_STATUS, 'number'), + }, + }, + { + fieldName: 'sendTime', + label: '发送时间', + component: 'RangePicker', + componentProps: { + allowClear: true, + }, + }, + { + fieldName: 'userId', + label: '用户编号', + component: 'Input', + }, + { + fieldName: 'userType', + label: '用户类型', + component: 'Select', + componentProps: { + allowClear: true, + options: getDictOptions(DICT_TYPE.USER_TYPE, 'number'), + }, + }, + ]; +} + +/** 列表的字段 */ +export function useGridColumns( + onActionClick: OnActionClickFn, +): VxeTableGridOptions['columns'] { + return [ + { + field: 'id', + title: '编号', + minWidth: 100, + }, + { + field: 'createTime', + title: '创建时间', + minWidth: 180, + formatter: 'formatDateTime', + }, + { + field: 'toMail', + title: '收件邮箱', + minWidth: 120, + }, + { + field: 'fromMail', + title: '发送邮箱', + minWidth: 120, + }, + { + field: 'templateTitle', + title: '邮件标题', + minWidth: 120, + }, + { + field: 'templateContent', + title: '邮件内容', + minWidth: 300, + }, + { + field: 'sendStatus', + title: '发送状态', + minWidth: 120, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.SYSTEM_MAIL_SEND_STATUS }, + }, + }, + { + field: 'sendTime', + title: '发送时间', + minWidth: 180, + formatter: 'formatDateTime', + }, + { + field: 'templateId', + title: '模板编号', + minWidth: 100, + }, + { + field: 'templateCode', + title: '模板编码', + minWidth: 120, + }, + { + field: 'userId', + title: '用户编号', + minWidth: 100, + }, + { + field: 'userType', + title: '用户类型', + minWidth: 100, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.USER_TYPE }, + }, + }, + { + field: 'operation', + title: '操作', + minWidth: 120, + align: 'center', + fixed: 'right', + cellRender: { + attrs: { + nameField: 'toMail', + nameTitle: '邮件日志', + onClick: onActionClick, + }, + name: 'CellOperation', + options: [ + { + code: 'view', + text: '查看', + }, + { + code: 'resend', + text: '重发', + }, + ], + }, + }, + ]; +} diff --git a/apps/web-antd/src/views/system/mail/log/index.vue b/apps/web-antd/src/views/system/mail/log/index.vue new file mode 100644 index 000000000..42f9be14e --- /dev/null +++ b/apps/web-antd/src/views/system/mail/log/index.vue @@ -0,0 +1,105 @@ + + diff --git a/apps/web-antd/src/views/system/mail/log/modules/form.vue b/apps/web-antd/src/views/system/mail/log/modules/form.vue new file mode 100644 index 000000000..53090048a --- /dev/null +++ b/apps/web-antd/src/views/system/mail/log/modules/form.vue @@ -0,0 +1,111 @@ + + + + +