浏览代码

诊断维护样式修改

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

+ 144 - 96
src/components/knowledgeExtra/AddDiagBase.vue

@@ -172,7 +172,7 @@
                           height="18"
                           width="18"
                           class="icon"
-                          @click="addRule(scope.row,scope.$index,index)"
+                          @click="addRule(scope.row,scope.$index,index,i)"
                         />
                         <img
                           src="../../images/icon-delete.png"
@@ -249,7 +249,7 @@
                     </el-form-item>
 
                     <div
-                      v-if="v.title == '医学标准术语'"
+                      v-if="v.title == '医学标准术语' && items.basType == 1"
                       class="box-2"
                       :class="items.basType===3 || items.basType===4? 'tmall' : 'taobao'"
                     >
@@ -268,10 +268,12 @@
                           multiple
                           filterable
                           remote
+                          collapse-tags
                           reserve-keyword
                           placeholder="请输入关键词"
                           :remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
                           @change="(val)=>conceptChange(val,scope.$index,index,i)"
+                          @visible-change="(val)=>changeValue1(val,scope.$index,index,i)"
                         >
                           <el-option
                             v-for="item in items.conceptList"
@@ -498,7 +500,7 @@ export default {
         { title: '基础依据名称', width: 160, istar: true },
         { title: '基础依据类型', width: 130, istar: true },
         { title: '基础依据术语类型', width: 160, istar: true },
-        { title: '医学标准术语', width: 180, istar: true },
+        { title: '医学标准术语', width: 200, istar: true },
         { title: '依据具体内容', width: 850 }
       ],
       dicts: {},
@@ -531,6 +533,7 @@ export default {
                     onlyTxtType: false,
                     basTypeName: '',
                     basConceptId: [],
+                    basConceptList: [],
                     basDescription: '',
                     basLename: '',
                     basLibName: '',
@@ -572,7 +575,8 @@ export default {
       list: [], //提交数据数组,
       i: 1,
       onshow: true,
-      arr :[]
+      arr: [],
+      basConceptId: []
     };
   },
   created() {
@@ -603,97 +607,61 @@ export default {
         item => item.ruleType === this.form.klDiagnoseTypeVO[0].conditionType
       );
       this.baseTermTypeList = this.baseTypes[index2].subMenuList;
-      let arr = [];
-      for (let i = 0; i < this.form.klDiagnoseTypeVO.length; i++) {
-        for (let j = 0; j < this.form.klDiagnoseTypeVO[i].groupVO.length; j++) {
-          for (
-            let k = 0;
-            k <
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail.length;
-            k++
-          ) {
-            this.arr = []
+      const klDiagnoseTypeVO = this.form.klDiagnoseTypeVO,
+        arr = [];
+      let groupVOi, klDiagnoseDetailj;
+      for (let i = 0; i < klDiagnoseTypeVO.length; i++) {
+        groupVOi = klDiagnoseTypeVO[i].groupVO;
+        for (let j = 0; j < groupVOi.length; j++) {
+          klDiagnoseDetailj = groupVOi[j].klDiagnoseDetail;
+          for (let k = 0; k < groupVOi[j].klDiagnoseDetail.length; k++) {
+            this.arr = [];
             var index2 = this.baseTermTypeList.findIndex(
-              item =>
-                item.type ===
-                this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                  .basType
+              item => item.type === klDiagnoseDetailj[k].basType
             );
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              k
-            ].basLibTypeList = this.baseTermTypeList[index2].subMenuList;
+            klDiagnoseDetailj[k].basLibTypeList = this.baseTermTypeList[
+              index2
+            ].subMenuList;
 
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              k
-            ].conceptList = this.formatData2(
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                .libNameList
+            klDiagnoseDetailj[k].conceptList = this.formatData2(
+              klDiagnoseDetailj[k].libNameList
             );
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              k
-            ].libNameList.forEach(item => {
+            klDiagnoseDetailj[k].libNameList.forEach(item => {
               this.arr.push(item.basConceptId);
             });
-            this.$set(
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              k
-            ],
-              'basConceptId',
-              this.arr
-            );
+            this.$set(klDiagnoseDetailj[k], 'basConceptId', this.arr);
+            // klDiagnoseDetailj[k].basConceptId = arr;
             if (
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                .maxOperator ||
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                .minOperator
-            ) {
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-                k
-              ].dataType = '1';
-            } else if (
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                .eqValue
+              klDiagnoseDetailj[k].maxOperator ||
+              klDiagnoseDetailj[k].minOperator
             ) {
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-                k
-              ].dataType = '2';
+              klDiagnoseDetailj[k].dataType = '1';
+            } else if (klDiagnoseDetailj[k].eqValue) {
+              klDiagnoseDetailj[k].dataType = '2';
             }
             if (
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                .basType == 3 ||
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                .basType == 4
+              klDiagnoseDetailj[k].basType == 3 ||
+              klDiagnoseDetailj[k].basType == 4 ||
+              klDiagnoseDetailj[k].basType == 5 ||
+              klDiagnoseDetailj[k].basType == 6
             ) {
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-                k
-              ].basTypeName = this.form.klDiagnoseTypeVO[i].groupVO[
-                j
-              ].klDiagnoseDetail[k].basLibTypeList[0].name;
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-                k
-              ].basNameType = true;
+              klDiagnoseDetailj[k].basTypeName =
+                klDiagnoseDetailj[k].basLibTypeList[0].name;
+              klDiagnoseDetailj[k].basNameType = true;
             } else {
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-                k
-              ].basTypeName = '';
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-                k
-              ].basNameType = false;
+              klDiagnoseDetailj[k].basTypeName = '';
+              klDiagnoseDetailj[k].basNameType = false;
             }
             const onlyNum = this.dicts['onlyNum'] || '&';
             const onlyTxt = this.dicts['onlyTxt'] || '&';
             const codes = onlyNum + ',';
             const code = onlyTxt + ',';
-            let type = this.form.klDiagnoseTypeVO[i].groupVO[j]
-              .klDiagnoseDetail[k].basLibType;
-            let a = this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-              .basLibType;
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              k
-            ].onlyNumType = type && codes.indexOf(a + ',') > -1;
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              k
-            ].onlyTxtType = type && code.indexOf(a + ',') > -1;
+            let type = klDiagnoseDetailj[k].basLibType;
+            let a = klDiagnoseDetailj[k].basLibType;
+            klDiagnoseDetailj[k].onlyNumType =
+              type && codes.indexOf(a + ',') > -1;
+            klDiagnoseDetailj[k].onlyTxtType =
+              type && code.indexOf(a + ',') > -1;
           }
         }
       }
@@ -869,6 +837,7 @@ export default {
                 onlyTxtType: false,
                 basTypeName: '',
                 basConceptId: [],
+                basConceptList: [],
                 basDescription: '',
                 basLename: '',
                 basLibName: '',
@@ -945,6 +914,7 @@ export default {
             onlyTxtType: false,
             basTypeName: '',
             basConceptId: [],
+            basConceptList: [],
             basDescription: '',
             basLename: '',
             basLibName: '',
@@ -968,12 +938,13 @@ export default {
       this.form.klDiagnoseTypeVO.splice(i, 1);
     },
     //新增基础依据
-    addRule(row, index, i) {
+    addRule(row, index, inx, i) {
       let temp = {
         dataType: '',
         basNameType: false,
         basTypeName: '',
         basConceptId: [],
+        basConceptList: [],
         basDescription: '',
         basLename: '',
         basLibName: '',
@@ -987,22 +958,29 @@ export default {
         maxVal: '',
         minOperator: '',
         minUnit: '',
-        minVal: '',
-        dataType: ''
+        minVal: ''
       };
-      this.form.klDiagnoseTypeVO[index].groupVO[i].klDiagnoseDetail.push(temp);
+      this.form.klDiagnoseTypeVO[index].groupVO[inx].klDiagnoseDetail.splice(
+        i + 1,
+        0,
+        temp
+      );
+      this.form.klDiagnoseTypeVO = JSON.parse(
+        JSON.stringify(this.form.klDiagnoseTypeVO)
+      ); //8525更新对象触发滚动条更新
     },
     delRule(row, inx, index, i) {
-      if (
-        this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail
-          .length == 1
-      ) {
+      const klDiagnoseDetail = this.form.klDiagnoseTypeVO[inx].groupVO[index]
+        .klDiagnoseDetail;
+      if (klDiagnoseDetail.length === 1) {
         return;
       } else {
-        this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail.splice(
-          i,
-          1
-        );
+        klDiagnoseDetail.splice(i, 1);
+        const numArr = this.numArr[inx].num[0];
+        const fitNo = this.form.klDiagnoseTypeVO[inx].groupVO[0].fitNo;
+        if (numArr[numArr.length - 1].name < fitNo) {
+          this.form.klDiagnoseTypeVO[inx].groupVO[0].fitNo = '';
+        }
       }
     },
     //诊断依据类型修改
@@ -1041,7 +1019,7 @@ export default {
       this.form.klDiagnoseTypeVO[inx].groupVO[
         index
       ].baseTermTypeList = this.baseTermTypeList;
-      if (val == 3 || val == 4) {
+      if (val == 3 || val == 4 || val == 5 || val == 6) {
         this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
           i
         ].basTypeName = this.form.klDiagnoseTypeVO[inx].groupVO[
@@ -1107,11 +1085,44 @@ export default {
       this.clearConcept(val, inx, index, i);
       this.clearNumText2(val, inx, index, i);
     },
+    changeValue1(val, inx, index, i) {
+      const formData = JSON.parse(
+        JSON.stringify(
+          this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i]
+        )
+      );
+      this.basConceptId = [];
+      if (val) {
+        // console.log(formData.basConceptId)
+        // formData.basConceptId.forEach(item => {
+        //   formData.conceptList.forEach(it => {
+        //     if (item == it.conceptId) {
+        //       this.basConceptId.push(it);
+        //     }
+        //   });
+        // });
+        // this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
+        //   i
+        // ].conceptList = this.basConceptId
+      } else {
+        formData.basConceptId.forEach(item => {
+          formData.basConceptList.forEach(it => {
+            if (item == it.conceptId) {
+              // console.log(it)
+              this.basConceptId.push(it);
+            }
+          });
+        });
+        // console.log(formData.basConceptList)
+        // formData.basConceptList.concat(this.basConceptId)
+        // console.log(formData.basConceptList)
+        this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
+          i
+        ].conceptList = this.basConceptId;
+      }
+    },
     //医学标准术语
     conceptChange(val, inx, index, i) {
-      // this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
-      //   i
-      // ].basConceptId = val;
       this.$set(
         this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[i],
         'basConceptId',
@@ -1147,13 +1158,24 @@ export default {
         .searchConcept(param)
         .then(res => {
           if (res.data.code == '0') {
-            const data = res.data.data;
+            let data = res.data.data;
 
             this.$nextTick(() => {
               // dom元素更新后执行,因此这里能正确打印更改之后的值
+              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
-              ].conceptList = data; // 改变了的值
+              ].basConceptList = data;
             });
             this.form = formData;
           }
@@ -1478,6 +1500,26 @@ export default {
   .el-input {
     height: 100% !important;
   }
+  .el-select__tags {
+    max-width: 100% !important;
+  }
+  .el-tag {
+    width: 90px !important;
+
+    .el-select__tags-text {
+      width: 75px !important;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+    }
+    .el-tag__close{
+      top: -22px;
+      right: -38PX;
+    }
+  }
+  .el-tag:last-child {
+    width: 40px !important;
+  }
 }
 .contents {
   height: 100%;
@@ -1512,6 +1554,9 @@ export default {
         font-size: 12px;
       }
     }
+    /deep/ .el-select .el-input .el-icon-arrow-up {
+      line-height: 25px;
+    }
     .inps {
       width: 500px !important;
       font-size: 14px;
@@ -1529,6 +1574,9 @@ export default {
       }
     }
   }
+  /deep/.is-error .el-form-item__error {
+    top: 30px;
+  }
   .content-2 {
     margin-top: 10px;
     padding: 20px 20px;