wyq 4 éve
szülő
commit
9326c9aad9
1 módosított fájl, 82 hozzáadás és 211 törlés
  1. 82 211
      src/components/knowledgeExtra/AddDiagBase.vue

+ 82 - 211
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"
@@ -251,7 +251,7 @@
                     <div
                       v-if="v.title == '医学标准术语'"
                       class="box-2"
-                      :class="items.basType===3 || items.basType===4? 'tmall' : 'taobao'"
+                      :class="items.basType===3 || items.basType===4|| items.basType===5 || items.basType===6? 'tmall' : 'taobao'"
                     >
                       <el-form-item
                         v-if="items.basType==1 || items.basType==2 || items.basType==''"
@@ -263,24 +263,6 @@
                         :rules="rules.subConceptId"
                       >
                         <el-select
-                        class="searchselect"
-                          v-model.trim="items.basConceptId"
-                          multiple
-                          filterable
-                          remote
-                          reserve-keyword
-                          placeholder="请输入关键词"
-                          :remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
-                          @change="(val)=>conceptChange(val,scope.$index,index,i)"
-                        >
-                          <el-option
-                            v-for="item in items.conceptList"
-                            :key="item.conceptId"
-                            :label="item.conceptName"
-                            :value="item.conceptId"
-                          ></el-option>
-                        </el-select>
-                        <!-- <el-select
                           clearable
                           remote
                           filterable
@@ -294,7 +276,7 @@
                             :label="item.conceptName"
                             :value="item.conceptId"
                           ></el-option>
-                        </el-select>-->
+                        </el-select>
                       </el-form-item>
                     </div>
                     <div class="last-box" v-if="v.title == '依据具体内容'">
@@ -447,7 +429,7 @@
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.eqValue'"
-                          v-if="items.basType===4 || items.basType===3"
+                          v-if="items.basType===4 || items.basType===3||items.basType===6 || items.basType===5"
                           maxlength="200"
                           label="正则表达式:"
                           class="discDesc"
@@ -513,7 +495,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: 130, istar: true },
         { title: '依据具体内容', width: 850 }
       ],
       dicts: {},
@@ -545,7 +527,7 @@ export default {
                     onlyNumType: false,
                     onlyTxtType: false,
                     basTypeName: '',
-                    basConceptId: [],
+                    basConceptId: '',
                     basDescription: '',
                     basLename: '',
                     basLibName: '',
@@ -617,91 +599,45 @@ 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++
-          ) {
+      const klDiagnoseTypeVO =this.form.klDiagnoseTypeVO;
+      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++) {
             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)
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              k
-            ].libNameList.forEach(item => {
-              arr.push(item.basConceptId);
-            });
-            this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-              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';
+              klDiagnoseDetailj[k].conceptList = [
+              {
+                conceptName: klDiagnoseDetailj[k].basLibName,
+                conceptId: klDiagnoseDetailj[k].basConceptId
+              }
+            ];
+            if (klDiagnoseDetailj[k].maxOperator || klDiagnoseDetailj[k].minOperator) {
+                klDiagnoseDetailj[k].dataType = '1';
             } else if (
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[k]
-                .eqValue
-            ) {
-              this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
-                k
-              ].dataType = '2';
+                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
-            ) {
-              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;
+            if (klDiagnoseDetailj[k].basType == 3 || klDiagnoseDetailj[k].basType == 4||klDiagnoseDetailj[k].basType == 5 || klDiagnoseDetailj[k].basType == 6) {
+                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;
           }
         }
       }
@@ -754,37 +690,7 @@ export default {
       return dest;
     }
   },
-  // mounted() {
-  //   this.onscroll();
-  // },
   methods: {
-    // onscroll() {
-    //   this.$nextTick(function() {
-    //     // 监听当前组件的滚动事件
-    //     this.box = this.$refs.tableList.bodyWrapper;
-    //     this.box.addEventListener(
-    //       'scroll',
-    //       () => {
-    //         // select组件层级太高,滚动隐藏
-    //         if (this.$refs.tableList.bodyWrapper.scrollLeft > 0) {
-    //           console.log(this.$refs.aa.handleClose)
-    //           // this.$refs.aa.handleClose()
-    //           // this.$refs.aa.blur()
-    //           // const SELECTWRAP_BODY = document.body; // body
-    //           // const SELECTWRAP_DOWNALL = document.querySelectorAll(
-    //           //   '.el-select-dropdown'
-    //           // ); // select下拉框
-    //           // SELECTWRAP_BODY.click();
-
-    //           // SELECTWRAP_DOWNALL.forEach(item => {
-    //           //   item.blur();
-    //           // });
-    //         }
-    //       },
-    //       false
-    //     );
-    //   });
-    // },
     // 最大值 选择rule
     maxOperator(items, rule, value, callback) {
       const { maxVal, minOperator, minVal } = items;
@@ -892,7 +798,7 @@ export default {
       }
     },
     getInitData() {
-      this.i++;
+      this.i++
       return {
         conditionType: '',
         depart_id: this.i,
@@ -908,7 +814,7 @@ export default {
                 onlyNumType: false,
                 onlyTxtType: false,
                 basTypeName: '',
-                basConceptId: [],
+                basConceptId: '',
                 basDescription: '',
                 basLename: '',
                 basLibName: '',
@@ -945,7 +851,7 @@ export default {
     },
     //复制依据
     copyDiag(id) {
-      this.i++;
+      this.i++
       const formData = JSON.parse(JSON.stringify(this.form));
       let i = -1;
       let arr = [];
@@ -960,37 +866,6 @@ export default {
         this.form.klDiagnoseTypeVO.splice(i + index + 1, 0, item);
       });
       // console.log(this.form.klDiagnoseTypeVO);
-
-      // let map = {},
-      //   dest = [];
-      // for (let i = 0; i < formData.klDiagnoseTypeVO.length; i++) {
-      //   let ai = formData.klDiagnoseTypeVO[i];
-      //   if (!map[ai.depart_id]) {
-      //     dest.push({
-      //       depart_id: ai.depart_id,
-      //       conditionType: ai.conditionType,
-      //       groupVO: ai.groupVO
-      //     });
-      //     map[ai.depart_id] = ai;
-      //   } else {
-      //     for (let j = 0; j < dest.length; j++) {
-      //       var dj = dest[j];
-      //       if (dj.depart_id == ai.depart_id) {
-      //         dj.groupVO = dj.groupVO.concat(ai.groupVO);
-      //         break;
-      //       }
-      //     }
-      //   }
-      // }
-      // var index = dest.findIndex(item => {
-      //   return item.depart_id == id;
-      // });
-      // JSON.parse(JSON.stringify(dest[index])).depart_id=this.i
-      // dest.splice(index + 1, 0, JSON.parse(JSON.stringify(dest[index])));
-      // dest.forEach((item, i) => {
-      //   item.depart_id = i;
-      // });
-      // this.form.klDiagnoseTypeVO = JSON.parse(JSON.stringify(dest));
     },
     //删除依据
     delDiag(id, inx) {
@@ -1016,7 +891,7 @@ export default {
             onlyNumType: false,
             onlyTxtType: false,
             basTypeName: '',
-            basConceptId: [],
+            basConceptId: '',
             basDescription: '',
             basLename: '',
             basLibName: '',
@@ -1040,12 +915,12 @@ export default {
       this.form.klDiagnoseTypeVO.splice(i, 1);
     },
     //新增基础依据
-    addRule(row, index, i) {
+    addRule(row, index, inx,i) {
       let temp = {
         dataType: '',
         basNameType: false,
         basTypeName: '',
-        basConceptId: [],
+        basConceptId: '',
         basDescription: '',
         basLename: '',
         basLibName: '',
@@ -1060,21 +935,21 @@ export default {
         minOperator: '',
         minUnit: '',
         minVal: '',
-        dataType: ''
       };
-      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="";
+        }
       }
     },
     //诊断依据类型修改
@@ -1113,7 +988,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[
@@ -1152,7 +1027,7 @@ export default {
 
       this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
         i
-      ].basConceptId = [];
+      ].basConceptId = '';
       if ((this.numTypes + ',').indexOf(val + ',') > -1) {
         this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
           i
@@ -1184,20 +1059,19 @@ export default {
       this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
         i
       ].basConceptId = val;
-      console.log(val);
-      // if (val) {
-      //   this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
-      //     i
-      //   ].basLibName = this.form.klDiagnoseTypeVO[inx].groupVO[
-      //     index
-      //   ].klDiagnoseDetail[i].conceptList.find(
-      //     it => it.conceptId === val
-      //   ).conceptName;
-      // } else {
-      //   this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
-      //     i
-      //   ].basLibName = '';
-      // }
+      if (val) {
+        this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
+          i
+        ].basLibName = this.form.klDiagnoseTypeVO[inx].groupVO[
+          index
+        ].klDiagnoseDetail[i].conceptList.find(
+          it => it.conceptId === val
+        ).conceptName;
+      } else {
+        this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
+          i
+        ].basLibName = '';
+      }
     },
     searchConcept(val, inx, index, i) {
       const formData = JSON.parse(JSON.stringify(this.form));
@@ -1242,7 +1116,7 @@ export default {
     clearConcept(val, inx, index, i) {
       this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
         i
-      ].basConceptId = [];
+      ].basConceptId = '';
       this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
         i
       ].basLibName = '';
@@ -1316,14 +1190,6 @@ export default {
       //console.log(JSON.parse(str))
       return JSON.parse(str);
     },
-    formatData2(data) {
-      //转换字段名
-      let str = JSON.stringify(data)
-        .replace(/basLibName/g, 'conceptName')
-        .replace(/basConceptId/g, 'conceptId');
-      //console.log(JSON.parse(str))
-      return JSON.parse(str);
-    },
     searchDiag(val) {
       const param = {
         diseaseName: val
@@ -1483,6 +1349,7 @@ export default {
       });
     },
     confirm() {
+      
       const formData = JSON.parse(JSON.stringify(this.form));
       const _this = this;
       for (let i = 0; i < formData.klDiagnoseTypeVO.length; i++) {
@@ -1541,12 +1408,6 @@ export default {
 </script>
 <style lang="less" scoped>
 @import '../../less/admin.less';
-
-/deep/ .searchselect{
-  .el-input{
-    height: 100%!important;
-  }
-}
 .contents {
   height: 100%;
   .content {
@@ -1572,14 +1433,19 @@ export default {
       height: calc(100vh - 370px);
     }
     /deep/ .el-input {
-      height: 30px;
-      line-height: 30px;
+      height: 24px;
+      line-height: 24px;
       .el-input__inner {
-        height: 30px;
-        line-height: 30px;
+        height: 24px;
+        line-height: 24px;
         font-size: 12px;
+        border-radius: 2px;
+        border-color: #c9c9c9;
       }
     }
+    /deep/ .el-select .el-input .el-icon-arrow-up{
+      line-height: 25px;
+    }
     .inps {
       width: 500px !important;
       font-size: 14px;
@@ -1597,6 +1463,9 @@ export default {
       }
     }
   }
+  /deep/.is-error .el-form-item__error{
+    top:30px;
+  }
   .content-2 {
     margin-top: 10px;
     padding: 20px 20px;
@@ -1620,7 +1489,7 @@ export default {
       }
     }
     .el-form-item {
-      margin-bottom: 10px;
+      margin-top: 8px;
       margin-right: 0;
     }
     .discDesc {
@@ -1734,6 +1603,7 @@ export default {
     .icon {
       padding: 0 3px;
       cursor: pointer;
+      vertical-align: middle;
     }
     .star {
       color: #ff545b;
@@ -1749,6 +1619,7 @@ export default {
   }
   .name {
     font-size: 14px;
+
     font-weight: 400;
     color: #333333;
     line-height: 20px;