EmailSetting.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <el-row :gutter="20">
  3. <el-col :xs="24" :sm="20" :md="14" :lg="12" :xl="8">
  4. <el-form
  5. label-position="top"
  6. :label-width="120"
  7. :model="formValue"
  8. :rules="rules"
  9. ref="formRef"
  10. >
  11. <el-form-item label="发件人邮箱" prop="originator">
  12. <el-input v-model="formValue.originator" placeholder="请输入发件人邮箱" />
  13. </el-form-item>
  14. <el-form-item label="SMTP服务器地址">
  15. <el-input placeholder="请输入SMTP服务器地址" />
  16. </el-form-item>
  17. <el-form-item label="SMTP服务器端口">
  18. <el-input placeholder="请输入SMTP服务器端口" />
  19. </el-form-item>
  20. <el-form-item label="SMTP用户名">
  21. <el-input placeholder="请输入SMTP用户名" />
  22. </el-form-item>
  23. <el-form-item label="SMTP密码">
  24. <el-input type="password" placeholder="请输入SMTP密码" />
  25. </el-form-item>
  26. <el-form-item label="邮件测试">
  27. <el-button>邮件测试</el-button>
  28. </el-form-item>
  29. <div>
  30. <el-space>
  31. <el-button type="primary" @click="formSubmit(formRef)">更新邮件信息</el-button>
  32. </el-space>
  33. </div>
  34. </el-form>
  35. </el-col>
  36. </el-row>
  37. </template>
  38. <script lang="ts" setup>
  39. import { reactive, ref } from 'vue';
  40. import { ElMessage } from 'element-plus';
  41. import type { ElForm } from 'element-plus';
  42. type FormInstance = InstanceType<typeof ElForm>;
  43. const formRef = ref<FormInstance>();
  44. const rules = {
  45. originator: {
  46. required: true,
  47. message: '请输入发件人邮箱',
  48. trigger: 'blur',
  49. },
  50. };
  51. const formValue = reactive({
  52. originator: '',
  53. });
  54. function formSubmit(formEl: FormInstance | undefined) {
  55. if (!formEl) return;
  56. formEl.validate((valid) => {
  57. if (valid) {
  58. console.log('submit!');
  59. ElMessage.success('验证成功');
  60. } else {
  61. ElMessage.error('验证失败,请填写完整信息');
  62. }
  63. });
  64. }
  65. </script>