diff --git a/backend/controllers/email/send.go b/backend/controllers/email/send.go
index ecca54b..527e644 100644
--- a/backend/controllers/email/send.go
+++ b/backend/controllers/email/send.go
@@ -101,7 +101,7 @@ func Send(ctx *context.Context, w http.ResponseWriter, req *http.Request) {
return
}
- if len(reqData.To) <= 0 {
+ if len(reqData.To)+len(reqData.Cc)+len(reqData.Bcc) <= 0 {
response.NewErrorResponse(response.ParamsError, "收件人必填", "收件人必填").FPrint(w)
return
}
diff --git a/frontend/src/views/Editer/Editer.js b/frontend/src/views/Editer/Editer.js
index 95edc44..78299ec 100644
--- a/frontend/src/views/Editer/Editer.js
+++ b/frontend/src/views/Editer/Editer.js
@@ -94,7 +94,7 @@ export function usePage() {
const init = function () {
loadContacts()
- if ( Object.keys(globalStatus.userInfos)==0 || globalStatus.userInfos === null || globalStatus.userInfos == undefined ){
+ if (globalStatus.userInfos === null || globalStatus.userInfos == undefined || Object.keys(globalStatus.userInfos).length == 0){
globalStatus.init(()=>{
ruleForm.sender = globalStatus.userInfos.account
ruleForm.domains = globalStatus.userInfos.domains
@@ -179,8 +179,10 @@ export function usePage() {
editorRef.value = editor
}
+ const isSending = ref(false)
+
const send = function (formEl) {
- if (!formEl) return
+ if (!formEl || isSending.value) return
formEl.validate((valid) => {
if (valid) {
if(ruleForm.receivers.length === 0 && ruleForm.cc.length === 0 && ruleForm.bcc.length === 0) {
@@ -191,7 +193,9 @@ export function usePage() {
let objectCcs = ruleForm.cc.map(e => ({name: "", email: e}));
let objectBccs = ruleForm.bcc.map(e => ({name: "", email: e}));
- let text = editorRef.value.getText()
+ if (!editorRef.value) return
+ const text = editorRef.value.getText()
+ isSending.value = true
http.post("/api/v1/email/send", {
from: {name: ruleForm.nickName, email: ruleForm.sender + "@" + ruleForm.pick域名},
@@ -209,8 +213,12 @@ export function usePage() {
groupStore.tag = '{"type":1,"status":-1}'
router.replace({name: 'list'})
} else {
- ElMessage.error(res.data)
+ ElMessage.error(res.errorMsg || res.data || lang.fail)
}
+ }).catch(() => {
+ ElMessage.error(lang.fail)
+ }).finally(() => {
+ isSending.value = false
})
} else {
return false
@@ -272,6 +280,7 @@ export function usePage() {
ruleFormRef,
ruleForm,
fileList,
+ isSending,
init,
validateSender,
checkEmail,
diff --git a/frontend/src/views/Editer/Editer.vue b/frontend/src/views/Editer/Editer.vue
index 5c5ed26..fdf0215 100644
--- a/frontend/src/views/Editer/Editer.vue
+++ b/frontend/src/views/Editer/Editer.vue
@@ -6,7 +6,7 @@
{{ lang.add_att }}
-
+
{{ lang.send }}
@@ -171,6 +171,7 @@ const {
handleCreated,
fileList,
delFile,
+ isSending,
contactOptions,
deleteContact
} = usePage()