morphone1995 преди 4 години
родител
ревизия
8d98441af1

+ 17 - 5
src/components/icss/AddMedicinePrompt.vue

@@ -53,7 +53,7 @@
           @add="addParagraph(i)"
           @del="delParagraph"
           @reOrder="reOrder"
-          :showType = 'showType'
+          :showType="showType"
         ></InfoParagraph>
         <el-form-item v-if="upload" label="标题名称:" prop="fileTitle" label-width="160px">
           <el-input v-model="form.fileTitle"></el-input>
@@ -175,9 +175,21 @@ export default {
       showConfirm: true,
       isSuccessUpload: 0, //是否上传成功  0: 不在上传  1: 上传过程中  2: 上传成功
       isShowTip: false,
-      showType : -1  // 1 诊断  2  药品   3检验套餐 4检验细项  5检查 6手术和操作
+      showType: -1 // 1 诊断  2  药品   3检验套餐 4检验细项  5检查 6手术和操作
     };
   },
+  watch: {
+    showType: {
+      handler(newVal, oldVal) {
+        // console.log('newVal============', newVal, 'oldVal============', oldVal);
+        if (newVal !== oldVal) {
+          this.form.prags = this.form.prags.map(item => {
+            return { ...item, position: [] };
+          });
+        }
+      }
+    }
+  },
   created: function() {
     const { isEdit, data, isCopy } = this.$route.params;
     if (isEdit || isCopy) {
@@ -282,8 +294,8 @@ export default {
       this.isShowTip = false;
     },
     changeWord(newVal) {
-      // console.log(newVal,'选中');
-      this.showType = newVal.type;
+      // console.log(newVal, '选中');
+      this.showType = newVal.type || -1;
       const name = newVal.name;
       const typeName = newVal.typeName;
       const type = newVal.type;
@@ -577,7 +589,7 @@ export default {
   }
 };
 </script>
-<style lang="less" >
+<style lang="less">
 @import '../../less/common.less';
 .cell .el-button.delete:focus {
   color: red !important;

+ 94 - 164
src/components/icss/dept/AddDept.vue

@@ -1,102 +1,89 @@
 <template>
-  <div class="AddChemicalAndCommonMappingWrapper clearfix" @click="close">
+  <div class="AddChemicalAndCommonMappingWrapper clearfix">
     <crumbs
       :title="isEdit ? '科室关联维护--修改关联' : '科室关联维护--添加关联'"
       class="topBack"
       :param="$route.params"
       linkTo="DeptManage"
     ></crumbs>
-    <div class="AddChemicalAndCommonMappingBox clearfix">
-      <div class="titleBox clearfix">
-        <p class="title">医院术语</p>
-        <p class="title">标准术语</p>
-      </div>
-      <div class="leftBox clearfix">
-        <div class="itemLabel clearfix">
-          <label class="itemLabelName">科室名称</label>
-          <input class="searchInput" type="text" v-model="hisName" />
+    <el-form :model="form" label-position="right" label-width="120px" ref="relationForm">
+      <div class="AddChemicalAndCommonMappingBox clearfix">
+        <div class="titleBox clearfix">
+          <p class="title">医院术语</p>
+          <p class="title">标准术语</p>
         </div>
-        <div class="itemLabel clearfix">
-          <label class="itemLabelName">科室名称预览:</label>
-          <span class="selectItemName">{{hisName}}</span>
+        <div class="leftBox clearfix">
+          <el-row>
+            <el-col :span="16">
+              <el-form-item label="科室名称:">
+                <el-input v-model="form.hisName" clearable></el-input>
+              </el-form-item>
+              <el-form-item label="科室名称预览:">
+                <span class="previewInfo">{{form.hisName}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
-      </div>
-      <div class="midBox">
-        <img class="midLogo" src="../../../images/relation.png" alt />
-        <p class="midTitle">相互关联</p>
-      </div>
-      <div class="rightBox">
-        <div class="itemLabel">
-          <label class="itemLabelName">科室名称</label>
-          <input class="searchInput" @focus="focuInput" type="text" v-model="uniqueText" />
-          <span class="searchName" @click="searchMealItem(3)">搜索</span>
-          <ul
-            v-if="showUniqueNameList&&uniqueNameList.length >0"
-            class="itemList uniqueNameList"
-            ref="uniqueNameList"
-          >
-            <li
-              v-for="item in uniqueNameList"
-              class="mealNameItem ellipsis"
-              :title="item"
-              @click="selectUniqueName(item)"
-              :key="item"
-            >{{item}}</li>
-          </ul>
-           <ul
-            v-else-if="showUniqueNameList&&uniqueNameList.length === 0"
-            class="itemList uniqueNameList"
-          >
-            <li class="mealNameItem ellipsis">无数据</li>
-          </ul>
-          <ul
-            v-else-if=" isSendDataOver === 1"
-            class="itemList uniqueNameList"
-          >
-            <li class="mealNameItem ellipsis">加载中.....</li>
-          </ul>
+        <div class="midBox">
+          <img class="midLogo" src="../../../images/relation.png" alt />
+          <p class="midTitle">相互关联</p>
         </div>
-        <div class="itemLabel">
-          <!-- <label class="itemLabelName isRequired">诊断名称预览:</label> -->
-          <label class="itemLabelName">科室名称预览:</label>
-          <span class="selectItemName">{{form.uniqueName}}</span>
+        <div class="rightBox">
+          <el-row>
+            <el-col :span="16">
+              <el-form-item label="科室名称:">
+                <el-select
+                  style="width:100%"
+                  v-model="form.searchText"
+                  filterable
+                  remote
+                  clearable
+                  :loading="showDrop"
+                  loading-text="加载中..."
+                  @change="changeWord"
+                  @focus="handleFocus"
+                  placeholder="搜索"
+                  :remote-method="searchTerms"
+                  reserve-keyword
+                >
+                  <el-option
+                    v-for="(item,idx) in uniqueNameList"
+                    :key="idx"
+                    :label="item"
+                    :value="item"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="科室名称预览:">
+                <span class="previewInfo">{{form.searchText}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
       </div>
-    </div>
-    <div class="btn">
-      <!-- <span class="sumbit" @click="submitForm">建立关联</span> -->
-      <el-button type="primary" :disabled="saveDisable" @click="submitForm">确定</el-button>
-    </div>
+      <div class="btn">
+        <el-form-item>
+          <el-button type="primary" :disabled="saveDisable" @click="submitForm">确定</el-button>
+        </el-form-item>
+      </div>
+    </el-form>
   </div>
 </template>
 <script>
 import api from '@api/icss.js';
-
 export default {
   name: 'AddDept',
   data() {
     return {
-      hisName: '', //检查项目
-      itemText: '', //化验小项搜索文字内容
-      uniqueText: '', //公表项搜索文字内容
       isEdit: false,
       editId: '',
-      mealNameList: [],
-      itemNameList: [],
       uniqueNameList: [],
-      showMealNameList: false,
-      showItemNameList: false,
-      showUniqueNameList: false,
       form: {
-        mealName: '', //大项名称
-        mealId: '', //大项Id
-        itemName: '', //小项名称
-        itemId: '', //小项Id
-        uniqueName: '', //公表名称,必填
-        uniqueId: '' //公表项Id
+        searchText: '', //搜索字段
+        hisName: ''
       },
       saveDisable: false, //保存按钮禁止点击
-      isSendDataOver: 0 // 请求列表数据过程   0  发送请求前   1 请求过程   2请求结束
+      showDrop: false //下拉框显示文字
     };
   },
   created() {
@@ -105,103 +92,46 @@ export default {
     if (isEdit) {
       this.isEdit = isEdit;
       this.editId = data.id;
-      this.uniqueText = data.uniqueName;
-      this.hisName = data.hisName;
-      this.form.uniqueName = data.uniqueName;
+      this.form.hisName = data.hisName;
+      this.form.searchText = data.uniqueName;
     }
   },
   methods: {
-    close() {
-      this.mealNameList = [];
-      this.itemNameList = [];
-      this.uniqueNameList = [];
-      this.showSearchList();
-    },
-    // 搜索
-    searchMealItem(type) {
-      if (type == '1' || type == '2') {
-        this.getTagList(type);
-      } else if (type == '3') {
-        this.isSendDataOver = 1; // 发送请求中
-        // 搜索标准术语列表
-        this.getAllLisConcept();
+    // 搜索列表
+    searchTerms(query) {
+      if (!query) {
+        return;
       }
-    },
-
-    // 标准术语搜索列表
-    getAllLisConcept() {
+      this.showDrop = true;
       let params = {
         type: 7, //科室
-        inputStr: this.uniqueText,
+        inputStr: query,
         sex: 3,
         age: 0
       };
-      if (!params.inputStr) {
-        return;
-      }
       api.retrievalSearch(params).then(res => {
+        this.showDrop = false;
         if (res.data.code === '0') {
           this.uniqueNameList = res.data.data.deptNames;
-          this.showSearchList('showUniqueNameList');
-           this.isSendDataOver = 2; //请求发送结束
         }
       });
     },
+    changeWord() {},
+    // 获取焦点
+    handleFocus() {},
 
-    // 获取焦点搜索
-    focuInput() {
-      this.showSearchList();
-    },
-
-    // 显示搜索列表数据
-    showSearchList(type) {
-      this.showMealNameList = false;
-      this.showItemNameList = false;
-      this.showUniqueNameList = false;
-      if (type === 'showMealNameList') {
-        this.showMealNameList = true;
-      } else if (type === 'showItemNameList') {
-        this.showItemNameList = true;
-      } else if (type === 'showUniqueNameList') {
-        this.showUniqueNameList = true;
-      }
-    },
-    selectMealName(item) {
-      this.form.mealName = item.conceptName;
-      this.form.mealId = item.conceptId;
-      // this.$refs['mealNameList'].style.display='none'
-      this.hisName = '';
-      this.mealNameList = [];
-    },
-    selectItemName(item) {
-      this.form.itemName = item.conceptName;
-      this.form.itemId = item.conceptId;
-      this.itemText = '';
-      this.itemNameList = [];
-    },
-    // 选中诊断标准术语
-    selectUniqueName(item) {
-      this.form.uniqueName = item;
-      this.uniqueNameList = [];
-    },
     // 初始化表单数据
     initForm() {
-      this.form.uniqueName = '';
-      this.hisName = '';
-      this.uniqueText = '';
+      this.form.hisName = '';
+      this.form.searchText = '';
     },
 
     // 建立关联-参数处理
     submitForm() {
-      const { hisName } = this;
-      const { uniqueName } = this.form;
-      if (!hisName || !uniqueName) {
-        this.warning('请填写相关数据');
-        return;
-      }
+      const { searchText, hisName } = this.form;
       let params = {
         hisName: hisName,
-        uniqueName: uniqueName
+        uniqueName: searchText
       };
       this.showSaveDialog(params);
     },
@@ -217,13 +147,9 @@ export default {
             if (this.isEdit) {
               params = { ...params, id: this.editId };
             }
-            // this.saveLisMapping(params, this.isEdit ? '编辑成功' : '添加成功', 'success');
             this.saveLisMapping(params, '保存成功', 'success');
           } else {
             // 已存在,提示修改
-            // this.showConfirmDialog('该关联已存在是否替换旧的关系信息', () => {
-            //   this.saveLisMapping(params, '关联建立成功', 'success');
-            // });
             this.warning('该条关联已存在,无法添加');
             this.saveDisable = false;
           }
@@ -238,7 +164,6 @@ export default {
       api.saveOrUpdateDeptRecord(params).then(res => {
         if (res.data.code === '0') {
           this.warning(res.data.msg || msg, type);
-          // this.$router.push({name: 'ChemicalAndCommonMapping'});
           this.initForm();
           this.$router.push({
             name: 'DeptManage',
@@ -288,17 +213,6 @@ export default {
   .topBack {
     top: 0;
   }
-  // .groupTitle {
-  //     width: calc(100% - 50px);
-  //     height: 40px;
-  //     background: #fff;
-  //     padding: 0 20px 0 30px;
-  //     margin-bottom: 20px;
-  //     line-height: 40px;
-  //     position: relative;
-  //     z-index: 5;
-
-  // }
   .titleBox {
     padding: 0 0 10px 0px;
   }
@@ -399,9 +313,25 @@ export default {
   .mealNameItem:hover {
     background: #f5f7fa;
   }
-  .selectItemName {
+  // .selectItemName {
+  //   padding-left: 4px;
+  //   display: inline-block;
+  //   margin-top: 8px;
+  //   // width: calc(100% - 160px);s
+  //   line-height: 24px;
+  //   overflow: hidden;
+  //   word-wrap: break-word;
+  //   word-break: break-all;
+  // }
+  .previewInfo {
+    padding-left: 4px;
     display: inline-block;
-    width: calc(100% - 160px);
+    margin-top: 8px;
+    // width: calc(100% - 160px);s
+    line-height: 24px;
+    overflow: hidden;
+    word-wrap: break-word;
+    word-break: break-all;
   }
   .btn {
     position: relative;

+ 97 - 243
src/components/icss/disease/AddChemicalAndCommonMapping.vue

@@ -1,149 +1,89 @@
 <template>
-  <div class="AddChemicalAndCommonMappingWrapper clearfix" @click="close">
+  <div class="AddChemicalAndCommonMappingWrapper clearfix">
     <crumbs
       :title="isEdit ? '诊断关联维护--修改关联' : '诊断关联维护--添加关联'"
       class="topBack"
       :param="$route.params"
-      linkTo="ChemicalAndCommonMapping"
+      linkTo="DeptManage"
     ></crumbs>
-    <div class="AddChemicalAndCommonMappingBox clearfix">
-      <div class="titleBox clearfix">
-        <p class="title">医院术语</p>
-        <p class="title">标准术语</p>
-      </div>
-
-      <div class="leftBox clearfix">
-        <div class="itemLabel clearfix">
-          <label class="itemLabelName">诊断名称</label>
-          <input class="searchInput" type="text" v-model="mealText" />
+    <el-form :model="form" label-position="right" label-width="120px" ref="relationForm">
+      <div class="AddChemicalAndCommonMappingBox clearfix">
+        <div class="titleBox clearfix">
+          <p class="title">医院术语</p>
+          <p class="title">标准术语</p>
         </div>
-
-        <div class="itemLabel clearfix">
-          <!-- <label class="itemLabelName isRequired">诊断名称预览:</label> -->
-          <label class="itemLabelName">诊断名称预览:</label>
-          <span class="selectItemName">{{mealText}}</span>
+        <div class="leftBox clearfix">
+          <el-row>
+            <el-col :span="16">
+              <el-form-item label="诊断名称:">
+                <el-input v-model="form.hisName" clearable></el-input>
+              </el-form-item>
+              <el-form-item label="诊断名称预览:">
+                <span class="previewInfo">{{form.hisName}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
-        <!-- <div class="itemLabel clearfix">
-          <label class="itemLabelName">选择化验大项:</label>
-          <input class="searchInput" @focus="focuInput" type="text" v-model="mealText" />
-          <span class="searchName" @click="searchMealItem(1)">搜索</span>
-          <ul
-            v-if="showMealNameList&&mealNameList.length >0"
-            class="itemList mealNameList"
-            ref="mealNameList"
-          >
-            <li
-              v-for="item in mealNameList"
-              class="mealNameItem ellipsis"
-              :title="item.conceptName"
-              @click="selectMealName(item)"
-              :key="item.conceptId"
-            >{{item.conceptName}}</li>
-          </ul>
-        </div>-->
-        <!-- <div class="itemLabel clearfix">
-          <label class="itemLabelName isRequired">已选择化验大项:</label>
-          <span class="selectItemName">{{form.mealName}}</span>
-        </div>-->
-        <!-- <div class="itemLabel clearfix">
-          <label class="itemLabelName">选择化验小项:</label>
-          <input class="searchInput" @focus="focuInput" type="text" v-model="itemText" />
-          <span class="searchName" @click="searchMealItem(2)">搜索</span>
-          <ul
-            v-if="showItemNameList&&itemNameList.length >0"
-            class="itemList itemNameList"
-            ref="itemNameList"
-          >
-            <li
-              v-for="item in itemNameList"
-              class="mealNameItem ellipsis"
-              :title="item.conceptName"
-              @click="selectItemName(item)"
-              :key="item.conceptId"
-            >{{item.conceptName}}</li>
-          </ul>
-        </div>-->
-        <!-- <div class="itemLabel">
-          <label class="itemLabelName">已选择化验小项:</label>
-          <span class="selectItemName">{{form.itemName}}</span>
-        </div>-->
-      </div>
-      <div class="midBox">
-        <img class="midLogo" src="../../../images/relation.png" alt />
-        <p class="midTitle">相互关联</p>
-      </div>
-      <div class="rightBox">
-        <div class="itemLabel">
-          <label class="itemLabelName">诊断名称</label>
-          <input class="searchInput" @focus="focuInput" type="text" v-model="uniqueText" />
-          <span class="searchName" @click="searchMealItem(3)">搜索</span>
-          <ul
-            v-if="showUniqueNameList&&uniqueNameList.length >0"
-            class="itemList uniqueNameList"
-            ref="uniqueNameList"
-          >
-            <li
-              v-for="item in uniqueNameList"
-              class="mealNameItem ellipsis"
-              :title="item.name"
-              @click="selectUniqueName(item)"
-              :key="item.icd10Code"
-            >{{item.name}}</li>
-          </ul>
-          <ul
-            v-else-if="showUniqueNameList&&uniqueNameList.length === 0"
-            class="itemList uniqueNameList"
-          >
-            <li class="mealNameItem ellipsis">无数据</li>
-          </ul>
-          <ul
-            v-else-if=" isSendDataOver === 1"
-            class="itemList uniqueNameList"
-          >
-            <li class="mealNameItem ellipsis">加载中.....</li>
-          </ul>
+        <div class="midBox">
+          <img class="midLogo" src="../../../images/relation.png" alt />
+          <p class="midTitle">相互关联</p>
         </div>
-        <div class="itemLabel">
-          <!-- <label class="itemLabelName isRequired">诊断名称预览:</label> -->
-          <label class="itemLabelName">诊断名称预览:</label>
-          <span class="selectItemName">{{form.uniqueName}}</span>
+        <div class="rightBox">
+          <el-row>
+            <el-col :span="16">
+              <el-form-item label="诊断名称:">
+                <el-select
+                  style="width:100%"
+                  v-model="form.searchText"
+                  filterable
+                  remote
+                  clearable
+                  :loading="showDrop"
+                  loading-text="加载中..."
+                  @change="changeWord"
+                  @focus="handleFocus"
+                  placeholder="搜索"
+                  :remote-method="searchTerms"
+                  reserve-keyword
+                >
+                  <el-option
+                    v-for="item in uniqueNameList"
+                    :key="item.icd10Code"
+                    :label="item.name"
+                    :value="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="诊断名称预览:">
+                <span class="previewInfo">{{form.searchText}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
       </div>
-    </div>
-    <div class="btn">
-      <!-- <span class="sumbit" @click="submitForm">建立关联</span> -->
-      <el-button type="primary" :disabled="saveDisable" @click="submitForm">确定</el-button>
-    </div>
+      <div class="btn">
+        <el-form-item>
+          <el-button type="primary" :disabled="saveDisable" @click="submitForm">确定</el-button>
+        </el-form-item>
+      </div>
+    </el-form>
   </div>
 </template>
 <script>
 import api from '@api/icss.js';
-
 export default {
   name: 'AddChemicalAndCommonMapping',
   data() {
     return {
-      mealText: '', //化验大项搜索文字内容
-      itemText: '', //化验小项搜索文字内容
-      uniqueText: '', //公表项搜索文字内容
       isEdit: false,
       editId: '',
-      mealNameList: [],
-      itemNameList: [],
       uniqueNameList: [],
-      showMealNameList: false,
-      showItemNameList: false,
-      showUniqueNameList: false,
       form: {
-        mealName: '', //大项名称
-        mealId: '', //大项Id
-        itemName: '', //小项名称
-        itemId: '', //小项Id
-        uniqueName: '', //公表名称,必填
-        uniqueId: '' //公表项Id
+        searchText: '', //搜索字段
+        hisName: ''
       },
       saveDisable: false, //保存按钮禁止点击
-      isSendDataOver: 0 // 请求列表数据过程   0  发送请求前   1 请求过程   2请求结束
+      showDrop: false //下拉框显示文字
     };
   },
   created() {
@@ -152,134 +92,47 @@ export default {
     if (isEdit) {
       this.isEdit = isEdit;
       this.editId = data.id;
-      this.uniqueText = data.uniqueName;
-      this.mealText = data.hisName;
-      this.form.uniqueName = data.uniqueName;
+      this.form.hisName = data.hisName;
+      this.form.searchText = data.uniqueName;
     }
   },
   methods: {
-    close() {
-      this.mealNameList = [];
-      this.itemNameList = [];
-      this.uniqueNameList = [];
-      this.showSearchList();
-    },
-    // 搜索
-    searchMealItem(type) {
-      if (type == '1' || type == '2') {
-        this.getTagList(type);
-      } else if (type == '3') {
-        this.isSendDataOver = 1; // 发送请求中
-        // 搜索标准术语列表
-        this.getAllLisConcept();
-      }
-    },
-    getTagList(type) {
-      let param = {
-        relationPosition: 3
-      };
-      if (type == 1) {
-        param.name = this.mealText.trim();
-        param.typeId = 12;
-      } else if (type == 2) {
-        param.name = this.itemText.trim();
-        param.typeId = 13;
-      }
-      if (!param.name) {
+    // 搜索列表
+    searchTerms(query) {
+      if (!query) {
         return;
       }
-      api.getConceptInfoAssay(param).then(res => {
-        if (res.data.code === '0') {
-          if (type == 1) {
-            this.mealNameList = res.data.data;
-            this.showSearchList('showMealNameList');
-          } else if (type == 2) {
-            this.itemNameList = res.data.data;
-            this.showSearchList('showItemNameList');
-          }
-        }
-      });
-    },
-
-    // 标准术语搜索列表
-    getAllLisConcept() {
+      this.showDrop = true;
       let params = {
-        type: 4,
-        inputStr: this.uniqueText,
+        type: 4, //诊断
+        inputStr: query,
         sex: 3,
         age: 0
       };
-      if (!params.inputStr) {
-        return;
-      }
       api.retrievalSearch(params).then(res => {
-        console.log(res,'==================res,');
+        this.showDrop = false;
         if (res.data.code === '0') {
           this.uniqueNameList = res.data.data.diseaseNames;
-          this.showSearchList('showUniqueNameList');
-          this.isSendDataOver = 2; //请求发送结束
         }
       });
     },
+    changeWord() {},
+    // 获取焦点
+    handleFocus() {},
 
-    // 获取焦点搜索
-    focuInput() {
-      this.showSearchList();
-    },
-
-    // 显示搜索列表数据
-    showSearchList(type) {
-      this.showMealNameList = false;
-      this.showItemNameList = false;
-      this.showUniqueNameList = false;
-      if (type === 'showMealNameList') {
-        this.showMealNameList = true;
-      } else if (type === 'showItemNameList') {
-        this.showItemNameList = true;
-      } else if (type === 'showUniqueNameList') {
-        this.showUniqueNameList = true;
-      }
-    },
-    selectMealName(item) {
-      this.form.mealName = item.conceptName;
-      this.form.mealId = item.conceptId;
-      // this.$refs['mealNameList'].style.display='none'
-      this.mealText = '';
-      this.mealNameList = [];
-    },
-    selectItemName(item) {
-      this.form.itemName = item.conceptName;
-      this.form.itemId = item.conceptId;
-      this.itemText = '';
-      this.itemNameList = [];
-    },
-    // 选中诊断标准术语
-    selectUniqueName(item) {
-      this.form.uniqueName = item.name;
-      this.uniqueNameList = [];
-    },
     // 初始化表单数据
     initForm() {
-      this.form.uniqueName = '';
-      this.mealText = '';
-      this.uniqueText = '';
+      this.form.hisName = '';
+      this.form.searchText = '';
     },
 
     // 建立关联-参数处理
     submitForm() {
-      const { mealText } = this;
-      const { uniqueName } = this.form;
-      if (!mealText || !uniqueName) {
-        this.warning('请填写相关数据');
-        return;
-      }
+      const { searchText, hisName } = this.form;
       let params = {
-        hisName: mealText,
-        uniqueName: uniqueName
+        hisName: hisName,
+        uniqueName: searchText
       };
-      if (this.isEdit) {
-        params = { ...params, id: this.editId };
-      }
       this.showSaveDialog(params);
     },
     // 建立关联-映射关系是否已存在
@@ -297,9 +150,6 @@ export default {
             this.saveLisMapping(params, '保存成功', 'success');
           } else {
             // 已存在,提示修改
-            // this.showConfirmDialog('该关联已存在是否替换旧的关系信息', () => {
-            //   this.saveLisMapping(params, '关联建立成功', 'success');
-            // });
             this.warning('该条关联已存在,无法添加');
             this.saveDisable = false;
           }
@@ -314,7 +164,6 @@ export default {
       api.saveOrUpdateDiseaseRecord(params).then(res => {
         if (res.data.code === '0') {
           this.warning(res.data.msg || msg, type);
-          // this.$router.push({name: 'ChemicalAndCommonMapping'});
           this.initForm();
           this.$router.push({
             name: 'ChemicalAndCommonMapping',
@@ -355,7 +204,7 @@ export default {
   }
 };
 </script>
-<style lang="less">
+<style lang="less" scoped>
 .AddChemicalAndCommonMappingWrapper {
   .AddChemicalAndCommonMappingBox {
     min-width: 940px;
@@ -364,17 +213,6 @@ export default {
   .topBack {
     top: 0;
   }
-  // .groupTitle {
-  //     width: calc(100% - 50px);
-  //     height: 40px;
-  //     background: #fff;
-  //     padding: 0 20px 0 30px;
-  //     margin-bottom: 20px;
-  //     line-height: 40px;
-  //     position: relative;
-  //     z-index: 5;
-
-  // }
   .titleBox {
     padding: 0 0 10px 0px;
   }
@@ -475,9 +313,25 @@ export default {
   .mealNameItem:hover {
     background: #f5f7fa;
   }
-  .selectItemName {
+  // .selectItemName {
+  //   padding-left: 4px;
+  //   display: inline-block;
+  //   margin-top: 8px;
+  //   // width: calc(100% - 160px);s
+  //   line-height: 24px;
+  //   overflow: hidden;
+  //   word-wrap: break-word;
+  //   word-break: break-all;
+  // }
+  .previewInfo {
+    padding-left: 4px;
     display: inline-block;
-    width: calc(100% - 160px);
+    margin-top: 8px;
+    // width: calc(100% - 160px);s
+    line-height: 24px;
+    overflow: hidden;
+    word-wrap: break-word;
+    word-break: break-all;
   }
   .btn {
     position: relative;

+ 94 - 187
src/components/icss/drug/AddDrug.vue

@@ -1,99 +1,89 @@
 <template>
-  <div class="AddChemicalAndCommonMappingWrapper clearfix" @click="close">
+  <div class="AddChemicalAndCommonMappingWrapper clearfix">
     <crumbs
       :title="isEdit ? '药品关联维护--修改关联' : '药品关联维护--添加关联'"
       class="topBack"
       :param="$route.params"
-      linkTo="DrugManage"
+      linkTo="DeptManage"
     ></crumbs>
-    <div class="AddChemicalAndCommonMappingBox clearfix">
-      <div class="titleBox clearfix">
-        <p class="title">医院术语</p>
-        <p class="title">标准术语</p>
-      </div>
-      <div class="leftBox clearfix">
-        <div class="itemLabel clearfix">
-          <label class="itemLabelName">药品名称</label>
-          <input class="searchInput" type="text" v-model="hisName" />
+    <el-form :model="form" label-position="right" label-width="120px" ref="relationForm">
+      <div class="AddChemicalAndCommonMappingBox clearfix">
+        <div class="titleBox clearfix">
+          <p class="title">医院术语</p>
+          <p class="title">标准术语</p>
         </div>
-        <div class="itemLabel clearfix">
-          <label class="itemLabelName">药品名称预览:</label>
-          <span class="selectItemName">{{hisName}}</span>
+        <div class="leftBox clearfix">
+          <el-row>
+            <el-col :span="16">
+              <el-form-item label="药品名称:">
+                <el-input v-model="form.hisName" clearable></el-input>
+              </el-form-item>
+              <el-form-item label="药品名称预览:">
+                <span class="previewInfo">{{form.hisName}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
-      </div>
-      <div class="midBox">
-        <img class="midLogo" src="../../../images/relation.png" alt />
-        <p class="midTitle">相互关联</p>
-      </div>
-      <div class="rightBox">
-        <div class="itemLabel">
-          <label class="itemLabelName">药品名称</label>
-          <input class="searchInput" @focus="focuInput" type="text" v-model="uniqueText" />
-          <span class="searchName" @click="searchMealItem(3)">搜索</span>
-          <ul
-            v-if="showUniqueNameList&&uniqueNameList.length >0"
-            class="itemList uniqueNameList"
-            ref="uniqueNameList"
-          >
-            <li
-              v-for="item in uniqueNameList"
-              class="mealNameItem ellipsis"
-              :title="item.name"
-              @click="selectUniqueName(item)"
-              :key="item.name"
-            >{{item.name}}</li>
-          </ul>
-          <ul
-            v-else-if="showUniqueNameList&&uniqueNameList.length === 0"
-            class="itemList uniqueNameList"
-          >
-            <li class="mealNameItem ellipsis">无数据</li>
-          </ul>
-          <ul v-else-if=" isSendDataOver === 1" class="itemList uniqueNameList">
-            <li class="mealNameItem ellipsis">加载中.....</li>
-          </ul>
+        <div class="midBox">
+          <img class="midLogo" src="../../../images/relation.png" alt />
+          <p class="midTitle">相互关联</p>
         </div>
-        <div class="itemLabel">
-          <!-- <label class="itemLabelName isRequired">诊断名称预览:</label> -->
-          <label class="itemLabelName">药品名称预览:</label>
-          <span class="selectItemName">{{form.uniqueName}}</span>
+        <div class="rightBox">
+          <el-row>
+            <el-col :span="16">
+              <el-form-item label="药品名称:">
+                <el-select
+                  style="width:100%"
+                  v-model="form.searchText"
+                  filterable
+                  remote
+                  clearable
+                  :loading="showDrop"
+                  loading-text="加载中..."
+                  @change="changeWord"
+                  @focus="handleFocus"
+                  placeholder="搜索"
+                  :remote-method="searchTerms"
+                  reserve-keyword
+                >
+                  <el-option
+                    v-for="(item,idx) in uniqueNameList"
+                    :key="idx"
+                    :label="item.name"
+                    :value="item.name"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="药品名称预览:">
+                <span class="previewInfo">{{form.searchText}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </div>
       </div>
-    </div>
-    <div class="btn">
-      <!-- <span class="sumbit" @click="submitForm">建立关联</span> -->
-      <el-button type="primary" :disabled="saveDisable" @click="submitForm">确定</el-button>
-    </div>
+      <div class="btn">
+        <el-form-item>
+          <el-button type="primary" :disabled="saveDisable" @click="submitForm">确定</el-button>
+        </el-form-item>
+      </div>
+    </el-form>
   </div>
 </template>
 <script>
 import api from '@api/icss.js';
-
 export default {
   name: 'AddDrug',
   data() {
     return {
-      hisName: '', //检查项目
-      itemText: '', //化验小项搜索文字内容
-      uniqueText: '', //公表项搜索文字内容
       isEdit: false,
       editId: '',
-      mealNameList: [],
-      itemNameList: [],
       uniqueNameList: [],
-      showMealNameList: false,
-      showItemNameList: false,
-      showUniqueNameList: false,
       form: {
-        mealName: '', //大项名称
-        mealId: '', //大项Id
-        itemName: '', //小项名称
-        itemId: '', //小项Id
-        uniqueName: '', //公表名称,必填
-        uniqueId: '' //公表项Id
+        searchText: '', //搜索字段
+        hisName: ''
       },
       saveDisable: false, //保存按钮禁止点击
-      isSendDataOver: 0 // 请求列表数据过程   0  发送请求前   1 请求过程   2请求结束
+      showDrop: false //下拉框显示文字
     };
   },
   created() {
@@ -102,130 +92,46 @@ export default {
     if (isEdit) {
       this.isEdit = isEdit;
       this.editId = data.id;
-      this.uniqueText = data.uniqueName;
-      this.hisName = data.hisName;
-      this.form.uniqueName = data.uniqueName;
+      this.form.hisName = data.hisName;
+      this.form.searchText = data.uniqueName;
     }
   },
   methods: {
-    close() {
-      this.mealNameList = [];
-      this.itemNameList = [];
-      this.uniqueNameList = [];
-      this.showSearchList();
-    },
-    // 搜索
-    searchMealItem(type) {
-      if (type == '1' || type == '2') {
-        this.getTagList(type);
-      } else if (type == '3') {
-        this.isSendDataOver = 1; // 发送请求中
-        // 搜索标准术语列表
-        this.getAllLisConcept();
-      }
-    },
-    getTagList(type) {
-      let param = {
-        relationPosition: 3
-      };
-      if (type == 1) {
-        param.name = this.hisName.trim();
-        param.typeId = 12;
-      } else if (type == 2) {
-        param.name = this.itemText.trim();
-        param.typeId = 13;
-      }
-      if (!param.name) {
+    // 搜索列表
+    searchTerms(query) {
+      if (!query) {
         return;
       }
-      api.getConceptInfoAssay(param).then(res => {
-        if (res.data.code === '0') {
-          if (type == 1) {
-            this.isSendDataOver = 2; //请求发送结束
-            this.mealNameList = res.data.data;
-            this.showSearchList('showMealNameList');
-          } else if (type == 2) {
-            this.isSendDataOver = 2; //请求发送结束
-            this.itemNameList = res.data.data;
-            this.showSearchList('showItemNameList');
-          }
-        }
-      });
-    },
-
-    // 标准术语搜索列表
-    getAllLisConcept() {
+      this.showDrop = true;
       let params = {
         type: 5, //药品
-        inputStr: this.uniqueText,
+        inputStr: query,
         sex: 3,
         age: 0
       };
-      if (!params.inputStr) {
-        return;
-      }
       api.retrievalSearch(params).then(res => {
+        this.showDrop = false;
         if (res.data.code === '0') {
           this.uniqueNameList = res.data.data.drugNames;
-          this.showSearchList('showUniqueNameList');
         }
       });
     },
+    changeWord() {},
+    // 获取焦点
+    handleFocus() {},
 
-    // 获取焦点搜索
-    focuInput() {
-      this.showSearchList();
-    },
-
-    // 显示搜索列表数据
-    showSearchList(type) {
-      this.showMealNameList = false;
-      this.showItemNameList = false;
-      this.showUniqueNameList = false;
-      if (type === 'showMealNameList') {
-        this.showMealNameList = true;
-      } else if (type === 'showItemNameList') {
-        this.showItemNameList = true;
-      } else if (type === 'showUniqueNameList') {
-        this.showUniqueNameList = true;
-      }
-    },
-    selectMealName(item) {
-      this.form.mealName = item.conceptName;
-      this.form.mealId = item.conceptId;
-      // this.$refs['mealNameList'].style.display='none'
-      this.hisName = '';
-      this.mealNameList = [];
-    },
-    selectItemName(item) {
-      this.form.itemName = item.conceptName;
-      this.form.itemId = item.conceptId;
-      this.itemText = '';
-      this.itemNameList = [];
-    },
-    // 选中诊断标准术语
-    selectUniqueName(item) {
-      this.form.uniqueName = item.name;
-      this.uniqueNameList = [];
-    },
     // 初始化表单数据
     initForm() {
-      this.form.uniqueName = '';
-      this.hisName = '';
-      this.uniqueText = '';
+      this.form.hisName = '';
+      this.form.searchText = '';
     },
 
     // 建立关联-参数处理
     submitForm() {
-      const { hisName } = this;
-      const { uniqueName } = this.form;
-      if (!hisName || !uniqueName) {
-        this.warning('请填写相关数据');
-        return;
-      }
+      const { searchText, hisName } = this.form;
       let params = {
         hisName: hisName,
-        uniqueName: uniqueName
+        uniqueName: searchText
       };
       this.showSaveDialog(params);
     },
@@ -244,9 +150,6 @@ export default {
             this.saveLisMapping(params, '保存成功', 'success');
           } else {
             // 已存在,提示修改
-            // this.showConfirmDialog('该关联已存在是否替换旧的关系信息', () => {
-            //   this.saveLisMapping(params, '关联建立成功', 'success');
-            // });
             this.warning('该条关联已存在,无法添加');
             this.saveDisable = false;
           }
@@ -261,7 +164,6 @@ export default {
       api.saveOrUpdateDrugRecord(params).then(res => {
         if (res.data.code === '0') {
           this.warning(res.data.msg || msg, type);
-          // this.$router.push({name: 'ChemicalAndCommonMapping'});
           this.initForm();
           this.$router.push({
             name: 'DrugManage',
@@ -311,17 +213,6 @@ export default {
   .topBack {
     top: 0;
   }
-  // .groupTitle {
-  //     width: calc(100% - 50px);
-  //     height: 40px;
-  //     background: #fff;
-  //     padding: 0 20px 0 30px;
-  //     margin-bottom: 20px;
-  //     line-height: 40px;
-  //     position: relative;
-  //     z-index: 5;
-
-  // }
   .titleBox {
     padding: 0 0 10px 0px;
   }
@@ -422,9 +313,25 @@ export default {
   .mealNameItem:hover {
     background: #f5f7fa;
   }
-  .selectItemName {
+  // .selectItemName {
+  //   padding-left: 4px;
+  //   display: inline-block;
+  //   margin-top: 8px;
+  //   // width: calc(100% - 160px);s
+  //   line-height: 24px;
+  //   overflow: hidden;
+  //   word-wrap: break-word;
+  //   word-break: break-all;
+  // }
+  .previewInfo {
+    padding-left: 4px;
     display: inline-block;
-    width: calc(100% - 160px);
+    margin-top: 8px;
+    // width: calc(100% - 160px);s
+    line-height: 24px;
+    overflow: hidden;
+    word-wrap: break-word;
+    word-break: break-all;
   }
   .btn {
     position: relative;