浏览代码

诊断维护修改

wyq 4 年之前
父节点
当前提交
79f78bdc97
共有 1 个文件被更改,包括 110 次插入34 次删除
  1. 110 34
      src/components/knowledgeExtra/AddDiagBase.vue

+ 110 - 34
src/components/knowledgeExtra/AddDiagBase.vue

@@ -272,7 +272,7 @@
                           reserve-keyword
                           placeholder="请输入关键词"
                           :remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
-                          @change="(val)=>conceptChange(val,scope.$index,index,i)"
+                          @change="(val)=>conceptChange(val,scope.$index,index,i,items.basType)"
                           @visible-change="(val)=>changeValue1(val,scope.$index,index,i)"
                         >
                           <el-option
@@ -284,6 +284,39 @@
                         </el-select>
                       </el-form-item>
                     </div>
+                    <div
+                      v-if="v.title == '医学标准术语' && items.basType != 1"
+                      class="box-2"
+                      :class="items.basType===3 || items.basType===4? 'tmall' : 'taobao'"
+                    >
+                      <el-form-item
+                        v-if="items.basType==1 || items.basType==2 || items.basType==''"
+                        :prop="'klDiagnoseTypeVO.' +
+                        scope.$index +
+                        '.groupVO.' +
+                        index +
+                        '.klDiagnoseDetail.'+i+'.conceptId'"
+                        :rules="[
+                          { required: true, message: '请选择医学标准术语', trigger: 'change' }
+                        ]"
+                      >
+                        <el-select
+                          clearable
+                          remote
+                          filterable
+                          :remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
+                          v-model.trim="items.conceptId"
+                          @change="(val)=>conceptChange(val,scope.$index,index,i,items.basType)"
+                        >
+                          <el-option
+                            v-for="item in items.conceptList"
+                            :key="item.conceptId"
+                            :label="item.conceptName"
+                            :value="item.conceptId"
+                          ></el-option>
+                        </el-select>
+                      </el-form-item>
+                    </div>
                     <div class="last-box" v-if="v.title == '依据具体内容'">
                       <el-form-item
                         :prop="'klDiagnoseTypeVO.' +
@@ -434,7 +467,7 @@
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.eqValue'"
-                          v-if="items.basType===4 || items.basType===3"
+                          v-if="items.basType===4 || items.basType===3 || items.basType===5 || items.basType===6"
                           maxlength="200"
                           label="正则表达式:"
                           class="discDesc"
@@ -533,6 +566,7 @@ export default {
                     onlyTxtType: false,
                     basTypeName: '',
                     basConceptId: [],
+                    conceptId:'',
                     basConceptList: [],
                     basDescription: '',
                     basLename: '',
@@ -576,7 +610,8 @@ export default {
       i: 1,
       onshow: true,
       arr: [],
-      basConceptId: []
+      basConceptId: [],
+      conceptId: ''
     };
   },
   created() {
@@ -607,8 +642,7 @@ export default {
         item => item.ruleType === this.form.klDiagnoseTypeVO[0].conditionType
       );
       this.baseTermTypeList = this.baseTypes[index2].subMenuList;
-      const klDiagnoseTypeVO = this.form.klDiagnoseTypeVO,
-        arr = [];
+      const klDiagnoseTypeVO = this.form.klDiagnoseTypeVO;
       let groupVOi, klDiagnoseDetailj;
       for (let i = 0; i < klDiagnoseTypeVO.length; i++) {
         groupVOi = klDiagnoseTypeVO[i].groupVO;
@@ -622,15 +656,21 @@ export default {
             klDiagnoseDetailj[k].basLibTypeList = this.baseTermTypeList[
               index2
             ].subMenuList;
-
             klDiagnoseDetailj[k].conceptList = this.formatData2(
               klDiagnoseDetailj[k].libNameList
             );
-            klDiagnoseDetailj[k].libNameList.forEach(item => {
-              this.arr.push(item.basConceptId);
-            });
-            this.$set(klDiagnoseDetailj[k], 'basConceptId', this.arr);
-            // klDiagnoseDetailj[k].basConceptId = arr;
+            if (klDiagnoseDetailj[k].basType == 1) {
+              klDiagnoseDetailj[k].libNameList.forEach(item => {
+                this.arr.push(item.basConceptId);
+              });
+              this.$set(klDiagnoseDetailj[k], 'basConceptId', this.arr);
+            } else if (klDiagnoseDetailj[k].basType == 2) {
+              klDiagnoseDetailj[k].libNameList.forEach(item => {
+                this.arr.push(item.basConceptId);
+              });
+              this.$set(klDiagnoseDetailj[k], 'conceptId', this.arr[0]);
+            }
+
             if (
               klDiagnoseDetailj[k].maxOperator ||
               klDiagnoseDetailj[k].minOperator
@@ -837,6 +877,7 @@ export default {
                 onlyTxtType: false,
                 basTypeName: '',
                 basConceptId: [],
+                conceptId:'',
                 basConceptList: [],
                 basDescription: '',
                 basLename: '',
@@ -914,6 +955,7 @@ export default {
             onlyTxtType: false,
             basTypeName: '',
             basConceptId: [],
+            conceptId:'',
             basConceptList: [],
             basDescription: '',
             basLename: '',
@@ -944,6 +986,7 @@ export default {
         basNameType: false,
         basTypeName: '',
         basConceptId: [],
+        conceptId:'',
         basConceptList: [],
         basDescription: '',
         basLename: '',
@@ -1122,12 +1165,17 @@ export default {
       }
     },
     //医学标准术语
-    conceptChange(val, inx, index, i) {
-      this.$set(
-        this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i],
-        'basConceptId',
-        val
-      );
+    conceptChange(val, inx, index, i, basType) {
+      if (basType == 1) {
+        this.$set(
+          this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i],
+          'basConceptId',
+          val
+        );
+      } else if (basType == 2) {
+        this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i].conceptId = val;
+      }
+
       // if (val) {
       //   this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
       //     i
@@ -1162,20 +1210,29 @@ export default {
 
             this.$nextTick(() => {
               // dom元素更新后执行,因此这里能正确打印更改之后的值
-              let conceptList =
+              if (
                 formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
                   i
-                ].conceptList;
-              let data2 = data.filter(it => {
-                let arr = conceptList.map(v => v.conceptId);
-                return !arr.includes(it.conceptId);
-              });
-              formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
-                i
-              ].conceptList = data2; // 改变了的值
-              formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
-                i
-              ].basConceptList = data;
+                ].basType == 1
+              ) {
+                let conceptList =
+                  formData.klDiagnoseTypeVO[inx].groupVO[index]
+                    .klDiagnoseDetail[i].conceptList;
+                let data2 = data.filter(it => {
+                  let arr = conceptList.map(v => v.conceptId);
+                  return !arr.includes(it.conceptId);
+                });
+                formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
+                  i
+                ].conceptList = data2; // 改变了的值
+                formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
+                  i
+                ].basConceptList = data;
+              }else{
+                formData.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
+                  i
+                ].conceptList = data;
+              }
             });
             this.form = formData;
           }
@@ -1437,7 +1494,9 @@ export default {
       });
     },
     confirm() {
+      
       const formData = JSON.parse(JSON.stringify(this.form));
+      
       const _this = this;
       for (let i = 0; i < formData.klDiagnoseTypeVO.length; i++) {
         for (let j = 0; j < formData.klDiagnoseTypeVO[i].groupVO.length; j++) {
@@ -1451,6 +1510,15 @@ export default {
               .basLibTypeList;
             delete formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
               .conceptList;
+            formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
+              k
+            ].basConceptId =
+              formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
+                .basType == 2
+                ? JSON.stringify(formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
+                    .conceptId).split('')
+                : formData.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
+                    .basConceptId;
           }
         }
       }
@@ -1504,21 +1572,29 @@ export default {
     max-width: 100% !important;
   }
   .el-tag {
-    width: 90px !important;
-
     .el-select__tags-text {
       width: 75px !important;
+      display: block;
       overflow: hidden;
       text-overflow: ellipsis;
       white-space: nowrap;
     }
-    .el-tag__close{
+    .el-tag__close {
       top: -22px;
-      right: -38PX;
+      right: -38px;
     }
   }
   .el-tag:last-child {
-    width: 40px !important;
+    min-width: 40px !important;
+    max-width: 75px !important;
+    .el-select__tags-text {
+      display: inline;
+    }
+    .el-tag__close {
+      top: 0;
+      left: 0;
+      right: 0;
+    }
   }
 }
 .contents {