xiezhiming %!s(int64=3) %!d(string=hai) anos
pai
achega
93f8cbab28
Modificáronse 1 ficheiros con 78 adicións e 30 borrados
  1. 78 30
      src/components/cdssManage/plan/AddPlan.vue

+ 78 - 30
src/components/cdssManage/plan/AddPlan.vue

@@ -202,7 +202,7 @@
                   <ul v-show="isOpenCloseItems[i]">
                     <li
                       v-for="(item, index) in group.planDetails"
-                      :key="item.id"
+                      :key="index"
                     >
                       <div class="move_btn">
                         <div class="move_top">
@@ -213,6 +213,8 @@
                             @mouseout="upActive = null"
                             @click="
                               handleMove('up', {
+								code:item.code,
+								id:item.id,
                                 name: item.name,
                                 orderNo: item.orderNo,
                                 groupIndex: i,
@@ -241,6 +243,8 @@
                             @mouseout="downActive = null"
                             @click="
                               handleMove('down', {
+								code:item.code,
+								id:item.id,
                                 name: item.name,
                                 orderNo: item.orderNo,
                                 groupIndex: i,
@@ -259,6 +263,7 @@
                           <div class="img_box" v-else></div>
                         </div>
                       </div>
+					  
                       <div class="list_right" v-if="!item.list">
                         <div class="list_right">
                           <div class="right_l">
@@ -296,6 +301,7 @@
                           </div>
                         </div>
                       </div>
+					 
                       <div v-else style="width: 100%">
                         <div
                           class="list_right list_right1"
@@ -336,6 +342,12 @@
                             </el-select>
                           </div>
                         </div>
+						<div class="list_right" style="width: 100%;">
+									<div v-for="(items,index) in item.planDetails" :key="items.id">
+											<p>{{items.name}}</p>
+									</div>			  
+						 
+						</div>
                       </div>
                     </li>
                   </ul>
@@ -378,6 +390,7 @@ export default {
       }
     };
     return {
+		saveId:'',
 	   hvaeId:'',
 	   codeId:'',
 	  objOne:{},
@@ -468,11 +481,12 @@ export default {
               status: item.status
             };
           });
+		  let arrCopy=params.planDetailParent[0].planDetailSub
 		  //将可能诊断和已有诊断的子集放回树里面
 		  if(this.isEdit){
-			  params.planDetailParent[0].planDetailSub=this.buildTree(params.planDetailParent[0].planDetailSub,'id','parentId','9715') 
+			  params.planDetailParent[0].planDetailSub=this.buildTree(arrCopy,'id','parentId',arrCopy[0].parentId,'save') 
 		  }else{
-			 params.planDetailParent[0].planDetailSub=this.buildTree(params.planDetailParent[0].planDetailSub,'id','parentId','1') 
+			 params.planDetailParent[0].planDetailSub=this.buildTree(arrCopy,'id','parentId',arrCopy[0].parentId,'save') 
 		  }
           api.savePlanInfoDatas(params).then((res) => {
             if (res.data.code === "0") {
@@ -520,9 +534,32 @@ export default {
        *      groupIndex:当前组的index
        *    }
        */
-      const { name, orderNo, itemIndex, groupIndex } = obj;
+	  
+	  
+      const { name, orderNo, itemIndex, groupIndex,id } = obj;
+	  let arrCopy
+	  // 移动之前先合成树
+	  if(groupIndex===0){
+	  		arrCopy=this.form.planDetailSub[0].planDetails
+	  		arrCopy=this.buildTree(arrCopy,'id','parentId',arrCopy[0].parentId) 
+			arrCopy.forEach((item)=>{
+				if (item.name === "开单合理性") {
+				  item.id = item.id + "d";
+				}
+			})
+	  }
+	  this.form.planDetailSub[0].planDetails=arrCopy;
+	  console.log(arrCopy)
+	  //重新找itemIndex,通过id找itemIndex;
+	  let itemIndexs;
+	  this.form.planDetailSub[0].planDetails.forEach((item,index)=>{
+		  if(item.id==id){
+			  itemIndexs=index
+		  }
+	  })
+	  console.log(itemIndexs)
       // exIndex获取到要交换的Index值
-      let exIndex = type === "up" ? itemIndex - 1 : itemIndex + 1;
+      let exIndex = type === "up" ? itemIndexs - 1 : itemIndexs + 1;
       // exOrderNo获取到要交换的orderNo
       const exOrder = this.form.planDetailSub[groupIndex].planDetails[exIndex];
       // 赋值一份新的数据
@@ -531,15 +568,26 @@ export default {
       );
       // 交换orderNo
       newList[exIndex].orderNo = orderNo;
-      newList[itemIndex].orderNo = exOrder.orderNo;
-      if (newList[itemIndex].list) {
-        newList[itemIndex].list[0].orderNo = exOrder.orderNo;
+      newList[itemIndexs].orderNo = exOrder.orderNo;
+      if (newList[itemIndexs].list) {
+        newList[itemIndexs].list[0].orderNo = exOrder.orderNo;
       }
-
       // 排序
       newList = this.groupSort(newList);
       // 更新数据
       this.form.planDetailSub[groupIndex].planDetails = newList;
+	  // 移动完成之后再展开
+	  if(groupIndex===0){
+	  	this.$nextTick(()=>{
+				// 改数组里面的可能诊断和已有诊断
+				this.form.planDetailSub[0].planDetails=this.tree2Array(this.form.planDetailSub[0],this.form.planDetailSub[0].parentId)
+				this.form.planDetailSub[0].planDetails.shift()
+				this.$forceUpdate()
+				
+	  	})	  
+	  }
+	  
+	  
     },
     // 获取医院下拉列表
     getHospitalInfo() {
@@ -624,6 +672,7 @@ export default {
 				// 改数组里面的可能诊断和已有诊断
 				this.form.planDetailSub[0].planDetails=this.tree2Array(this.form.planDetailSub[0],this.form.planDetailSub[0].parentId)
 				this.form.planDetailSub[0].planDetails.shift()
+				this.$forceUpdate()
 			})
           }
         }
@@ -679,25 +728,27 @@ export default {
 	// 将treeObj中的所有对象,放入一个数组中,要求某个对象在另一个对象的children时,其parent_id是对应的另一个对象的id
 	// 其原理实际上是数据结构中的广度优先遍历
 	tree2Array(treeObj, rootid) {
-	   const temp = [];  // 设置临时数组,用来存放队列
-	   const out = [];    // 设置输出数组,用来存放要输出的一维数组
+	   let temp = [];  // 设置临时数组,用来存放队列
+	   let out = [];    // 设置输出数组,用来存放要输出的一维数组
+	   console.log(out)
+	   
 	   temp.push(treeObj);
 	   // 首先把根元素存放入out中
 	   let parentId = rootid;
-	   const obj = this.deepCopy(treeObj);
+	   let obj = this.deepCopy(treeObj);
 	   obj.parentId = parentId;
 	   delete obj['planDetails'];
 	   out.push(obj)
 	   // 对树对象进行广度优先的遍历
 	   while(temp.length > 0) {
-	       const first = temp.shift();
-	       const planDetails = first.planDetails;
+	       let first = temp.shift();
+	       let planDetails = first.planDetails;
 	       if(planDetails && planDetails.length > 0) {
 	           parentId = first.id;
-	           const len = first.planDetails.length;
+	           let len = first.planDetails.length;
 	           for(let i=0;i<len;i++) {
 	               temp.push(planDetails[i]);
-	               const obj = this.deepCopy(planDetails[i]);
+	               let obj = this.deepCopy(planDetails[i]);
 	               obj.parentId = parentId;
 	               delete obj['planDetails'];
 	               out.push(obj)
@@ -709,22 +760,10 @@ export default {
 	   let arrs=[];
 	   let flag;
 	   let haveFlag;
-	   //修改
-	   if(this.isEdit){
-		 // //可能诊断
-		 flag=null;
-		  //可能诊断
-		  arr = this.someFor(arr,out,'maydiagnose',flag);
-		  //已诊断
-		  arrs = this.someFor(arrs,arr,'hasdiagnose',haveFlag);  
-	   }
-	   else{
-		//新增
 		 //可能诊断
 		 arr = this.someFor(arr,out,'maydiagnose',flag);
 		 //已诊断
 		 arrs = this.someFor(arrs,arr,'hasdiagnose',haveFlag);  
-	   }
 	   return arrs
 	},
 	// 将可能诊断和已诊断的子集放在各自的下面
@@ -742,6 +781,7 @@ export default {
 				flag=flag+1
 				arr.splice(flag,0,item)
 				oldArr.splice(index,item)
+				
 			}else{
 				arr.push(item)
 			}
@@ -768,14 +808,19 @@ export default {
 	    }
 	},
 	// 将一个数组,变成能够以树形展示的对象
-	buildTree(array,id,parent_id,num) {
+	buildTree(array,id,parent_id,num,save) {
 	    // 创建临时对象
 	    let temp = {};
 	    // 创建需要返回的树形对象
 	    let tree = {};
 	    // 先遍历数组,将数组的每一项添加到temp对象中
 	    for(let i in array) {
+			if(array[i].name==="开单合理性" && !save){
+				array[i].id.toString()
+				array[i].id=array[i].id.replace("d",""); 
+			}
 	        temp[array[i][id]] = array[i];
+			delete temp[array[i][id]].planDetailSub
 	    }
 	    // 遍历temp对象,将当前子节点与父节点建立连接
 	    for(let i in temp) {
@@ -792,7 +837,8 @@ export default {
 						temp[temp[i][parent_id]].planDetailSub = new Array();
 					}
 				}
-	             // temp[temp[i][parent_id]].planDetails.push(temp[i]);
+				
+	             temp[temp[i][parent_id]].planDetails.push(temp[i]);
 				 temp[temp[i][parent_id]].planDetailSub.push(temp[i])
 				 
 	        } else {
@@ -807,9 +853,11 @@ export default {
 	},
 	//判断可能诊断下面的文字没有图片
 	isCode(item){
+		
 		if(item.code=='maydiagnose'){
 			this.codeId=item.id
 		}
+		
 		if(item.parentId==this.codeId){
 			return false
 		}else{