SMS配置和模板
This commit is contained in:
parent
9729f7f107
commit
e179844920
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
|
||||
VUE_APP_USER_MODEL2=AdminUser
|
||||
VUE_APP_USER_MODEL=BaseAdmin
|
||||
VUE_APP_USER_MODEL=AdminUser
|
||||
VUE_APP_USER_MODEL2=BaseAdmin
|
||||
VUE_APP_BEID=1
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
</template>
|
||||
<template #op="{ row }">
|
||||
<div class="oplinks">
|
||||
<a @click.stop="pageEditSql(row)" title="SQL配置"><a-icon type="database" /></a>
|
||||
<a @click.stop="pageSetting(row)" title="参数配置"><a-icon type="setting" /></a>
|
||||
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
|
||||
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
|
||||
</div>
|
||||
|
|
@ -291,15 +291,15 @@ export default {
|
|||
}
|
||||
this.$openPage("/BaseCompany/BaseCompanyUpdate/" + row[this.keyName]); // 打开页面
|
||||
},
|
||||
pageEditSql(row) {
|
||||
pageSetting(row) {
|
||||
if (!row) { // 如果没有选中行
|
||||
this.$mk.msg("请选择行"); // 提示
|
||||
return; // 返回
|
||||
}
|
||||
|
||||
this.$mk.dialog.open({
|
||||
page: () => import("./server"),
|
||||
title: "修改SQL配置",
|
||||
page: () => import("./setting"),
|
||||
title: "参数配置",
|
||||
dataId: row[this.keyName],
|
||||
callback: ({ success }) => {
|
||||
success && this.$refs.xGrid.commitProxy('query')
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
<div class="footerbar">
|
||||
<a-button type="primary" @click="ok">确定</a-button>
|
||||
<a-button @click="cancel">取消</a-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -120,7 +119,7 @@ export default {
|
|||
data: postdata,
|
||||
useBigInt: true
|
||||
}).then(() => {
|
||||
this.$mk.success("保存成功");
|
||||
this.$mk.success("SQL配置保存成功");
|
||||
this.$emit("callback", { success: true });
|
||||
}).catch((a) => {
|
||||
this.$mk.error(a.data.msg);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,56 @@
|
|||
<template>
|
||||
<div class="page-body">
|
||||
|
||||
|
||||
|
||||
|
||||
<a-tabs default-active-key="1" >
|
||||
<a-tab-pane key="1" tab="SQL配置">
|
||||
<server :dataId="dataId"></server>
|
||||
</a-tab-pane>
|
||||
<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-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import server from './server'
|
||||
import sms from './sms'
|
||||
import smsTemplate from './smsTemplate'
|
||||
|
||||
export default {
|
||||
|
||||
components: { server,sms,smsTemplate },
|
||||
props: {
|
||||
dataId: {
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
data() {
|
||||
|
||||
return {};
|
||||
},
|
||||
created() {
|
||||
|
||||
|
||||
},
|
||||
// 函数
|
||||
methods: {
|
||||
|
||||
|
||||
},
|
||||
// 监听属性
|
||||
watch: {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style></style>
|
||||
|
|
@ -0,0 +1,159 @@
|
|||
<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}/Sms/v1/sms/update`,
|
||||
get: `${BASE_URL.BASE_URL}/Sms/v1/sms/detail`
|
||||
},
|
||||
|
||||
|
||||
formOptions: {
|
||||
data: {
|
||||
sign_name:'',
|
||||
access_key_secret:'',
|
||||
accessKey_id:'',
|
||||
limit_count:0,
|
||||
limit_count_warning:0,
|
||||
endpoint:'',
|
||||
},
|
||||
|
||||
titleWidth: 150,
|
||||
titleAlign: 'right',
|
||||
|
||||
rules: {
|
||||
},
|
||||
|
||||
items: [
|
||||
{ field: 'sign_name', title: '签名', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入签名' } } },
|
||||
{ field: 'access_key_secret', title: 'access_key_secret', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入access_key_secret' } } },
|
||||
{ field: 'accessKey_id', title: 'accessKey_id', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入accessKey_id' } } },
|
||||
{ field: 'limit_count',dataRule:{type:"integer"}, title: 'limit_count', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_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" } } },
|
||||
{ field: 'endpoint', title: 'endpoint', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入endpoint' } } }
|
||||
]
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
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.sms){
|
||||
this.formOptions.data = a.data.sms;
|
||||
}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);
|
||||
|
||||
postdata.beid = this.dataId;
|
||||
this.$mk.post({
|
||||
url: action,
|
||||
loading: "保存中...",
|
||||
data: postdata,
|
||||
useBigInt: true
|
||||
}).then(() => {
|
||||
this.$mk.success("SMS配置保存成功");
|
||||
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>
|
||||
|
|
@ -0,0 +1,216 @@
|
|||
<template>
|
||||
<div class="page-body">
|
||||
|
||||
<vxe-table border show-overflow keep-source ref="xTable" :height="tableHeight" :data="detailsData" :export-config="{}"
|
||||
|
||||
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false }">
|
||||
<vxe-column width="80">
|
||||
<template #default="{ row }">
|
||||
<div class="oplinks">
|
||||
<a @click.stop="pageAdd(row)" title="新增">
|
||||
<a-icon type="plus-circle" />
|
||||
</a>
|
||||
<a @click.stop="pageDelete(row)" title="删除">
|
||||
<a-icon type="delete" />
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column field="template_code" width="220" title="编号" :edit-render="{ name: '$input', props: {} }">
|
||||
</vxe-column>
|
||||
<vxe-column field="template_name" width="220" title="名称" :edit-render="{ name: '$input', props: {} }">
|
||||
</vxe-column>
|
||||
<vxe-column field="template_content" width="220" title="内容" :edit-render="{ name: '$input', props: {} }">
|
||||
</vxe-column>
|
||||
</vxe-table>
|
||||
|
||||
|
||||
<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}/Sms/v1/sms/template/batchHandle`,
|
||||
get: `${BASE_URL.BASE_URL}/Sms/v1/sms/template/list`
|
||||
},
|
||||
|
||||
sourceDetailsData: [],
|
||||
detailsData: [
|
||||
],
|
||||
|
||||
deletedDetailsData: [
|
||||
|
||||
],
|
||||
tableHeight: 400
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
return pageData;
|
||||
},
|
||||
created() {
|
||||
this.$mk.post({
|
||||
url: this.actions.get,
|
||||
loading: "加载中...",
|
||||
data: {
|
||||
"page": 1,
|
||||
"limit": 10000,
|
||||
"start_time": 0,
|
||||
"order_bys": [
|
||||
|
||||
],
|
||||
"search_rules": [
|
||||
|
||||
],
|
||||
"end_time": 0
|
||||
}
|
||||
}).then(a => {
|
||||
if (a.data && a.data.SmsTemplate) {
|
||||
this.sourceDetailsData = a.data.SmsTemplate;
|
||||
let ds = [];
|
||||
a.data.SmsTemplate.forEach(item => {
|
||||
ds.push(JSON.parse(JSON.stringify(item)));
|
||||
})
|
||||
for (let i = ds.length; i < 5; i++) {
|
||||
ds.push({})
|
||||
}
|
||||
console.log(JSON.stringify(ds))
|
||||
this.detailsData = ds;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}).catch(() => {
|
||||
|
||||
for (let i = this.detailsData.length; i < 10; i++) {
|
||||
this.detailsData = [...this.detailsData, {}];
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
// 函数
|
||||
methods: {
|
||||
|
||||
|
||||
loadData() {
|
||||
},
|
||||
findSourceInfo(idStr) {
|
||||
for (var i = 0; i < this.sourceDetailsData.length; i++) {
|
||||
let o = this.sourceDetailsData[i];
|
||||
if (o.id.toString() == idStr) {
|
||||
return o;
|
||||
}
|
||||
}
|
||||
},
|
||||
ok() {
|
||||
|
||||
let save = () => {
|
||||
|
||||
this.$refs.xTable.clearEdit();
|
||||
|
||||
let action = this.actions.update;
|
||||
|
||||
let ds = JSON.parse(JSON.stringify(this.detailsData));
|
||||
|
||||
var postdata = {
|
||||
insertList: [],
|
||||
updateList: [],
|
||||
deleteList: this.deletedDetailsData
|
||||
};
|
||||
|
||||
ds.forEach(item => {
|
||||
if (!item.template_code) {
|
||||
return;
|
||||
}
|
||||
delete item._X_ROW_KEY;
|
||||
if (item.id && item.id != "0") {
|
||||
let source = this.findSourceInfo(item.id);
|
||||
item.id = source.id;
|
||||
postdata.updateList.push(item);
|
||||
} else {
|
||||
postdata.insertList.push(item);
|
||||
}
|
||||
})
|
||||
this.$mk.post({
|
||||
url: action,
|
||||
loading: "保存中...",
|
||||
data: postdata,
|
||||
useBigInt: true
|
||||
}).then(() => {
|
||||
this.$mk.success("SMS模板保存成功");
|
||||
this.$emit("callback", { success: true });
|
||||
}).catch((a) => {
|
||||
this.$mk.error(a.data.msg);
|
||||
});
|
||||
};
|
||||
|
||||
save();
|
||||
|
||||
|
||||
},
|
||||
|
||||
cancel() {
|
||||
this.$emit("callback", {});
|
||||
},
|
||||
|
||||
pageAdd(row) {
|
||||
|
||||
const $table = this.$refs.xTable
|
||||
const record = {
|
||||
}
|
||||
if (row) {
|
||||
|
||||
this.detailsData.splice($table.getRowSeq(row), 0, record);
|
||||
} else {
|
||||
this.detailsData.push(record)
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
|
||||
pageDelete(row) {
|
||||
const $table = this.$refs.xTable;
|
||||
if (row.id) {
|
||||
let source = this.findSourceInfo(row.id);
|
||||
this.deletedDetailsData.push(source.id)
|
||||
}
|
||||
this.detailsData.splice($table.getRowSeq(row) - 1, 1);
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
// 监听属性
|
||||
watch: {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style></style>
|
||||
|
|
@ -95,10 +95,6 @@ export default {
|
|||
|
||||
|
||||
searchFormItems: [
|
||||
{
|
||||
title: '左侧',
|
||||
span: 20,
|
||||
children: [
|
||||
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
|
||||
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
||||
{ span: 8, slots: { default: 'date' } },
|
||||
|
|
@ -108,8 +104,6 @@ export default {
|
|||
{ props: { type: 'reset', content: '重置' } }]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
|
|
@ -156,7 +150,7 @@ export default {
|
|||
{ field: 'domain', sortable: true, title: '网址域名', showHeaderOverflow: true },
|
||||
{ field: 'token', sortable: true, title: 'token', showHeaderOverflow: true },
|
||||
{ field: 'desc', sortable: true, title: '描述', showHeaderOverflow: true },
|
||||
{ title: '操作', slots: { default: 'op' }, width: 120 }
|
||||
{ title: '操作', slots: { default: 'op' }, width: 150 }
|
||||
]
|
||||
}
|
||||
};
|
||||
|
|
@ -357,9 +351,7 @@ export default {
|
|||
.gridPanel {
|
||||
height: calc(100vh - 400px);
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
.oplinks svg {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
|
|
|
|||
|
|
@ -37,11 +37,9 @@ export default {
|
|||
var pageData = {
|
||||
|
||||
actions: {
|
||||
update: `${BASE_URL.BASE_URL}/SqlServer/v1/sql/server/update`,
|
||||
get: `${BASE_URL.BASE_URL}/SqlServer/v1/sql/server/detail`,
|
||||
|
||||
update2: `${BASE_URL.BASE_URL}/Sms/v1/sms/update`,
|
||||
get2: `${BASE_URL.BASE_URL}/Sms/v1/sms/detail`
|
||||
update: `${BASE_URL.BASE_URL}/Sms/v1/sms/update`,
|
||||
get: `${BASE_URL.BASE_URL}/Sms/v1/sms/detail`
|
||||
},
|
||||
|
||||
|
||||
|
|
@ -65,8 +63,8 @@ export default {
|
|||
{ field: 'sign_name', title: '签名', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入签名' } } },
|
||||
{ field: 'access_key_secret', title: 'access_key_secret', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入access_key_secret' } } },
|
||||
{ field: 'accessKey_id', title: 'accessKey_id', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入accessKey_id' } } },
|
||||
{ field: 'limit_count', title: 'limit_count', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_count',type:"number" } } },
|
||||
{ field: 'limit_count_warning', title: 'limit_count_warning', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_count_warning',type:"number" } } },
|
||||
{ field: 'limit_count',dataRule:{type:"integer"}, title: 'limit_count', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入limit_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" } } },
|
||||
{ field: 'endpoint', title: 'endpoint', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入endpoint' } } }
|
||||
]
|
||||
}
|
||||
|
|
@ -88,8 +86,8 @@ export default {
|
|||
beid: this.dataId
|
||||
}
|
||||
}).then(a => {
|
||||
if(a.data && a.data.sql_server){
|
||||
this.formOptions.data = a.data.sql_server;
|
||||
if(a.data && a.data.sms){
|
||||
this.formOptions.data = a.data.sms;
|
||||
}else{
|
||||
this.formOptions.data.beid = this.dataId;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue