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/business.vue |   93 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 76 insertions(+), 17 deletions(-)

diff --git a/src/views/notification/business.vue b/src/views/notification/business.vue
index 179b73e..1eb3d8b 100644
--- a/src/views/notification/business.vue
+++ b/src/views/notification/business.vue
@@ -2,7 +2,7 @@
  * @Author: lzhe lzhe@example.com
  * @Date: 2024-03-26 10:28:33
  * @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-05-09 18:06:28
+ * @LastEditTime: 2024-05-10 12:08:41
  * @FilePath: /smart-web/src/views/master/person/main/index.vue
  * @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 -->
@@ -23,11 +23,11 @@
 			<div class="right-content">
 				<div class="content-title">
 					<span class="ct-span">閫氱煡鏂瑰紡</span>
-					<el-icon><Setting /></el-icon>
+					<el-icon @click="gojob"><Setting /></el-icon>
 				</div>
 				<el-row class="template-content-box">
 					<el-col :span="8" v-for="(item,index) in contentData">
-						<el-checkbox v-model="item.checked" label="閫夋嫨" size="large" />
+						<el-checkbox v-model="item.checked" label="閫夋嫨" size="large" @change="checkboxChange($event,index,item)"/>
 						<div class="box-top">
 							<div class="box-top-name">{{item.notifyName}}</div>
 							<div class="box-top-title">{{item.notifyTemplateName}}</div>
@@ -80,6 +80,7 @@
 		name: "business",
 		data(){
 			return {
+				businessKey: "",
 				isSaveing: false,
 				employeeLi: [],
 				organizationLi: [],
@@ -111,7 +112,6 @@
 		},
 		mounted(){
 			this.getTreeList();
-			this.getbusiness();
 			this.getgroupType();
 			this.getEmployeeList();
 		},
@@ -119,15 +119,49 @@
 			...ElementPlusIconsVue,saveDialog
 	    },
 		methods: {
+			gojob() {
+				window.open('http://116.63.148.72:8080/xxl-job-admin');
+			},
+			checkboxChange(e,index,item) {
+				var obj = {
+					businessKey: item.businessKey,
+					notifyType: item.notifyType,
+					status: e?"1":"0"
+				}
+				this.$HTTP.put("/api/blade-notify/business-notify/changeStatus",obj).then(res=> {
+					if(res.code == 200) {
+						this.getbusiness();  //鍒锋柊鍒楄〃
+					}
+				})
+			},
 			saveSubmit() {
-				
+				var empIds = [];
+				var orgIds = [];
+				this.employeeLi.forEach(item=> {
+					empIds.push(item.id);
+				})
+				this.organizationLi.forEach(item=> {
+					orgIds.push(item.id);
+				})
+				var obj = {
+					businessKey: this.businessKey,empIds,orgIds
+				}
+				this.$HTTP.post("/api/blade-notify/business-notify",obj).then(res=> {
+					if(res.code == 200) {
+						this.$message.success("淇濆瓨鎴愬姛");
+					}
+				})
 			},
 			resetData() {
 				this.employeeLi = [];
 				this.organizationLi = [];
 			},
 			radio1Change(val) {
-				this.getgroupType(val);
+				if(val == 1) {
+					this.getgroupType();
+				}else if(val == 2) {
+					this.getEmployeeList();
+				}
 			},
 			addOrganization() {
 				this.isaddOrganization = false;
@@ -194,29 +228,54 @@
 				})
 			},
 			getbusiness() {
-				this.$HTTP.get("/api/blade-notify/business-notify?businessKey=maintenance").then(res=> {
+				this.$HTTP.get(`/api/blade-notify/business-notify?businessKey=${this.businessKey}`).then(res=> {
 					if(res.code == 200) {
 						res.data.businessNotifyDTOList.forEach(item=> {
 							item.checked = (item.status == '0'?false: true);
 						})
 						this.contentData = res.data.businessNotifyDTOList;
+						this.employeeLi = res.data.defaultObject.empList || []; //閮ㄩ棬鍙嶆樉
+						this.organizationLi = res.data.defaultObject.orgList || []; //鍛樺伐鍙嶆樉
+						if(this.organizationLi !=  null ) {
+							this.isaddOrganization = false;
+						}
 					}
 				})
 			},
 			handleNodeClick(data) {
-				if(data.code) {
-					this.lastLevelId = data.id;
-					// this.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/page?current=1&size=15",obj).then(res=> {
-					// 	if(res.code == 200) {
-					// 		this.searchDataList = res.data.records;
-					// 	}
-					// })
+				if(data.businessKey) {
+					this.businessKey = data.businessKey;
+					this.getbusiness();
 				}
+			},
+			getLastLevelIds(tree) {  
+				if (tree.length === 0) return ""; // 濡傛灉娌℃湁鏍硅妭鐐癸紝杩斿洖绌� 
+				const lastLevelIds = []; 
+				const lastLevelCodes = [];
+				function traverseTree(node) {  
+					if(!node.children) {
+						lastLevelCodes.push(node);
+					}
+					if (node.children) {  
+						node.children.forEach(traverseTree); // 閫掑綊閬嶅巻瀛愯妭鐐�  
+					} else {  
+						lastLevelIds.push(node.id);
+					}
+				}  	
+				// 鍙亶鍘嗙涓�涓牴鑺傜偣  
+				traverseTree(tree[0]);  
+				return {lastLevelCodes,lastLevelId:lastLevelIds[0]}; // 杩斿洖lastLevelCodes锛氭病鏈塩ode鐨勬暟缁勩�俵astLevelId锛氭湁code鐨勭涓�涓猧d
 			},
 			getTreeList() {
 				this.$HTTP.get("/api/blade-notify/business-notify/tree").then(res=> {
 					if(res.code == 200) {
 						this.tableData = res.data;
+						this.lastLevelId = this.getLastLevelIds(this.tableData).lastLevelId;
+						this.$nextTick(()=>{
+							this.$refs.treeRef.setCurrentKey(this.lastLevelId);  //绗竴涓妭鐐圭殑绗竴涓瓙鑺傜偣鏈�鍚庝竴绾ч粯璁ら�変腑
+						})
+						this.businessKey = this.getLastLevelIds(this.tableData).lastLevelCodes[0].businessKey;
+						this.getbusiness();
 					}
 				})
 			},
@@ -284,7 +343,7 @@
 	justify-content: space-between;
 	margin: 24px 0 0 0;
     padding: 0 20px 0 10px;
-    border-left: 6px solid #3b8e8e;
+    border-left: 6px solid #409eff;
 }
 .ct-span {
 	color: #101010;
@@ -345,9 +404,9 @@
 }
 .tagItem {
 	margin: 10px 10px 10px 0;
-    background-color: #3b8e8e;
+    background-color: #409eff;
     color: #fff;
-    border-color: #3b8e8e;
+    border-color: #409eff;
     display: inline-block;
     font-size: 12px;
     padding: 4px 10px;

--
Gitblit v1.9.3