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