fix: 修复邮件配置,忽略证书校验设置不生效的bug

pull/243/head
xiaojunnuo 2024-11-14 00:12:01 +08:00
parent 01c65578b0
commit 66a9690dc9
3 changed files with 40 additions and 21 deletions

View File

@ -53,6 +53,14 @@ export async function EmailSettingsGet() {
}); });
} }
export async function EmailSettingsSave(setting: any) {
return await request({
url: apiPrefix + "/saveEmailSettings",
method: "post",
data: setting
});
}
export async function stopOtherUserTimer() { export async function stopOtherUserTimer() {
return await request({ return await request({
url: apiPrefix + "/stopOtherUserTimer", url: apiPrefix + "/stopOtherUserTimer",

View File

@ -8,16 +8,17 @@
</template> </template>
<div class="flex-o"> <div class="flex-o">
<div v-if="!formState.usePlus" class="email-form"> <a-form
<a-form :model="formState"
:model="formState" name="basic"
name="basic" :label-col="{ span: 8 }"
:label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
:wrapper-col="{ span: 16 }" autocomplete="off"
autocomplete="off" class="email-form-box"
@finish="onFinish" @finish="onFinish"
@finish-failed="onFinishFailed" @finish-failed="onFinishFailed"
> >
<div v-if="!formState.usePlus" class="email-form">
<a-form-item label="使用自定义邮件服务器"> </a-form-item> <a-form-item label="使用自定义邮件服务器"> </a-form-item>
<a-form-item label="SMTP域名" name="host" :rules="[{ required: true, message: '请输入smtp域名或ip' }]"> <a-form-item label="SMTP域名" name="host" :rules="[{ required: true, message: '请输入smtp域名或ip' }]">
<a-input v-model:value="formState.host" /> <a-input v-model:value="formState.host" />
@ -41,26 +42,24 @@
<a-switch v-model:checked="formState.secure" /> <a-switch v-model:checked="formState.secure" />
<div class="helper">ssl和非ssl的smtp端口是不一样的注意修改端口</div> <div class="helper">ssl和非ssl的smtp端口是不一样的注意修改端口</div>
</a-form-item> </a-form-item>
<a-form-item label="忽略证书校验" name="tls.rejectUnauthorized"> <a-form-item label="忽略证书校验" :name="['tls', 'rejectUnauthorized']">
<a-switch v-model:checked="formState.tls.rejectUnauthorized" /> <a-switch v-model:checked="formState.tls.rejectUnauthorized" />
</a-form-item> </a-form-item>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }"> <a-form-item :wrapper-col="{ offset: 8, span: 16 }">
<a-button type="primary" html-type="submit">保存</a-button> <a-button type="primary" html-type="submit">保存</a-button>
</a-form-item> </a-form-item>
</a-form> </div>
</div> <div class="email-form">
<div class="email-form"> <a-form-item label="使用官方邮件服务器" name="usePlus">
<a-form :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
<a-form-item label="使用官方邮件服务器">
<div class="flex-o"> <div class="flex-o">
<a-switch v-model:checked="formState.usePlus" :disabled="!settingStore.isPlus" @change="onUsePlusChanged" /> <a-switch v-model:checked="formState.usePlus" :disabled="!settingStore.isPlus" @change="onUsePlusChanged" />
<vip-button class="ml-5" mode="button"></vip-button> <vip-button class="ml-5" mode="button"></vip-button>
</div> </div>
<div class="helper">使用官方邮箱服务器直接发邮件免除繁琐的配置</div> <div class="helper">使用官方邮箱服务器直接发邮件免除繁琐的配置</div>
</a-form-item> </a-form-item>
</a-form> </div>
</div> </a-form>
</div> </div>
<div class="email-form"> <div class="email-form">
<a-form :model="testFormState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off" @finish="onTestSend"> <a-form :model="testFormState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off" @finish="onTestSend">
@ -79,7 +78,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from "vue"; import { reactive } from "vue";
import * as api from "../api"; import * as api from "../api";
import { SettingKeys } from "../api"; import { EmailSettingsSave, SettingKeys } from "../api";
import * as emailApi from "./api.email"; import * as emailApi from "./api.email";
import { notification } from "ant-design-vue"; import { notification } from "ant-design-vue";
import { useSettingStore } from "/src/store/modules/settings"; import { useSettingStore } from "/src/store/modules/settings";
@ -122,7 +121,7 @@ load();
const onFinish = async (form: any) => { const onFinish = async (form: any) => {
console.log("Success:", form); console.log("Success:", form);
await api.SettingsSave(SettingKeys.SysEmail, form); await api.EmailSettingsSave(form);
notification.success({ notification.success({
message: "保存成功" message: "保存成功"
}); });
@ -133,7 +132,7 @@ const onFinishFailed = (errorInfo: any) => {
}; };
async function onUsePlusChanged() { async function onUsePlusChanged() {
await api.SettingsSave(SettingKeys.SysEmail, formState); await api.EmailSettingsSave(formState);
} }
interface TestFormState { interface TestFormState {
@ -161,6 +160,9 @@ const settingStore = useSettingStore();
<style lang="less"> <style lang="less">
.page-setting-email { .page-setting-email {
.email-form-box {
display: flex;
}
.email-form { .email-form {
width: 500px; width: 500px;
margin: 20px; margin: 20px;

View File

@ -5,6 +5,7 @@ import { PipelineService } from '../../../modules/pipeline/service/pipeline-serv
import { UserSettingsService } from '../../../modules/mine/service/user-settings-service.js'; import { UserSettingsService } from '../../../modules/mine/service/user-settings-service.js';
import { getEmailSettings } from '../../../modules/sys/settings/fix.js'; import { getEmailSettings } from '../../../modules/sys/settings/fix.js';
import { http, logger } from '@certd/basic'; import { http, logger } from '@certd/basic';
import { merge } from 'lodash-es';
/** /**
*/ */
@ -77,6 +78,14 @@ export class SysSettingsController extends CrudController<SysSettingsService> {
return this.ok(conf); return this.ok(conf);
} }
@Post('/saveEmailSettings', { summary: 'sys:settings:edit' })
async saveEmailSettings(@Body(ALL) body) {
const conf = await getEmailSettings(this.service, this.userSettingsService);
merge(conf, body);
await this.service.saveSetting(conf);
return this.ok(conf);
}
@Post('/getSysSettings', { summary: 'sys:settings:edit' }) @Post('/getSysSettings', { summary: 'sys:settings:edit' })
async getSysSettings() { async getSysSettings() {
const publicSettings = await this.service.getPublicSettings(); const publicSettings = await this.service.getPublicSettings();