加上MAIL

This commit is contained in:
xielue 2023-05-09 15:56:13 +08:00
parent e179844920
commit 3537289f7d
7 changed files with 402 additions and 10 deletions

View File

@ -0,0 +1,165 @@
<template>
<div class="page-body">
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
</vxe-form>
<div class="footerbar">
<a-button type="primary" @click="ok">确定</a-button>
</div>
</div>
</template>
<script>
import BASE_URL from '@/services/base/api.js';
export default {
i18n: require('./i18n'),
props: {
pageMode: {
type: String,
default: "edit"
},
dataId: {
}
},
data() {
//
var pageData = {
actions: {
update: `${BASE_URL.BASE_URL}/Mail/v1/mail/company/update`,
get: `${BASE_URL.BASE_URL}/Mail/v1/mail/company/detail`
},
formOptions: {
data: {
"replyTo": "",
"limit_count": 0,
"used_count": 0,
"is_log": 0,
"limit_count_warning": 0,
"host": "",
"port": 0,
"username": "",
"password": "",
},
titleWidth: 150,
titleAlign: 'right',
rules: {
},
items: [
{ field: 'host', title: '服务器', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入服务器' } } },
{ field: 'port',dataRule:{type:"integer"}, title: '端口', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入端口',type:"number" } } },
{ field: 'username', title: '用户名', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入用户名' } } },
{ field: 'password', title: '密码', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入密码' } } },
{ field: 'replyTo', title: '回复', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入replyTo' } } },
{ field: 'limit_count',dataRule:{type:"integer"}, title: 'limit_count', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_count',type:"number" } } },
{ field: 'used_count',dataRule:{type:"integer"}, title: 'used_count', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入used_count',type:"number" } } },
{ field: 'limit_count_warning',dataRule:{type:"integer"}, title: 'limit_count_warning', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_count_warning',type:"number" } } },
]
}
};
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
return pageData;
},
created() {
if (this.dataId) {
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: {
company_id: this.dataId
}
}).then(a => {
if(a.data && a.data.mail_company){
this.formOptions.data = a.data.mail_company;
}else{
this.formOptions.data.company_id = this.dataId;
}
}).catch((a) => {
console.log(a)
//this.$mk.error(a.data.msg);
});
} else {
this.formOptions.data.company_id = this.dataId;
}
},
//
methods: {
loadData() {
},
ok() {
let save = () => {
let action = this.actions.update;
let postdata = Object.assign({}, this.formOptions.data);
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
postdata.company_id = this.dataId;
this.$mk.post({
url: action,
loading: "保存中...",
data: postdata,
useBigInt: true
}).then(() => {
this.$mk.success("mail配置保存成功");
this.$emit("callback", { success: true });
}).catch((a) => {
this.$mk.error(a.data.msg);
});
};
this.$refs.xForm.validate((a) => {
if (a) {
let count = 0;
for (let name in a) {
a[name];
count++;
}
this.$mk.error(`存在${count}项错误,请检查`);
} else {
save();
}
});
},
cancel() {
this.$emit("callback", {});
}
},
//
watch: {
}
};
</script>
<style></style>

View File

@ -14,6 +14,9 @@
<a-tab-pane key="3" tab="SMS模板" force-render>
<sms-template :dataId="dataId"></sms-template>
</a-tab-pane>
<a-tab-pane key="4" tab="mail配置" force-render>
<mail :dataId="dataId"></mail>
</a-tab-pane>
</a-tabs>
</div>
</template>
@ -23,10 +26,11 @@
import server from './server'
import sms from './sms'
import smsTemplate from './smsTemplate'
import mail from './mail'
export default {
components: { server,sms,smsTemplate },
components: { server,sms,smsTemplate,mail },
props: {
dataId: {
}

View File

@ -37,8 +37,8 @@ export default {
actions: {
update: `${BASE_URL.BASE_URL}/Sms/v1/sms/update`,
get: `${BASE_URL.BASE_URL}/Sms/v1/sms/detail`
update: `${BASE_URL.BASE_URL}/Sms/v1/sms/company/update`,
get: `${BASE_URL.BASE_URL}/Sms/v1/sms/company/detail`
},
@ -82,13 +82,13 @@ export default {
url: this.actions.get,
loading: "加载中...",
data: {
beid: this.dataId
company_id: this.dataId
}
}).then(a => {
if(a.data && a.data.sms){
this.formOptions.data = a.data.sms;
}else{
this.formOptions.data.beid = this.dataId;
this.formOptions.data.company_id = this.dataId;
}
}).catch((a) => {
@ -97,7 +97,7 @@ export default {
});
} else {
this.formOptions.data.beid = this.dataId;
this.formOptions.data.company_id = this.dataId;
}
},
@ -114,7 +114,8 @@ export default {
let action = this.actions.update;
let postdata = Object.assign({}, this.formOptions.data);
postdata.beid = this.dataId;
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
postdata.company_id = this.dataId;
this.$mk.post({
url: action,
loading: "保存中...",

View File

@ -284,8 +284,8 @@ export default {
}
this.$mk.dialog.open({
page: () => import("./smsEdit"),
title: "修改SMS配置",
page: () => import("./setting"),
title: "参数配置",
dataId: row[this.keyName],
callback: ({ success }) => {
success && this.$refs.xGrid.commitProxy('query')

View File

@ -0,0 +1,165 @@
<template>
<div class="page-body">
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
</vxe-form>
<div class="footerbar">
<a-button type="primary" @click="ok">确定</a-button>
</div>
</div>
</template>
<script>
import BASE_URL from '@/services/base/api.js';
export default {
i18n: require('./i18n'),
props: {
pageMode: {
type: String,
default: "edit"
},
dataId: {
}
},
data() {
//
var pageData = {
actions: {
update: `${BASE_URL.BASE_URL}/Mail/v1/mail/update`,
get: `${BASE_URL.BASE_URL}/Mail/v1/mail/detail`
},
formOptions: {
data: {
"replyTo": "",
"limit_count": 0,
"used_count": 0,
"is_log": 0,
"limit_count_warning": 0,
"host": "",
"port": 0,
"username": "",
"password": "",
},
titleWidth: 150,
titleAlign: 'right',
rules: {
},
items: [
{ field: 'host', title: '服务器', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入服务器' } } },
{ field: 'port',dataRule:{type:"integer"}, title: '端口', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入端口',type:"number" } } },
{ field: 'username', title: '用户名', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入用户名' } } },
{ field: 'password', title: '密码', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入密码' } } },
{ field: 'replyTo', title: '回复', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入replyTo' } } },
{ field: 'limit_count',dataRule:{type:"integer"}, title: 'limit_count', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_count',type:"number" } } },
{ field: 'used_count',dataRule:{type:"integer"}, title: 'used_count', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入used_count',type:"number" } } },
{ field: 'limit_count_warning',dataRule:{type:"integer"}, title: 'limit_count_warning', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_count_warning',type:"number" } } },
]
}
};
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
return pageData;
},
created() {
if (this.dataId) {
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: {
beid: this.dataId
}
}).then(a => {
if(a.data && a.data.mail){
this.formOptions.data = a.data.mail;
}else{
this.formOptions.data.beid = this.dataId;
}
}).catch((a) => {
console.log(a)
//this.$mk.error(a.data.msg);
});
} else {
this.formOptions.data.beid = this.dataId;
}
},
//
methods: {
loadData() {
},
ok() {
let save = () => {
let action = this.actions.update;
let postdata = Object.assign({}, this.formOptions.data);
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
postdata.beid = this.dataId;
this.$mk.post({
url: action,
loading: "保存中...",
data: postdata,
useBigInt: true
}).then(() => {
this.$mk.success("mail配置保存成功");
this.$emit("callback", { success: true });
}).catch((a) => {
this.$mk.error(a.data.msg);
});
};
this.$refs.xForm.validate((a) => {
if (a) {
let count = 0;
for (let name in a) {
a[name];
count++;
}
this.$mk.error(`存在${count}项错误,请检查`);
} else {
save();
}
});
},
cancel() {
this.$emit("callback", {});
}
},
//
watch: {
}
};
</script>
<style></style>

View File

@ -0,0 +1,56 @@
<template>
<div class="page-body">
<a-tabs default-active-key="2" >
<a-tab-pane key="2" tab="SMS配置" force-render>
<sms :dataId="dataId"></sms>
</a-tab-pane>
<a-tab-pane key="3" tab="SMS模板" force-render>
<sms-template :dataId="dataId"></sms-template>
</a-tab-pane>
<a-tab-pane key="4" tab="mail配置" force-render>
<mail :dataId="dataId"></mail>
</a-tab-pane>
</a-tabs>
</div>
</template>
<script>
import sms from './smsEdit'
import smsTemplate from '../BaseCompany/smsTemplate'
import mail from './mail'
export default {
components: { sms,smsTemplate,mail },
props: {
dataId: {
}
},
data() {
return {};
},
created() {
},
//
methods: {
},
//
watch: {
}
};
</script>
<style></style>

View File

@ -115,6 +115,7 @@ export default {
let action = this.actions.update;
let postdata = Object.assign({}, this.formOptions.data);
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
postdata.beid = this.dataId;
this.$mk.post({
url: action,
@ -122,7 +123,7 @@ export default {
data: postdata,
useBigInt: true
}).then(() => {
this.$mk.success("保存成功");
this.$mk.success("SMS配置保存成功");
this.$emit("callback", { success: true });
}).catch((a) => {
this.$mk.error(a.data.msg);