瀏覽代碼

Merge branch 'test' of http://192.168.2.236:10080/zhouna/platformFront into test

reaper 4 年之前
父節點
當前提交
2c1fd12c4c
共有 1 個文件被更改,包括 145 次插入62 次删除
  1. 145 62
      src/components/knowledgeExtra/AddDiagBase.vue

+ 145 - 62
src/components/knowledgeExtra/AddDiagBase.vue

@@ -263,6 +263,24 @@
                         :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
@@ -276,7 +294,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 == '依据具体内容'">
@@ -495,7 +513,7 @@ export default {
         { title: '基础依据名称', width: 160, istar: true },
         { title: '基础依据类型', width: 130, istar: true },
         { title: '基础依据术语类型', width: 160, istar: true },
-        { title: '医学标准术语', width: 130, istar: true },
+        { title: '医学标准术语', width: 180, istar: true },
         { title: '依据具体内容', width: 850 }
       ],
       dicts: {},
@@ -527,7 +545,7 @@ export default {
                     onlyNumType: false,
                     onlyTxtType: false,
                     basTypeName: '',
-                    basConceptId: '',
+                    basConceptId: [],
                     basDescription: '',
                     basLename: '',
                     basLibName: '',
@@ -599,36 +617,48 @@ export default {
         item => item.ruleType === this.form.klDiagnoseTypeVO[0].conditionType
       );
       this.baseTermTypeList = this.baseTypes[index2].subMenuList;
-      const klDiagnoseTypeVO =this.form.klDiagnoseTypeVO;
-      let groupVOi,klDiagnoseDetailj;
+      const klDiagnoseTypeVO = this.form.klDiagnoseTypeVO,
+        arr = [];
+      let groupVOi, klDiagnoseDetailj;
       for (let i = 0; i < klDiagnoseTypeVO.length; i++) {
-          groupVOi =  klDiagnoseTypeVO[i].groupVO;
+        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++) {
+          for (let k = 0; k < groupVOi[j].klDiagnoseDetail.length; k++) {
             var index2 = this.baseTermTypeList.findIndex(
-              item =>item.type ===klDiagnoseDetailj[k].basType
+              item => item.type === klDiagnoseDetailj[k].basType
             );
-              klDiagnoseDetailj[k].basLibTypeList = this.baseTermTypeList[index2].subMenuList;
+            klDiagnoseDetailj[k].basLibTypeList = this.baseTermTypeList[
+              index2
+            ].subMenuList;
 
-              klDiagnoseDetailj[k].conceptList = [
-              {
-                conceptName: klDiagnoseDetailj[k].basLibName,
-                conceptId: klDiagnoseDetailj[k].basConceptId
-              }
-            ];
-            if (klDiagnoseDetailj[k].maxOperator || klDiagnoseDetailj[k].minOperator) {
-                klDiagnoseDetailj[k].dataType = '1';
-            } else if (
-                klDiagnoseDetailj[k].eqValue) {
-                klDiagnoseDetailj[k].dataType = '2';
+            klDiagnoseDetailj[k].conceptList = this.formatData2(
+              klDiagnoseDetailj[k].libNameList
+            );
+            klDiagnoseDetailj[k].libNameList.forEach(item => {
+              arr.push(item.basConceptId);
+            });
+            klDiagnoseDetailj[k].basConceptId = arr;
+            if (
+              klDiagnoseDetailj[k].maxOperator ||
+              klDiagnoseDetailj[k].minOperator
+            ) {
+              klDiagnoseDetailj[k].dataType = '1';
+            } else if (klDiagnoseDetailj[k].eqValue) {
+              klDiagnoseDetailj[k].dataType = '2';
             }
-            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;
+            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 {
-                klDiagnoseDetailj[k].basTypeName = '';
-                klDiagnoseDetailj[k].basNameType = false;
+              klDiagnoseDetailj[k].basTypeName = '';
+              klDiagnoseDetailj[k].basNameType = false;
             }
             const onlyNum = this.dicts['onlyNum'] || '&';
             const onlyTxt = this.dicts['onlyTxt'] || '&';
@@ -636,8 +666,10 @@ export default {
             const code = onlyTxt + ',';
             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;
+            klDiagnoseDetailj[k].onlyNumType =
+              type && codes.indexOf(a + ',') > -1;
+            klDiagnoseDetailj[k].onlyTxtType =
+              type && code.indexOf(a + ',') > -1;
           }
         }
       }
@@ -798,7 +830,7 @@ export default {
       }
     },
     getInitData() {
-      this.i++
+      this.i++;
       return {
         conditionType: '',
         depart_id: this.i,
@@ -814,7 +846,7 @@ export default {
                 onlyNumType: false,
                 onlyTxtType: false,
                 basTypeName: '',
-                basConceptId: '',
+                basConceptId: [],
                 basDescription: '',
                 basLename: '',
                 basLibName: '',
@@ -851,7 +883,7 @@ export default {
     },
     //复制依据
     copyDiag(id) {
-      this.i++
+      this.i++;
       const formData = JSON.parse(JSON.stringify(this.form));
       let i = -1;
       let arr = [];
@@ -866,6 +898,37 @@ 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) {
@@ -891,7 +954,7 @@ export default {
             onlyNumType: false,
             onlyTxtType: false,
             basTypeName: '',
-            basConceptId: '',
+            basConceptId: [],
             basDescription: '',
             basLename: '',
             basLibName: '',
@@ -915,12 +978,12 @@ export default {
       this.form.klDiagnoseTypeVO.splice(i, 1);
     },
     //新增基础依据
-    addRule(row, index, inx,i) {
+    addRule(row, index, inx, i) {
       let temp = {
         dataType: '',
         basNameType: false,
         basTypeName: '',
-        basConceptId: '',
+        basConceptId: [],
         basDescription: '',
         basLename: '',
         basLibName: '',
@@ -934,21 +997,28 @@ export default {
         maxVal: '',
         minOperator: '',
         minUnit: '',
-        minVal: '',
+        minVal: ''
       };
-      this.form.klDiagnoseTypeVO[index].groupVO[inx].klDiagnoseDetail.splice(i + 1, 0, temp);
-      this.form.klDiagnoseTypeVO = JSON.parse(JSON.stringify(this.form.klDiagnoseTypeVO))   //8525更新对象触发滚动条更新
+      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) {
-        const klDiagnoseDetail =  this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail;
+      const klDiagnoseDetail = this.form.klDiagnoseTypeVO[inx].groupVO[index]
+        .klDiagnoseDetail;
       if (klDiagnoseDetail.length === 1) {
         return;
       } else {
-        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="";
+        const fitNo = this.form.klDiagnoseTypeVO[inx].groupVO[0].fitNo;
+        if (numArr[numArr.length - 1].name < fitNo) {
+          this.form.klDiagnoseTypeVO[inx].groupVO[0].fitNo = '';
         }
       }
     },
@@ -988,7 +1058,7 @@ export default {
       this.form.klDiagnoseTypeVO[inx].groupVO[
         index
       ].baseTermTypeList = this.baseTermTypeList;
-      if (val == 3 || val == 4||val == 5 || val == 6) {
+      if (val == 3 || val == 4 || val == 5 || val == 6) {
         this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
           i
         ].basTypeName = this.form.klDiagnoseTypeVO[inx].groupVO[
@@ -1027,7 +1097,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
@@ -1059,19 +1129,20 @@ export default {
       this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
         i
       ].basConceptId = 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 = '';
-      }
+      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 = '';
+      // }
     },
     searchConcept(val, inx, index, i) {
       const formData = JSON.parse(JSON.stringify(this.form));
@@ -1116,7 +1187,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 = '';
@@ -1190,6 +1261,14 @@ 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
@@ -1349,7 +1428,6 @@ export default {
       });
     },
     confirm() {
-      
       const formData = JSON.parse(JSON.stringify(this.form));
       const _this = this;
       for (let i = 0; i < formData.klDiagnoseTypeVO.length; i++) {
@@ -1408,6 +1486,12 @@ export default {
 </script>
 <style lang="less" scoped>
 @import '../../less/admin.less';
+
+/deep/ .searchselect {
+  .el-input {
+    height: 100% !important;
+  }
+}
 .contents {
   height: 100%;
   .content {
@@ -1443,7 +1527,7 @@ export default {
         border-color: #c9c9c9;
       }
     }
-    /deep/ .el-select .el-input .el-icon-arrow-up{
+    /deep/ .el-select .el-input .el-icon-arrow-up {
       line-height: 25px;
     }
     .inps {
@@ -1463,8 +1547,8 @@ export default {
       }
     }
   }
-  /deep/.is-error .el-form-item__error{
-    top:30px;
+  /deep/.is-error .el-form-item__error {
+    top: 30px;
   }
   .content-2 {
     margin-top: 10px;
@@ -1619,7 +1703,6 @@ export default {
   }
   .name {
     font-size: 14px;
-
     font-weight: 400;
     color: #333333;
     line-height: 20px;