소스 검색

Merge branch 'dev' into independentTag

zhouna 6 년 전
부모
커밋
2107dc14bc

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2020 - 2020
package-lock.json


+ 7 - 2
src/api/config.js

@@ -150,6 +150,11 @@ export default {
     'knowledgeName': 'api/knowledgeman/concept/getAllInformation', //医学术语--命名维护
     'knowledgeUpload': 'api/knowledgeman/concept/importTermExcel', //医学术语--命名维护-导入
     'allKnowledgeType': 'api/knowledgeman/type/getAllType', //医学术语--类型列表
+    'deletMedicalName': 'api/knowledgeman/concept/removeConceptInfo', //医学术语--命名维护-删除
+    'getMedicalDetail': 'api/knowledgeman/medical/getMedicalInfo', //医学术语--命名维护-修改获取同义词
+    'knowledgeRelation': 'api/knowledgeman/relation/getAllRelation', //医学术语--关系维护
+    'delKnowledgeRelation': 'api/knowledgeman/relation/removeRelation', //医学术语--关系维护-删除
+    'getAllConcept': 'api/knowledgeman/concept/getAllConcept', //查询所有术语名称
 	},
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',
@@ -172,8 +177,8 @@ export default {
   },
   groupParams:[
     {controlType:[1,2],tagType:[1],notTagType:[8]},     //多列多选(杂音/初为)     notTagType为文字标签剔除
-    {controlType:[0,1,2,5,6,7],tagType:[1,2],notTagType:[8]},  //多项统一横铺标签(血压)
-    {controlType:[0,1,2,5,6,7],tagType:[1,2],notTagType:[8]},  //症状详细(症状尾巴)
+    {controlType:[0,1,2,5,6,7,11],tagType:[1,2],notTagType:[8]},  //多项统一横铺标签(血压)
+    {controlType:[0,1,2,5,6,7,11],tagType:[1,2],notTagType:[8]},  //症状详细(症状尾巴)
     {controlType:[0,1,2],tagType:[1,2,3,4],notTagType:[2,8]}, //组合项标签(既往史)
     {controlType:[1,6],tagType:[],notTagType:[8]},    //化验组合
     {controlType:[1,2,99],tagType:[],notTagType:[8]},   //症状推送类型(添加症状)

+ 15 - 0
src/api/icss.js

@@ -226,4 +226,19 @@ export default {
     knowledgeUpload(param) {//命名维护--导入
         return axios.post(urls.knowledgeUpload, param)
     },
+    deletMedicalName(param) {//命名维护--删除
+        return axios.post(urls.deletMedicalName, param)
+    },
+    getMedicalDetail(param) {//命名维护--修改
+        return axios.post(urls.getMedicalDetail, param)
+    },
+    knowledgeRelation(param) {//关系维护
+        return axios.post(urls.knowledgeRelation, param)
+    },
+    delKnowledgeRelation(param) {//关系维护-删除
+        return axios.post(urls.delKnowledgeRelation, param)
+    },
+    getAllConcept(param) {//查询所有术语名称
+        return axios.post(urls.getAllConcept, param)
+    },
 }

+ 1 - 0
src/api/utils.js

@@ -232,6 +232,7 @@ export default {
       }else{    //这个是标签
         obj.questionId = data[i].id
       }
+      obj.flag = data[i].flag || ''
       tmpArr.push(obj)
     }
     return tmpArr;

+ 12 - 5
src/components/icss/AddCommonSymptom.vue

@@ -158,7 +158,8 @@
                 "deptId": this.form.department,
                 "tagName": this.searchVal,
                 "noIds": noIds,
-                "type": this.form.type
+                "type": this.form.type,
+                "notTagType": [8],
             }
             api.getSymptomList(param).then((res)=>{
                if(res.data.code === '0') {
@@ -204,7 +205,7 @@
             }
             this.rightTagsList.splice(this.selectRightTagIndex, 1)
             this.selectLeftTagsList = [];
-            this.selectRightTagIndex = -1;
+            this.selectRightTagIndex -= 1;
             this.getSymptomList()
 
         },
@@ -215,7 +216,7 @@
             const tempItem = this.rightTagsList[this.selectRightTagIndex]
             this.rightTagsList.splice(this.selectRightTagIndex, 1)
             this.rightTagsList.splice(this.selectRightTagIndex-1, 0,tempItem)
-            this.selectRightTagIndex = -1
+            this.selectRightTagIndex -= 1
         },
         toDown(){
              if(this.selectRightTagIndex === this.rightTagsList.length-1 || this.selectRightTagIndex === -1) {
@@ -224,7 +225,7 @@
             const tempItem = this.rightTagsList[this.selectRightTagIndex]
             this.rightTagsList.splice(this.selectRightTagIndex, 1)
             this.rightTagsList.splice(this.selectRightTagIndex+1, 0,tempItem)
-            this.selectRightTagIndex = -1
+            this.selectRightTagIndex += 1
 
         },
 
@@ -243,7 +244,12 @@
             return this.isHasTag(item, this.selectRightTagsList)
         },
         submitForm(formName) {
-           
+            if(this.isDetail) {
+                this.$router.push({
+                        path:'/admin/LT-YXSJWH-CJZZWH'
+                })
+                return;
+            }
             this.$refs[formName].validate((valid) => {
                 if (valid) {
                     return
@@ -387,6 +393,7 @@
             width: 100%;
             height: 340px;
             padding: 10px 0;
+            overflow-y: auto;
         }
         .btn {
             position: relative;

+ 8 - 1
src/components/icss/AddDeptInfo.vue

@@ -9,7 +9,7 @@
                     <el-input v-model="form.name" placeholder="请输入科室名称" maxlength="30"></el-input>
                 </el-form-item>
                 <el-form-item label="描述:" prop="remark">
-                    <el-input type="textarea" :rows="3" placeholder="请输入科室描述" v-model="form.remark" maxlength="1024"></el-input>
+                    <el-input type="textarea" :rows="3" placeholder="请输入科室描述" v-model="form.remark" maxlength="100"></el-input>
                 </el-form-item>
                 <el-button size="small" type="primary" @click="addOrga">{{text}}</el-button>
             </el-form>
@@ -69,6 +69,13 @@
       addOrga() {
         this.$refs.form.validate((valid)=> {
           if (valid) {
+            if(!this.form.name.trim()){
+              this.$message({
+                message: '科室名称不能为空',
+                type: 'warning'
+              });
+              return
+            }
             // 有id是修改,没有id是添加
             if(this.id){
               let param = {

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

@@ -113,7 +113,7 @@
             return;
         }
         let flag=true;
-        if(opts[0].code){
+        if(opts[0] && opts[0].code){
           flag=opts.findIndex((it)=>{
             return !it.code;
           })==-1;

+ 66 - 17
src/components/icss/AddMedicalName.vue

@@ -14,7 +14,7 @@
           </tr>
           <tr>
             <td class="ind">1</td>
-            <td>
+            <td :title="data.name&&data.name.length>9?data.name:''">
               <el-input v-model="data.name" placeholder="请输入术语" maxlength="30" size="small"></el-input>
             </td>
             <td>
@@ -44,8 +44,8 @@
           </tr>
           <tr v-for="(item,index) in synonymous">
             <td class="ind">{{index+1}}</td>
-            <td>
-              <el-input v-model="item.term" placeholder="请输入术语" maxlength="30" size="small"></el-input>
+            <td :title="item.name&&item.name.length>9?item.name:''">
+              <el-input v-model="item.name" placeholder="请输入术语" maxlength="30" size="small"></el-input>
             </td>
             <td>
               <!-- <el-select v-model="item.type" clearable placeholder="请选择">
@@ -59,7 +59,7 @@
               {{data.type}}
             </td>
             <td class="desc">
-              <el-input v-model="item.mark" placeholder="请输入术语说明" maxlength="120" size="small"></el-input>
+              <el-input v-model="item.note" placeholder="请输入术语说明" maxlength="120" size="small"></el-input>
             </td>
             <td v-if="id">
               <span @click="deleLine(index)" class="delete">删除</span>
@@ -96,22 +96,19 @@ import api from '@api/icss.js';
         id:null,
         synonymous:[//同义词
             {
-              term:'',
+              name:'',
               id:1,
-              type:'',
-              mark:''
+              note:''
             },
             {
-              term:'',
+              name:'',
               id:2,
-              type:'',
-              mark:''
+              note:''
             },
             {
-              term:'',
+              name:'',
               id:3,
-              type:'',
-              mark:''
+              note:''
             },
           ],
         colspan:4,
@@ -129,9 +126,27 @@ import api from '@api/icss.js';
         this.data.type = info.type;
         this.data.remark = info.remark;
         this.colspan = 5;
+        this.getDetail();
       }
     },
     methods:{
+      getDetail(){
+        const params = {
+          term:this.data.name,
+          type:this.data.type
+        }
+        api.getMedicalDetail(params).then((res)=>{
+          const result = res.data;
+          if(result.code == 0){
+            this.synonymous = result.data.medicalInfo;
+          }else{
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
+          }
+        })
+      },
       getTypeList(){
         const param = {
           current: this.currentPage,
@@ -142,7 +157,10 @@ import api from '@api/icss.js';
           if(data.code==0){
             this.typeList = data.data.records;
           }else{
-            console.log(res.msg);
+            this.$message({
+              message:data.msg,
+              type:'warning'
+            });
           }
         }).catch((error) => {
           console.log(error);
@@ -164,12 +182,43 @@ import api from '@api/icss.js';
         this.synonymous.push(singleSpan);
         // this.synIndex = index;
       },
+      warning(msg,type){
+        this.$message({
+          showClose: true,
+          message:msg,
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
       deleLine(index){
-        this.synonymous.splice(index,1);
-        // console.log(123,index,this.synonymous);
+        const item = this.synonymous[index];
+        const param = {
+          term:item.term,
+          type:item.type,
+          id:item.id
+        }
+        this.showConfirmDialog('是否删除该同义词?',()=>{
+          api.deletMedicalName(param).then((res)=>{
+            if(res.data.code=='0'){
+              this.warning(res.data.msg||'操作成功','success');
+              this.getDetail();
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
       },
       comfirn(){
-
+        console.log("修改数据:",this.synonymous);
       }
     }
   }

+ 104 - 44
src/components/icss/AddMedicalRelation.vue

@@ -2,15 +2,23 @@
   <div>
     <crumbs title="医学术语关系-添加" linkTo="/admin/LT-YXSYKWH-YXSYGXWH"></crumbs>
     <div class="contents">
-      <div class="content">
+      <div class="content" @click="closeSearch">
         <p>明细</p>
         <div class="search">
           <span>起始术语搜索:</span>
-          <el-input size="small" v-model="firstInput" placeholder="输入术语"></el-input>
+          <el-input size="small" v-model="firstInput" placeholder="输入术语" @input="search(1)"></el-input>
+          <ul v-if="showFlag==1">
+            <li>测试</li>
+            <li v-for="it in searchDatas" :key="it.id" @click.stop="chooseFirst(it)" :title="it.name.length>10?it.name:''">{{it.name}}</li>
+          </ul>
         </div>
         <div class="search">
           <span>终点术语搜索:</span>
-          <el-input size="small" v-model="endInput" placeholder="输入术语"></el-input>
+          <el-input size="small" v-model="endInput" placeholder="输入术语" @input="search(2)"></el-input>
+          <ul v-if="showFlag==2">
+            <li>测试2</li>
+            <li v-for="it in searchDatas" :key="it.id" @click.stop="chooseEnd(it)" :title="it.name.length>10?it.name:''">{{it.name}}</li>
+          </ul>
         </div>
         <table class="deptbox">
           <tr>
@@ -22,22 +30,15 @@
           </tr>
           <tr>
             <td>
-              <span>起始术语</span>
+              <span>{{data.start_name}}</span>
             </td>
             <td>
-              <el-select v-model="data.firstType" clearable placeholder="请选择" size="mini">
-                <el-option
-                  v-for="item in data.typeList"
-                  :key="item.key"
-                  :label="item.name"
-                  :value="item.key">
-                </el-option>
-              </el-select>
+              <span>{{data.start_type}}</span>
             </td>
             <td>
               <el-select v-model="data.relation" clearable placeholder="请选择" size="mini">
                 <el-option
-                  v-for="item in data.typeList"
+                  v-for="item in relationList"
                   :key="item.key"
                   :label="item.name"
                   :value="item.key">
@@ -45,17 +46,10 @@
               </el-select>
             </td>
             <td>
-              <span>终点术语</span>
+              <span>{{data.end_name}}</span>
             </td>
             <td>
-              <el-select v-model="data.endType" clearable placeholder="请选择" size="mini">
-                <el-option
-                  v-for="item in data.typeList"
-                  :key="item.key"
-                  :label="item.name"
-                  :value="item.key">
-                </el-option>
-              </el-select>
+              <span>{{data.end_type}}</span>
             </td>
           </tr>
         </table>
@@ -75,35 +69,79 @@
     data(){
       return{
         data:{
-          type:'',
-          typeList:[
-            {
-              name:'类型1',
-              id:1,
-              key:1
-            },
-            {
-              name:'类型2',
-              id:2,
-              key:2
-            },
-            {
-              name:'类型3',
-              id:3,
-              key:3
-            },
-          ]
+          start_name:'',
+          start_type:'',
+          relation:'',
+          end_name:'',
+          end_type:''
         },
+        relationList:[
+          {
+            name:"测试1",
+            key:1
+          },{
+            name:"测试2",
+            key:2
+          },{
+            name:"测试3",
+            key:3
+          }
+        ],
         firstInput:'',
         endInput:'',
-        relation:'',
-        firstType:'',
-        endType:''
+        showFlag:0,
+        searchDatas:[
+          {
+            name:"测试1",
+            id:1,
+            type:'药品'
+          },{
+            name:"测试2",
+            id:2,
+            type:'药品'
+          },{
+            name:"测试3",
+            id:3,
+            type:'药品小类'
+          }
+        ],
       }
     },
     methods:{
       comfirn(){
-
+        console.log(444,this.data);
+      },
+      search(type){
+        let item = type==1?this.firstInput:this.endInput;
+        if(item){
+          this.showFlag = type;
+          /*api.getAllConcept(item).then((res)=>{
+            const result = res.data;
+            if(result.code==0){
+              this.searchDatas = result.data;
+              this.showFlag = type;
+            }else{
+              this.$message({
+                type:'warning',
+                message:result.msg
+              })
+            }
+          })*/
+        }
+      },
+      chooseFirst(item){
+        this.data.start_name = item.name;
+        this.data.start_type = item.type;
+        this.closeSearch();
+      },
+      chooseEnd(item){
+        this.data.end_name = item.name;
+        this.data.end_type = item.type;
+        this.closeSearch();
+      },
+      closeSearch(){
+        this.showFlag = 0;
+        // this.searchDatas = [];
       }
     }
   }
@@ -121,6 +159,28 @@
       .el-input--small{
         margin-top: 8px;
       }
+      position: relative;
+      ul{
+        width: 183px;
+        position: absolute;
+        top: 63px;
+        border:1px solid #ccc;
+        background: #fff;
+        max-height: 291px;
+        overflow-y: auto;
+        li{
+          border:1px solid #fff;
+          padding-left: 7px;
+          height: 27px;
+          line-height: 27px;
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        li:hover{
+          border-color:#22ccc8;
+        }
+      }
     }
   }
   .deptbox{

+ 10 - 4
src/components/icss/AddPhysicalExamTemp.vue

@@ -149,6 +149,7 @@
                 "tagName": this.searchVal,
                 "type": 4,
                 "notIds": notIds,
+                "notTagType": [8],
             }
             api.searchTagList(param).then((res) => {
                 if (res.data.code === '0') {
@@ -201,7 +202,7 @@
             const tempItem = this.rightTagsList[this.selectRightTagIndex]
             this.rightTagsList.splice(this.selectRightTagIndex, 1)
             this.rightTagsList.splice(this.selectRightTagIndex-1, 0,tempItem)
-            this.selectRightTagIndex = -1
+            this.selectRightTagIndex -= 1
         },
         toDown(){
              if(this.selectRightTagIndex === this.rightTagsList.length-1 || this.selectRightTagIndex === -1) {
@@ -210,7 +211,7 @@
             const tempItem = this.rightTagsList[this.selectRightTagIndex]
             this.rightTagsList.splice(this.selectRightTagIndex, 1)
             this.rightTagsList.splice(this.selectRightTagIndex+1, 0,tempItem)
-            this.selectRightTagIndex = -1
+            this.selectRightTagIndex += 1
 
         },
 
@@ -229,7 +230,12 @@
             return this.isHasTag(item, this.selectRightTagsList)
         },
         submitForm(formName) {
-           
+            if( this.isDetail) {
+                this.$router.push({
+                        path:'/admin/LT-YXSJWH-CTMBWH'
+                })
+                return
+            }
             this.$refs[formName].validate((valid) => {
                 if (valid) {
                     return
@@ -259,7 +265,7 @@
                     this.warning(res.data.msg || '保存成功', 'success','1000')
                     setTimeout(() => {
                     this.$router.push({
-                        path:'/admin/LT-YXSJWH-CTBQWH'
+                        path:'/admin/LT-YXSJWH-CTMBWH'
                     })
                     }, 1000);
                 } else {

+ 39 - 10
src/components/icss/AddSimilarName.vue

@@ -161,7 +161,11 @@
               }
             }
           }else{
-            console.log(result.msg);
+            // console.log(result.msg);
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
@@ -184,14 +188,22 @@
         let dataList = [];
         if(this.flag){ //修改
           if(!selfName[0].retrievalSpell){
-            this.$message.error("本体拼音不能为空");
+            // this.$message.error("本体拼音不能为空");
+            this.$message({
+              message:"本体拼音不能为空",
+              type:'warning'
+            });
             return
           }
           dataList = selfName.concat(retrievalNames,retrievalEmpty,retrievalSonNames,sonEmpty);
           this.toast = "修改成功";
         }else{
           if(!selfEmpty[0].retrievalSpell){
-            this.$message.error("本体拼音不能为空");
+            // this.$message.error("本体拼音不能为空");
+            this.$message({
+              message:"本体拼音不能为空",
+              type:'warning'
+            });
             return
           }
           dataList = selfEmpty.concat(retrievalNames,retrievalEmpty,retrievalSonNames,sonEmpty);
@@ -199,9 +211,19 @@
         }
         // 过滤掉空数据
         let filterData = dataList.filter((item)=>{
-          return item.retrievalName;
+          return item.retrievalName||item.retrievalSpell;
         })
-        console.log(111,dataList,filterData);
+        // console.log(111,dataList,filterData);
+        let emptyData = filterData.filter((item)=>{
+          return !item.retrievalName|| !item.retrievalSpell;
+        })
+        if(emptyData&&emptyData.length>0){//判断是否有未填项
+          this.$message({
+            message:'标签名和拼音不能为空',
+            type:'warning'
+          });
+          return
+        }
         const params = {
           'itemList':filterData,
           'questionId':this.id,
@@ -217,25 +239,32 @@
             this.$router.push({path:'LT-YXSJWH-BMWH'});
           }else{
             // console.log(result.msg);
-            this.$message.error("标签和拼音不能为空");
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
       search(){
         const param = {
           'tagName':this.searchStr,
-          'notTagType':[8,10,11]
+          'notTagType':[8,10,11],
+          'notControlType':[99]
         }
         api.searchLable(param).then((res)=>{
           const result = res.data;
-          // console.log(123,result);
           if(result.code==0){
             this.searchDatas = result.data;
             if(result.data.length>0){
               this.showFlag = true;
             }
           }else{
-            console.log(result.msg);
+            // console.log(result.msg);
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
@@ -349,7 +378,7 @@
       border:1px solid #ccc;
       background: #fff;
       max-height: 291px;
-      overflow-y: scroll;
+      overflow-y: auto;
       li{
         border:1px solid #fff;
         padding-left: 7px;

+ 12 - 3
src/components/icss/AddVersion.vue

@@ -77,7 +77,10 @@
           if(result.code==0){
             this.list = result.data;
           }else{
-            this.$message.error(result.msg);
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
@@ -92,7 +95,10 @@
               })
               this.$router.push({path: 'LT-YXSJWH-BBXXWH'});
             }else{
-              this.$message.error(res.data.msg);
+              this.$message({
+                message:res.data.msg,
+                type:'warning'
+              });
             }
           })
         }else{//添加
@@ -104,7 +110,10 @@
               })
               this.$router.push({path: 'LT-YXSJWH-BBXXWH'});
             }else{
-              this.$message.error(res.data.msg);
+              this.$message({
+                message:res.data.msg,
+                type:'warning'
+              });
             }
           })
         }

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

@@ -131,7 +131,7 @@ export default {
                     this.rightTagsList2 = [];
                     this.selectRightTagsList = [];
                     this.searchVal = '';
-                    //  this.searchTagList();
+                     this.searchTagList();
                 }
             }
         },

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

@@ -181,7 +181,7 @@
         }).catch(() => {});
       },
       showDelDialog(row){
-        this.showConfirmDialog('是否删除该科室症状?',()=>{
+        this.showConfirmDialog('是否删除该科室常见症状?',()=>{
           const param = {
             "deptId": row.id,
             "type": row.type

+ 47 - 9
src/components/icss/CommonTemplate.vue

@@ -37,7 +37,7 @@
         ></span></p>
     </div>
     <div class="bottomPartRight bottomPartRightTemplate">
-      <p class="poolTitle">模板内容:</p>
+      <p class="poolTitle poolTitleTmp">模板内容:</p>
       <div class="arrowWrap" style="float:right;marginRight:10px" v-if="type != 1 && type != 2 && type != 3">
         <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
         <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
@@ -66,12 +66,16 @@
               <el-button size="mini" @click="addDomTemplate(0,'submitForm')">添加</el-button>
               <el-button size="mini" @click="delSubTemplate">删除子模板</el-button>
               <el-button size="mini" @click="addDomTemplate(1)">插入输入栏</el-button>
+              <el-button size="mini" @click="addFlg(1)">1.插入选择症状</el-button>
+              <el-button size="mini" @click="addFlg(3)">2.打开模板</el-button>
+              <el-button size="mini" @click="addFlg(4)">3.插入主诉的主|半症状业务</el-button>
+              <div class="arrowWrap">
+                <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
+                <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
+              </div>
             </el-form-item>
           </el-form>
-        <div class="arrowWrap">
-          <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
-          <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
-        </div>
+        
       </div>
       <ul class="tagList operationPool templateTagLists">
         <li
@@ -88,17 +92,18 @@
                 @change="updataData"
               >
               </el-input>
+              <i class="tagFlag">{{item.flag?(item.flag == 3?2:item.flag == 4?3:1):''}}</i>
           </div>
           <p
             v-if="item.type === 'sub'"
             class="tagName  ellipsis"
             :title="'[ '+item.tagName+' ]'"
-          >{{item.tagName}}</p>
+          >{{item.tagName}} <i class="tagFlag">{{item.flag?(item.flag == 3?2:item.flag == 4?3:1):''}}</i></p>
           <p
             v-if="item.type !== 'input' && item.type !== 'sub'"
             class="tagName  ellipsis"
             :title="'[ '+item.tagName+' ]'"
-          >{{item.tagName}} </p>
+          >{{item.tagName}} <i class="tagFlag">{{item.flag?(item.flag == 3?2:item.flag == 4?3:1):''}}</i></p>
         </li>
       </ul>
     </div>
@@ -205,6 +210,17 @@ export default {
     updataData(){
       this.$emit('changeActionData', this.rightTagsList, false);
     },
+    addFlg(idx){
+      let selectTagFlg = this.selectRightTagsListIndex
+      if(selectTagFlg.length == 0){
+        return;
+      }
+      let tmpLis = this.rightTagsList.slice()
+      let tmpObj = tmpLis[selectTagFlg[0]];
+      tmpObj.flag = idx
+      this.rightTagsList = [...tmpLis]
+
+    },
     addDomTemplate(sign,dom){
       let tmpArr1 = this.rightTagsList.slice(0);
       let tmpArr2 = this.selectRightTagsListIndex.slice(0);
@@ -395,6 +411,9 @@ export default {
     margin-bottom: 20px;
     display: inline-block;
   }
+  .poolTitleTmp {
+    margin-bottom: 8px;
+  }
   .inputBox {
     width: 100px;
   }
@@ -422,6 +441,18 @@ export default {
   .tagName {
     line-height: 30px;
   }
+  .tagFlag {
+    position: absolute;
+    right: -3px;
+    top: 0;
+    width: 16px;
+    height: 16px;
+    border-radius: 8px;
+    line-height: 16px;
+    text-align: center;
+    // background-color: #ccc;
+    color: red;
+  }
   .tagName:before {
     content: "[";
   }
@@ -463,15 +494,21 @@ export default {
           background: #fff;
           line-height: 23px;
           border-radius: 3px;
-          margin-left: 10px;
+          margin:0 7px 10px 5px;
         }
       }
     .formWrap {
       position: relative;
       height: 30px;
       .subTemplate {
-        width: 470px;
+        width: 100%;
         float: left;
+        .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item{
+          margin-bottom: 0;
+        }
+        .el-button+.el-button{
+          margin: 0 0 10px 10px;
+        }
       }
     }
   }
@@ -492,6 +529,7 @@ export default {
     text-align: center;
     float: left;
     height: 40px;
+    position: relative;
     p {
       padding: 5px 0;
     }

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

@@ -24,7 +24,7 @@
                         width="60">
                 </el-table-column>
                 <el-table-column
-                        prop="gmtCreate"
+                        prop="gmtModified"
                         label="操作时间"
                         :show-overflow-tooltip="true">
                 </el-table-column>

+ 9 - 5
src/components/icss/IndeptLabel.vue

@@ -2,11 +2,11 @@
     <div>
         <crumbs title="独立标签维护">
             <el-form :inline="true" class="demo-form-inline">
-                <!--<el-form-item label="标签类型:">
-                    <el-select size="mini" v-model="filter.tagType[0]" placeholder="标签类型" clearable>
+                <el-form-item label="标签类型:">
+                    <el-select size="mini" v-model="filter.controlType[0]" placeholder="标签类型" clearable>
                         <el-option v-for="item in tagTypes" :label="item.name" :value="item.val" :key="item.id"></el-option>
                     </el-select>
-                </el-form-item>-->
+                </el-form-item>
                 <el-form-item label="标签归属:">
                     <el-select size="mini" v-model="filter.tagAdscription" @change="getValue"  placeholder="标签归属" clearable>
                         <el-option v-if="item.val!=6&&item.val!=7&&item.val!=8&&item.val!=9" v-for="item in Adscriptions" :label="item.name" :value="item.val" :key="item.id" ></el-option>
@@ -102,8 +102,10 @@
         list: [],
         tagTypes: [],
         Adscriptions: [],
+        tagTypesList:[],
         filter: {
           tagType: [], //标签类型
+          controlType: [],
           tagAdscription: '', //标签归属
           tagSysName: '', //标签系统名称
         },
@@ -124,10 +126,11 @@
       },
       getDropList() {
         return api.getDropList().then((res) =>{
-          console.log('dropList', res)
           if(res.data.code === '0') {
             this.Adscriptions = res.data.data[1];
             this.tagTypes =  res.data.data[6];
+            this.tagTypes =  this.tagTypes.filter(item => item.val != 0)  //去掉名称为默认值的填写单类型
+      
           }
 
         })
@@ -190,7 +193,8 @@
           current: this.currentPage,
           size: this.pageSize,
           type: this.filter.tagAdscription,
-          tagName: this.filter.tagSysName
+          tagName: this.filter.tagSysName,
+          controlTypeList: this.filter.controlType
         };
         return param;
       },

+ 5 - 2
src/components/icss/MedicalInfo.vue

@@ -23,7 +23,7 @@
                     <el-button size="mini" @click="filterDatas">确认</el-button>
                     <el-button size="mini" @click="uploadClick">导入</el-button>
                     <input type="file" name="uploadfile " id="upFile" @change="uploadFile($event)" accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
-                    <router-link to="/admin/LT-YXSYKWH-TJYXXX" style="margin:0 10px">
+                    <router-link to="/admin/LT-YXSYKWH-TJYXSYXX" style="margin:0 10px">
                         <el-button size="mini" type="warning">添加医学术语属性</el-button>
                     </router-link>
                 </el-form-item>
@@ -222,7 +222,10 @@
               type: 'success',
             });
           }else{
-            this.$message.error(res.data.msg);
+            this.$message({
+              message:res.data.msg,
+              type:'warning'
+            });
           }
         })
         this.getDataList();

+ 19 - 7
src/components/icss/MedicalName.vue

@@ -6,7 +6,11 @@
                     <el-input size="mini" v-model="filter.term" placeholder="输入术语"></el-input>
                 </el-form-item>
                 <el-form-item label="术语类型:">
-                  <el-select v-model="filter.type" clearable filterable placeholder="请选择" size="mini">
+                  <el-select v-model="filter.type" 
+                  clearable 
+                  filterable 
+                  placeholder="请选择" 
+                  size="mini">
                     <el-option
                       v-for="item in typeList"
                       :key="item.id"
@@ -60,7 +64,7 @@
                     <template slot-scope="scope">
                         <el-button type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
                         <span style="margin:0 3px;">|</span>
-                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row.questionId)">删除</el-button>
+                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row)">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -182,9 +186,14 @@
           resolve();
         }).catch(() => {});
       },
-      showDelDialog(id){
+      showDelDialog(item){
+        const param = {
+          term:item.term,
+          type:item.type,
+          id:item.id
+        }
         this.showConfirmDialog('删除该标准词,可能造成相关联的医学信息、术语关系、医学静态知识等信息全部删除,是否删除?',()=>{
-          api.delSimilarName({questionId:id}).then((res)=>{
+          api.deletMedicalName(param).then((res)=>{
             if(res.data.code=='0'){
               this.warning(res.data.msg||'操作成功','success');
               this.getDataList();
@@ -211,21 +220,24 @@
             'Content-Type': 'multipart/form-data'
           }
         }
-        /*api.knowledgeUpload(formData,header).then((res)=>{
+        api.knowledgeUpload(formData,header).then((res)=>{
           if(res.data.code==0){
             this.$message({
               message: '上传成功',
               type: 'success',
             });
           }else{
-            this.$message.error(res.data.msg);
+            this.$message({
+              message:res.data.msg,
+              type:'warning'
+            });
           }
         })
         this.getDataList();
         //解决上传相同文件不触发change
         let inp = document.getElementById("upFile");
         inp.value = "";
-        */
+        
       },
     }
   }

+ 41 - 11
src/components/icss/MedicalRelation.vue

@@ -47,8 +47,28 @@
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
-                        prop="questionName"
-                        label="关系明细"
+                        prop="startName"
+                        label="起始术语"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="startType"
+                        label="起始类型"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="relationName"
+                        label="关系"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="endName"
+                        label="终点术语"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="endType"
+                        label="终点类型"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
@@ -57,9 +77,9 @@
                 </el-table-column>
                 
                 <el-table-column
-                        label="操作" width="160">
+                        label="操作">
                     <template slot-scope="scope">
-                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row.questionId)">删除</el-button>
+                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row)">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -108,7 +128,7 @@
             key:3
           },
         ],
-        titleWidth:'1060px' //头部最小宽度
+        titleWidth:'1070px' //头部最小宽度
       }
     },
     created() {
@@ -127,7 +147,7 @@
       },
       getDataList() {
         const param = this.getFilterItems();
-        /*api.similarName(param).then((res) => {
+        api.knowledgeRelation(param).then((res) => {
           if (res.data.code == '0') {
             const data = res.data.data;
             this.list = data.records;
@@ -136,7 +156,7 @@
           }
         }).catch((error) => {
           console.log(error);
-        });*/
+        });
       },
       getDetailList(id) {
         const param = {'id': id,};
@@ -144,7 +164,7 @@
       },
       getFilterItems() {
         const param = {
-          questionName: this.filter.proName,
+          // questionName: this.filter.proName,
           current: this.currentPage,
           size: this.pageSize
         };
@@ -176,9 +196,16 @@
           resolve();
         }).catch(() => {});
       },
-      showDelDialog(id){
+      showDelDialog(item){
+        const params = {
+          start_term:item.startName,
+          start_type:item.startType,
+          end_term:item.endName,
+          end_type:item.endType,
+          relation_name:item.relationName
+        }
         this.showConfirmDialog('是否删除该关系?可能对现有系统造成影响',()=>{
-          api.delSimilarName({questionId:id}).then((res)=>{
+          api.delKnowledgeRelation(params).then((res)=>{
             if(res.data.code=='0'){
               this.warning(res.data.msg||'操作成功','success');
               this.getDataList();
@@ -212,7 +239,10 @@
               type: 'success',
             });
           }else{
-            this.$message.error(res.data.msg);
+            this.$message({
+              message:res.data.msg,
+              type:'warning'
+            });
           }
         })
         this.getDataList();*/

+ 3 - 1
src/components/icss/NoiseTemplate.vue

@@ -182,6 +182,7 @@ export default {
           });
           return;
       }
+     
       let detailLis = utils.dataRecombination(this.sendIds, this.dataPub.region2)
       let param = {
         "questionWrapper": {
@@ -206,8 +207,9 @@ export default {
           "questionMappings": detailLis       //映射关系,
         }
       }
-      if(this.dataPub.region2 == 2 && detailLis.length == 0) {
+      if((this.dataPub.region2 == 2 || this.dataPub.region2 == 3)&& detailLis.length == 0) {
          this.warning('请选择标签明细')
+         return
       }
       this.showDelDialog(param)
     },

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

@@ -172,7 +172,7 @@
         }).catch(() => {});
       },
       showDelDialog(id){
-        this.showConfirmDialog('是否删除该科室症状?',()=>{
+        this.showConfirmDialog('是否删除该科室查体模板?',()=>{
           api.delPhysicalExamTemp({'deptId':id}).then((res)=>{
             if(res.data.code=='0'){
               this.warning(res.data.msg||'操作成功','success');

+ 11 - 4
src/components/icss/PubIndeptTag.vue

@@ -117,6 +117,7 @@
                 ></el-input></el-col>
             </el-form-item>
             <el-form-item
+                    v-if="form.region1 != 5"
                     label="选择项之间链接:"
                     prop="region5"
             >
@@ -177,7 +178,7 @@
                     label="正常值范围:"
                     class="fix-inp"
                     prop="region13"
-                    v-if="form.region1==5 && form.region2==6"
+                    v-if="form.region1==5 && form.region2==6 || form.region2==7"
             >
                 <el-col :span="7">
                 <el-input v-model="form.minNormalVal"
@@ -277,6 +278,9 @@
           ],
           region9: [
             { required: true, message: '请输入最大年龄', trigger: 'change' }
+          ],
+           region13: [
+            { required: true, message: '请输入正常值范围', trigger: 'change' }
           ]
         },
         tmpSex: '通用',
@@ -337,13 +341,15 @@
         if(this.form.region3.trim() == ''){ return }
         let param = {
           "existName": this.form.region3,
-          // "type": this.form.region1,
+          "type": this.form.region1,
+          "notTagType":[8,10],        //去掉文字标签查重
           "notIds":[this.$props.editData.id]
         };
         api.validateSystomName(param).then((res) => {
           if (res.data.code === '0') {
             if(res.data.data && res.data.data.length != 0){
-              callback(new Error('该系统名称已存在'));
+              this.warning('标签系统名称已重复,无法建立');
+              // callback(new Error('该系统名称已存在'));
             }else{
               callback();
             }
@@ -365,7 +371,7 @@
         if(type === 1) {
           this.form.region2 = '';
           this.labelTypes = this.labelTypesList.filter(item => this.labelTypesMaps[tmpData].indexOf(item.val) > -1)
-          
+          this.initForm()
         }
         if(type === 2) {
           this.initForm()
@@ -396,6 +402,7 @@
         this.form.suffix = ''
         this.form.minNormalVal = ''
         this.form.maxNormalVal = ''
+        this.form.region5 = ''
       },
     }
   }

+ 7 - 3
src/components/icss/PubTagGroup.vue

@@ -347,6 +347,10 @@ export default {
       })
     },
     searchTagList() {
+      const editData = this.$props.editData;
+      if(editData.id){
+        return;
+      }
       let region1 = this.form.region1, region2 = this.form.region2;
       let paramFst = !!region2 ? api.getGroupParams(region2): {};
       let paramSec = {
@@ -355,7 +359,7 @@ export default {
         "tagName":'',
         "notIds": [],
       }
-      console.log(paramFst,paramSec,7787)
+      // console.log(paramFst,paramSec,7787)
       let params = Object.assign({},paramFst,paramSec)
       api.searchTagList(params).then((res) => {
         if (res.data.code === '0') {
@@ -367,8 +371,8 @@ export default {
       if(this.form.region3.trim() == ''){ return }
       let param = {
         "existName": this.form.region3,     
-        // "type": this.form.region1,
-        "notTagType":[8],        //去掉文字标签查重
+        "type": this.form.region1,  
+        "notTagType":[8,10],        //去掉文字标签查重
       }
       api.validateSystomName(param).then((res) => {
         if (res.data.code === '0') {

+ 1 - 5
src/components/icss/PubTagPartDetail.vue

@@ -134,10 +134,6 @@ export default {
         type: Array
     }
   },
-
-  destroyed:function(){
-    this.searchVal = ''
-  },
   data() {
     return {
       poolDetailList: [[{questionDetailList:[]}],[{questionDetailList:[]}],[],[],[],[]],     //默认6个部分
@@ -517,7 +513,7 @@ export default {
             this.currentLis.map((id)=>{
               tmpArr.push(res.data.data[id]);
             })
-            // console.log(tmpArr,'多选既往史')
+            console.log(tmpArr,'多选既往史')
             this.selectArr.map((flg,idx)=>{         //判断右侧有没有选中
               if(flg){    //有选中
                 if(idx == 0 || idx == 1){

+ 1 - 3
src/components/icss/SimilarName.vue

@@ -212,7 +212,6 @@
         e.preventDefault();
         let formData = new FormData();
         formData.append('uploadfile', fileInfo);
-        // console.log(123,fileInfo,formData);
         const header = {
           headers:{
             'Content-Type': 'multipart/form-data'
@@ -225,11 +224,10 @@
               type: 'success',
             });
           }else{
-            // this.$message.error(res.data.msg);
             this.$message({
               dangerouslyUseHTMLString: true,
               message:res.data.msg,
-              type:'waring'
+              type:'warning'
             });
           }
         })

+ 12 - 3
src/components/icss/VersionDesc.vue

@@ -108,7 +108,10 @@
           if(result.code==0){
             this.list = result.data;
           }else{
-            this.$message.error(result.msg);
+            this.$message({
+              message:result.msg,
+              type:'warning'
+            });
           }
         })
       },
@@ -143,7 +146,10 @@
               })
               this.getList();
             }else{
-              this.$message.error(res.data.msg);
+              this.$message({
+                message:res.data.msg,
+                type:'warning'
+              });
             }
           })
         }else if(this.showDesc){//明细
@@ -166,7 +172,10 @@
               })
               this.getList();
             }else{
-              this.$message.error(res.data.msg);
+              this.$message({
+                message:res.data.msg,
+                type:'warning'
+              });
             }
           })
         }

+ 1 - 1
src/routes.js

@@ -177,7 +177,7 @@ export default [
       {path:'LT-YXSJWH-TJMZSM',component:AddDisclInfo,name:'AddDisclInfo'},     //免责声明-添加/修改
       {path:'LT-YXSJWH-MBWH',component:TemplateMaintenance,name:'TemplateMaintenance'},     //模板维护
       {path:'LT-YXSJWH-CTMBWH',component:PhysicalExamTemplate,name:'PhysicalExamTemplate'},     //查体模板维护
-      {path:'LT-YXSJWH-TJCTMB',component:AddPhysicalExamTemp,name:'AddPhysicalExamTemp'},     //查体模板维护
+      {path:'LT-YXSJWH-TJCTMB',component:AddPhysicalExamTemp,name:'AddPhysicalExamTemp'},     //查体模板维护--添加
       {path:'LT-YXSJWH-TJMBWH',component:TemplateMaintenanceWrap,name:'TemplateMaintenanceWrap'},     //模板维护-添加修改
       {path:'LT-YXSJWH-TJTSXX',component:AddPromptInfo,name:'AddPromptInfo'},         //提示信息维护-添加
       {path:'LT-YXSJWH-TSXXXQ',component:PromptDetail,name:'PromptDetail'},         //提示信息维护详情

+ 2 - 2
vue.config.js

@@ -1,7 +1,7 @@
 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:88';
+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';//周铁刚
 // const proxy_path = 'http://192.168.3.115:5050';