浏览代码

Merge remote-tracking branch 'origin/nursePush220401' into nursePush220401

zhouna 3 年之前
父节点
当前提交
dab931a301

+ 1 - 0
src/api/config.js

@@ -622,6 +622,7 @@ export default {
     'getBaseRecordById': '/api/cdssman/kl/conceptInfo/getRecordById',
     'saveBaseOrUpdateRecord': '/api/cdssman/kl/conceptInfo/saveOrUpdateRecord',
     'staticKnowledgeBaseInfo': '/api/cdssman/kl/conceptInfo/staticKnowledgeIndexWithoutInfo',
+	'staticKnowledge':'/api/cdssman/kl/conceptInfo/staticKnowledgeIndex',
     //规则测试相关
     'allRuleTest': '/api/cdssman/test/rule/allRuleTest',
     'autoGetCaseResultList': '/api/cdssman/test/rule/getCaseResultList',

+ 4 - 1
src/api/knowledgeLib.js

@@ -66,5 +66,8 @@ export default {
     collectionMatch(param) {
         return axios.post(urls.collectionMatch, param);
     },
-    
+    //获取关联静态知识
+	getStaicTypes(param){
+		return axios.post(urls.staticKnowledge, param);
+	}
 }

+ 208 - 76
src/components/knowledgeExtra/AddNewRule.vue

@@ -250,6 +250,7 @@
           :showMsg="showMsg"
           :showMsg2="showMsg2"
           :ruleTermCodeStr="ruleTermCodeStr"
+		  :isStaticChild='isStatic'
           @subTypeChange="subTypeChange"
           @searchConcept="searchConcept"
           @addGroup="addGroup"
@@ -263,6 +264,15 @@
           @ChildDataTypeChange="ChildDataTypeChange"
           @childSubCodeChange="childSubCodeChange"
         />
+		<AddNewRuleContent 
+			ref='ruleContent'
+			v-if="(!form.parHasSub && !tableShow) || contentRuls" 
+			@ruleContent='ruleContent'
+		    :isContent="isEdit"
+			:formEidtCopy='formEidt'
+			:isError='isErr'
+		>	
+		</AddNewRuleContent>
         <el-form-item>
           <div class="form_btn">
             <el-button
@@ -281,10 +291,20 @@
 import api from "@api/knowledgeLib.js";
 import { formRules } from "./rules";
 import AddNewRuleTable from "./AddNewRuleTable";
+import AddNewRuleContent from "./AddNewRuleContent";
 export default {
   name: "AddRule",
   data() {
     return {
+	  isErr:false, //控制护理开单项里面的错误提示
+	  staicData:{    //护理开单项里面的数据
+		  gljtxx:[],
+		  fjxx:''
+	  },
+	  formEidt:{},
+	  isEdit:false, //判断是否是编辑页面
+	  isStatic:false,  //判断关联静态知识的tabel列是否显示
+	  contentRuls:false, //判断规则内容为列表还是表单
       title: "规则维护-添加规则",
       ruleTypeList: [], //规则类型列表  1
       ruleTermTypeList: [], //规则术语类型列表  2
@@ -316,6 +336,8 @@ export default {
   created() {
     this.getTypeList();
     this.setDict();
+	
+	
     const param = this.$route.params;
     let info = param.data;
     if (info) {
@@ -328,13 +350,25 @@ export default {
       this.initEdidData();
     }
   },
+  mounted() {
+	
+  },
+  watch:{
+  },
   methods: {
+	//护理开单项子组件里面的传过来的值 
+	ruleContent(data){
+		this.staicData=data
+		console.log('staicData',this.staicData)  
+	},
     clearValidate(data) {
       this.$refs.ruleForm.clearValidate(data);
     },
     // 编辑初始化
     async initEdidData() {
       // 规则术语类型初始化
+	  this.contentRuls=false;
+	  this.isEdit=false;
       const newruleTermTypeList = await this.ruleTypeList.find(
         (it) => it.id == this.form.parRuleType
       );
@@ -343,16 +377,24 @@ export default {
       const obj = await this.ruleTermTypeList.find(
         (it1) => it1.code == this.form.parLenCode
       );
-      console.log(obj);
       this.baseTypeList = obj.subMenuList;
       this.subRuleMaxNum = obj.number;
-
       this.conceptList = [
         {
           conceptName: this.form.parlibName,
           conceptId: this.form.parConceptId,
         },
       ];
+	  // 加载护理开单项的推送内容
+	  if(!this.form.klRuleByIdSub){
+		  console.log(this.form)
+		  this.isEdit=true;
+		  this.contentRuls=true;
+		  this.formEidt=JSON.parse(JSON.stringify(this.form))
+		 return 
+	  }
+	  console.log('form',this.form)
+	  //加载列表规则内容
       if (this.form.parConceptId && this.checkFirstPlace && this.conceptList) {
         this.firstPlace = this.conceptList.find(
           (it) => it.conceptId === this.form.parConceptId
@@ -470,25 +512,42 @@ export default {
     //药品数据处理
     getDragData(info) {
       let dataArr = [];
-      let arr = JSON.parse(JSON.stringify(info.klRuleByIdSub));
-      arr.map((mapItem) => {
-        if (dataArr.length == 0) {
-          dataArr.push({ groupType: mapItem.groupType, List: [mapItem] });
-        } else {
-          let res = dataArr.some((item) => {
-            //判断相同日期,有就添加到当前项
-            if (item.groupType == mapItem.groupType) {
-              item.List.push(mapItem);
-              return true;
-            }
-          });
-          if (!res) {
-            //如果没找相同日期添加一个新对象
-            dataArr.push({ groupType: mapItem.groupType, List: [mapItem] });
-          }
-        }
-      });
-      this.getDragData2(info, dataArr);
+	  //处理修改接口请求的数据
+		//先将数据深拷贝,避免数据污染
+	  // let infoCopy=JSON.parse(JSON.stringify(info))
+	  // infoCopy.klRuleByIdSub=[];
+	  // if(info.klRuleByIdGroup.length>0){
+			// info.klRuleByIdGroup.forEach(item=>{
+			// 	let klRuleByIdSub=[...item]
+			// 	infoCopy.klRuleByIdSub=[...item.klRuleByIdSub]
+			// }) 
+	  // }
+	  // console.log('infoCopy.klRuleByIdSub',infoCopy)
+	  //判断是否存在klRuleByIdSub,没有就是护理开单项直接赋值
+	  if(!info.klRuleByIdGroup[0].klRuleByIdSub){
+		  this.form = JSON.parse(JSON.stringify(info));
+	  }else{
+		let arr = JSON.parse(JSON.stringify(info.klRuleByIdGroup[0].klRuleByIdSub));
+		arr.map((mapItem) => {
+		  if (dataArr.length == 0) {
+		    dataArr.push({ groupType: mapItem.groupType, List: [mapItem] });
+		  } else {
+		    let res = dataArr.some((item) => {
+		      //判断相同日期,有就添加到当前项
+		      if (item.groupType == mapItem.groupType) {
+		        item.List.push(mapItem);
+		        return true;
+		      }
+		    });
+		    if (!res) {
+		      //如果没找相同日期添加一个新对象
+		      dataArr.push({ groupType: mapItem.groupType, List: [mapItem] });
+		    }
+		  }
+		});
+		this.getDragData2(info, dataArr);  
+	  }
+      
     },
     getDragData2(info, dataArr) {
       let arr = [];
@@ -506,34 +565,92 @@ export default {
     submitForm(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
+			this.isErr=false;
           let params = JSON.parse(JSON.stringify(this.form));
-          params.klRuleInfoSaveSub = params.klRuleByIdSub;
-          delete params.klRuleByIdSub;
-          params.klRuleInfoSaveSub.forEach((item, i, arr) => {
-            if (i === 0) {
-              item.groupType = 1;
-            } else {
-              if (item.groupId == arr[i - 1].groupId) {
-                item.groupType = arr[i - 1].groupType;
-                item.subMsg = arr[i - 1].subMsg;
-              } else {
-                item.groupType = arr[i - 1].groupType + 1;
-              }
-            }
-          });
-          params.klRuleInfoSaveSub.forEach((ite) => {
-            delete ite.groupId;
-            delete ite.groupChildId;
-            delete ite.rowIndex;
-            delete ite.baseTypes;
-            delete ite.baseTermTypeList;
-            delete ite.conceptList;
-          });
-          if (this.parId) {
-            params.parId = this.isCopy ? undefined : this.parId;
-            params.parStatus = this.isCopy ? 1 : this.form.parStatus;
-          }
-          this.saveRule(params);
+		 if(params.klRuleByIdSub){
+			 params.klRuleInfoSaveSub = params.klRuleByIdSub;
+			 delete params.klRuleByIdSub;
+			 params.klRuleInfoSaveSub.forEach((item, i, arr) => {
+			   if (i === 0) {
+			     item.groupType = 1;
+			   } else {
+			     if (item.groupId == arr[i - 1].groupId) {
+			       item.groupType = arr[i - 1].groupType;
+			       item.subMsg = arr[i - 1].subMsg;
+			     } else {
+			       item.groupType = arr[i - 1].groupType + 1;
+			     }
+			   }
+			 });
+			 params.klRuleInfoSaveSub.forEach((ite) => {
+			   delete ite.groupId;
+			   delete ite.groupChildId;
+			   delete ite.rowIndex;
+			   delete ite.baseTypes;
+			   delete ite.baseTermTypeList;
+			   delete ite.conceptList;
+			 });
+			 console.log(params)
+		 }
+		 if (this.parId) {
+		   params.parId = this.isCopy ? undefined : this.parId;
+		   params.parStatus = this.isCopy ? 1 : this.form.parStatus;
+		 }
+		  //改造params,保存护理开单项类型的
+		 let  paramsCopy=JSON.parse(JSON.stringify(params))
+		 console.log(params)
+		 //先遍历子集klRuleInfoSaveSub
+		 paramsCopy.klRuleInfoSaveGroup=[];
+		 let obj={
+			 groupType:0,
+			 klRuleInfoSaveSub:[],
+		 }
+		 this.$set(obj,'ruleStatic',[])
+		 if(params.klRuleInfoSaveSub.length>0){
+			 params.klRuleInfoSaveSub.forEach((item)=>{
+			 	obj.groupType=item.groupType;
+			 	obj.klRuleInfoSaveSub=[item]
+			 	let objCopy=JSON.parse(JSON.stringify(obj))
+			 	//可以处理objCopy,将groupType相同的放入klRuleInfoSaveSub里面
+			 	paramsCopy.klRuleInfoSaveGroup.push(objCopy)		
+			 })
+		 }else{
+			 paramsCopy.klRuleInfoSaveGroup.push(obj)	
+		 }
+		 
+		//删除第二层的klRuleInfoSaveSub
+		if(paramsCopy.klRuleInfoSaveSub){
+			delete paramsCopy.klRuleInfoSaveSub
+		}  
+		console.log('paramsCopy',paramsCopy)
+		//判断护理开单是否附加信息和关联静态信息是否都没存在值
+		 let flagRule=false;
+			//附加信息
+		if(this.staicData.fjxx ){
+			paramsCopy.klRuleInfoSaveGroup[0].groupType='1';
+			paramsCopy.parMsg=this.staicData.fjxx ;	
+			flagRule=true;
+		}else{
+			paramsCopy.parMsg='';
+		}
+		//关联静态知识
+		if(this.staicData.gljtxx.length>0){
+			paramsCopy.klRuleInfoSaveGroup[0].groupType='1';
+			let rule={};
+			this.staicData.gljtxx.forEach((item,index)=>{
+				rule.conceptId=item;
+				rule.orderNo=index;
+				let ruleCopy=JSON.parse(JSON.stringify(rule))
+				paramsCopy.klRuleInfoSaveGroup[0].ruleStatic.push(ruleCopy);	  				
+			})	
+			flagRule=true;	
+		}
+		//如果是护理项并且静态知识和附加信息都没有值
+		if(this.contentRuls &&!flagRule){
+			this.isErr=true
+			return; 	  		
+		}
+          this.saveRule(paramsCopy);
         } else {
           return false;
         }
@@ -545,6 +662,13 @@ export default {
     },
     // table_form 规则类型选中
     ruleTypeChange(val) {
+	  //先初始化
+	  this.contentRuls=false;
+	  this.isStatic=false;
+	  //是否护理非开单项
+	  if(val===8){
+		  this.isStatic=true
+	  }
       this.form.parLenCode = "";
       const obj = this.ruleTypeList.find((it) => it.id === val);
       this.ruleTermTypeList = obj.subMenuList;
@@ -553,11 +677,24 @@ export default {
     },
     // table_form 规则术语类型选中
     ruleTermChange(val) {
+	  this.contentRuls=false;
       const obj = this.ruleTermTypeList.find((it) => it.code === val);
       this.form.parLenName = obj.name;
       this.baseTypeList = obj.subMenuList;
       this.subRuleMaxNum = obj.number;
       this.form.parHasSub = obj.subMenuList.length ? 1 : 0;
+	  if(!this.form.parHasSub){
+		  this.contentRuls=true;
+	  }
+	  //初始化护理开单项的输入框
+	  if(this.contentRuls){
+		  this.$nextTick(()=>{
+			  this.isEdit=false
+			  this.$refs.ruleContent.clearFormData()
+		  })
+	  		 
+	  }
+	  
       this.isShow = obj.subMenuList.length ? 1 : 0;
       this.setInitGroupData();
     },
@@ -623,10 +760,18 @@ export default {
               }
             } else {
               this.$set(item, "disabled", true);
+			  //因为字典传的时候第三个值没有护理所以重新赋值为9
+			  this.baseTypeList.forEach((item)=>{
+				  if(item.type==9){
+					  types[2]='9'
+				  }
+			  })
+			  
               this.$set(item, "subType", parseInt(types[2]));
               const subobj = this.baseTypeList.find(
                 (it) => it.type == types[2]
               );
+			 
               this.$set(item, "baseTermTypeList", subobj.subMenuList);
               this.$set(item, "subLenCode", types[1]);
               this.$set(item, "subDescription", this.firstPlace.conceptName);
@@ -636,6 +781,7 @@ export default {
             }
           });
           this.$set(this.form, "klRuleByIdSub", obj);
+		  console.log(this.form)
         }
       });
     },
@@ -737,23 +883,6 @@ export default {
             }
           });
         }
-        // const klRuleByIdSub = this.form.klRuleByIdSub;
-        // klRuleByIdSub.forEach((item, i) => {
-        //   arr.forEach((it) => {
-        //     if (item.groupId == it.groupId) {
-        //       if (key == 0) {
-        //         this.$set(item, "baseTypes", this.baseTypeList);
-        //       } else {
-        //          const arrList = this.baseTypeList.filter((it) => {
-        //           return it.type == 1;
-        //         });
-        //         if (i > 0) {
-        //           this.$set(item, "baseTypes", arrList);
-        //         }
-        //       }
-        //     }
-        //   });
-        // });
       }
       //危急值实验室子项目已选医学标准术语判断
       if (this.form.parHasSub && this.firstPlace) {
@@ -1204,18 +1333,21 @@ export default {
     },
   },
   watch: {
-    "form.klRuleByIdSub": {
+    form: {
       handler(val) {
-        this.form.klRuleByIdSub.forEach((item, i, arr) => {
-          if (i == 0) {
-            item.rowIndex = 1;
-          } else if (item.groupId == arr[i - 1].groupId) {
-            item.rowIndex = arr[i - 1].rowIndex;
-          } else {
-            item.rowIndex = arr[i - 1].rowIndex + 1;
-          }
-        });
+		if(val.klRuleByIdSub){
+			this.form.klRuleByIdSub.forEach((item, i, arr) => {
+			  if (i == 0) {
+			    item.rowIndex = 1;
+			  } else if (item.groupId == arr[i - 1].groupId) {
+			    item.rowIndex = arr[i - 1].rowIndex;
+			  } else {
+			    item.rowIndex = arr[i - 1].rowIndex + 1;
+			  }
+			});		  
+		}  
       },
+	  immediate: true,
       deep: true,
     },
   },
@@ -1270,6 +1402,6 @@ export default {
       return this.dict.indexOf(this.ruleTermCodeStrs) > -1;
     },
   },
-  components: { AddNewRuleTable },
+  components: { AddNewRuleTable,AddNewRuleContent },
 };
 </script>

+ 198 - 0
src/components/knowledgeExtra/AddNewRuleContent.vue

@@ -0,0 +1,198 @@
+<template>
+	<div class="contentRuls">
+		<p class="content_p">
+			<span class="strat_red">*</span>
+			<span class="content_ts">推送内容</span>
+			<span class="content_err" v-if="isError">静态信息和附加信息必须填写至少一项!</span>
+		</p>
+		<el-form :model="formData" label-width="120px"  ref="formData" :rules="rules" class="form-address">
+			<el-row>
+				<el-col :span='10'>
+					<el-form-item label="关联静态知识" prop="gljtxx">
+						<el-select 
+						  v-model.trim="formData.gljtxx" 
+						  placeholder="请选择" 
+						  multiple 
+						  collapse-tags 
+                          filterable
+                          remote
+                          :multiple-limit="50"
+                          reserve-keyword
+                          :remote-method="getStaicTypes"
+						  @visible-change="changeValue1"
+                          >
+							<el-option v-for="item in opts_type" :key="item.id" :label="item.name" :value="item.id"></el-option>
+						</el-select>
+					</el-form-item>
+				</el-col>
+			</el-row>
+			<el-row>
+				<el-col :span='24'>
+					<el-form-item label="附加信息" prop="fjxx">
+					    <el-input type="textarea" :rows="2" v-model.trim="formData.fjxx" resize="none" :maxlength='251'></el-input>
+					</el-form-item>
+				</el-col>
+			</el-row>
+		</el-form>
+	</div>
+</template>
+
+<script type="text/javascript">
+	import api from "@api/knowledgeLib.js";
+	export default {
+		name: "AddNewRuleContent",
+		props: {
+			isContent: {
+			  type: Boolean,
+			  default:false,
+			},
+			formEidtCopy:{
+				type:Object,
+			},
+			isError: {
+			  type: Boolean,
+			  default:false,
+			},
+		},
+		watch:{
+			isError:{
+				handler(val){
+					console.log(val)
+				}
+			}
+		},
+		data(){
+			return {
+				formData:{
+					gljtxx:[],//关联静态知识
+					fjxx:''  //附加信息			 
+				},
+				opts_type:[],
+				rules:{
+					fjxx:{min: 0,max: 250,message: '输入字符长度不能超过250位',trigger: 'change'}
+				},
+			} 		
+		},
+		  
+		created() {
+			console.log('formEidtCopy',this.formEidtCopy)
+			//编辑回显
+			if(this.isContent){
+				//关联静态知识
+				this.formEidtCopy.klRuleByIdGroup[0].klRuleStaticSub.forEach((item)=>{
+					let obj={}
+					obj.id=item.conceptId;
+					obj.name=item.name;
+					this.opts_type.push(obj)
+					this.formData.gljtxx.push(obj.id)
+				})
+				//附加信息
+				this.formData.fjxx=this.formEidtCopy.parMsg
+			}
+		},
+		mounted() {
+			this.getStaicTypes()
+		},
+		methods:{
+			//初始化
+			clearFormData(){
+			    this.formData={
+					gljtxx:[],//关联静态知识
+					fjxx:''  //附加信息			 
+				},
+				this.opts_type=[];
+				this.isErr=false;
+			},
+			//获取关联静态知识
+			getStaicTypes(query){
+				console.log(query)
+				let param={
+					inputStr: query,
+					types: [9]  
+				}
+				if (query == '') {
+				  return;
+				}
+				if (query){
+					api.getStaicTypes(param).then((res) => {
+						console.log(res)
+					  if (res.data.code == 0) {
+					    this.opts_type=res.data.data
+					  } else {
+					    this.$message({
+					      message: res.data.msg,
+					      type: "warning",
+					    });
+					  }
+					});
+				}
+				
+				
+			},
+			changeValue1(query){
+				console.log(this.formData.gljtxx)
+				if(this.formData.gljtxx.length==0){
+					this.opts_type=[]
+				}
+			},
+			 setName(val){
+				 if(val&&val.length>6){
+					val=val.substring(0,6)
+				 }
+				 return val
+			 }
+		},
+		watch:{
+			formData:{
+				handler(newName, oldName) {
+					if(newName){
+						this.$emit('ruleContent',this.formData)
+					}
+				},      
+				immediate: true,
+				deep: true    
+			}
+		}
+	}
+</script>
+
+<style  lang="less" scoped>
+	.contentRuls{
+		background: #fff;
+		padding: 20px;
+		padding-left: 30px;
+		padding-bottom:0px;
+		font-size: 14px;
+		color: #606266;
+		.content_p{
+			position: relative;
+			padding-bottom: 10px;
+			.strat_red{
+				color: #F56C6C;
+				position: absolute;
+				top: 0;
+				left: -10px;
+			}
+			.content_ts{
+				color: #333;
+				font-size: 16px;
+			}
+			.content_err{
+				color: red;
+				font-size: 14px;
+				margin-left: 20px;
+			}
+		}
+		.form-address{
+			/deep/.el-select{
+				width: 100%;
+			}
+			/deep/.el-select__tags-text {
+			    overflow: hidden;
+			    text-overflow: ellipsis;
+			    max-width: 90px;
+			}
+		}
+		
+	}
+</style>

+ 82 - 0
src/components/knowledgeExtra/AddNewRuleTable.vue

@@ -5,6 +5,21 @@
   margin-top: 10px;
   padding: 20px;
   box-sizing: border-box;
+  .c_red{
+	  color: red;
+	  font-size: 12px;
+	  margin-bottom: 10px;
+  }
+  .searchStatic{
+	  /deep/.el-select__tags{
+		   max-width: 210px !important;
+		}
+	  /deep/.el-select__tags-text {
+	      overflow: hidden;
+	      text-overflow: ellipsis;
+	      max-width: 90px;
+	  }
+  }
   /deep/ .el-table .el-input--mini .el-input__inner,
   .el-select {
     width: 100%;
@@ -123,7 +138,9 @@
 <template>
   <!-- :prop="`klRuleByIdSub[${scope.$index}].subDescription`" -->
   <div id="AddNewRuleTable">
+	<p v-if='isStaticChild' class="c_red">注:静态信息和附加信息必须填写至少一项!</p>
     <h4 style="margin-bottom: 24px">规则内容:</h4>
+	
     <!-- 隔行换色  :row-style="rowStyle" -->
     <el-table
       border
@@ -173,11 +190,39 @@
               type="textarea"
               :autosize="{minRows: 1,maxRows: 2}"
               placeholder="请输入附加信息"
+			  :maxlength='251'
               v-model.trim="scope.row.subMsg"
             ></el-input>
           </el-form-item>
         </template>
       </el-table-column>
+	  <el-table-column width="230px" label="关联静态信息" prop="ruleStatic" v-if='isStaticChild'>
+	    <template slot="header" slot-scope="scope">
+	      <div >关联静态信息</div>
+	    </template>
+	    <template slot-scope="scope">
+	     <el-form-item
+	        class="inp_box"
+	        :prop="`klRuleByIdSub[${scope.$index}].ruleStatic`"
+	      >
+	        <el-select
+			  class="searchStatic"
+	          v-model.trim="scope.row.ruleStatic" 
+	          placeholder="请选择" 
+	          multiple 
+	          collapse-tags 
+	          filterable
+	          remote
+	          :multiple-limit="50"
+	          reserve-keyword
+	          :remote-method="(val)=>getStaicTypes(val,scope.row,scope.$index)"
+			  @visible-change="(val)=>changeValue1(val,scope.row,scope.$index)"
+	          >
+	        	<el-option v-for="item in scope.row.ruleStaticList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+	        </el-select>
+	      </el-form-item>
+	    </template>
+	  </el-table-column>
       <el-table-column width="80px" v-if="maxNum && maxNum > 1" label="基础规则" prop="groupType">
         <template slot-scope="scope">
           <div class="btn_box">
@@ -566,6 +611,39 @@ export default {
     };
   },
   methods: {
+	getStaicTypes(val,row,ind){
+		console.log(val)
+		console.log('row',row)
+		let param={
+			inputStr: val,
+			types: [9]  
+		}
+		if (val == '') {
+		  return;
+		}
+		if (val){
+			api.getStaicTypes(param).then((res) => {
+				console.log(res)
+			  if (res.data.code == 0) {
+				  this.$set(row,'ruleStaticList',res.data.data)
+				  this.$forceUpdate()
+			 //    row.ruleStaticList=res.data.data
+				// console.log(row.ruleStaticList)
+			  } else {
+			    this.$message({
+			      message: res.data.msg,
+			      type: "warning",
+			    });
+			  }
+			});
+		}
+	},
+	changeValue1(val,row,ind){
+		console.log(row.ruleStatic)
+		if(row.ruleStatic.length==0){
+			 this.$set(row,'ruleStaticList',[])
+		}
+	},
     setScrollRight() {
       this.$nextTick(() => {
         this.$refs.table.bodyWrapper.scrollLeft = this.$refs.table.bodyWrapper.scrollWidth;
@@ -898,6 +976,10 @@ export default {
     ruleTermCodeStr: {
       default: null,
     },
+	isStaticChild:{
+		type:Boolean,
+		default: false,
+	}
   },
 };
 </script>