From dcf9c9e0410fe1186239e3f8d6f7bdc789c08010 Mon Sep 17 00:00:00 2001 From: lzhe <lzhe@example.com> Date: 星期三, 05 六月 2024 18:00:39 +0800 Subject: [PATCH] 1 --- src/views/notification/sendDebug.vue | 139 +++++++++++++++++++++++++++++----------------- 1 files changed, 87 insertions(+), 52 deletions(-) diff --git a/src/views/notification/sendDebug.vue b/src/views/notification/sendDebug.vue index d325e8d..ffedd71 100644 --- a/src/views/notification/sendDebug.vue +++ b/src/views/notification/sendDebug.vue @@ -4,28 +4,32 @@ <el-row> <el-col :span="24"> <el-form-item label="閫氱煡鏂瑰紡"> - <el-select style="width: 100%" v-model="sendForm.provider"> - <el-option v-for="item in providerList" :key="item.id" :label="item.name" :value="item.id"/> + <el-select style="width: 100%" v-model="sendForm.provider" @change="changeProvider"> + <el-option v-for="item in providerList" :key="item.configEntity.provider" :label="item.name" :value="item.configEntity.provider"/> </el-select> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="鏈嶅姟鍟�"> - <el-select style="width: 100%" v-model="sendForm.type"> - <el-option v-for="item in providerInfos" :key="item.id" :label="item.name" :value="item.id"/> + <el-select style="width: 100%" v-model="sendForm.type" disabled> + <el-option v-for="item in providerInfos" :key="item.type" :label="item.name" :value="item.type"/> </el-select> </el-form-item> </el-col> <el-col :span="24"> - <el-form-item label="鎺ユ敹浜�"> - <el-input v-model="sendForm.pname" placeholder="鎺ユ敹浜�" clearable></el-input> + <el-form-item label="鎺ユ敹浜�" prop="notifiedParty"> + <el-input v-model="sendForm.notifiedParty" placeholder="鎺ユ敹浜�" clearable></el-input> </el-form-item> </el-col> - <!-- <el-col :span="24" v-for="(item,index) in sendForm.configuration"> - <el-form-item :label="item.pname" v-if="item.name != 'properties'"> + <el-col :span="24" v-for="(item,index) in sendContentForm.properties"> + <el-form-item :label="item.name" v-if="item.property != 'content' && item.property != 'attachments'"> <el-input v-model="item.value" :placeholder="item.name" clearable></el-input> </el-form-item> - <el-form-item :label="item.pname" v-if="item.name == 'properties'"> + <!-- 鍐呭-瀵屾枃鏈� --> + <el-form-item :label="item.name" v-if="item.property == 'content'"> + <avue-ueditor v-model="item.value" v-bind="options"></avue-ueditor> + </el-form-item> + <!-- <el-form-item :label="item.name" v-if="item.property == 'content'"> <div class="array-content"> <el-row v-for="(item1,index1) in item.value"> <el-col v-for="(item2,index2) in item1" :span="7"> @@ -38,8 +42,8 @@ </el-col> </el-row> </div> - </el-form-item> - </el-col> --> + </el-form-item> --> + </el-col> </el-row> </el-form> <template #footer> @@ -54,6 +58,20 @@ emits: ['success', 'closed'], data() { return { + options: { + //鏅�氫笂浼犲湴鍧� + action: "/api/blade-resource/oss/endpoint/put-file", + customConfig: {},//wangEditor缂栬緫鐨勯厤缃� + headers:{Authorization: "Basic c2FiZXI6c2FiZXJfc2VjcmV0"}, + data:{}, + propsHttp: { + home:'', + url:'url', + res: 'data' + }, + }, + tableData: {}, + sendContentForm: {}, providerInfos: [], providerList: [], serviceproviders: "", @@ -67,17 +85,29 @@ isSaveing: false, //琛ㄥ崟鏁版嵁 sendForm: { - provider: "" + provider: "", + notifiedParty: "", + template: "", + type: "" }, //楠岃瘉瑙勫垯 sendRules: { - pname:[{required: true, message: '璇疯緭鍏ユ帴鏀朵汉'}] + notifiedParty:[{required: true, message: '璇疯緭鍏ユ帴鏀朵汉'}] }, } }, mounted() { }, methods: { + changeProvider(val) { + var id = ""; + this.providerList.forEach(item=> { + if(item.configEntity.provider == val) { + id = item.id; + } + }) + this.getServiceProviders(id); + }, addpro(index,index1) { this.sendForm.configuration[index].value.push([ {name: 'name', value: ''}, @@ -90,29 +120,47 @@ }, //鏄剧ず open(tableData,mode='add'){ - this.providerInfos = tableData[0].providerInfos; //鏈嶅姟鍟� - this.getMetadata(); //鍐呭 + this.tableData = tableData; var providerList = []; tableData.forEach(item=> { if(item.isBindBusiness) { providerList.push(item); } }) - this.providerList = providerList; - this.$nextTick(()=> { - this.sendForm.provider = this.providerList[0].id; - this.sendForm.type = this.providerInfos[0].id; - - console.log(this.providerList,this.sendForm.provider) - }) + this.providerList = providerList; //閫氱煡鏂瑰紡list + this.getServiceProviders(this.providerList[0].id); //鑾峰彇渚涘簲鍟� this.mode = mode; this.visible = true; return this }, - getMetadata() { - this.$HTTP.get(`/api/blade-notify/notifier/template/dingTalk/dingTalkMessage/config/metadata`).then(res=> { + getServiceProviders(id) { + console.log(id,this.tableData) + this.tableData.forEach(item=> { + if(item.id == id) { + this.providerInfos = item.providerInfos; //鏈嶅姟鍟� + this.sendForm.provider = item.configEntity.provider; + this.sendForm.type = item.id; + } + }) + this.$nextTick(()=> { + this.getMetadata(this.sendForm.provider); //鍐呭 + }) + }, + getMetadata(val) { + var url = ""; + if(val == "dingTalkMessage") { + url = `/api/blade-notify/notifier/template/dingTalk/dingTalkMessage/config/metadata`; + }else if(val == "qyTextMessage") { + url = `/api/blade-notify/notifier/template/weiXinQY/qyTextMessage/config/metadata`; + }else if(val == "systemDefault") { + url = `/api/blade-notify/notifier/template/internalMessage/systemDefault/config/metadata`; + }else if(val == "embedded") { + url = `/api/blade-notify/notifier/template/email/embedded/config/metadata`; + } + this.$HTTP.get(url).then(res=> { if(res.code == 200) { - + this.sendContentForm = res.data; + console.log(this.sendContentForm,8) }else { this.$message.error(res.msg); } @@ -120,44 +168,31 @@ }, //琛ㄥ崟鎻愪氦鏂规硶 sendSubmit(){ - var configuration = {}; - this.sendForm.configuration.forEach(item=> { - configuration[item.name] = item.value; + var template = {}; + this.sendContentForm.properties.forEach(item=> { + template[item['property']] = item.value; }) var obj = { - configuration: configuration, + notifiedParty: this.sendForm.notifiedParty, + provider: this.sendForm.provider, + template: JSON.stringify(template), + type: this.sendForm.type } - if(this.mode == 'edit') { - obj.id = this.sendForm.configEntity.id; - obj.name = this.sendForm.configEntity.name; - obj.provider = this.sendForm.configEntity.provider; - obj.type = this.sendForm.configEntity.type; - if(this.sendForm.configEntity.type == "email") { //閭欢 - var newArr = []; - configuration.properties.forEach(item=> { - var formattedObject = {}; - item.forEach(item => { - formattedObject[item.name] = item.value; - }); - newArr.push(formattedObject); - }) - configuration.properties = newArr; + var id = ""; + this.providerList.forEach(item=> { + if(item.id == this.sendForm.type){ + id = item.configEntity.id; } - } - if(this.mode == 'add') { //鏂板 - obj.name = this.sendForm.pname; - obj.provider = this.serviceproviders; - obj.type = this.sendForm.id; - } + }) this.$refs.dialogForm.validate(async (valid) => { if (valid) { this.isSaveing = true; - this.$HTTP.put("/api/blade-notify/notifier/config",obj).then(res=> { + this.$HTTP.post(`/api/blade-notify/notifier/${id}/send`,obj).then(res=> { this.isSaveing = false; if(res.code == 200) { this.$emit('success', this.sendForm, this.mode); this.visible = false; - this.$message.success("缂栬緫鎴愬姛"); + this.$message.success("鍙戦�佹垚鍔�"); }else { this.$alert(res.message, "鎻愮ず", {type: 'error'}); } -- Gitblit v1.9.3