Browse Source

诊断依据多选

wyq 4 years ago
parent
commit
538c1616bd
1 changed files with 68 additions and 34 deletions
  1. 68 34
      src/components/knowledgeExtra/AddDiagBase.vue

+ 68 - 34
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: {},
@@ -508,7 +526,6 @@ export default {
       title: '诊断依据维护-添加诊断依据',
       conceptName: '',
       conceptList: [],
-      conceptList: [],
       form: {
         description: '',
         conceptId: '',
@@ -528,7 +545,7 @@ export default {
                     onlyNumType: false,
                     onlyTxtType: false,
                     basTypeName: '',
-                    basConceptId: '',
+                    basConceptId: [],
                     basDescription: '',
                     basLename: '',
                     basLibName: '',
@@ -600,6 +617,7 @@ 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 (
@@ -620,14 +638,17 @@ export default {
 
             this.form.klDiagnoseTypeVO[i].groupVO[j].klDiagnoseDetail[
               k
-            ].conceptList = [
-              {
-                conceptName: this.form.klDiagnoseTypeVO[i].groupVO[j]
-                  .klDiagnoseDetail[k].basLibName,
-                conceptId: this.form.klDiagnoseTypeVO[i].groupVO[j]
-                  .klDiagnoseDetail[k].basConceptId
-              }
-            ];
+            ].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 ||
@@ -871,7 +892,7 @@ export default {
       }
     },
     getInitData() {
-      this.i++
+      this.i++;
       return {
         conditionType: '',
         depart_id: this.i,
@@ -887,7 +908,7 @@ export default {
                 onlyNumType: false,
                 onlyTxtType: false,
                 basTypeName: '',
-                basConceptId: '',
+                basConceptId: [],
                 basDescription: '',
                 basLename: '',
                 basLibName: '',
@@ -924,7 +945,7 @@ export default {
     },
     //复制依据
     copyDiag(id) {
-      this.i++
+      this.i++;
       const formData = JSON.parse(JSON.stringify(this.form));
       let i = -1;
       let arr = [];
@@ -940,7 +961,6 @@ export default {
       });
       // console.log(this.form.klDiagnoseTypeVO);
 
-      
       // let map = {},
       //   dest = [];
       // for (let i = 0; i < formData.klDiagnoseTypeVO.length; i++) {
@@ -996,7 +1016,7 @@ export default {
             onlyNumType: false,
             onlyTxtType: false,
             basTypeName: '',
-            basConceptId: '',
+            basConceptId: [],
             basDescription: '',
             basLename: '',
             basLibName: '',
@@ -1025,7 +1045,7 @@ export default {
         dataType: '',
         basNameType: false,
         basTypeName: '',
-        basConceptId: '',
+        basConceptId: [],
         basDescription: '',
         basLename: '',
         basLibName: '',
@@ -1132,7 +1152,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
@@ -1164,19 +1184,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));
@@ -1221,7 +1242,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 = '';
@@ -1295,6 +1316,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
@@ -1454,7 +1483,6 @@ export default {
       });
     },
     confirm() {
-      
       const formData = JSON.parse(JSON.stringify(this.form));
       const _this = this;
       for (let i = 0; i < formData.klDiagnoseTypeVO.length; i++) {
@@ -1513,6 +1541,12 @@ export default {
 </script>
 <style lang="less" scoped>
 @import '../../less/admin.less';
+
+/deep/ .searchselect{
+  .el-input{
+    height: 100%!important;
+  }
+}
 .contents {
   height: 100%;
   .content {