From 4996d05d1e29bb8b85b95a973649d204c03ecc18 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 27 Jan 2023 16:59:24 +0800 Subject: [PATCH] 邮箱模块:vue3 邮件模版的管理 --- yudao-ui-admin-vue3/src/api/system/mail/account/index.ts | 5 +++++ yudao-ui-admin-vue3/src/api/system/mail/template/index.ts | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/views/system/mail/account/account.data.ts | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/views/system/mail/account/account.template.data.ts | 65 ----------------------------------------------------------------- yudao-ui-admin-vue3/src/views/system/mail/account/index.vue | 2 +- yudao-ui-admin-vue3/src/views/system/mail/template/index.vue | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/views/system/mail/template/template.data.ts | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue | 4 ++-- 8 files changed, 482 insertions(+), 68 deletions(-) create mode 100644 yudao-ui-admin-vue3/src/api/system/mail/template/index.ts create mode 100644 yudao-ui-admin-vue3/src/views/system/mail/account/account.data.ts delete mode 100644 yudao-ui-admin-vue3/src/views/system/mail/account/account.template.data.ts create mode 100644 yudao-ui-admin-vue3/src/views/system/mail/template/index.vue create mode 100644 yudao-ui-admin-vue3/src/views/system/mail/template/template.data.ts diff --git a/yudao-ui-admin-vue3/src/api/system/mail/account/index.ts b/yudao-ui-admin-vue3/src/api/system/mail/account/index.ts index 37bdc81..8b662a7 100644 --- a/yudao-ui-admin-vue3/src/api/system/mail/account/index.ts +++ b/yudao-ui-admin-vue3/src/api/system/mail/account/index.ts @@ -39,3 +39,8 @@ export const updateMailAccountApi = async (data: MailAccountVO) => { export const deleteMailAccountApi = async (id: number) => { return await request.delete({ url: '/system/mail-account/delete?id=' + id }) } + +// 获得邮箱账号精简列表 +export const getSimpleMailAccounts = async () => { + return request.get({ url: '/system/mail-account/list-all-simple' }) +} diff --git a/yudao-ui-admin-vue3/src/api/system/mail/template/index.ts b/yudao-ui-admin-vue3/src/api/system/mail/template/index.ts new file mode 100644 index 0000000..a0a0faf --- /dev/null +++ b/yudao-ui-admin-vue3/src/api/system/mail/template/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface MailTemplateVO { + id: number + name: string + code: string + accountId: number + nickname: string + title: string + content: string + params: string + status: number + remark: string +} + +export interface MailTemplatePageReqVO extends PageParam { + name?: string + code?: string + accountId?: number + status?: number + createTime?: Date[] +} + +export interface MailSmsReqVO { + mail: string + templateCode: string + templateParams: Map +} + +// 查询邮件模版列表 +export const getMailTemplatePageApi = async (params: MailTemplatePageReqVO) => { + return await request.get({ url: '/system/mail-template/page', params }) +} + +// 查询邮件模版详情 +export const getMailTemplateApi = async (id: number) => { + return await request.get({ url: '/system/mail-template/get?id=' + id }) +} + +// 新增邮件模版 +export const createMailTemplateApi = async (data: MailTemplateVO) => { + return await request.post({ url: '/system/mail-template/create', data }) +} + +// 修改邮件模版 +export const updateMailTemplateApi = async (data: MailTemplateVO) => { + return await request.put({ url: '/system/mail-template/update', data }) +} + +// 删除邮件模版 +export const deleteMailTemplateApi = async (id: number) => { + return await request.delete({ url: '/system/mail-template/delete?id=' + id }) +} + +// 发送邮件 +export const sendMailApi = (data: MailSmsReqVO) => { + return request.post({ url: '/system/mail-template/send-mail', data }) +} diff --git a/yudao-ui-admin-vue3/src/views/system/mail/account/account.data.ts b/yudao-ui-admin-vue3/src/views/system/mail/account/account.data.ts new file mode 100644 index 0000000..a2e29f8 --- /dev/null +++ b/yudao-ui-admin-vue3/src/views/system/mail/account/account.data.ts @@ -0,0 +1,65 @@ +import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' + +// 表单校验 +export const rules = reactive({ + mail: [required], + username: [required], + password: [required], + host: [required], + port: [required], + sslEnable: [required] +}) + +// CrudSchema +const crudSchemas = reactive({ + primaryKey: 'id', // 默认的主键 ID + primaryTitle: '编号', + primaryType: 'id', + action: true, + actionWidth: '200', // 3 个按钮默认 200,如有删减对应增减即可 + columns: [ + { + title: '邮箱', + field: 'mail', + isSearch: true + }, + { + title: '用户名', + field: 'username', + isSearch: true + }, + { + title: '密码', + field: 'password', + isTable: false + }, + { + title: 'SMTP 服务器域名', + field: 'host' + }, + { + title: 'SMTP 服务器端口', + field: 'port', + form: { + component: 'InputNumber', + value: 465 + } + }, + { + title: '是否开启 SSL', + field: 'sslEnable', + dictType: DICT_TYPE.INFRA_BOOLEAN_STRING, + dictClass: 'boolean' + }, + { + title: '创建时间', + field: 'createTime', + isForm: false, + formatter: 'formatDate', + table: { + width: 180 + } + } + ] +}) +export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/yudao-ui-admin-vue3/src/views/system/mail/account/account.template.data.ts b/yudao-ui-admin-vue3/src/views/system/mail/account/account.template.data.ts deleted file mode 100644 index a2e29f8..0000000 --- a/yudao-ui-admin-vue3/src/views/system/mail/account/account.template.data.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' - -// 表单校验 -export const rules = reactive({ - mail: [required], - username: [required], - password: [required], - host: [required], - port: [required], - sslEnable: [required] -}) - -// CrudSchema -const crudSchemas = reactive({ - primaryKey: 'id', // 默认的主键 ID - primaryTitle: '编号', - primaryType: 'id', - action: true, - actionWidth: '200', // 3 个按钮默认 200,如有删减对应增减即可 - columns: [ - { - title: '邮箱', - field: 'mail', - isSearch: true - }, - { - title: '用户名', - field: 'username', - isSearch: true - }, - { - title: '密码', - field: 'password', - isTable: false - }, - { - title: 'SMTP 服务器域名', - field: 'host' - }, - { - title: 'SMTP 服务器端口', - field: 'port', - form: { - component: 'InputNumber', - value: 465 - } - }, - { - title: '是否开启 SSL', - field: 'sslEnable', - dictType: DICT_TYPE.INFRA_BOOLEAN_STRING, - dictClass: 'boolean' - }, - { - title: '创建时间', - field: 'createTime', - isForm: false, - formatter: 'formatDate', - table: { - width: 180 - } - } - ] -}) -export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/yudao-ui-admin-vue3/src/views/system/mail/account/index.vue b/yudao-ui-admin-vue3/src/views/system/mail/account/index.vue index b8fdf09..7c4ad0f 100644 --- a/yudao-ui-admin-vue3/src/views/system/mail/account/index.vue +++ b/yudao-ui-admin-vue3/src/views/system/mail/account/index.vue @@ -69,7 +69,7 @@ diff --git a/yudao-ui-admin-vue3/src/views/system/mail/template/template.data.ts b/yudao-ui-admin-vue3/src/views/system/mail/template/template.data.ts new file mode 100644 index 0000000..b7707b4 --- /dev/null +++ b/yudao-ui-admin-vue3/src/views/system/mail/template/template.data.ts @@ -0,0 +1,93 @@ +import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas' + +// 表单校验 +export const rules = reactive({ + name: [required], + code: [required], + accountId: [required], + title: [required], + content: [required], + params: [required], + status: [required] +}) + +// CrudSchema +const crudSchemas = reactive({ + primaryKey: 'id', // 默认的主键ID + primaryTitle: '编号', // 默认显示的值 + primaryType: null, + action: true, + actionWidth: '260', + columns: [ + { + title: '模板编码', + field: 'code', + isSearch: true + }, + { + title: '模板名称', + field: 'name', + isSearch: true + }, + { + title: '模板标题', + field: 'title' + }, + { + title: '模板内容', + field: 'content', + form: { + component: 'Editor', + colProps: { + span: 24 + }, + componentProps: { + valueHtml: '' + } + } + }, + { + title: '邮箱账号', + field: 'accountId', + isSearch: true, + table: { + width: 200, + slots: { + default: 'accountId_default' + } + } + }, + { + title: '发送人名称', + field: 'nickname' + }, + { + title: '开启状态', + field: 'status', + isSearch: true, + dictType: DICT_TYPE.COMMON_STATUS, + dictClass: 'number' + }, + { + title: '备注', + field: 'remark', + isTable: false + }, + { + title: '创建时间', + field: 'createTime', + isForm: false, + formatter: 'formatDate', + table: { + width: 180 + }, + search: { + show: true, + itemRender: { + name: 'XDataTimePicker' + } + } + } + ] +}) +export const { allSchemas } = useVxeCrudSchemas(crudSchemas) diff --git a/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue b/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue index 0bc40c8..bbc7c86 100644 --- a/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue +++ b/yudao-ui-admin-vue3/src/views/system/sms/smsTemplate/index.vue @@ -197,7 +197,7 @@ const sendSmsForm = ref({ }) const sendSmsRules = ref({ mobile: [{ required: true, message: '手机不能为空', trigger: 'blur' }], - templateCode: [{ required: true, message: '手机不能为空', trigger: 'blur' }], + templateCode: [{ required: true, message: '模版编号不能为空', trigger: 'blur' }], templateParams: {} }) const sendVisible = ref(false) @@ -225,7 +225,7 @@ const sendSmsTest = async () => { } const res = await SmsTemplateApi.sendSmsApi(data) if (res) { - message.success('发送成功') + message.success('提交发送成功!发送结果,见发送日志编号:' + res) } sendVisible.value = false } -- libgit2 0.21.4