From 7cccd0a4d45e82ab376ed958f759c8ce8bf80779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E9=98=B3?= <3311118881@qq.com> Date: Fri, 18 Oct 2024 15:42:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=A9=B3=E5=9B=9E=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E9=82=AE=E4=BB=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/Email.ts | 7 ++++++ src/pages/Work/index.tsx | 51 ++++++++++++++++++++++++++++++++++++++-- src/types/app/email.d.ts | 24 +++++++++++++++++++ src/utils/request.ts | 4 ++-- 4 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 src/api/Email.ts create mode 100644 src/types/app/email.d.ts diff --git a/src/api/Email.ts b/src/api/Email.ts new file mode 100644 index 0000000..cf82de8 --- /dev/null +++ b/src/api/Email.ts @@ -0,0 +1,7 @@ +import Request from '@/utils/request' +import { DismissEmail } from '@/types/app/email' + +// 发送驳回邮件 +export const sendDismissEmailAPI = async (data: DismissEmail) => { + return await Request("POST", `/email/dismiss`, { data }); +} \ No newline at end of file diff --git a/src/pages/Work/index.tsx b/src/pages/Work/index.tsx index 4f10533..5421c08 100644 --- a/src/pages/Work/index.tsx +++ b/src/pages/Work/index.tsx @@ -16,6 +16,7 @@ import Empty from "@/components/Empty"; import { useWebStore } from '@/stores'; import TextArea from "antd/es/input/TextArea"; +import { sendDismissEmailAPI } from "@/api/Email"; type Menu = "comment" | "link" | "wall"; @@ -58,12 +59,58 @@ const ListItem = ({ item, type, fetchData }: ListItemProps) => { message.success('🎉 留言驳回成功'); } - console.log(dismissInfo); - setIsModalOpen(false) fetchData(type); + setDismissInfo("") + + // 发送驳回通知邮件 + sendDismissEmail() }; + // 发送驳回通知邮件 + const sendDismissEmail = () => { + // 类型名称 + let email_info = { + name: "", + type: "", + url: "" + } + switch (type) { + case "link": + email_info = { + name: item.title, + type: "友链", + url: `${web.url}/friend`, + } + break; + case "comment": + email_info = { + name: item.name, + type: "评论", + url: `${web.url}/article/${item.articleId}`, + } + break; + case "wall": + email_info = { + name: item.name, + type: "留言", + url: `${web.url}/wall/all`, + } + break; + } + + sendDismissEmailAPI({ + to: item.email, + content: dismissInfo, + recipient: email_info.name, + subject: `${email_info.type}驳回通知`, + time: dayjs(Date.now()).format('YYYY年MM月DD日 HH:mm'), + type: email_info.type, + url: email_info.url + }) + } + + return (
diff --git a/src/types/app/email.d.ts b/src/types/app/email.d.ts new file mode 100644 index 0000000..69e6337 --- /dev/null +++ b/src/types/app/email.d.ts @@ -0,0 +1,24 @@ +export interface Email { + /*邮件接收者 */ + to?: string; + /*邮件标题 */ + subject: string; +} + +export interface CommentEmail extends Email { + content: string; + reviewers: string; + subject: string; + time: string; + title: string; + url: string; +} + +export interface DismissEmail extends Email { + content: string; + recipient: string; + subject: string; + time: string; + type: string; + url: string; +} \ No newline at end of file diff --git a/src/utils/request.ts b/src/utils/request.ts index 501f032..2251db8 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -3,8 +3,8 @@ import { Modal, notification } from "antd"; import { useUserStore } from "@/stores"; // 配置项目API域名 -// export const baseURL = "http://localhost:9003/api"; -export const baseURL = "https://api.liuyuyang.net/api"; +export const baseURL = "http://localhost:9003/api"; +// export const baseURL = "https://api.liuyuyang.net/api"; // 创建 axios 实例 export const instance = axios.create({