Commit c7b723d2 authored by honghy's avatar honghy

新增短信日志穿梭、节点国家多选、模板预览

parent 93b5cf8c
......@@ -104,22 +104,30 @@
</el-table-column>
<el-table-column label="模板1" align="center" prop="templateIdOne">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="look(smsTemplateMap.get(scope.row.templateIdOne))">
{{ scope.row.templateIdOne!=null?smsTemplateMap.get(scope.row.templateIdOne)!=null?smsTemplateMap.get(scope.row.templateIdOne).name:'':'' }}
</el-button>
</template>
</el-table-column>
<el-table-column label="模板2" align="center" prop="templateIdTwo">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="look(smsTemplateMap.get(scope.row.templateIdTwo))">
{{ scope.row.templateIdTwo!=null?smsTemplateMap.get(scope.row.templateIdTwo)!=null?smsTemplateMap.get(scope.row.templateIdTwo).name:'':'' }}
</el-button>
</template>
</el-table-column>
<el-table-column label="模板3" align="center" prop="templateIdThree">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="look(smsTemplateMap.get(scope.row.templateIdThree))">
{{ scope.row.templateIdThree!=null?smsTemplateMap.get(scope.row.templateIdThree)!=null?smsTemplateMap.get(scope.row.templateIdThree).name:'':'' }}
</el-button>
</template>
</el-table-column>
<el-table-column label="模板4" align="center" prop="templateIdFour">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="look(smsTemplateMap.get(scope.row.templateIdFour))">
{{ scope.row.templateIdFour!=null?smsTemplateMap.get(scope.row.templateIdFour)!=null?smsTemplateMap.get(scope.row.templateIdFour).name:'':'' }}
</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('创建时间')" align="center" prop="createTime" width="180">
......@@ -158,8 +166,8 @@
<el-option key="0" label="其他" :value="parseInt(0)" />
</el-select>
</el-form-item>
<el-form-item label="国家" prop="countryId">
<el-select filterable clearable v-model="form.countryId" :placeholder="$t('请选择国家')" @change="handleChangeCountry">
<el-form-item label="国家" prop="tel">
<el-select filterable clearable multiple v-model="form.countryIds" :placeholder="$t('请选择国家')" @change="handleChangeCountry">
<el-option key="0" label="全部" :value="parseInt(0)" />
<el-option key="-1" label="其他" :value="parseInt(-1)" />
<el-option v-for="dict in countryList"
......@@ -246,6 +254,74 @@
</div>
</el-dialog>
<!-- 预览模板 -->
<el-dialog :visible.sync="open2" width="500px" append-to-body>
<el-form label-width="140px">
<el-form-item :label="$t('短信渠道编号')" prop="channelId">
<el-select v-model="form2.channelId" :placeholder="$t('请选择短信渠道编号')">
<el-option v-for="channel in channelOptions"
:key="channel.id" :value="channel.id"
:label="channel.signature + '【' + getDictDataLabel(DICT_TYPE.SYSTEM_SMS_CHANNEL_CODE, channel.code) + '】'" />
</el-select>
</el-form-item>
<el-form-item :label="$t('发送类型')" prop="messageType">
<el-select v-model="form2.messageType" placeholder="请选择发送类型">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_TEMPLATE_MESSAGE_TYPE)"
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
</el-select>
</el-form-item>
<el-form-item :label="$t('短信类型')" prop="type">
<el-select v-model="form2.type" :placeholder="$t('请选择短信类型')">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_TEMPLATE_TYPE)"
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
</el-select>
</el-form-item>
<el-form-item label="节点" prop="nodeValue">
<el-select v-model="form2.nodeValue" placeholder="请选择节点类型">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_NODE_NODE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item :label="$t('运输方式')" prop="transportId">
<el-select v-model="form2.transportId" :placeholder="$t('请选择运输方式类型')">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"
:key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
<el-option key="0" label="无" :value="parseInt(0)" />
</el-select>
</el-form-item>
<el-form-item :label="$t('模板编号')" prop="code">
<el-input v-model="form2.code" :placeholder="$t('请输入模板编号')" />
</el-form-item>
<el-form-item :label="$t('模板名称')" prop="name">
<el-input v-model="form2.name" :placeholder="$t('请输入模板名称')" />
</el-form-item>
<el-form-item :label="$t('开启状态')" prop="status">
<el-radio-group v-model="form2.status">
<el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
:key="dict.value" :label="parseInt(dict.value)">{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="短信API模板编号" prop="apiTemplateId">
<el-input v-model="form2.apiTemplateId" placeholder="请输入短信 API 的模板编号" />
</el-form-item>
<el-form-item :label="$t('模板内容')" prop="content">
<el-input type="textarea" v-model="form2.content" :placeholder="$t('请输入模板内容')" />
</el-form-item>
<el-form-item :label="$t('备注')" prop="remark">
<el-input v-model="form2.remark" :placeholder="$t('请输入备注')" />
</el-form-item>
<el-form-item label="语言" prop="language">
<el-select v-model="form2.language" placeholder="请选择语言">
<el-option v-for="dict in this.getDictDatas(DICT_TYPE.SYSTEM_SMS_TEMPLATE_LANGUAGE)"
:key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
......@@ -253,6 +329,7 @@
import { createSmsNode, updateSmsNode, deleteSmsNode, getSmsNode, getSmsNodePage, exportSmsNodeExcel, testSms } from "@/api/system/sms/smsNode";
import {getCountryListAll} from '@/api/ecw/country'
import {getSmsTemplateList} from '@/api/system/sms/smsTemplate'
import { getSimpleSmsChannels } from "@/api/system/sms/smsChannel";
export default {
name: "SmsNode",
......@@ -295,11 +372,15 @@ export default {
},
// 表单参数
form: {},
form2: {},
open2: false,
// 短信渠道
channelOptions: [],
// 表单校验
rules: {
nodeValue: [{ required: true, message: "节点不能为空", trigger: "blur" }],
transportId: [{ required: true, message: "运输方式不能为空", trigger: "blur" }],
countryId: [{ required: true, message: "国家区号不能为空", trigger: "change" }],
countryCodes: [{ required: true, message: "国家区号不能为空", trigger: "change" }],
countryCode: [{ required: true, message: "国家区号不能为空", trigger: "blur" }],
status: [{ required: true, message: "启用状态不能为空", trigger: "change" }],
templateIdOne: [{ required: true, message: "模板1不能为空", trigger: "change" }],
......@@ -315,11 +396,12 @@ export default {
countryCode: [{ required: true, message: "区号不能为空", trigger: "blur" }],
messageType: [{ required: true, message: "发送类型不能为空", trigger: "blur" }],
nodeTemplateSn: [{ required: true, message: "模板序号不能为空", trigger: "blur" }],
templateParams: [{ required: true, message: "参数(JSON)不能为空", trigger: "blur" }],
},
node: {}
};
},
async created() {
created() {
const that = this
this.getList();
getCountryListAll().then(res => {
......@@ -329,14 +411,18 @@ export default {
return item
})
})
this.countryMap.set(0,{id:0,nameZh: '全部'})
this.countryMap.set(-1,{id:-1,nameZh: '其他'})
this.countryMap.set(0,{id:0,nameZh: '全部',tel:0})
this.countryMap.set(-1,{id:-1,nameZh: '其他',tel:-1})
getSmsTemplateList().then(res => {
this.smsTemplateList = res.data
for(var i=0;i<res.data.length;i++){
this.smsTemplateMap.set(res.data[i].id,res.data[i])
}
})
// 获得短信渠道
getSimpleSmsChannels().then(response => {
this.channelOptions = response.data;
})
},
methods: {
/** 查询列表 */
......@@ -408,6 +494,13 @@ export default {
if (!valid) {
return;
}
var countryCodes=[];
var countryIds = this.form.countryIds
for(var i = 0; i < countryIds.length; i++) {
countryCodes.push(this.countryMap.get(countryIds[i]).tel)
}
this.form.countryId = [...this.form.countryIds].join(',')
this.form.countryCode = [...countryCodes].join(',')
// 修改的提交
if (this.form.id != null) {
updateSmsNode(this.form).then(response => {
......@@ -453,11 +546,11 @@ export default {
},
// 切换国家
handleChangeCountry(val) {
if(val==0||val==-1) {
this.form.countryCode = val
} else {
this.form.countryCode = this.countryList.filter(a => a.id == val)[0].tel
}
// if(val==0||val==-1) {
// this.form.countryCode = val
// } else {
// this.form.countryCode = this.countryList.filter(a => a.id == val)[0].tel
// }
},
test(row) {
this.sendSmsForm = {
......@@ -491,6 +584,10 @@ export default {
this.sendSmsOpen = false;
});
});
},
look(rows) {
this.form2 = rows
this.open2 = true
}
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment