Browse Source

Merge branch 'dev2/luolei' into test

Luolei 6 years ago
parent
commit
7946665afa

+ 7 - 3
src/api/config.js

@@ -158,7 +158,7 @@ export default {
     'getAllRelationType': 'api/knowledgeman/lexiconRelationship/getAllLexiconRelationship', //医学术语-关系维护-关系下拉
     'addRelationConcept': 'api/knowledgeman/relation/addRelationInfo', //医学术语-关系维护-添加
     'RelationUpload': 'api/knowledgeman/relation/relationInfoExcelIm', //医学术语-关系维护-导入
-    'scaleContentStructure': 'api/icssman/scaleContent/list',  //量表结构维护 -- 列表
+    'scaleContentStructure': 'api/knowledgeman/scaleContent/page',  //量表结构维护 -- 列表
     'getAllDeptAndDisInfo': 'api/icssman/moduleInfo/getAllDeptAndDisInfo',  //模板维护-获取科室和疾病所有信息
     'queryEvaluationModulePages': 'api/icssman/evaluationModuleMapping/queryEvaluationModulePages',  //慢病管理评估维护 -- 列表
     'getMedicalInfoList': '/api/knowledgeman/medical/getMedicalInfoList', //医学术语--属性维护--属性列表
@@ -189,9 +189,13 @@ export default {
     'addDisScaleInfo':'api/icssman/disScale/addDisScaleInfo',  //医学数据-诊断量表关联维护-添加和修改
     'getDisScaleByDisId':'api/icssman/disScale/getDisScaleByDisId',  //医学数据-诊断量表关联维护-根据诊断id获取诊断量表关联信息(修改回读用)
     'delDisScaleInfo':'api/icssman/disScale/delDisScaleInfo',  //医学数据-诊断量表关联维护-删除
-    'insertOrUpdate': 'api/icssman/scaleContent/insertOrUpdate',  //量表结构维护 -- 添加或者更新
-    'deleteScale': 'api/icssman/scaleContent/delete',  //量表结构维护 -- 删除
+    'insertOrUpdate': 'api/knowledgeman/scaleContent/insertOrUpdate',  //量表结构维护 -- 添加或者更新
+    'rebuildOrUpdate': 'api/knowledgeman/scaleContent/getByConceptId',  //量表结构维护 -- 添加或者更新
+    'deleteScale': 'api/knowledgeman/scaleContent/delete',  //量表结构维护 -- 删除
+    'searchKnowledgeLis': 'api/knowledgeman/scaleContent/index', //量表结构检索
+    'getknowledgeList': 'api/knowledgeman/dictionaryInfo/getList', //量表结构字典信息
     'getModuleType': 'api/icssman/moduleInfo/getModuleType',  //模板维护 -- 类型筛选
+    'indexByLexicon': 'api/knowledgeman/commonconcept/indexByLexicon',  //知识库标准化-根据名称和术语库词性类型搜索
 	},
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 12 - 0
src/api/icss.js

@@ -10,6 +10,9 @@ export default {
     getDropList() {
         return axios.post(urls.getDropList)
     },
+    getknowledgeList() {
+        return axios.post(urls.getknowledgeList)
+    },
     getPromptList(param){
       return axios.post(urls.getPromptList,param)
     },
@@ -52,6 +55,9 @@ export default {
     searchTagList(param) {
         return axios.post(urls.searchTagList, param)
     },
+    searchKnowledgeLis(param) {
+        return axios.post(urls.searchKnowledgeLis, param)
+    },
     validateSystomName(param) {
         return axios.post(urls.searchTagList, param)
     },
@@ -61,6 +67,9 @@ export default {
     detailsTag(param) {   //根据id返回数据
       return axios.post(urls.detailsTag, param)
     },
+    rebuildOrUpdate(param) {   //根据id返回量表数据
+      return axios.post(urls.rebuildOrUpdate, param)
+    },
     getDeptInfo(param) {//科室维护
         return axios.post(urls.getDeptInfo, param)
     },
@@ -85,6 +94,9 @@ export default {
     deleteTagGroup(param) {
         return axios.post(urls.deleteTagGroup, param)
     },
+    indexByLexicon(param) {
+        return axios.post(urls.indexByLexicon, param)
+    },
     getGroupParams(val){
       if(val == 2){
         return groupParams[0]

+ 18 - 20
src/components/icss/ChronicDiseaseAdd.vue

@@ -3,12 +3,12 @@
     <crumbs
       :title="minTitle"
       class="topBack"
-      linkTo="/admin/LT-YXSJWH-LBJGWH"
+      linkTo="/admin/LT-YXSYKWH-LBJGWH"
     ></crumbs>
     <div class="ChronicDiseaseAddWrap" @click="close">
       <div class="ChronicDisease">
         <p class="ChronicDiseaseTop" v-if="!editData.isEdit">
-          <span>选择量表标签:</span>
+          <span>选择量表术语:</span>
           <input
             type="text"
             v-model="region"
@@ -16,11 +16,11 @@
           >
           <i @click.stop="searchTagList">搜索</i>
           <ul v-if="showLis">
-            <li v-for="item in AdscriptionsType" :key="item.id" @click="selectLis(item.id,item.tagName)">{{item.tagName}}</li>
+            <li v-for="item in AdscriptionsType" :key="item.conceptId" @click="selectLis(item.conceptId,item.name)">{{item.name}}</li>
           </ul>
         </p>
         <p class="ChronicDiseaseBtm">
-          <span>已选择量表:</span>
+          <span>已选择量表术语:</span>
           <i>{{selectName}}</i>
         </p>
       </div>
@@ -47,7 +47,7 @@
             <div class="contentDetail clearfix" v-for="(item,idx) in contentPool" :class="selectRightPart.order == item.order?'selectDom':null" :key="item.order" @click="selectPart(item,2)">
               <span>{{item.name}}:</span>
               <div class="contentDetails">
-                <quillEditor v-model="item.content" :options="editorOption" v-if="item.val == 0" class="ql-editor"></quillEditor>
+                <quillEditor v-model="item.content" :options="editorOption" v-if="item.val == 1" class="ql-editor"></quillEditor>
               </div>
             </div>
           </div>
@@ -118,13 +118,13 @@ export default {
     if (tmpEditData.isEdit) {      //修改
       this.editData = tmpEditData
       this.minTitle='量表维护-修改量表结构'
-      this.selectName = tmpEditData.data.name
-      this.selectId = tmpEditData.data.id
-      let tmpScale = tmpEditData.data.scale
+      this.selectName = tmpEditData.row.name
+      this.selectId = tmpEditData.row.conceptId
+      let tmpScale = tmpEditData.data
       for(let i = 0;i < tmpScale.length;i++){
         tmpScale[i].val = tmpScale[i].type
         tmpScale[i].order = tmpScale[i].orderNo
-        tmpScale[i].name = tmpScale[i].type == 0?'文本模块':'推送模块'
+        tmpScale[i].name = tmpScale[i].type == 1?'文本模块':'推送模块'
       }
       this.contentPool = tmpScale
     }
@@ -137,9 +137,9 @@ export default {
       if(JSON.stringify(tmpLeft) == '{}'){
         return
       }
-      if(tmpLeft.val == 1){
+      if(tmpLeft.val == 2){
         for(let i = 0;i < tmpPool.length;i++){
-          if(tmpPool[i].val == 1){
+          if(tmpPool[i].val == 2){
             // this.$message({
             //   message: '推送模块只能添加一次',
             //   type: 'warning'
@@ -193,6 +193,7 @@ export default {
       this.contentPool = tmpPool
     },
     selectPart(part,dir){
+      console.log(part,dir)
       if(dir == 1){
         if(this.selectLeftPart.val == part.val){
           this.selectLeftPart = {}
@@ -215,15 +216,12 @@ export default {
       this.selectId = id
     },
     searchTagList() {
-      let param = {
-        "tagName": this.region,
-        "type": "21",
-        "filterList":[
-          "scale"
-        ]
+      if(this.region.trim() == ''){
+        return
       }
-      api.searchTagList(param).then((res) => {
+      api.searchKnowledgeLis({name: this.region}).then((res) => {
         if (res.data.code === '0') {
+          console.log(res)
           this.AdscriptionsType = res.data.data
           this.showLis = this.AdscriptionsType.length > 0
         }
@@ -249,7 +247,7 @@ export default {
       }
       return {
         "content": tmpParams,
-        "scaleId": this.selectId
+        "conceptId": this.selectId
       }
     },
     submitForm() {
@@ -274,7 +272,7 @@ export default {
             this.warning(res.data.msg || '保存成功', 'success');
             setTimeout(() => {
               this.$router.push({
-                path:'/admin/LT-YXSJWH-LBJGWH'
+                path:'/admin/LT-YXSYKWH-LBJGWH'
               })
             }, 1000);
           }

+ 53 - 25
src/components/icss/ChronicDiseaseStructureList.vue

@@ -5,6 +5,16 @@
                 <el-form-item label="量表名称:">
                     <el-input size="mini" v-model="filter.tagSysName" placeholder="量表名称" clearable></el-input>
                 </el-form-item>
+                <el-form-item label="状态:">
+                <el-select v-model="isState" clearable placeholder="请选择" size="mini">
+                  <el-option
+                    v-for="item in stateSelect"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id">
+                  </el-option>
+                </el-select>
+              </el-form-item>
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
                     <el-button size="mini" type="warning" @click="addIndeptTag">添加量表</el-button>
@@ -34,6 +44,14 @@
                         prop="name"
                         label="量表名称">
                 </el-table-column>
+                <el-table-column
+                        label="状态">
+                        <template slot-scope="scope">
+                          <span :class="scope.row.isDeleted == 'N'?'':'delete'">
+                            {{scope.row.isDeleted == 'N'?'启用中':'已删除'}}
+                          </span>
+                        </template>
+                </el-table-column>
                 <el-table-column
                         :resizable = "false"
                         prop="modifier"
@@ -41,12 +59,11 @@
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="operate"
                         label="操作">
                     <template slot-scope="scope">
-                        <el-button  @click="modifyIndeptTag(scope.row)" type="text" size="small">修改</el-button>
+                        <el-button type="text" size="small" :disabled="scope.row.isDeleted != 'N'" @click="modifyIndeptTag(scope.row)">修改</el-button>
                         <span style="margin:0 3px;">|</span>
-                        <el-button @click="showDelDialog(scope.row.id)" class="delete" type="text" size="small">删除</el-button>
+                        <el-button type="text" size="small" :class="scope.row.isDeleted == 'N'?'delete':'review'" @click="showDelDialog(scope.row)">{{scope.row.isDeleted == 'N'?'删除':'恢复'}}</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -74,6 +91,11 @@
     data: function() {
       return {
         list: [],
+        stateSelect:[
+          {id:'N',name:'启用中'},
+          {id:'Y',name:'已删除'},
+        ],
+        isState:'',
         tagTypes: [],
         AdscriptionsType:[],
         AdscriptionsOwnTo:[],
@@ -96,13 +118,13 @@
       getDropList() {
         let templateType = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleInfoTypeEnum : []
         this.AdscriptionsType = templateType
-        return api.getDropList().then((res) =>{
+        return api.getknowledgeList().then((res) =>{
           if(res.data.code === '0') {
-            localStorage.setItem('DiseaseManage',JSON.stringify(res.data.data[8]))
-            this.tagTypes =  res.data.data[6];
-            for (var i = 0; i < this.tagTypes.length; i++) {
-              this.tagTypesList.push(this.tagTypes[i].val)
-            }
+            localStorage.setItem('DiseaseManage',JSON.stringify(res.data.data[1]))
+            // this.tagTypes =  res.data.data[6];
+            // for (var i = 0; i < this.tagTypes.length; i++) {
+            //   this.tagTypesList.push(this.tagTypes[i].val)
+            // }
           }
         })
       },
@@ -110,13 +132,13 @@
         const param = this.getFilterItems();
         api.scaleContentStructure(param).then((res) => {
           const list = res.data.data.records
-          for (var i = 0; i < list.length; i++) {
-            for (var j =  0; j < this.tagTypes.length; j++) {
-              if(list[i].tagType === this.tagTypes[j].val) {
-                list[i].tagTypeCn = this.tagTypes[j].name;
-              }
-            }
-          }
+          // for (var i = 0; i < list.length; i++) {
+          //   for (var j =  0; j < this.tagTypes.length; j++) {
+          //     if(list[i].tagType === this.tagTypes[j].val) {
+          //       list[i].tagTypeCn = this.tagTypes[j].name;
+          //     }
+          //   }
+          // }
           this.list = list;
           this.total = res.data.data.total;
         })
@@ -129,10 +151,10 @@
         this.$router.push({name:'ChronicDiseaseAdd'})
       },
       modifyIndeptTag(row) {
-        api.detailsTag({id:row.id}).then((res)=>{
-            const {code,data,msg} = res.data;
+        api.rebuildOrUpdate({conceptId:row.conceptId}).then((res)=>{
+          const {code,data,msg} = res.data;
             if(code=='0'){
-              this.$router.push({name:'ChronicDiseaseAdd',params:{isEdit:true,data:data}});
+              this.$router.push({name:'ChronicDiseaseAdd',params:{isEdit:true,data:data,row:row}});
             }else{
               this.$message({
                 message: msg,
@@ -149,7 +171,8 @@
         const param = {
           current: this.currentPage,
           size: this.pageSize,
-          tagName: this.filter.tagSysName,
+          name: this.filter.tagSysName,
+          status:this.isState
         };
         return param;
       },
@@ -171,14 +194,19 @@
           resolve();
         }).catch(() => {});
       },
-      showDelDialog(id){
+      showDelDialog(item){
         let tmpArr = []
-        tmpArr.push(id)
-        this.showConfirmDialog('是否删除该标签?',()=>{
-          api.deleteScale({ids:tmpArr}).then((res)=>{
+        tmpArr.push(item.conceptId)
+        const param = {
+          ids:tmpArr,
+          status:item.isDeleted === 'N'?'Y':'N'
+        }
+        let waringTxt = (item.isDeleted === 'N'?'是否删除该标准术语?':'是否重新启用该条数据?')
+        this.showConfirmDialog(waringTxt,()=>{
+          api.deleteScale(param).then((res)=>{
             if(res.data.code=='0'){
+              this.warning(res.data.msg||'操作成功','success');
               this.getDataList();
-              this.warning(res.data.msg || '操作成功','success');
             }else{
               this.warning(res.data.msg);
             }

+ 1 - 1
src/components/icss/DiagnosisPubTag.vue

@@ -521,7 +521,7 @@ export default {
   .changeTips {
     position: absolute;
     left: 220px;
-    min-width: 300px;
+    // min-width: 300px;
     color: #22ccc8;
     font-size: 12px;
   }

+ 2 - 1
src/components/icss/PubIndeptTag.vue

@@ -506,7 +506,8 @@
     .changeTips {
         position: absolute;
         left: 220px;
-        min-width: 300px;
+        // min-width: 300px;
+        width: 200%;
         color: #ea7777;
         font-size: 12px;
     }

+ 302 - 150
src/components/icss/PubTagGroup.vue

@@ -1,5 +1,8 @@
 <template>
-  <div class="PubTagGroupWrapper">
+  <div
+    class="PubTagGroupWrapper"
+    @click="closeNameLis(1)"
+  >
     <el-form
       class="groups"
       :rules="rules"
@@ -46,45 +49,85 @@
         </el-select>
       </el-form-item>
       <el-form-item
-        label="性别:"
-        prop="region7"
+        v-show="(form.region1 == 1 && form.region2 ==4) || (form.region1 == 4) || (form.region1 == 5)"
+        :label="(form.region1 == 5)?'是否当化验推送项':(form.region1 == 4)?'是否当查体推送项':'是否为症状'"
+        prop="region12"
       >
-        <span class="changeTips">改变性别后,标签明细将会恢复到默认状态</span>
+        <span
+          v-if="form.region1 == 4"
+          class="changeTips changeTipsName"
+        >当为查体推送项时,标签系统名称需要检索医学标准术语内容并与之相对应,才可保证系统正常使用,如果未对应上可能造成系统显示异常!如果在搜索中没有可以先在医学标准术语中建立相关信息!</span>
+        <span
+          v-else-if="form.region1 == 5"
+          class="changeTips changeTipsName"
+        >当为化验推送项时,标签系统名称需要检索医学标准术语内容并与之相对应,才可保证系统正常使用,如果未对应上可能造成系统显示异常!如果在搜索中没有可以先在医学标准术语中建立相关信息!</span>
+        <span
+          v-else
+          class="changeTips changeTipsName"
+        >当为症状时,标签系统名称需要与医学标准术语内容相对应;不为症状时可以不用相互对应;</span>
         <el-select
-          v-model="form.region7"
-          :disabled="!!editData.id || !form.region1 || form.region2 == 11"
-          @change="(e)=>readyChangeSelect(e,3)"
+          v-model="form.region12"
+          @change="sendData"
         >
           <el-option
-            label="通用"
-            value="3"
+            label=""
+            value="0"
           ></el-option>
           <el-option
-            label="男"
+            label="不是"
             value="1"
           ></el-option>
-          <el-option
-            label="女"
-            value="2"
-          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item
         label="标签系统名称:"
         prop="region3"
       >
-        <el-input
+        <div @click.stop style="display:inline-block;">
+          <el-input
+            v-model="form.region3"
+            :disabled="!form.region1"
+            maxLength="30"
+            placeholder="请输入标签系统名称"
+            @change="sendData"
+            @focus="focusSystemName"
+          ></el-input>
+          <ul
+            class="systemNames"
+            v-if="systemNameShow"
+          >
+            <li
+              v-for="item in systemNameLis"
+              class="ellipsis"
+              :key="item.conceptId"
+              @click="pushSystemName(item.name)"
+            >{{item.name}}</li>
+          </ul>
+        </div>
+        <!-- <el-autocomplete
           v-model="form.region3"
-          :disabled="!form.region1"
           maxLength="30"
+          :fetch-suggestions="querySearchAsync"
           placeholder="请输入标签系统名称"
-          @change="sendData"
-        ></el-input>
+          @select="handleSelect"
+        ></el-autocomplete> -->
+        <span
+          v-if="form.region1 == 5 || form.region1 == 4"
+          class="changeTips changeTipsName"
+        >标签系统名称需要与医学标准术语内容相对应,如果没有可以先在医学标准术语中建立相关信息!未建立相关信息可能会影响系统使用!</span>
+        <span
+          v-if="form.region2 == 4"
+          class="changeTips changeTipsName"
+        >当为症状时,标签系统名称需要与医学标准术语内容相对应,如果没有可以先在医学标准术语中建立相关信息!未建立相关信息可能会影响系统使用!</span>
       </el-form-item>
       <el-form-item
         label="标签界面名称:"
         prop="region4"
       >
+        <span
+          v-if="form.region1 == 5 || form.region2 == 4 || form.region1 == 4"
+          class="changeTips changeTipsName"
+        >为在界面上检索不受影响,标签界面名称应与标签系统名称和医学标准术语内容相对应,未建立相关信息可能会影响系统使用!</span>
         <el-input
           v-model="form.region4"
           :disabled="!form.region1"
@@ -93,6 +136,30 @@
           @change="sendData"
         ></el-input>
       </el-form-item>
+      <el-form-item
+        label="性别:"
+        prop="region7"
+      >
+        <span class="changeTips">改变性别后,标签明细将会恢复到默认状态</span>
+        <el-select
+          v-model="form.region7"
+          :disabled="!!editData.id || !form.region1 || form.region2 == 11"
+          @change="(e)=>readyChangeSelect(e,3)"
+        >
+          <el-option
+            label="通用"
+            value="3"
+          ></el-option>
+          <el-option
+            label="男"
+            value="1"
+          ></el-option>
+          <el-option
+            label="女"
+            value="2"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <!-- <el-form-item
         label="选择项之间链接:"
         prop="region5"
@@ -123,25 +190,6 @@
           ></el-option>
         </el-select>
       </el-form-item> -->
-      <el-form-item
-        v-if="form.region1 == 1 && form.region2 ==4"
-        label="是否为症状"
-        prop="region12"
-      >
-        <el-select
-          v-model="form.region12"
-          @change="sendData"
-        >
-          <el-option
-            label="是"
-            value="0"
-          ></el-option>
-          <el-option
-            label="不是"
-            value="1"
-          ></el-option>
-        </el-select>
-      </el-form-item>
       <el-form-item
         label="年龄:"
         prop="region8"
@@ -158,7 +206,7 @@
       <el-form-item
         prop="region9"
         class="ages maxAges"
-      > 
+      >
         <el-input
           v-model.number="form.region9"
           :disabled="!form.region1 || form.region2 == 11"
@@ -167,16 +215,43 @@
           @input="sendData"
         ></el-input>
       </el-form-item>
-      <el-form-item class="verticalMiddle" label="选择子项时是否复制主项标签:" prop="region10" v-if="form.region2 == 6">
-        <el-select v-model="form.region10" :disabled="!form.region1 || form.region2 == 11">
-          <el-option label="不可以" value="0"></el-option>
-          <el-option label="可以" value="1"></el-option>
+      <el-form-item
+        class="verticalMiddle"
+        label="选择子项时是否复制主项标签:"
+        prop="region10"
+        v-if="form.region2 == 6"
+      >
+        <el-select
+          v-model="form.region10"
+          :disabled="!form.region1 || form.region2 == 11"
+        >
+          <el-option
+            label="不可以"
+            value="0"
+          ></el-option>
+          <el-option
+            label="可以"
+            value="1"
+          ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="是否显示加号:" prop="region11" v-if="form.region2 == 2 || form.region2 == 3">
-        <el-select v-model="form.region11" :disabled="!form.region1 || form.region2 == 11">
-          <el-option label="显示" value="1"></el-option>
-          <el-option label="不显示" value="0"></el-option>
+      <el-form-item
+        label="是否显示加号:"
+        prop="region11"
+        v-if="form.region2 == 2 || form.region2 == 3"
+      >
+        <el-select
+          v-model="form.region11"
+          :disabled="!form.region1 || form.region2 == 11"
+        >
+          <el-option
+            label="显示"
+            value="1"
+          ></el-option>
+          <el-option
+            label="不显示"
+            value="0"
+          ></el-option>
         </el-select>
       </el-form-item>
     </el-form>
@@ -208,18 +283,18 @@ import utils from '@api/utils.js';
 
 
 export default {
-  props:['editData'],
+  props: ['editData'],
   data() {
     var validatePass1 = (rule, value, callback) => {
-        this.validateSystomName(value,callback,1)
+      this.validateSystomName(value, callback, 1)
     };
     var validatePass2 = (rule, value, callback) => {
-        const editData = this.$props.editData;
-        if(editData.id && value == editData.tagName){ //修改系统名称没变就不再校验
-          callback();
-        }else{
-          this.validateSystomName(value,callback,2)
-        }
+      const editData = this.$props.editData;
+      if (editData.id && value == editData.tagName) { //修改系统名称没变就不再校验
+        callback();
+      } else {
+        this.validateSystomName(value, callback, 2)
+      }
     };
     return {
       form: {
@@ -234,23 +309,23 @@ export default {
         region9: '200',         //最大年龄
         region10: '1',        //是否复制主标签
         region11: '0',       //是否复制当前模块
-        region12:'1',        //是否为症状
-        tagPool:[],          //标签池数据
-        order:[],            //排序方式
-        tipLis:[],           //提示列表
+        region12: '1',        //是否为症状//是否为化验推送//是否为查体推送    
+        tagPool: [],          //标签池数据
+        order: [],            //排序方式
+        tipLis: [],           //提示列表
       },
       labelTypesMaps: {       //// 归属和填写单类型限制
-        '1':['2','3','4'],  //推送类型暂时不用
-        '3':['2','4','6'],
-        '4':['2','3'],
-        '5':['7'],
-        '6':['9'],
+        '1': ['2', '3', '4'],  //推送类型暂时不用
+        '3': ['2', '4', '6'],
+        '4': ['2', '3'],
+        '5': ['7'],
+        '6': ['9'],
         // '7':['9'],
-        '8':['9'],
-        '9':['9'],
-        '21':['9'],
-        '22':['9'],
-        '10':['9']
+        '8': ['9'],
+        '9': ['9'],
+        '21': ['9'],
+        '22': ['9'],
+        '10': ['9']
       },
       rules: {
         region1: [
@@ -286,7 +361,7 @@ export default {
           { required: true, message: '是否复制当前模块', trigger: 'change' }
         ],
         region12: [
-          { required: true, message: '是否为症状', trigger: 'change' }
+          { required: true, message: '请选择', trigger: 'change' }
         ],
       },
       tmpSex: '通用',
@@ -296,8 +371,10 @@ export default {
       labelTypes: [],
       labelTypesList: [],
       tagTypes: [],        //标签池数据
-      type:'',
-      systom:null,      //标签系统名称存在与否
+      type: '',
+      systom: null,      //标签系统名称存在与否
+      systemNameShow: false,//系统名称列表显示
+      systemNameLis: [],//系统名称列表
     }
   },
   computed: {
@@ -310,13 +387,16 @@ export default {
     newSign() {
       return this.form.region2;
     },
+    newName() {
+      return this.form.region3;
+    },
   },
   mounted() {
     const editData = this.$props.editData;
-    if(editData.id){
-      const trans = utils.transformKeys(editData,2); //(2是标签组类型)
+    if (editData.id) {
+      const trans = utils.transformKeys(editData, 2); //(2是标签组类型)
       // console.log('editData1', editData)
-      this.form = Object.assign({},this.form,trans);
+      this.form = Object.assign({}, this.form, trans);
     }
     this.$emit('submitForm', 'groups', false);
     this.getDropList();
@@ -338,8 +418,62 @@ export default {
         this.searchTagList()
       }
     },
+    newName(nextVal, prevVal) {
+      if (nextVal != prevVal && (this.form.region12 == 0)) {
+        this.focusSystemName()
+      }
+    },
   },
   methods: {
+    sendData() {
+      this.$emit('changeVal', this.form, false)
+    },
+    closeNameLis(flg) {
+      if (flg == 1) {
+        this.systemNameShow = false
+      } else if (flg == 2) {
+        if (this.systemNameLis.length > 0) {
+          this.systemNameShow = true
+        } else {
+          this.systemNameShow = false
+        }
+      }
+    },
+    focusSystemName() {
+      if (this.form.region3.trim() == '') {
+        this.systemNameShow = false
+        this.systemNameLis = []
+        return
+      }
+      if (this.form.region12 == 0) {
+        let tmpArr = [];
+        if (this.form.region1 == 1 && this.form.region2 == 4) {//症状
+          tmpArr = [1]
+        } else if (this.form.region1 == 4) {//查体
+          tmpArr = [33]
+        } else if (this.form.region1 == 5) {//化验
+          tmpArr = [12]
+        }
+        let params = {
+          "libType": tmpArr,
+          "name": this.form.region3
+        }
+        api.indexByLexicon(params).then((res) => {
+          if (res.data.code === '0') {
+            this.systemNameLis = res.data.data
+            if (res.data.data.length > 0) {
+              this.systemNameShow = true
+            } else {
+              this.systemNameShow = false
+            }
+          }
+        })
+      }
+    },
+    pushSystemName(val) {
+      this.form.region3 = val
+      this.systemNameShow = false
+    },
     getDropList() {
       return api.getDropList().then((res) => {
         if (res.data.code === '0') {
@@ -355,48 +489,45 @@ export default {
     },
     searchTagList() {
       const editData = this.$props.editData;
-      if(editData.id){
+      if (editData.id) {
         return;
       }
       let region1 = this.form.region1, region2 = this.form.region2;
-      let paramFst = !!region2 ? api.getGroupParams(region2): {};
+      let paramFst = !!region2 ? api.getGroupParams(region2) : {};
       let paramSec = {
         "type": region1,
         "sexType": this.form.region7,
-        "tagName":'',
+        "tagName": '',
         "notIds": [],
       }
       // console.log(paramFst,paramSec,7787)
-      let params = Object.assign({},paramFst,paramSec)
+      let params = Object.assign({}, paramFst, paramSec)
       api.searchTagList(params).then((res) => {
         if (res.data.code === '0') {
           this.form.tagPool = res.data.data
         }
       })
     },
-    validateSystomName(name,callback,flg) {
-      if(flg == 1){
+    validateSystomName(name, callback, flg) {
+      if (flg == 1) {
         let tmpVal = this.form.region4
-        if(tmpVal.trim() == ''){
+        if (tmpVal.trim() == '') {
           callback(new Error('标签界面名称不能为空'));
-        }else{
+        } else {
           this.form.region4 = tmpVal.trim()
           callback();
         }
-      }else if(flg == 2){
+      } else if (flg == 2) {
         let tmpVal = this.form.region3
-        if(tmpVal.trim() == ''){
+        if (tmpVal.trim() == '') {
           callback(new Error('标签系统名称不能为空'));
-        }else{
+        } else {
           this.form.region3 = tmpVal.trim()
           callback();
         }
       }
     },
-    sendData() {
-      this.$emit('changeVal', this.form, false)
-    },
-    changeType(type){
+    changeType(type) {
       this.$emit('changeVal', this.form, false)
       this.$emit('changeType', type, false)
     },
@@ -404,12 +535,12 @@ export default {
       this.$emit('changeVal', this.form, false)
       this.$emit('changeSex', data, false)
     },
-    readyChangeSelect(tmpData,type) {
-      if(type === 1) {
+    readyChangeSelect(tmpData, type) {
+      if (type === 1) {
         this.form.region2 = '';
         this.labelTypes = this.labelTypesList.filter(item => this.labelTypesMaps[tmpData].indexOf(item.val) > -1)
       }
-      if(type === 2) {
+      if (type === 2) {
         this.initForm()
       }
       this.changeSex(tmpData);
@@ -470,6 +601,8 @@ export default {
     },
     initForm() {
       this.form.region12 = '1'
+      this.form.region14 = '1'
+      this.form.region15 = '1'
       this.form.region10 = '1'
       this.form.region11 = '0'
     }
@@ -480,74 +613,93 @@ export default {
 .PubTagGroupWrapper {
   margin-top: 60px;
   .groups {
-  background-color: #fff;
-  padding: 20px;
-  margin: 20px 20px -20px 20px;
-  .el-form-item__content,
-  .el-input__inner {
-    height: 30px;
-    line-height: 30px;
-    width: 200px;
-  }
-  .el-form-item {
-    margin-bottom: 20px;
-  }
-  .el-form-item__error {
-    top: 28px;
-  }
-  .el-form-item__label {
-    line-height: 30px;
-    text-align: left;
-  }
-  .el-input__icon {
-    line-height: 30px;
-  }
-  .verticalMiddle .el-form-item__content {
-    position: relative;
-    top: 16px;
-  }
-  .maxAges {
-    margin-left: -125px;
-  }
-  .ages {
-    display: inline-block;
-    .el-form-item__content {
-      width: auto;
+    background-color: #fff;
+    padding: 20px;
+    margin: 20px 20px -20px 20px;
+    .el-form-item__content,
+    .el-input__inner {
+      height: 30px;
+      line-height: 30px;
+      width: 200px;
+    }
+    .el-form-item {
+      margin-bottom: 20px;
+    }
+    .el-form-item__error {
+      top: 28px;
     }
-    .el-input {
+    .el-form-item__label {
+      line-height: 30px;
+      text-align: left;
+    }
+    .el-input__icon {
+      line-height: 30px;
+    }
+    .verticalMiddle .el-form-item__content {
+      position: relative;
+      top: 16px;
+    }
+    .maxAges {
+      margin-left: -125px;
+    }
+    .ages {
       display: inline-block;
-      width: auto;
-      .el-input__inner {
-        width: 60px;
-        padding: 0 5px;
-        margin-right: 25px;
-        text-align: center;
+      .el-form-item__content {
+        width: auto;
       }
+      .el-input {
+        display: inline-block;
+        width: auto;
+        .el-input__inner {
+          width: 60px;
+          padding: 0 5px;
+          margin-right: 25px;
+          text-align: center;
+        }
 
-      .el-input__inner::-webkit-outer-spin-button,
-      .el-input__inner::-webkit-inner-spin-button {
-        -webkit-appearance: none;
-      }
+        .el-input__inner::-webkit-outer-spin-button,
+        .el-input__inner::-webkit-inner-spin-button {
+          -webkit-appearance: none;
+        }
 
-      .el-input__inner[type="number"] {
-        -moz-appearance: textfield;
+        .el-input__inner[type="number"] {
+          -moz-appearance: textfield;
+        }
       }
     }
+    .el-message-box__btns .el-button--default {
+      color: #606266 !important;
+    }
+    .cancelColor {
+      color: #22ccc8 !important;
+    }
+    .changeTips {
+      position: absolute;
+      left: 220px;
+      // min-width: 300px;
+      color: #22ccc8;
+      font-size: 12px;
+    }
+    .changeTipsName {
+      line-height: 15px;
+    }
   }
-  .el-message-box__btns .el-button--default {
-    color: #606266 !important;
-  }
-  .cancelColor {
-    color: #22ccc8 !important;
-  }
-  .changeTips {
+  .systemNames {
+    background-color: #fff;
     position: absolute;
-    left: 220px;
-    min-width: 300px;
-    color: #22ccc8;
-    font-size: 12px;
+    z-index: 999;
+    width: 100%;
+    border: 1px solid #c0c4cc;
+    box-sizing: border-box;
+    max-height: 185px;
+    overflow: auto;
+    li {
+      padding: 0 15px;
+    }
+    li:hover {
+      background-color: #f5f7fa;
+    }
   }
 }
-}
 </style>
 

+ 1 - 1
src/components/icss/PubTemplateGroup.vue

@@ -352,7 +352,7 @@ export default {
   .changeTips {
     position: absolute;
     left: 220px;
-    min-width: 300px;
+    // min-width: 300px;
     color: #22ccc8;
     font-size: 12px;
   }

+ 1 - 1
src/routes.js

@@ -211,7 +211,7 @@ export default [
       {path:'LT-YXSYKWH-TJYXSYXX',component:AddMedicalInfo,name:'AddMedicalInfo'},  //医学术语维护-信息维护(属性维护) -- 添加
       {path:'LT-YXSJWH-ZDBQWH',component:DiagnosisList,name:'DiagnosisList'},  //诊断标签维护 -- 列表显示
       {path:'LT-YXSJWH-ZDBQTJ',component:DiagnosisTemplate,name:'DiagnosisTemplate'},  //诊断标签维护 -- 添加
-      {path:'LT-YXSJWH-LBJGWH',component:ChronicDiseaseStructureList,name:'ChronicDiseaseStructureList'},  //量表结构维护 -- 列表
+      {path:'LT-YXSYKWH-LBJGWH',component:ChronicDiseaseStructureList,name:'ChronicDiseaseStructureList'},  //量表结构维护 -- 列表
       {path:'LT-YXSJWH-LBJGTJ',component:ChronicDiseaseAdd,name:'ChronicDiseaseAdd'},  //量表结构维护 -- 添加
       {path:'LT-YXSJWH-MBGLYPG',component:ChronicDiseaseManage,name:'ChronicDiseaseManage'},  //慢病管理评估维护 -- 列表
       {path:'LT-YXSJWH-MBGLYTJ',component:ChronicDiseaseManageAdd,name:'ChronicDiseaseManageAdd'},  //慢病管理评估维护 -- 添加

+ 2 - 2
vue.config.js

@@ -1,6 +1,6 @@
 const path = require('path');
-// const proxy_path = 'http://192.168.2.236:80';
-const proxy_path = 'http://192.168.2.241:88';
+const proxy_path = 'http://192.168.2.236:80';
+// const proxy_path = 'http://192.168.2.241:88';
 // const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.3.101:5050';
 // const proxy_path = 'http://192.168.3.117:5050';//周铁刚