From dfd7249fad876dee96480d70ff6f5ebd60207617 Mon Sep 17 00:00:00 2001
From: zhiyong.zhou <zhiyong.zhou@highdatas.com>
Date: 星期一, 04 三月 2024 18:11:06 +0800
Subject: [PATCH] 树形方法写到工具类中

---
 src/views/admin/FormProcessDesign.vue               |   78 ------------------
 src/views/workspace/process/ProcessInstanceTabs.vue |   36 --------
 src/utils/utils.js                                  |   72 ++++++++++++++++++
 3 files changed, 77 insertions(+), 109 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index d201755..f5e1761 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -37,5 +37,77 @@
 
 		return data;
 	},
+	convertToTreeData(data, parent,index,parentId) {
+		const tempJson = data.find(f =>
+			f.index_no === index
+		)
+		parent.children = {
+			"id": tempJson.id,
+			"parentId": parentId,
+			"name": "瀹℃壒浜�",
+			"type": "APPROVAL",
+			"children":{},//蹇呴』瑕� 涓嶇劧閫変腑鐨勫�兼棤娉曚紶閫�
+			"props":
+				{
+					"assignedType": "ASSIGN_USER",
+					"nobody": {
+						"handler": "TO_PASS",
+						"assignedUser": []
+					},
+					"refuse": {
+						"type": "TO_END",
+						"target": ""
+					},
+					"assignedUser": [{"id": tempJson.board_id||tempJson.rule_code, "name": tempJson.name,"type":tempJson.board_id!=null?"group":"staff"}],
+					"approvalGroup":tempJson.board_id!=null?{"id":tempJson.board_id,"name":tempJson.name}:"",
+					"staffGroup":tempJson.board_id!=null?"":{"id":tempJson.rule_code,"name":tempJson.name},
+				}
+		}
+		//鑺傜偣鏁扮粍鐨勫ぇ灏� 澶т簬褰撳墠寰幆鐨� 璇存槑杩樻湁瀛愰」 缁х画寰幆
+		if (data.length >index) {
+			let getChildren = this.convertToTreeData(data, parent.children, index+1,parent.children.id)
+			parent.children=getChildren
+		}
+		return parent;
+	},
+	//瀹℃壒娴佹爲褰㈢粨鏋勮浆鎹负json
+	dataTree(data, index, parentId) {
+		let result = [];//瀛樻斁缁撴灉
+		let names = [];//瀛樻斁瀹℃壒浜�
+		let ruleCode = [];//鏋舵瀯缁�
+		data.props.assignedUser.forEach(org => names.push(org.name));
+		let ids = []
+		data.props.assignedUser.forEach(org => ids.push(org.id));
+		// 淇敼鐨勬椂鍊� 鏍规嵁閫変腑绫诲瀷鏄灦鏋勮繕鏄鎵圭粍 娓叉煋鏁版嵁
+		if(data.props.assignedUser[0].type==='staff'){
+			ids = [];
+			data.props.assignedUser.forEach(org => ruleCode.push(org.id));
+		}else{
+			//鍒ゆ柇閫変腑鐨勬暟鎹被鍨嬫槸鏋舵瀯杩樻槸瀹℃壒缁� 濡傛灉鏄灦鏋� 灏嗗鎵圭粍娓呯┖ board_id缃负绌�
+			if (data.props.staffGroup!=undefined&& Object.keys(data.props.staffGroup).length!==0) {
+				ids = [];
+				data.props.assignedUser.forEach(org => ruleCode.push(org.id));
+			}
+		}
+
+		//鎻掑叆娴佺▼鏁扮粍椤�
+		result.push(
+			{
+				name: String(names).replaceAll(',', '銆�'),
+				id: data.id||'',
+				parent_id: parentId||'',
+				index_no: index,
+				board_id: ids.length > 0 ? String(ids).replaceAll(',', '銆�') : null,
+				rule_code: ruleCode.length > 0 ? String(ruleCode).replaceAll(',', '銆�') : null
+			}
+		) // 鍙彇褰撳墠鑺傜偣鐨勪俊鎭紝涓嶅寘鎷� children
+		//濡傛灉涓嬮潰杩樻湁瀛愰」 缁х画寰�涓嬭鏁版嵁
+		if (data.children!==undefined&&Object.keys(data.children).length !== 0) {
+			let getChildren = this.dataTree(data.children, index + 1, parentId)
+			result = result.concat(getChildren)
+		}
+
+		return result
+	},
 
 };
\ No newline at end of file
diff --git a/src/views/admin/FormProcessDesign.vue b/src/views/admin/FormProcessDesign.vue
index 538567f..9f326f4 100644
--- a/src/views/admin/FormProcessDesign.vue
+++ b/src/views/admin/FormProcessDesign.vue
@@ -105,41 +105,7 @@
 
   },
   methods: {
-    convertToTreeData(data, parent,index,parentId) {
-      //index浠�1寮�濮� 浠巌ndex_no=1鐨勮妭鐐瑰紑濮嬪線涓嬩竴涓釜鎵�
-        const tempJson = data.find(f =>
-            f.index_no === index
-        )
-        //瑙f瀽瀛愬鎵硅妭鐐�
-        parent.children = {
-          "id": tempJson.id,
-          "parentId": parentId,
-          "name": "瀹℃壒浜�",
-          "type": "APPROVAL",
-          "children":{},//蹇呴』瑕� 涓嶇劧閫変腑鐨勫�兼棤娉曚紶閫�
-          "props":
-              {
-                "assignedType": "ASSIGN_USER",
-                "nobody": {
-                  "handler": "TO_PASS",
-                  "assignedUser": []
-                },
-                "refuse": {
-                  "type": "TO_END",
-                  "target": ""
-                },
-                "assignedUser": [{"id": tempJson.board_id||tempJson.rule_code, "name": tempJson.name,"type":tempJson.board_id!=null?"group":"staff"}],
-                "approvalGroup":tempJson.board_id!=null?{"id":tempJson.board_id,"name":tempJson.name}:"",
-                "staffGroup":tempJson.board_id!=null?"":{"id":tempJson.rule_code,"name":tempJson.name},
-              }
-        }
-        //濡傛灉浼犺繃鏉ョ殑瀹℃壒鑺傜偣鏁扮粍澶т簬褰撳墠绱㈠紩  璇存槑涓嬮潰杩樻湁
-      if (data.length >index) {
-        let getChildren = this.convertToTreeData(data, parent.children, index+1,parent.children.id)
-         parent.children=getChildren
-      }
-      return parent;
-    },
+
     loadFormInfo(formId) {
       let param = {"id": formId}
 
@@ -148,7 +114,7 @@
         let form = rsp.data.data;
         form.logo = ""
         form.formItems = []
-        form.process =this.convertToTreeData(form.steps, {
+        form.process =this.$Utils.convertToTreeData(form.steps, {
           "id": form.id, "parentId": null,
           "type": "ROOT",
           "name": "鍙戣捣浜�",
@@ -284,45 +250,7 @@
     publishProcess() {
       this.validateDesign()
     },
-    //瀹℃壒娴佹爲褰㈢粨鏋勮浆鎹负json
-    dataTree(data, index, parentId) {
-      let result = [];//瀛樻斁缁撴灉
-      let names = [];//瀛樻斁瀹℃壒浜�
-      let ruleCode = [];//鏋舵瀯缁�
-      data.props.assignedUser.forEach(org => names.push(org.name));
-      let ids = []
-      data.props.assignedUser.forEach(org => ids.push(org.id));
-      // 淇敼鐨勬椂鍊� 鏍规嵁閫変腑绫诲瀷鏄灦鏋勮繕鏄鎵圭粍 娓叉煋鏁版嵁
-      if(data.props.assignedUser[0].type==='staff'){
-        ids = [];
-        data.props.assignedUser.forEach(org => ruleCode.push(org.id));
-      }else{
-        //鍒ゆ柇閫変腑鐨勬暟鎹被鍨嬫槸鏋舵瀯杩樻槸瀹℃壒缁� 濡傛灉鏄灦鏋� 灏嗗鎵圭粍娓呯┖ board_id缃负绌�
-        if (data.props.staffGroup!=undefined&& Object.keys(data.props.staffGroup).length!==0) {
-          ids = [];
-          data.props.assignedUser.forEach(org => ruleCode.push(org.id));
-        }
-      }
 
-      //鎻掑叆娴佺▼鏁扮粍椤�
-      result.push(
-          {
-            name: String(names).replaceAll(',', '銆�'),
-            id: data.id||'',
-            parent_id: parentId||'',
-            index_no: index,
-            board_id: ids.length > 0 ? String(ids).replaceAll(',', '銆�') : null,
-            rule_code: ruleCode.length > 0 ? String(ruleCode).replaceAll(',', '銆�') : null
-          }
-      ) // 鍙彇褰撳墠鑺傜偣鐨勪俊鎭紝涓嶅寘鎷� children
-      //濡傛灉涓嬮潰杩樻湁瀛愰」 缁х画寰�涓嬭鏁版嵁
-      if (data.children!==undefined&&Object.keys(data.children).length !== 0) {
-        let getChildren = this.dataTree(data.children, index + 1, parentId)
-        result = result.concat(getChildren)
-      }
-
-      return result
-    },
     doPublish() {
       this.$confirm('纭鍙戝竷鍚庢祦绋嬬珛鍗崇敓鏁堬紝鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '鍙戝竷',
@@ -336,7 +264,7 @@
         data.id = processNew.id||''
         let i = 1;
         //杞暟鎹粨鏋�
-        data.steps = this.dataTree(processNew.children, i, processNew.id);
+        data.steps = this.$Utils.dataTree(processNew.children, i, processNew.id);
         let template = {data}
         createFlow(template).then(rsp => {
           this.$message.success("鍒涘缓娴佺▼鎴愬姛")
diff --git a/src/views/workspace/process/ProcessInstanceTabs.vue b/src/views/workspace/process/ProcessInstanceTabs.vue
index ab8158f..118080f 100644
--- a/src/views/workspace/process/ProcessInstanceTabs.vue
+++ b/src/views/workspace/process/ProcessInstanceTabs.vue
@@ -23,39 +23,7 @@
     };
   },
   methods: {
-    convertToTreeData(data, parent,index,parentId) {
-      const tempJson = data.find(f =>
-          f.index_no === index
-      )
-      this.$store.state.noTakeList .push(tempJson.id)
-      parent.children = {
-        "id": tempJson.id,
-        "parentId": parentId,
-        "name": "瀹℃壒浜�",
-        "type": "APPROVAL",
-        "props":
-            {
-              "assignedType": "ASSIGN_USER",
-              "nobody": {
-                "handler": "TO_PASS",
-                "assignedUser": []
-              },
-              "refuse": {
-                "type": "TO_END",
-                "target": ""
-              },
-              "assignedUser": [{"id": tempJson.board_id||tempJson.rule_code, "name": tempJson.name,"type":tempJson.board_id!=null?"group":"staff"}],
-              "approvalGroup":tempJson.board_id!=null?{"id":tempJson.board_id,"name":tempJson.name}:"",
-              "staffGroup":tempJson.board_id!=null?"":{"id":tempJson.rule_code,"name":tempJson.name},
-            }
-      }
-      //鑺傜偣鏁扮粍鐨勫ぇ灏� 澶т簬褰撳墠寰幆鐨� 璇存槑杩樻湁瀛愰」 缁х画寰幆
-      if (data.length >index) {
-        let getChildren = this.convertToTreeData(data, parent.children, index+1,parent.children.id)
-        parent.children=getChildren
-      }
-      return parent;
-    },
+
     getProcessInfo() {
       this.loading = true;
       let param = {"id": this.processInstanceId}
@@ -92,7 +60,7 @@
     getFlowDetail(param){
       getFlowDetail(param).then(rsp => {
         let form = rsp.data.data;
-        form.process =this.convertToTreeData(form.steps, {
+        form.process =this.$Utils.convertToTreeData(form.steps, {
           "id": form.id, "parentId": null,
           "type": "ROOT",
           "name": "鍙戣捣浜�",

--
Gitblit v1.8.0