Browse Source

提交修改

xiezhiming 3 năm trước cách đây
mục cha
commit
2358f968f2
1 tập tin đã thay đổi với 88 bổ sung15 xóa
  1. 88 15
      src/components/icss/plan/AddPlan.vue

+ 88 - 15
src/components/icss/plan/AddPlan.vue

@@ -1,4 +1,5 @@
 
+
 <style lang="less" scoped>
   .addPlanWrapper {
     padding: 20px 60px 120px 60px;
@@ -396,7 +397,8 @@
                 this.$refs.form.validate((valid) => {
                     if (valid) {
                         const hospitalId = this.$route.params.hospitalId;
-                        let params = JSON.parse(JSON.stringify(this.form));
+                        let params =JSON.parse(JSON.stringify(this.form))
+                        let paramsCopy=JSON.parse(JSON.stringify(params))
                         params.hospitalId=hospitalId;
                         params.planDetailParent = params.planDetailSub;
                         delete params.planDetailSub;
@@ -410,22 +412,54 @@
                         });
                         params.planDetailParent[0].planDetails.splice(index, 1, ...arr);
                       console.log(this.$route.params)
+					  //改变param里面的可能诊断和已诊断的数据结构
+					  let objArr=[...this.updateDateParam(paramsCopy,"maydiagnose")] //可能诊断
+					  let objhasArr=[...this.updateDateParam(paramsCopy,"hasdiagnose")]  //已有诊断
+					  let objArrOne=objArr[0];  //获取可能诊断的对象
+					  delete objArrOne.list     //删除可能诊断对象中的多余list
+					  let objhasArrOne=objhasArr[0];
+					  delete objhasArrOne.list
+					  objArr.splice(0,1)
+					  objhasArr.splice(0,1)
                         params.planDetailParent = params.planDetailParent.map((item) => {
                             let newArr = [];
                             if (item.planDetails) {
-                                newArr = item.planDetails.map((child) => {
-                                    return {
-                                        code: child.code,
-                                        hospitalId: hospitalId,
-                                        name: child.name,
-                                        number: child.number,
-                                        orderNo: child.orderNo,
-                                        planId: child.planId,
-                                        remark: child.remark,
-                                        status: child.status,
-                                        value: child.value
-                                    };
-                                });
+                              newArr = item.planDetails.map((child) => {
+                            	  let obj={
+                                  code: child.code,
+                                  hospitalId: hospitalId,
+                                  name: child.name,
+                                  number: child.number,
+                                  orderNo: child.orderNo,
+                                  planId: child.planId,
+                                  remark: child.remark,
+                                  status: child.status,
+                                  value: child.value,
+                            	  id:child.id,
+                            	  parentId:child.parentId,
+                            	  planDetailSub:null,
+                                };
+                            	  if(child.code==='maydiagnose'){
+                            		  obj=JSON.parse(JSON.stringify(objArrOne));
+                            		  obj.hospitalId=hospitalId
+                            		  obj.planDetailSub=[];
+                            		  objArr.forEach(item=>{
+                            			  item.hospitalId=hospitalId
+                            			  obj.planDetailSub.push(item)
+                            		  })
+                            	  }else if(child.code==='hasdiagnose'){
+                            		  obj=obj=JSON.parse(JSON.stringify(objhasArrOne));
+                            		  obj.hospitalId=hospitalId
+                            		  obj.planDetailSub=[];
+                            		  objhasArr.forEach(item=>{
+                            			 item.hospitalId=hospitalId
+                            		  	 obj.planDetailSub.push(item)				  
+                            		  })
+                            	  }else{
+                            		obj= obj 
+                            	  }
+                            	  return obj
+                              });
                             }
                             return {
                                 code: item.code,
@@ -534,6 +568,12 @@
                     if (res.data.code === "0") {
                         this.form.planDetailSub = res.data.data.planDetailDefault;
                         this.fomatArr();
+						//改变可能诊断和已诊断的数据添加list数组,方便页面渲染
+						this.$nextTick(()=>{
+							this.updateDate(this.form.planDetailSub[0].planDetails,'maydiagnose')
+							this.updateDate(this.form.planDetailSub[0].planDetails,'hasdiagnose')
+							this.$forceUpdate()		  
+						})
                     }
                 });
             },
@@ -570,6 +610,12 @@
                         if (defaultRes.data.code === "0") {
                             // 合并默认数据
                             this.mergeDefaultPlans(defaultRes.data.data.planDetailDefault);
+							this.$nextTick(()=>{
+								// 改数组里面的可能诊断和已有诊断
+								this.updateDate(this.form.planDetailSub[0].planDetails,'maydiagnose')
+								this.updateDate(this.form.planDetailSub[0].planDetails,'hasdiagnose')
+								this.$forceUpdate()			  
+							})
                         }
                     }
                 } catch (err) {
@@ -617,7 +663,33 @@
                     }
                 });
                 this.fomatArr();
-            }
+            },
+			// 修改请求数据中的可能诊断和已诊断的数据模式
+			updateDate(array,name){
+				array.forEach(item=>{
+					if(item.code===name){
+						this.$set(item,'list',[])
+						if(Array.isArray(item.planDetails)){
+							item.planDetails.forEach((items)=>{
+								item.list.push(items)
+							})
+						}
+						let itemCopy=JSON.parse(JSON.stringify(item))
+						delete itemCopy.planDetails
+						item.list.unshift(itemCopy)
+					}
+				})
+			},
+			// 修改params里面的可能诊断和已诊断数据
+			updateDateParam(arrayCopy,name){
+				let dataList=[]
+				arrayCopy.planDetailSub[0].planDetails.forEach((item)=>{
+					if(item.code===name){
+						dataList=item.list
+					}
+				})
+				return dataList
+			}, 
         },
 
         created() {
@@ -638,3 +710,4 @@
         }
     };
 </script>
+