正文
@@ -121,6 +186,56 @@ const recipient = ref('')
const subject = ref('')
const content = ref('')
+// CC和BCC相关
+const showCc = ref(false)
+const cc = ref('')
+const showBcc = ref(false)
+const bcc = ref('')
+
+// 附件相关
+const attachments = ref
>([])
+
+// 切换CC显示
+const toggleCc = () => {
+ showCc.value = !showCc.value
+}
+
+// 切换BCC显示
+const toggleBcc = () => {
+ showBcc.value = !showBcc.value
+}
+
+// 添加附件
+const handleAddAttachment = () => {
+ // 创建文件输入元素
+ const input = document.createElement('input')
+ input.type = 'file'
+ input.multiple = true
+ input.onchange = (event: Event) => {
+ const target = event.target as HTMLInputElement
+ const files = target?.files
+ if (files) {
+ for (let i = 0; i < files.length; i++) {
+ const file = files[i]
+ attachments.value.push({
+ id: Date.now() + i,
+ name: file.name,
+ size: (file.size / 1024 / 1024).toFixed(2) + 'MB',
+ file: file
+ })
+ }
+ ElMessage.success(`已添加 ${files.length} 个附件`)
+ }
+ }
+ input.click()
+}
+
+// 删除附件
+const removeAttachment = (index: number) => {
+ attachments.value.splice(index, 1)
+ ElMessage.info('已删除附件')
+}
+
// 发送邮件
const handleSend = () => {
if (!recipient.value.trim()) {
@@ -141,6 +256,22 @@ const handleSend = () => {
sendEmailMsg(name.value, '邮件主题', 'write', 'subject', subject.value)
sendEmailMsg(name.value, '邮件正文', 'write', 'content', content.value)
+ // 保存CC信息
+ if (cc.value.trim()) {
+ sendEmailMsg(name.value, '抄送', 'write', 'cc', cc.value)
+ }
+
+ // 保存BCC信息
+ if (bcc.value.trim()) {
+ sendEmailMsg(name.value, '密送', 'write', 'bcc', bcc.value)
+ }
+
+ // 保存附件信息
+ if (attachments.value.length > 0) {
+ const attachmentNames = attachments.value.map((att) => att.name).join(', ')
+ sendEmailMsg(name.value, '附件', 'write', 'attachments', attachmentNames)
+ }
+
ElMessage.success('邮件发送成功!')
// 清空表单
@@ -206,6 +337,11 @@ const clearForm = () => {
recipient.value = ''
subject.value = ''
content.value = ''
+ cc.value = ''
+ bcc.value = ''
+ attachments.value = []
+ showCc.value = false
+ showBcc.value = false
}
diff --git a/src/components/Email/index.ts b/src/components/Email/index.ts
index 4521795..a6a7bad 100644
--- a/src/components/Email/index.ts
+++ b/src/components/Email/index.ts
@@ -26,8 +26,8 @@ export function sendEmailMsg(pageName: string, description: string, category: st
// 拼接 content 字符串
const content = `${category}@${key}@${value}`
- // 创建数据对象并添加到 store(包含scoreRate权值字段,默认为空,由用户填写)
- const data = { contentIn, content, scoreRate: '' };
+ // 创建数据对象并添加到 store(包含scoreRate权值字段,默认为1)
+ const data = { contentIn, content, scoreRate: 1 };
// 为了避免重复,可以先查找并更新,如果不存在再添加
const existingIndex = emailStore.emailFormList.findIndex(item => item.content.startsWith(`${category}@${key}@`));
diff --git a/src/views/paper/question/EmailForm.vue b/src/views/paper/question/EmailForm.vue
index 7010cae..c186bbd 100644
--- a/src/views/paper/question/EmailForm.vue
+++ b/src/views/paper/question/EmailForm.vue
@@ -515,7 +515,7 @@ const open = async (queryParams: any, type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
-
+ resetForm()
// 修改时,设置数据
if (id) {
formLoading.value = true
@@ -554,6 +554,12 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
const submitForm = async () => {
formData.value.answerList = list.value
+ //默认权值为1
+ formData.value.answerList.forEach((item) => {
+ if (!item.scoreRate) {
+ item.scoreRate = '1' // 设置默认权值为1
+ }
+ })
formData.value.fileUploads = documentList.value
const values = Object.values(formData)
console.log(values)
@@ -600,7 +606,7 @@ const resetForm = () => {
image: '',
content: '',
contentIn: '',
- scoreRate: ''
+ scoreRate: '1'
}
],
fileUploads: [