瀏覽代碼

提交护理非开单项及规则查询

xiezhiming 3 年之前
父節點
當前提交
231d10ee82

+ 95 - 29
src/components/knowledgeExtra/AddNewRule.vue

@@ -251,6 +251,7 @@
           :showMsg2="showMsg2"
           :ruleTermCodeStr="ruleTermCodeStr"
 		  :isStaticChild='isStatic'
+		  :isRedMsgs='isRedMsg'
           @subTypeChange="subTypeChange"
           @searchConcept="searchConcept"
           @addGroup="addGroup"
@@ -296,6 +297,7 @@ export default {
   name: "AddRule",
   data() {
     return {
+	  isRedMsg:[],
 	  isErr:false, //控制护理开单项里面的错误提示
 	  staicData:{    //护理开单项里面的数据
 		  gljtxx:[],
@@ -359,7 +361,6 @@ export default {
 	//护理开单项子组件里面的传过来的值 
 	ruleContent(data){
 		this.staicData=data
-		console.log('staicData',this.staicData)  
 	},
     clearValidate(data) {
       this.$refs.ruleForm.clearValidate(data);
@@ -369,6 +370,7 @@ export default {
       // 规则术语类型初始化
 	  this.contentRuls=false;
 	  this.isEdit=false;
+	  this.isRedMsg=[];
       const newruleTermTypeList = await this.ruleTypeList.find(
         (it) => it.id == this.form.parRuleType
       );
@@ -387,13 +389,35 @@ export default {
       ];
 	  // 加载护理开单项的推送内容
 	  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.parRuleType==8){
+		  this.isStatic=true;
+		  if(Array.isArray(this.form.klRuleByIdGroup)){
+			  let itemCopy={}
+			  this.form.klRuleByIdGroup.forEach((item,index)=>{
+					if(Array.isArray(item.klRuleStaticSub)){
+						item.klRuleStaticSub.forEach((items,ind)=>{
+							this.$set(this.form.klRuleByIdSub[index],'ruleStatic',[])
+							this.$set(this.form.klRuleByIdSub[index],'ruleStaticList',[])
+							let obj={
+								id:items.conceptId,
+								name:items.name
+							}
+							itemCopy=JSON.parse(JSON.stringify(obj))
+							this.form.klRuleByIdSub[index].ruleStatic.push(itemCopy.id);
+							this.form.klRuleByIdSub[index].ruleStaticList.push(itemCopy)
+						})
+										  
+					}
+			  })
+		  }
+	  }
 	  //加载列表规则内容
       if (this.form.parConceptId && this.checkFirstPlace && this.conceptList) {
         this.firstPlace = this.conceptList.find(
@@ -505,7 +529,7 @@ export default {
               this.$set(item, "baseTermTypeList", screenArr);
             }
           }
-          console.log(this.form);
+		  
         }
       });
     },
@@ -528,7 +552,6 @@ export default {
 				}
 			}) 
 	  }
-	  console.log('infoCopy',infoCopy)
 	  //判断是否存在klRuleByIdSub,没有就是护理开单项直接赋值
 	  if(!info.klRuleByIdGroup[0].klRuleByIdSub){
 		  this.form = JSON.parse(JSON.stringify(info));
@@ -572,6 +595,7 @@ export default {
       this.$refs[formName].validate((valid) => {
         if (valid) {
 			this.isErr=false;
+			this.isRedMsg=[];
           let params = JSON.parse(JSON.stringify(this.form));
 		 if(params.klRuleByIdSub){
 			 params.klRuleInfoSaveSub = params.klRuleByIdSub;
@@ -596,7 +620,6 @@ export default {
 			   delete ite.baseTermTypeList;
 			   delete ite.conceptList;
 			 });
-			 console.log(params)
 		 }
 		 if (this.parId) {
 		   params.parId = this.isCopy ? undefined : this.parId;
@@ -611,22 +634,42 @@ export default {
 			 klRuleInfoSaveSub:[],
 		 }
 		 this.$set(obj,'ruleStatic',[])
+		 debugger
 		 if(params.klRuleInfoSaveSub&&Array.isArray(params.klRuleInfoSaveSub)){
-			 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)		
-			 })
+			 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)
+			 }
 		 }else{
+			 
 			 paramsCopy.klRuleInfoSaveGroup.push(obj)	
 		 }
-		 
-		//删除第二层的klRuleInfoSaveSub
-		if(paramsCopy.klRuleInfoSaveSub){
+		 debugger
+		if(paramsCopy.klRuleInfoSaveSub&&Array.isArray(paramsCopy.klRuleInfoSaveSub)){
+			//护理非开单项的关联静态知识的处理
+			paramsCopy.klRuleInfoSaveSub.forEach((item,ind)=>{
+				let ruleObj={}
+				if(Array.isArray(item.ruleStatic)){
+					item.ruleStatic.forEach((items,index)=>{
+						ruleObj.conceptId=items;
+						ruleObj.orderNo=index;
+						let ruleObjCopy=JSON.parse(JSON.stringify(ruleObj))
+						//将关联静态知识的对象放入数组内
+						paramsCopy.klRuleInfoSaveGroup[ind].ruleStatic.push(ruleObjCopy)
+					})
+				}
+			})
+			//删除第二层的klRuleInfoSaveSub
 			delete paramsCopy.klRuleInfoSaveSub
 		}  
+		debugger
 		//判断护理开单是否附加信息和关联静态信息是否都没存在值
 		 let flagRule=false;
 			//附加信息
@@ -654,7 +697,27 @@ export default {
 			this.isErr=true
 			return; 	  		
 		}
-          this.saveRule(paramsCopy);
+		debugger
+		//如果护理非开单项关联静态知识和附加信息都没有值
+		if(this.isStatic){
+			if(Array.isArray(paramsCopy.klRuleInfoSaveGroup)){
+				paramsCopy.klRuleInfoSaveGroup.forEach((item)=>{
+					if(Array.isArray(item.klRuleInfoSaveSub)){
+						item.klRuleInfoSaveSub.forEach(items=>{
+							if(items.ruleStatic&&Array.isArray(items.ruleStatic)){
+								if(items.ruleStatic.length>0||items.subMsg){
+									this.isRedMsg.push(false)
+								}else{
+									this.isRedMsg.push(true)
+									return
+								}
+							}
+						})
+					}
+				})
+			}
+		}
+        this.saveRule(paramsCopy);
         } else {
           return false;
         }
@@ -669,6 +732,7 @@ export default {
 	  //先初始化
 	  this.contentRuls=false;
 	  this.isStatic=false;
+	  this.isRedMsg=[]
 	  //是否护理非开单项
 	  if(val===8){
 		  this.isStatic=true
@@ -682,6 +746,7 @@ export default {
     // table_form 规则术语类型选中
     ruleTermChange(val) {
 	  this.contentRuls=false;
+	  this.isRedMsg=[]
       const obj = this.ruleTermTypeList.find((it) => it.code === val);
       this.form.parLenName = obj.name;
       this.baseTypeList = obj.subMenuList;
@@ -764,13 +829,12 @@ export default {
               }
             } else {
               this.$set(item, "disabled", true);
-			  //因为字典传的时候第三个值没有护理所以重新赋值为9
-			  this.baseTypeList.forEach((item)=>{
-				  if(item.type==9){
-					  types[2]='9'
-				  }
-			  })
-			  
+			  // //因为字典传的时候第三个值没有护理所以重新赋值为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]
@@ -785,7 +849,6 @@ export default {
             }
           });
           this.$set(this.form, "klRuleByIdSub", obj);
-		  console.log(this.form)
         }
       });
     },
@@ -868,7 +931,6 @@ export default {
           const list = obj.subMenuList.filter((it) => {
             return it.code == val && it.remark.split("|")[0] == 3;
           });
-          console.log(obj.subMenuList);
           const dragArr = list[0].remark.split("|")[1].split(",");
           this.dragArr = dragArr;
           arr[1].dragArr = arr[2].dragArr = dragArr;
@@ -962,7 +1024,6 @@ export default {
         subLenCode: "",
         dataType: "",
       };
-
       if (typeof arg.index == "number") {
         // 添加规则 直接在当前位置之后添加
         this.form.klRuleByIdSub.splice(arg.index + 1, 0, obj);
@@ -1006,6 +1067,7 @@ export default {
           }
         }
       } else {
+		 
         // 添加分组 在列表中相同groupId之后添加
         // 添加分组时判断是否需要加disabled和添加默认值
         if (this.form.parHasSub && this.firstPlace) {
@@ -1016,6 +1078,12 @@ export default {
               .match(new RegExp(this.firstPlace.checkedType + "-\\d+", "g")) ||
             [];
           const types = dict[0].split("-");
+		  // //因为字典传的时候第三个值没有护理所以重新赋值为9,因为这里后端逻辑问题先注释后面可能有用
+		  // this.baseTypeList.forEach((item)=>{
+		  // 	if(item.type==9){
+		  // 		types[2]='9'	  					  
+		  // 	}			  
+		  // })
           this.$set(obj, "disabled", true);
           this.$set(obj, "subType", parseInt(types[2]));
           const subobj = this.baseTypeList.find((it) => it.type == types[2]);
@@ -1394,8 +1462,6 @@ export default {
       );
     },
     showHasSub() {
-      console.log(this.ruleTermCodeStrs);
-      console.log(this.subDict);
       if (this.ruleTermCodeStrs.length > 2) {
         console.log(this.subDict.indexOf(this.ruleTermCodeStrs) != -1);
         return this.subDict.indexOf(this.ruleTermCodeStrs) != -1;

+ 1 - 1
src/components/knowledgeExtra/AddNewRuleContent.vue

@@ -8,7 +8,7 @@
 		<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-form-item label="关联静态信息" prop="gljtxx">
 						<el-select 
 						  v-model.trim="formData.gljtxx" 
 						  placeholder="请选择" 

+ 45 - 8
src/components/knowledgeExtra/AddNewRuleTable.vue

@@ -1,3 +1,4 @@
+
 <style lang="less" scoped>
 #AddNewRuleTable {
   width: 100%;
@@ -25,6 +26,18 @@
     width: 100%;
     font-size: 12px;
   }
+  .el-form-item.is-success{
+	  .redMsg{
+	  	  /deep/.el-textarea__inner{
+	  		  border-color:#FF0000 !important;
+	  	  }
+	  }
+  }
+  .redMsg{
+  	  /deep/.el-input__inner{
+  		  border-color:#FF0000 !important;
+  	  }
+  }
   .btn_box {
     width: 100%;
     height: 100%;
@@ -191,7 +204,9 @@
               :autosize="{minRows: 1,maxRows: 2}"
               placeholder="请输入附加信息"
 			  :maxlength='251'
+			  :class="(scope.row.subMsg|| !isRedMsg[scope.$index])?'':'redMsg'"
               v-model.trim="scope.row.subMsg"
+			  @change="subMsgChange(scope.row.subMsg,scope.$index)"
             ></el-input>
           </el-form-item>
         </template>
@@ -204,6 +219,7 @@
 	     <el-form-item
 	        class="inp_box"
 	        :prop="`klRuleByIdSub[${scope.$index}].ruleStatic`"
+			:class="(!isRedMsg[scope.$index])?'':'redMsg'"
 	      >
 	        <el-select
 			  class="searchStatic"
@@ -215,6 +231,7 @@
 	          remote
 	          :multiple-limit="50"
 	          reserve-keyword
+			  @change="ruleStaticChanges(scope.$index)"
 	          :remote-method="(val)=>getStaicTypes(val,scope.row,scope.$index)"
 			  @visible-change="(val)=>changeValue1(val,scope.row,scope.$index)"
 	          >
@@ -608,12 +625,23 @@ export default {
       rules: tableRules,
       theRef: null,
       code: "",
+	  isRedMsg:[], //附加信息和关联静态知识显示红色边框的判断值,替代品,修改是不能直接修改prop的值
     };
   },
   methods: {
+	  //护理非开单项时附加信息和关联静态知识输入值时取消红色边框
+	subMsgChange(value,index){
+		if(this.isRedMsgs[index]&&value){
+			this.$set(this.isRedMsg,index,false)
+		}
+	}, 
+	//护理非开单项时附加信息和关联静态知识输入值时取消红色边框
+	ruleStaticChanges(index){
+		if(this.isRedMsgs[index]){
+			this.isRedMsg[index]=false
+		}
+	}, 
 	getStaicTypes(val,row,ind){
-		console.log(val)
-		console.log('row',row)
 		let param={
 			inputStr: val,
 			types: [9]  
@@ -623,12 +651,9 @@ export default {
 		}
 		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,
@@ -639,7 +664,6 @@ export default {
 		}
 	},
 	changeValue1(val,row,ind){
-		console.log(row.ruleStatic)
 		if(row.ruleStatic.length==0){
 			 this.$set(row,'ruleStaticList',[])
 		}
@@ -717,6 +741,7 @@ export default {
     cellStyle({ row, column, rowIndex, columnIndex }) {
       if (column.label == "组" || column.label == "基础规则") return {};
       if (column.label == "附加信息") return { "padding-top": "14px" };
+	  if (column.label == "关联静态信息") return { "padding-top": "0px" };
       return { "vertical-align": "top", "padding-top": "14px" };
     },
     // 最大值 选择rule
@@ -890,7 +915,7 @@ export default {
           };
         }
       } else {
-        if (columnIndex == 0 || columnIndex == 1) {
+        if (columnIndex == 0 || columnIndex == 1 ||(column.label==='关联静态信息')) {
           const _row = this.spanArr[rowIndex];
           const _col = _row > 0 ? 1 : 0;
           return {
@@ -924,6 +949,7 @@ export default {
   },
   components: {},
   mounted() {
+	  this.isRedMsg=this.isRedMsgs;
     // this.theRef
     // console.log('mounted');
     // let that = this;
@@ -933,6 +959,13 @@ export default {
     //   false
     // );
   },
+  watch:{
+	isRedMsgs:{
+		handler(val){
+			this.isRedMsg=val;
+		}
+	}  
+  },
   created() {
     this.numTypes = localStorage.getItem("zskNumDict");
     this.getSpanArr(this.klRuleByIdSub);
@@ -979,7 +1012,11 @@ export default {
 	isStaticChild:{
 		type:Boolean,
 		default: false,
-	}
+	},
+	isRedMsgs:{
+		type:Array,
+		default: [],
+	},
   },
 };
 </script>

+ 20 - 0
src/components/knowledgeExtra/DiagCheckRule.vue

@@ -15,6 +15,9 @@
       <span v-if="baseLibName" class="span1"
         ><i>基础医学标准术语:</i>{{ baseLibName }}</span
       >
+	  <span v-if="staticName" class="span1"
+	    ><i>关联静态信息:</i>{{ staticName }}</span
+	  >
       <!--<el-form :inline="true" style="margin-top: 10px;height: 45px;">
 				<el-form-item label="基础规则术语类型:">
 					<el-select v-model="filter.baseLibType" clearable placeholder="请选择" size="mini">
@@ -55,6 +58,11 @@
           title="附加信息"
           show-overflow-tooltip
         ></ux-table-column>
+		<ux-table-column field="names" title="关联静态信息"  width="170" show-overflow-tooltip>
+		  <template slot-scope="scope">
+		    {{ transDataString(scope.row) }}
+		  </template>
+		</ux-table-column>
         <ux-table-column field="baseType" title="基础规则类型">
           <template slot-scope="scope">
             {{ transDataMap(baseTypeList)[scope.row.baseType] }}
@@ -159,8 +167,18 @@ export default {
     "description",
     "baseLibType",
     "baseLibName",
+	"staticName"
   ],
   methods: {
+	transDataString(data){
+		let array=[]
+		if(data.names&&Array.isArray(data.names)){
+			array=[...data.names];
+			array=array.join(',')
+			return array
+		}
+		return '';
+	},
     transDataMap(data) {
       const obj = {};
       data.map((it) => {
@@ -181,6 +199,7 @@ export default {
         .zskgetRuleDetail(param)
         .then((res) => {
           if (res.data.code == "0") {
+			  
             let datalist = [];
             const data = res.data.data.ruleConditionDTOList;
             this.total = data.length;
@@ -210,6 +229,7 @@ export default {
               }
             }
             this.tdSpanArr = mergeArr;
+			
             this.$refs.plxTable.reloadData(datalist);
           } else {
             this.$message(res.data.msg || "获取详情失败,请稍后重试");

+ 21 - 2
src/components/knowledgeExtra/RuleCheck.vue

@@ -34,8 +34,8 @@
             size="mini"
           >
             <el-option
-              v-for="item in ruleTermTypeList"
-              :key="item.val"
+              v-for="(item,index) in ruleTermTypeList"
+              :key="index"
               :label="item.name"
               :value="item.val"
             >
@@ -76,6 +76,14 @@
             clearable
           ></el-input>
         </el-form-item>
+		<el-form-item label="关联静态信息:">
+		  <el-input
+		    size="mini"
+		    v-model.trim="filter.staticName"
+		    placeholder="请输入"
+		    clearable
+		  ></el-input>
+		</el-form-item>
         <el-form-item>
           <el-button size="mini" @click="filterDatas">确认</el-button>
         </el-form-item>
@@ -135,6 +143,7 @@
         :description="filter.description"
         :baseLibType="filter.baseLibType"
         :baseLibName="filter.baseLibName"
+		:staticName="filter.staticName"
       >
       </CheckRule>
       <div style="text-align: center">
@@ -169,6 +178,8 @@ export default {
         libName: "", //医学标准术语
         baseLibType: "", //基础规则术语类型
         baseLibName: "", //基础医学标准术语
+		staticName: "", //关联静态信息
+		
       },
       ruleTeamNum: 0, //规则组个数
       ruleTypeList: [], //规则类型列表  1
@@ -222,9 +233,13 @@ export default {
         .zskgetDict()
         .then((res) => {
           if (res.data.code == "0") {
+			  
             const data = res.data.data;
+			
             this.ruleTypeList = data[-101];
+			console.log(data[-102])
             this.ruleTermTypeList = data[-102];
+			
             this.baseTypeList = data[-103];
             this.baseTermTypeList = data[-104];
           }
@@ -293,6 +308,7 @@ export default {
         baseLibName: this.filter.baseLibName.trim(),
         baseLibType: this.filter.baseLibType,
         description: this.filter.description.trim(),
+		staticName:this.filter.staticName.trim(),
       };
       return param;
     },
@@ -326,6 +342,7 @@ export default {
         libName: row.libName,
         libType: row.libType,
         ruleType: row.ruleType,
+		staticName:this.filter.staticName,
       };
       const loading = this.$loading({
         lock: true,
@@ -363,6 +380,7 @@ export default {
                   colspan: isFirst ? 1 : 0,
                   ruleGroup: datai.ruleGroup,
                   hasSubCond: datai.hasSubCond,
+				  names:datai.names,
                   msg: datai.msg,
                   description: datai.description,
                   ...dtoList[j],
@@ -390,6 +408,7 @@ export default {
         libName: "",
         baseLibType: "",
         baseLibName: "",
+		staticName:""
       };
     },
   },