Skip to content

Commit bfa14b7

Browse files
committed
邮箱模块:完善 template 的单元测试
1 parent a0a4533 commit bfa14b7

File tree

4 files changed

+97
-9
lines changed

4 files changed

+97
-9
lines changed

src/api/system/mail/template.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,12 @@ export function getMailTemplatePage(query) {
4242
params: query
4343
})
4444
}
45+
46+
// 发送测试邮件
47+
export function sendMail(data) {
48+
return request({
49+
url: '/system/mail-template/send-mail',
50+
method: 'post',
51+
data: data
52+
})
53+
}

src/api/system/sms/smsTemplate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export function getSmsTemplatePage(query) {
4343
})
4444
}
4545

46-
// 创建短信模板
46+
// 发送测试短信
4747
export function sendSms(data) {
4848
return request({
4949
url: '/system/sms-template/send-sms',

src/views/system/mail/template/index.vue

Lines changed: 86 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
<el-table-column label="模板编码" align="center" prop="code" />
4545
<el-table-column label="模板名称" align="center" prop="name" />
4646
<el-table-column label="模板标题" align="center" prop="title" />
47+
<el-table-column label="模板内容" align="center" prop="content" :show-overflow-tooltip="true" />
4748
<el-table-column label="邮箱账号" align="center" prop="accountId" width="200">
4849
<template v-slot="scope">
4950
{{ accountOptions.find(account => account.id === scope.row.accountId)?.mail }}
@@ -55,14 +56,15 @@
5556
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status"/>
5657
</template>
5758
</el-table-column>
58-
<el-table-column label="备注" align="center" prop="remark" />
5959
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
6060
<template v-slot="scope">
6161
<span>{{ parseTime(scope.row.createTime) }}</span>
6262
</template>
6363
</el-table-column>
64-
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
64+
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
6565
<template v-slot="scope">
66+
<el-button size="mini" type="text" icon="el-icon-share" @click="handleSend(scope.row)"
67+
v-hasPermi="['system:mail-template:send-mail']">测试</el-button>
6668
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
6769
v-hasPermi="['system:mail-template:update']">修改</el-button>
6870
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
@@ -112,11 +114,30 @@
112114
<el-button @click="cancel">取 消</el-button>
113115
</div>
114116
</el-dialog>
117+
118+
<!-- 对话框(发送邮件) -->
119+
<el-dialog title="测试发送邮件" :visible.sync="sendOpen" width="500px" append-to-body>
120+
<el-form ref="sendForm" :model="sendForm" :rules="sendRules" label-width="140px">
121+
<el-form-item label="模板内容" prop="content">
122+
<el-input v-model="sendForm.content" type="textarea" placeholder="请输入模板内容" readonly />
123+
</el-form-item>
124+
<el-form-item label="收件邮箱" prop="mail">
125+
<el-input v-model="sendForm.mail" placeholder="请输入收件邮箱" />
126+
</el-form-item>
127+
<el-form-item v-for="param in sendForm.params" :key="param" :label="'参数 {' + param + '}'" :prop="'templateParams.' + param">
128+
<el-input v-model="sendForm.templateParams[param]" :placeholder="'请输入 ' + param + ' 参数'" />
129+
</el-form-item>
130+
</el-form>
131+
<div slot="footer" class="dialog-footer">
132+
<el-button type="primary" @click="submitSendForm">确 定</el-button>
133+
<el-button @click="cancelSend">取 消</el-button>
134+
</div>
135+
</el-dialog>
115136
</div>
116137
</template>
117138

118139
<script>
119-
import { createMailTemplate, updateMailTemplate, deleteMailTemplate, getMailTemplate, getMailTemplatePage } from "@/api/system/mail/template";
140+
import { createMailTemplate, updateMailTemplate, deleteMailTemplate, getMailTemplate, getMailTemplatePage, sendMail } from "@/api/system/mail/template";
120141
import Editor from '@/components/Editor';
121142
import { CommonStatusEnum } from "@/utils/constants";
122143
import { getSimpleMailAccountList } from "@/api/system/mail/account";
@@ -130,8 +151,6 @@ export default {
130151
return {
131152
// 遮罩层
132153
loading: true,
133-
// 导出遮罩层
134-
exportLoading: false,
135154
// 显示搜索条件
136155
showSearch: true,
137156
// 总条数
@@ -164,7 +183,18 @@ export default {
164183
status: [{ required: true, message: "开启状态不能为空", trigger: "blur" }],
165184
},
166185
// 邮箱账号
167-
accountOptions: []
186+
accountOptions: [],
187+
188+
// 发送邮箱
189+
sendOpen: false,
190+
sendForm: {
191+
params: [], // 模板的参数列表
192+
},
193+
sendRules: {
194+
mail: [{ required: true, message: "收件邮箱不能为空", trigger: "blur" }],
195+
templateCode: [{ required: true, message: "模版编码不能为空", trigger: "blur" }],
196+
templateParams: { }
197+
}
168198
};
169199
},
170200
created() {
@@ -263,7 +293,56 @@ export default {
263293
this.getList();
264294
this.$modal.msgSuccess("删除成功");
265295
}).catch(() => {});
266-
}
296+
},
297+
/** 发送短息按钮 */
298+
handleSend(row) {
299+
this.resetSend(row);
300+
// 设置参数
301+
this.sendForm.content = row.content;
302+
this.sendForm.params = row.params;
303+
this.sendForm.templateCode = row.code;
304+
this.sendForm.templateParams = row.params.reduce(function(obj, item) {
305+
obj[item] = undefined;
306+
return obj;
307+
}, {});
308+
// 根据 row 重置 rules
309+
this.sendRules.templateParams = row.params.reduce(function(obj, item) {
310+
obj[item] = { required: true, message: '参数 ' + item + " 不能为空", trigger: "change" };
311+
return obj;
312+
}, {});
313+
// 设置打开
314+
this.sendOpen = true;
315+
},
316+
/** 重置发送邮箱的表单 */
317+
resetSend() {
318+
// 根据 row 重置表单
319+
this.sendForm = {
320+
content: undefined,
321+
params: undefined,
322+
mobile: undefined,
323+
templateCode: undefined,
324+
templateParams: {}
325+
};
326+
this.resetForm("sendForm");
327+
},
328+
/** 取消发送邮箱 */
329+
cancelSend() {
330+
this.sendOpen = false;
331+
this.resetSend();
332+
},
333+
/** 提交按钮 */
334+
submitSendForm() {
335+
this.$refs["sendForm"].validate(valid => {
336+
if (!valid) {
337+
return;
338+
}
339+
// 添加的提交
340+
sendMail(this.sendForm).then(response => {
341+
this.$modal.msgSuccess("提交发送成功!发送结果,见发送日志编号:" + response.data);
342+
this.sendOpen = false;
343+
});
344+
});
345+
},
267346
}
268347
};
269348
</script>

src/views/system/sms/smsTemplate.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ export default {
216216
},
217217
sendSmsRules: {
218218
mobile: [{ required: true, message: "手机不能为空", trigger: "blur" }],
219-
templateCode: [{ required: true, message: "手机不能为空", trigger: "blur" }],
219+
templateCode: [{ required: true, message: "模版编码不能为空", trigger: "blur" }],
220220
templateParams: { }
221221
}
222222
};

0 commit comments

Comments
 (0)