Bladeren bron

Merge remote-tracking branch 'origin/dev' into test

zhouna 6 jaren geleden
bovenliggende
commit
596e1f06cd

+ 13 - 3
src/api/config.js

@@ -131,7 +131,17 @@ export default {
     'getPhysicalExamTempByDepId':'api/icssman/deptVital/getModuleByDeptId', //通过科室id获取查体模板
     'savePhysicalExamTemp':'api/icssman/deptVital/saveDeptVitals',//保存查体模板
     'delPhysicalExamTemp':'api/icssman/deptVital/delAllDeptVitalList',//删除查体模板
+    'getConceptKnowledge':'/api/knowledgeman/Knowledge/getConceptKnowledge', //  术语静态知识列表
+    'getConceptInfo':'/api/knowledgeman/concept/getConceptInfo', //  搜索术语
+    'saveConceptInfo':'/api/knowledgeman/concept/getConceptInfo',   //保存术语静态知识
     'getAllConcept':'/api/knowledgeman/concept/getAllConcept', //  术语列表
+    'versionInfo': 'api/icssman/versionInfo/getVersionInfoAlls', //版本信息
+    'addVersInfo': 'api/icssman/versionInfo/saveVersionInfoAlls', //版本信息-添加
+    'updateVersInfo': 'api/icssman/versionInfo/updateVersionInfoAlls', //版本信息-修改
+    'delVersionInfo': 'api/icssman/versionDetail/cancelVersionDetails', //版本信息-删除版本说明
+    'addVersionInfo': 'api/icssman/versionDetail/addVersionDetails', //版本信息-添加版本说明
+    'modiVersionInfo': 'api/icssman/versionDetail/updateVersionDetails', //版本信息-修改版本说明
+    'getVersionDetlInfo': 'api/icssman/versionDetail/getDetailById', //版本信息-版本说明列表获取
 	},
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',
@@ -154,10 +164,10 @@ export default {
   },
   groupParams:[
     {controlType:[1,2],tagType:[1],notTagType:[8]},     //多列多选(杂音/初为)     notTagType为文字标签剔除
-    {controlType:[1,2,6,7],tagType:[1,2],notTagType:[8]},  //多项统一横铺标签(血压)
-    {controlType:[1,2,5,6,7],tagType:[1,2],notTagType:[8]},  //症状详细(症状尾巴)
+    {controlType:[0,1,2,5,6],tagType:[1,2],notTagType:[8]},  //多项统一横铺标签(血压)
+    {controlType:[0,1,2,5,6],tagType:[1,2],notTagType:[8]},  //症状详细(症状尾巴)
     {controlType:[0,2],tagType:[1,4],notTagType:[8]}, //组合项标签(既往史)
-    {controlType:[1,6],tagType:[],notTagType:[8]},    //化验组合
+    {controlType:[1,7],tagType:[],notTagType:[8]},    //化验组合
     {controlType:[1,2,99],tagType:[],notTagType:[8]},   //症状推送类型(添加症状)
   ]
 }

+ 31 - 1
src/api/icss.js

@@ -26,7 +26,13 @@ export default {
       return axios.post(urls.PromptInfoDetail,param);
     },
     getTremList(param){
-      return axios.post(urls.getAllConcept,param);
+      return axios.post(urls.getConceptKnowledge,param);
+    },
+    getConceptInfo(param){
+      return axios.post(urls.getConceptInfo,param);
+    },
+    saveTermPrompts(param){
+      return axios.post(urls.saveConceptInfo,param);
     },
     getTagList(param) {
         return axios.post(urls.getTagList, param)
@@ -114,6 +120,9 @@ export default {
     addCommonSymptom(param) {
         return axios.post(urls.addCommonSymptom, param)
     },
+    getCommonSymptomById(param) {
+        return axios.post(urls.getCommonSymptomById, param)
+    },
     delCommonSymptom(param) {
         return axios.post(urls.delCommonSymptom, param)
     },
@@ -174,4 +183,25 @@ export default {
     delPhysicalExamTemp(param) {
         return axios.post(urls.delPhysicalExamTemp, param)
     },
+    versionInfo(param) {//版本信息
+      return axios.post(urls.versionInfo, param)
+    },
+    addVersInfo(param) {//版本信息-添加
+      return axios.post(urls.addVersInfo, param)
+    },
+    updateVersInfo(param) {//版本信息-修改
+      return axios.post(urls.updateVersInfo, param)
+    },
+    delVersionInfo(param) {//版本信息-删除说明
+      return axios.post(urls.delVersionInfo, param)
+    },
+    addVersionInfo(param) {//版本信息-添加说明
+      return axios.post(urls.addVersionInfo, param)
+    },
+    modiVersionInfo(param) {//版本信息-修改说明
+      return axios.post(urls.modiVersionInfo, param)
+    },
+    getVersionDetlInfo(param) {//版本信息-版本说明列表
+      return axios.post(urls.getVersionDetlInfo, param)
+    },
 }

+ 0 - 2
src/api/utils.js

@@ -219,8 +219,6 @@ export default {
       }else if(data[i].type == 'input'){     //这个是输入框文字
         if(data[i].text){   //去掉空输入框
           obj.text = data[i].text
-        }else{
-          return;
         }
       }else{    //这个是标签
         obj.questionId = data[i].id

+ 3 - 3
src/components/common/Crumbs.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="container clearfix">
+    <div class="container clearfix" :style="{'minWidth':minWidth?minWidth:'980px'}">
         <img v-if="linkTo" class="return-btn fl" src="../../images/return.png" alt="返回按钮" @click="goBack">
         <h4 class="fl">{{title}}</h4>
         <div class="contents fr">
@@ -11,7 +11,7 @@
 <script>
   export default {
     name: 'crumbs',
-    props: ['title','linkTo'],
+    props: ['title','linkTo','minWidth'],//minWidth-有些头部选项比较多,最小宽度需要调整
     data: function () {
       return {}
     },
@@ -38,7 +38,7 @@
         line-height: 40px;
         position: absolute;
         z-index: 5;
-        min-width: 980px;
+        // min-width: 980px;
     }
 
     .return-btn{

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

@@ -4,21 +4,21 @@
         <div class="groupTitle"><i
             class="el-icon-back"
             @click="back"
-        ></i> 常见症状维护系统--添加科室常见症状</div>
+        ></i> 常见症状维护系统--{{titleText}}</div>
         <el-form :model="form" ref="ruleForm" :rules="rules" class="addDepartForm">
             <el-form-item label="选择科室" prop="department">
-                <el-select v-model="form.department" placeholder="请添加科室" @change="changeDept" class="selectDepart">
+                <el-select :disabled="isEdit || isDetail" v-model="form.department" placeholder="请添加科室" @change="changeDept" class="selectDepart">
                     <el-option v-for="item in departList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                 </el-select>
             </el-form-item>
              <el-form-item label="选择类型" prop="type">
-                <el-select v-model="form.type" placeholder="请选择类型"  @change="changeType" class="selectDepart">
+                <el-select :disabled="isEdit || isDetail" v-model="form.type" placeholder="请选择类型"  @change="changeType" class="selectDepart">
                     <el-option v-for="item in typeList" :key="item.type" :label="item.typeName" :value="item.type"></el-option>
                 </el-select>
             </el-form-item>
         </el-form>
         <div class="symptomList">
-            <div class="bottomPartLeft fl">
+            <div class="bottomPartLeft fl" v-if="!isDetail">
                 
                 <p class="symptomPoolTitle">症状池</p>
                 <div class="symptomPool">
@@ -45,7 +45,7 @@
                 </div>
 
             </div>
-            <div class="bottomPartMid fl">
+            <div class="bottomPartMid fl" v-if="!isDetail">
                 <p><span class="el-icon-arrow-right" @click="toRightList"></span></p>
                 <p><span class="el-icon-arrow-left" @click="toLeftList"></span></p>
             </div>
@@ -56,14 +56,14 @@
                             v-for="(item,index) in rightTagsList" 
                             :key='item.id'
                             :style="index === selectRightTagIndex?styles:null"
-                            @click='selectRightTag(index)'
+                            @click='isDetail ? "":selectRightTag(index)'
                         >   
                             <p v-if="item.tagName" class="tagName  ellipsis" :title="'[ '+item.tagName+' ]'">{{item.tagName}} </p>
                         </li>
                     </ul>
 
             </div>
-            <div class="bottomPartMid fl">
+            <div class="bottomPartMid fl" v-if="!isDetail">
                 <p><span class="el-icon-arrow-up" @click="toUp"></span></p>
                 <p><span class="el-icon-arrow-down" @click="toDown"></span></p>
             </div>
@@ -93,9 +93,12 @@
                 department: '',
                 type:''
             },
+            titleText: '添加科室常见症状',
             departList: [],
             typeList:[],
             searchVal: '',
+            isEdit: false,
+            isDetail: false,
             leftTagsList:[],
             rightTagsList:[],
             selectLeftTagsList: [],
@@ -108,7 +111,19 @@
     created(){
         const { isEdit, isDetail, data } = this.$route.params;
         if(isEdit || isDetail) {
+            if(isEdit) {
+                this.titleText = '修改科室常见症状'
+            } else {
+                this.titleText = '科室常见症状详情'
+            }
             this.isEdit = isEdit
+            this.isDetail = isDetail
+            this.rightTagsList = data.data
+            this.departList.push({name: data.name, id: data.id})
+            this.typeList.push({typeName: data.typeName, type: data.type})
+            this.form.department =data.id
+            this.form.type =data.type
+            this.getSymptomList()
             
         } else {
             this.getDepartmentList()
@@ -152,7 +167,6 @@
             })
         },
         changeDept() {
-            console.log('asdasfdgag',this.departList)
             this.form.type = ''
             this.typeList = this.departList.filter(item => this.form.department == item.id)[0].typeDTOList
             this.clearData()
@@ -181,15 +195,16 @@
         toRightList(){
             this.rightTagsList.push(...this.selectLeftTagsList);
             this.selectLeftTagsList = [];
-            this.selectRightTagsList = [];
+            this.selectRightTagIndex = -1;
             this.getSymptomList()
         },
         toLeftList(){
-            for(let i = 0; i < this.selectRightTagsList.length; i++) {
-                this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[i].id)
+            if(this.selectRightTagIndex == -1) {
+                return
             }
+            this.rightTagsList.splice(this.selectRightTagIndex, 1)
             this.selectLeftTagsList = [];
-            this.selectRightTagsList = [];
+            this.selectRightTagIndex = -1;
             this.getSymptomList()
 
         },

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

@@ -6,7 +6,7 @@
         <div class="contents">
             <el-form ref="form" :label-position="labelPosition" :model="form" :rules="rules" label-width="100px" class="add-admin-form">
                 <el-form-item label="科室名称:" prop="name">
-                    <el-input v-model="form.name" placeholder="请输入科室名称"></el-input>
+                    <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>

+ 213 - 0
src/components/icss/AddMedicalName.vue

@@ -0,0 +1,213 @@
+<template>
+  <div>
+    <crumbs :title="minTitle" linkTo="/admin/LT-YXSYKWH-YXSYMMWH"></crumbs>
+    <div class="contents">
+      <div class="content">
+        <h3>添加术语:</h3>
+        <p class="titl">标准术语:</p>
+        <table class="deptbox">
+          <tr>
+            <td class="ind">序号</td>
+            <td>标准词</td>
+            <td>类型</td>
+            <td class="desc">说明</td>
+          </tr>
+          <tr>
+            <td class="ind">1</td>
+            <td>
+              <el-input v-model="data.name" placeholder="请输入术语" maxlength="30"></el-input>
+            </td>
+            <td>
+              <el-select v-model="data.type" clearable placeholder="请选择">
+                <el-option
+                  v-for="item in data.typeList"
+                  :key="item.key"
+                  :label="item.name"
+                  :value="item.key">
+                </el-option>
+              </el-select>
+            </td>
+            <td class="desc">
+              <el-input v-model="data.mark" placeholder="请输入术语说明" maxlength="120"></el-input>
+            </td>
+          </tr>
+        </table>
+        <p class="titl">同义词:</p>
+        <table class="deptbox">
+          <tr>
+            <td class="ind">序号</td>
+            <td>术语</td>
+            <td>类型</td>
+            <td class="desc">说明</td>
+            <td v-if="id">操作</td>
+          </tr>
+          <tr v-for="(item,index) in synonymous">
+            <td class="ind">{{index+1}}</td>
+            <td>
+              <el-input v-model="item.term" placeholder="请输入术语" maxlength="30"></el-input>
+            </td>
+            <td>
+              <el-select v-model="item.type" clearable placeholder="请选择">
+                <el-option
+                  v-for="item in data.typeList"
+                  :key="item.key"
+                  :label="item.name"
+                  :value="item.key">
+                </el-option>
+              </el-select>
+            </td>
+            <td class="desc">
+              <el-input v-model="item.mark" placeholder="请输入术语说明" maxlength="120"></el-input>
+            </td>
+            <td v-if="id">
+              <span @click="deleLine(index)">删除</span>
+            </td>
+          </tr>
+          <tr @click="addSpan">
+            <td :colspan="colspan" class="addSpan">+</td>
+          </tr>
+        </table>
+        <div class="btn">
+          <el-button
+            type="primary"
+            @click="comfirn"
+          >确 定</el-button>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script type="text/javascript">
+  export default {
+    name:'AddMedicalName',
+    data(){
+      return{
+        minTitle:'医学术语命名维护-添加',
+        data:{
+          name:'',
+          type:'',
+          mark:'', 
+          type:'',
+          typeList:[
+            {
+              name:'类型1',
+              id:1,
+              key:1
+            },
+            {
+              name:'类型2',
+              id:2,
+              key:2
+            },
+            {
+              name:'类型3',
+              id:3,
+              key:3
+            },
+          ]
+        },
+        id:null,
+        synonymous:[//同义词
+            {
+              term:'',
+              id:1,
+              type:'',
+              mark:''
+            },
+            {
+              term:'',
+              id:2,
+              type:'',
+              mark:''
+            },
+            {
+              term:'',
+              id:3,
+              type:'',
+              mark:''
+            },
+          ],
+        colspan:4
+      }
+    },
+    created(){
+      const info = this.$route.params.info;
+      if(info){
+        this.minTitle = '医学术语命名维护-修改';
+        this.id = info.id;
+        this.colspan = 5;
+      }
+    },
+    methods:{
+      handleInput(){//限制输入类型
+
+      },
+      addSpan(){
+        // let index = this.synIndex;
+        // index++
+        let singleSpan = {
+          // index:index,
+          term:'',
+          id:null,
+          type:'',
+          mark:''
+        }
+        this.synonymous.push(singleSpan);
+        // this.synIndex = index;
+      },
+      deleLine(index){
+        this.synonymous.splice(index,1);
+        console.log(123,index,this.synonymous);
+      },
+      comfirn(){
+
+      }
+    }
+  }
+</script>
+<style lang="less" scoped>
+   @import "../../less/admin.less";
+  .content{
+    background: #fff;
+    padding: 20px 20px 30px;
+    color: #545455;
+  }
+  .titl{
+    margin: 25px 0 10px;
+  }
+  .deptbox{
+    // width: 100%;
+    background: #fff;
+    padding: 20px 10px 30px;
+    font-size: 14px;
+    text-align: left;
+    border-collapse: collapse;
+    >tr{
+      height: 30px;
+      text-align: center;
+      td{
+        width: 135px;
+        border: 1px solid #666;
+        padding:5px;
+      }
+      input{
+        border:none;
+        width: 100%;
+      }
+      .ind{
+        width: 55px;
+      }
+      .desc{
+        width: 280px;
+      }
+    }
+    .addSpan{
+      text-align: center;
+      cursor: pointer;
+    } 
+  }
+  .btn {
+    text-align: right;
+    margin-top: 20px;
+  }
+</style>

+ 151 - 0
src/components/icss/AddMedicalRelation.vue

@@ -0,0 +1,151 @@
+<template>
+  <div>
+    <crumbs title="医学术语关系-添加" linkTo="/admin/LT-YXSYKWH-YXSYGXWH"></crumbs>
+    <div class="contents">
+      <div class="content">
+        <p>明细</p>
+        <div class="search">
+          <span>起始术语搜索:</span>
+          <el-input size="small" v-model="firstInput" placeholder="输入术语"></el-input>
+        </div>
+        <div class="search">
+          <span>终点术语搜索:</span>
+          <el-input size="small" v-model="endInput" placeholder="输入术语"></el-input>
+        </div>
+        <table class="deptbox">
+          <tr>
+            <td>起始术语</td>
+            <td>类型</td>
+            <td>关系</td>
+            <td>终点术语</td>
+            <td>类型</td>
+          </tr>
+          <tr>
+            <td>
+              <span>起始术语</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>
+            </td>
+            <td>
+              <el-select v-model="data.relation" 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>
+            </td>
+            <td>
+              <span>终点术语</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>
+            </td>
+          </tr>
+        </table>
+        <div class="btn">
+          <el-button
+            type="primary"
+            @click="comfirn"
+          >确 定</el-button>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script type="text/javascript">
+  export default {
+    name:'AddMedicalRelation',
+    data(){
+      return{
+        data:{
+          type:'',
+          typeList:[
+            {
+              name:'类型1',
+              id:1,
+              key:1
+            },
+            {
+              name:'类型2',
+              id:2,
+              key:2
+            },
+            {
+              name:'类型3',
+              id:3,
+              key:3
+            },
+          ]
+        },
+        firstInput:'',
+        endInput:'',
+        relation:'',
+        firstType:'',
+        endType:''
+      }
+    },
+    methods:{
+      comfirn(){
+
+      }
+    }
+  }
+</script>
+<style lang="less" scoped>
+  @import "../../less/admin.less";
+  .content{
+    background: #fff;
+    padding: 20px 20px 30px;
+    color: #545455;
+    .search{
+      width: 185px;
+      display: inline-block;
+      margin: 20px 255px 25px 0;
+      .el-input--small{
+        margin-top: 8px;
+      }
+    }
+  }
+  .deptbox{
+    // width: 100%;
+    background: #fff;
+    padding: 20px 10px 30px;
+    font-size: 14px;
+    text-align: left;
+    border-collapse: collapse;
+    >tr{
+      height: 30px;
+      text-align: center;
+      td{
+        width: 135px;
+        border: 1px solid #666;
+        padding:5px;
+      }
+      input{
+        border:none;
+        width: 100%;
+      }
+    } 
+  }
+  .btn {
+    text-align: right;
+    margin-top: 20px;
+  }
+</style>

+ 43 - 35
src/components/icss/AddMedicinePrompt.vue

@@ -9,14 +9,24 @@
                      :model="form"
                      label-width="130px"
                      ref="groups">
-                <el-form-item label="选择术语标签:" prop="name">
-                    <el-select v-model="form.selectedTerm" :disabled="isEdit">
-                        <el-option v-for="term in terms" v-key="term.id" :value="term.id">{{term.name}}</el-option>
+                <el-form-item label="选择术语标签:" prop="selectedTerm">
+                    <el-select v-model="form.selectedTerm"
+                               :disabled="isEdit"
+                               filterable
+                               remote
+                               clearable
+                               value-key="libId"
+                               ref="termName"
+                               placeholder="搜索术语"
+                               :remote-method="searchTerms">
+                        <el-option v-for="term in terms" :key="term.libId" :label="term.name" :value="term" ></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="已选择术语标签:">
                     {{form.selectedTermName}}
                 </el-form-item>
+                <el-form-item label="添加静态知识">
+                </el-form-item>
                 <InfoParagraph v-for="(f,i) in form.prags"
                                :data="f"
                                :index="i"
@@ -39,15 +49,11 @@
    *
    */
   import api from '@api/icss.js';
-  import utils from '@api/utils.js';
-  import TagPool from './PromptTagPool';
-  import schema from 'async-validator';
   import InfoParagraph from './InfoParagraph';
 
   export default {
-    name: 'AddPromptInfo',
+    name: 'AddMedicinePrompt',
     components: {
-      TagPool,
       InfoParagraph
     },
     data() {
@@ -59,7 +65,6 @@
           prags:[]
         },
         form:{
-          name:'',
           selectedTerm:'',            //术语标签
           selectedTermName:'',
           prags:[{              //单个段落相关
@@ -71,30 +76,36 @@
             text:''}]
         },
         rules: {
-          name: [
+          selectedTerm: [
             { required: true, message: '请选择术语标签', trigger: 'change' }
           ]
         }
       }
     },
+    watch:{
+      'form.selectedTerm':function(newVal){
+        const name = newVal.name;
+        this.form.selectedTermName = name;
+      }
+    },
     created:function(){
       const {isEdit,data} = this.$route.params;
       if(isEdit){
         this.isEdit = isEdit;
       }
     },
-    searchTerms(){
-      //搜索术语列表
-      api.getTremList().then((res) =>{
-        if(res.data.code === '0') {
-          this.terms = res.data.data;
-        }else{
-          this.warning("数据获取失败");
-        }
-      })
-    },
     methods: {
       back() { this.$router.go(-1) },
+      searchTerms(query){
+        //搜索术语列表
+        api.getConceptInfo({term:query,type:''}).then((res) =>{
+          if(res.data.code === '0') {
+            this.terms = res.data.data;
+          }else{
+            this.warning("数据获取失败");
+          }
+        })
+      },
       mapStringToNum(str){
         return str.split(",").map((it)=>{
           return +it;
@@ -157,28 +168,18 @@
         }
         //通过必填验证,提交保存
         const param = {
-          name:this.form.name,
-          detailVOList:Object.assign(this.form.prags),
-          mapVOList:Object.assign(this.form.selectedTags)
+          name:this.form.selectedTerm.libId,
+          detailVOList:Object.assign(this.form.prags)
         };
-        //console.log(param);
+        console.log(param);
         this.showSaveDialog(param);
       },
-      parseTagsForSubmit(data){
-        return data.map((it)=>{
-          return {questionId:it.id,introduceId:'',type:it.type};
-        });
-      },
-      changeActionData(selectedTags){
-        this.form.selectedTags = this.parseTagsForSubmit(selectedTags);
-        //console.log(selectedTags)
-      },
       showSaveDialog(param) {
         this.showConfirmDialog('是否保存该静态知识?', () => {
-          api.savePrompts(param).then((res) => {
+          api.saveTermPrompts(param).then((res) => {
             if (res.data.code === '0') {
               this.warning(res.data.msg || '保存成功', 'success');
-              this.$router.push("/admin/LT-YXSJWH-TSXXWH");
+              this.$router.push("/admin/LT-YXSYKWH-YXSYJTZSWH");
             } else {
               this.warning(res.data.msg)
             }
@@ -224,6 +225,13 @@
     .line{
         border-top:1px #dcdfe6 solid;
         margin-bottom: 25px;
+
+    }
+    .NoiseTemplateWrapper .info-container .el-input__inner{
+       width: 250px;
+    }
+    .NoiseTemplateWrapper .el-select .el-input .el-icon-circle-close{
+        display: inherit!important;
     }
 </style>
 

+ 14 - 8
src/components/icss/AddPhysicalExamTemp.vue

@@ -4,7 +4,7 @@
         <div class="groupTitle"><i
             class="el-icon-back"
             @click="back"
-        ></i> 查体模板维护系统--添加模板</div>
+        ></i> 查体模板维护系统--{{titleText}}</div>
         <el-form :model="form" ref="ruleForm" :rules="rules" class="addDepartForm">
             <el-form-item label="模板归属:"  >
                <span>查体</span>
@@ -49,8 +49,8 @@
             </div>
             <div class="bottomPartRight fl">
                 <p class="symptomPoolTitle">查体模板: 
-                    <span class="el-icon-arrow-right arrowIcon" @click="toDown"></span>
-                    <span class="el-icon-arrow-left arrowIcon" @click="toUp"></span> 
+                    <span v-if="!isDetail" class="el-icon-arrow-right arrowIcon" @click="toDown"></span>
+                    <span v-if="!isDetail" class="el-icon-arrow-left arrowIcon" @click="toUp"></span> 
                 </p>
                 <ul class="tagList operationPool">
                         <li class = "tagItem fl"
@@ -89,6 +89,7 @@
             form: {
                 department: '',
             },
+            titleText: '添加模板',
             departList: [],
             searchVal: '',
             leftTagsList:[],
@@ -105,6 +106,11 @@
     created(){
         const { isEdit, isDetail, data } = this.$route.params;
         if(isEdit || isDetail) {
+            if(isEdit) {
+                this.titleText = '修改模板'
+            } else {
+                this.titleText = '模板详情'
+            }
             const { id, name } = data
             this.isEdit = isEdit
             this.isDetail = isDetail
@@ -176,16 +182,16 @@
         toRightList(){
             this.rightTagsList.push(...this.selectLeftTagsList);
             this.selectLeftTagsList = [];
-            this.selectRightTagsList = [];
+            this.selectRightTagIndex = -1;
             this.getTagList()
-            console.log('rightTagsList', this.rightTagsList)
         },
         toLeftList(){
-            for(let i = 0; i < this.selectRightTagsList.length; i++) {
-                this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[i].id)
+            if(this.selectRightTagIndex == -1) {
+                return
             }
+            this.rightTagsList.splice(this.selectRightTagIndex, 1)
             this.selectLeftTagsList = [];
-            this.selectRightTagsList = [];
+            this.selectRightTagIndex = -1;
             this.getTagList()
 
         },

+ 18 - 12
src/components/icss/AddSimilarName.vue

@@ -23,12 +23,12 @@
           <tr v-if="flag" v-for="item in selfName">
            <!--  <td class="desc">{{item.retrievalName}}</td>
             <td>{{item.retrievalSpell}}</td> -->
-            <td><input type="text" name="" v-model="item.retrievalName"></td>
-            <td><input type="text" name="" v-model="item.retrievalSpell"></td>
+            <td><input type="text" name="" v-model="item.retrievalName" maxlength="30" @input="handleInput"></td>
+            <td><input type="text" name="" v-model="item.retrievalSpell" maxlength="30" @input="handlePinyin"></td>
           </tr>
           <tr v-if="!flag" v-for="(i,index) in selfEmpty">
-            <td><input type="text" name="" v-model="selfEmpty[index].retrievalName"></td>
-            <td><input type="text" name="" v-model="selfEmpty[index].retrievalSpell"></td>
+            <td><input type="text" name="" v-model="selfEmpty[index].retrievalName" maxlength="30" @input="handleInput"></td>
+            <td><input type="text" name="" v-model="selfEmpty[index].retrievalSpell" maxlength="30" @input="handlePinyin"></td>
           </tr>
         </table>
         <p class="subtitle">别名添加:</p>
@@ -38,12 +38,12 @@
             <td>拼音</td>
           </tr>
           <tr v-if="retrievalNames.length>0" v-for="it in retrievalNames">
-            <td><input type="text" name="" v-model="it.retrievalName"></td>
-            <td><input type="text" name="" v-model="it.retrievalSpell"></td>
+            <td><input type="text" name="" v-model="it.retrievalName" maxlength="30" @input="handleInput"></td>
+            <td><input type="text" name="" v-model="it.retrievalSpell" maxlength="30" @input="handlePinyin"></td>
           </tr>
           <tr v-for="(i,index) in retrievalEmpty">
-            <td><input type="text" name="" v-model="retrievalEmpty[index].retrievalName"></td>
-            <td><input type="text" name="" v-model="retrievalEmpty[index].retrievalSpell"></td>
+            <td><input type="text" name="" v-model="retrievalEmpty[index].retrievalName" maxlength="30" @input="handleInput"></td>
+            <td><input type="text" name="" v-model="retrievalEmpty[index].retrievalSpell" maxlength="30" @input="handlePinyin"></td>
           </tr>
           <tr @click="addSpan(2)">
             <td colspan="2" class="addSpan">+</td>
@@ -56,12 +56,12 @@
             <td>拼音</td>
           </tr>
           <tr v-if="retrievalSonNames.length>0" v-for="v in retrievalSonNames">
-            <td><input type="text" name="" v-model="v.retrievalName"></td>
-            <td><input type="text" name="" v-model="v.retrievalSpell"></td>
+            <td><input type="text" name="" v-model="v.retrievalName" maxlength="30" @input="handleInput"></td>
+            <td><input type="text" name="" v-model="v.retrievalSpell" maxlength="30" @input="handlePinyin"></td>
           </tr>
           <tr v-for="(k,index) in sonEmpty">
-            <td><input type="text" name="" v-model="sonEmpty[index].retrievalName"></td>
-            <td><input type="text" name="" v-model="sonEmpty[index].retrievalSpell"></td>
+            <td><input type="text" name="" v-model="sonEmpty[index].retrievalName" maxlength="30" @input="handleInput"></td>
+            <td><input type="text" name="" v-model="sonEmpty[index].retrievalSpell" maxlength="30" @input="handlePinyin"></td>
           </tr>
           <tr @click="addSpan(3)">
             <td colspan="2" class="addSpan">+</td>
@@ -233,6 +233,12 @@
       close(){
         this.showFlag = false;
         this.searchStr = "";
+      },
+      handleInput(e){//名字只能输入中文、英文和数字
+        e.target.value = e.target.value.replace(/[^0-9a-zA-Z\u4e00-\u9fa5]/g,'');
+      },
+      handlePinyin(e){//只能输入英文
+        e.target.value = e.target.value.replace(/[^a-zA-Z]/g,'');
       }
     },
     watch:{

+ 137 - 0
src/components/icss/AddVersion.vue

@@ -0,0 +1,137 @@
+<template>
+  <div>
+    <crumbs :title="title" linkTo="/admin/LT-YXSJWH-BBXXWH"></crumbs>
+    <div class="contents">
+      <div class="content">
+        <el-form ref="form" :label-position="labelPosition" label-width="95px" class="add-admin-form" :model="form" :rules="rules">
+          <el-form-item label="版本号:" prop="name">
+              <el-input v-model="form.name" placeholder="请输入版本号" maxlength="120"></el-input>
+          </el-form-item>
+          <el-form-item label="版本时间:" prop="refreshTime">
+            <el-date-picker
+              v-model="form.refreshTime"
+              type="date"
+              placeholder="选择日期"
+              :picker-options="pickerOptions1"
+              value-format="yyyy-MM-dd"
+              :clearable='false'>
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="版本备注:" prop="remark" class="discDesc">
+              <el-input type="textarea" :rows="3" placeholder="请输入版本备注" v-model="form.remark" maxlength="120"></el-input>
+          </el-form-item>
+          <el-form-item label="版本说明:" v-if="list.length>0">
+          </el-form-item>
+        </el-form>
+        <VersionDesc v-if="id" :detail="list" :versionId="id" :isFirst="isFirst"/>
+        <el-button class="disclButn" size="small" type="primary" @click="comfirn">确定</el-button>
+      </div>    
+    </div>
+  </div>
+</template>
+<script type="text/javascript">
+  import api from '@api/icss.js';
+  import VersionDesc from './VersionDesc.vue';
+  export default {
+    name:'AddVersion',
+    data(){
+      return{
+        // data:{},
+        list:[],
+        labelPosition:'left',
+        isFirst:false,
+        title:'版本信息维护-添加版本信息',
+        form:{
+          name:'',
+          refreshTime:'',
+          remark:''
+        },
+        id:null,
+        rules:{
+          name:{ required: true, message: '请输入版本号', trigger: ['blur', 'change'] },
+          refreshTime:{ required: true, message: '请选择时间', trigger: ['blur', 'change'] }
+        },
+        pickerOptions1:{
+          disabledDate(time) {
+            return time.getTime() < Date.now();
+          },
+        }
+      }
+    },
+    created(){
+      let info = this.$route.params.info;
+      if(info){
+        this.id = info.id;
+        this.form.name = info.name;
+        this.form.refreshTime = info.refreshTime;
+        this.form.remark = info.remark;
+        this.title = "版本信息维护-修改版本信息";
+        this.isFirst = true;
+        this.getList();
+      }
+    },
+    methods:{
+      getList(){
+        api.getVersionDetlInfo({id:this.id}).then((res)=>{
+          const result = res.data;
+          if(result.code==0){
+            this.list = result.data;
+          }else{
+            this.$message.error(result.msg);
+          }
+        })
+      },
+      comfirn(){
+        if(this.id){//修改
+          const param = Object.assign({},this.form,{id:this.id})
+          api.updateVersInfo(param).then((res)=>{
+            if(res.data.code==0){
+              this.$message({
+                message:"修改成功",
+                type:'success'
+              })
+              this.$router.push({path: 'LT-YXSJWH-BBXXWH'});
+            }else{
+              this.$message.error(res.data.msg);
+            }
+          })
+        }else{//添加
+          api.addVersInfo(this.form).then((res)=>{
+            if(res.data.code==0){
+              this.$message({
+                message:"添加成功",
+                type:'success'
+              })
+              this.$router.push({path: 'LT-YXSJWH-BBXXWH'});
+            }else{
+              this.$message.error(res.data.msg);
+            }
+          })
+        }
+      },
+    },
+    components:{
+      VersionDesc
+    }
+  }
+</script>
+<style lang="less" scoped>
+  @import "../../less/admin.less";
+  .content{
+    background: #fff;
+    // padding: 20px 20px 30px;
+    padding: 20px 20px 50px;
+    color: #545455;
+    min-width: 980px;
+    position: relative;
+    .discDesc{
+      margin-bottom: 20px;
+    }
+    .disclButn{
+      position: absolute;
+      right: 80px;
+      bottom: 0px;
+    }
+  }
+
+</style>

+ 9 - 21
src/components/icss/CommonSymptom.vue

@@ -102,15 +102,20 @@
     },
     methods: {
       toEditProduct(row){
-        const param = {
+       
+        this.getCommonSymptomById('isEdit',row)
+
+      },
+      getCommonSymptomById(type, row) {
+         const param = {
             "deptId": row.id,
             "type": row.type
         }
         api.getCommonSymptomById(param).then((res)=>{
             const {code,data,msg} = res.data;
             if(code=='0'){
-                const item = Object.assign({},row,data);
-                this.$router.push({name:'AddCommonSymptom',params:{isEdit:true,data:item}});
+                const item = Object.assign({},row,{data: data});
+                this.$router.push({name:'AddCommonSymptom',params:{[type]:true,data:item}});
             }else{
                 this.$message({
                 message: msg,
@@ -118,7 +123,6 @@
                 });
             }
         });
-
       },
       filterDatas(){
         this.currentPage = 1;
@@ -131,7 +135,6 @@
         // };
         api.commonSymptomList(param).then((res) => {
           if (res.data.code == '0') {
-            console.log('commonSymptomList', res)
             const data = res.data.data;
             this.list = data.records;
             this.total = data.total;
@@ -141,22 +144,7 @@
         });
       },
       getDetailList(row) {
-        const param = {
-            "deptId": row.id,
-            "type": row.type
-        }
-        api.getCommonSymptomById(param).then((res)=>{
-            const {code,data,msg} = res.data;
-            if(code=='0'){
-                const item = Object.assign({},row,data);
-                this.$router.push({name:'AddCommonSymptom',params:{isEdit:true,data:item}});
-            }else{
-                this.$message({
-                message: msg,
-                type: 'warning'
-                });
-            }
-        });
+         this.getCommonSymptomById('isDetail',row)
       },
       getFilterItems() {
         const param = {

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

@@ -149,7 +149,6 @@ export default {
   },
   mounted() {
     this.$nextTick(()=>{
-      if(this.type){this.searchTagList()}
       if(this.options.id){
         if(this.options && this.options.data && this.options.data.length>0){
           let reviewList = this.options.data
@@ -170,17 +169,18 @@ export default {
             }
           }
           this.rightTagsList = reviewList
-          console.log(reviewList,'xiugai')
         }
         this.$emit('changeActionData', this.rightTagsList, false);
         this.getSubTemplate()
       }else{
         this.getSubTemplate()
       }
+      this.searchTagList()
     })
   },
   watch: {
     type(newVal, preVal) {
+      this.searchTagList()       //重新获取标签池数据
       if(newVal != preVal){
         this.form = {region: ''}  
         this.subTmpList = []     //子模板的id用于去重
@@ -191,7 +191,6 @@ export default {
         this.selectRightTagsListIndex = []
         this.searchVal = ''
         this.getSubTemplate()      //重新获取子模板
-        this.searchTagList()       //重新获取标签池数据
       }
     },
     searchVal(newVal, preVal) {
@@ -327,7 +326,7 @@ export default {
       return this.isHasTag(item, this.selectRightTagsList)
     },
     toLeftList() {
-      if (this.selectRightTagsList.length>0 && this.selectRightTagsList[0].type !== 'sub' && this.selectRightTagsList[0].type !== 'input') {    //往左的是子模板不变或者输入框,是输入框或者标签就删除
+      if (this.selectRightTagsList.length>0 && this.selectRightTagsList[0].type !== 'sub') {    //往左的是子模板不变或者输入框,是输入框或者标签就删除
         for (let i = 0; i < this.selectRightTagsList.length; i++) {
           this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[0].id)
         }
@@ -350,12 +349,15 @@ export default {
     },
     searchTagList() {
       let notIds = []
-      for (let i = 0; i < this.rightTagsList.length; i++) {
-          notIds.push(this.rightTagsList[i].id)
+      let tmpArr = this.rightTagsList.slice();
+      for (let i = 0; i < tmpArr.length; i++) {
+        if(tmpArr[i].type != 'sub' && tmpArr[i].type != 'input'){
+          notIds.push(tmpArr[i].id)
+        }
       }
       let param = {
         "tagName": this.searchVal,
-        "type": 1,
+        "type": this.type == 4?3:1,
         "noIds": notIds,
       }
       api.getQuestionInfos(param).then((res) => {
@@ -372,7 +374,6 @@ export default {
       }
       api.getModuleInfoSub(param).then((res) => {
         if (res.data.code === '0') {
-          console.log(res.data.data)
           this.Adscriptions = res.data.data
         }
       })

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

@@ -242,7 +242,7 @@
     .delete:hover {
         color: red;
     }
-    .el-select .el-input .el-select__caret{
+    .el-select .el-input .el-icon-arrow-up{
         display: inline-block!important;
     }
     .el-select .el-input .el-icon-circle-close{

+ 212 - 0
src/components/icss/MedicalName.vue

@@ -0,0 +1,212 @@
+<template>
+    <div>
+        <crumbs title="医学术语命名维护">
+            <el-form :inline="true" class="demo-form-inline">
+                <el-form-item label="术语:">
+                    <el-input size="mini" v-model="filter.proName" placeholder="输入术语"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <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-TJYXSY" style="margin:0 10px">
+                        <el-button size="mini" type="warning">添加术语</el-button>
+                    </router-link>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table :data="list"
+                      border
+                      style="width: 100%">
+                <el-table-column
+                        type="index"
+                        :index="indexMethod"
+                        label="编号"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        prop="gmtOperate"
+                        label="操作时间"
+                        :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column
+                        prop="questionName"
+                        label="医学标准术语"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="retrievalSelfName"
+                        label="其他术语"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="operatorName"
+                        label="操作人">
+                </el-table-column>
+                
+                <el-table-column
+                        label="操作" width="160">
+                    <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>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination v-if="total>pageSize"
+                           :current-page.sync="currentPage"
+                           @current-change="currentChange"
+                           background
+                           :page-size="pageSize"
+                           layout="total,prev, pager, next, jumper"
+                           :total="total">
+            </el-pagination>
+        </div>
+
+    </div>
+</template>
+
+<script>
+  import api from '@api/icss.js';
+  export default {
+    name: 'MedicalName',
+    data: function () {
+      return {
+        list: [],
+        cacheData: {},
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+        filter: {
+          proName: ''
+        }
+      }
+    },
+    created() {
+      this.getDataList();
+    },
+    methods: {
+      toEditProduct(row){
+        // this.$router.push({
+        //   name:'AddSimilarName',
+        //   params: {id:row.questionId,name:row.questionName}
+        // })
+      },
+      filterDatas(){
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      getDataList() {
+        const param = this.getFilterItems();
+        /*api.similarName(param).then((res) => {
+          if (res.data.code == '0') {
+            const data = res.data.data;
+            this.list = data.records;
+            this.cacheData[param.current] = data.records;
+            this.total = data.total;
+          }
+        }).catch((error) => {
+          console.log(error);
+        });*/
+      },
+      getDetailList(id) {
+        const param = {'id': id,};
+        // this.$router.push({name:'DeptInfoDetail', params:{id: id}})
+      },
+      getFilterItems() {
+        const param = {
+          questionName: this.filter.proName,
+          current: this.currentPage,
+          size: this.pageSize
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+          this.list = this.cacheData[next];
+        } else {
+          this.getDataList();
+        }
+      },
+      warning(msg,type){
+        this.$message({
+          showClose: true,
+          message:msg,
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      showDelDialog(id){
+        this.showConfirmDialog('删除该标准词,可能造成相关联的医学信息、术语关系、医学静态知识等信息全部删除,是否删除?',()=>{
+          api.delSimilarName({questionId:id}).then((res)=>{
+            if(res.data.code=='0'){
+              this.warning(res.data.msg||'操作成功','success');
+              this.getDataList();
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      },
+      uploadClick(){
+        let inp = document.getElementById("upFile");
+        inp.click();
+      },
+      uploadFile(e){
+        let fileInfo = e.target.files[0];
+        e.preventDefault();
+        let formData = new FormData();
+        formData.append('uploadfile', fileInfo);
+        console.log(123,fileInfo,formData);
+        const header = {
+          headers:{
+            'Content-Type': 'multipart/form-data'
+          }
+        }
+        api.uploadFile(formData,header).then((res)=>{
+          if(res.data.code==0){
+            this.$message({
+              message: '上传成功',
+              type: 'success',
+            });
+          }else{
+            this.$message.error(res.data.msg);
+          }
+        })
+        this.getDataList();
+        /*//解决上传相同文件不触发change
+        let inp = document.getElementById("upFile");
+        inp.value = "";
+        */
+      }
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+    @import "../../less/admin.less";
+    .delete{
+        color: red;
+    }
+    .el-table .cell{
+      overflow: hidden;
+      white-space: nowrap;
+    }
+    #upFile{
+      display: none !important;
+    }
+</style>

+ 240 - 0
src/components/icss/MedicalRelation.vue

@@ -0,0 +1,240 @@
+<template>
+    <div>
+        <crumbs title="医学术语关系维护" :minWidth="titleWidth">
+            <el-form :inline="true" class="demo-form-inline">
+              <el-form-item label="术语总条数:">
+                  <span>{{total}}条</span>
+              </el-form-item>
+              <el-form-item label="术语关系:">
+                <el-select v-model="type" clearable placeholder="请选择" size="mini">
+                  <el-option
+                    v-for="item in typeList"
+                    :key="item.key"
+                    :label="item.name"
+                    :value="item.key">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="起始术语:">
+                  <el-input size="mini" v-model="filter.proName" placeholder="输入术语"></el-input>
+              </el-form-item>
+              <el-form-item label="终点术语:">
+                  <el-input size="mini" v-model="filter.proName" placeholder="输入术语"></el-input>
+              </el-form-item>
+              <el-form-item>
+                  <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-TJYXSYGX" style="margin:0 10px">
+                      <el-button size="mini" type="warning">添加关系</el-button>
+                  </router-link>
+              </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table :data="list"
+                      border
+                      style="width: 100%">
+                <el-table-column
+                        type="index"
+                        :index="indexMethod"
+                        label="编号"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        prop="gmtOperate"
+                        label="操作时间"
+                        :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column
+                        prop="questionName"
+                        label="关系明细"
+                        show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                        prop="operatorName"
+                        label="操作人">
+                </el-table-column>
+                
+                <el-table-column
+                        label="操作" width="160">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row.questionId)">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination v-if="total>pageSize"
+                           :current-page.sync="currentPage"
+                           @current-change="currentChange"
+                           background
+                           :page-size="pageSize"
+                           layout="total,prev, pager, next, jumper"
+                           :total="total">
+            </el-pagination>
+        </div>
+
+    </div>
+</template>
+
+<script>
+  import api from '@api/icss.js';
+  export default {
+    name: 'MedicalRelation',
+    data: function () {
+      return {
+        list: [],
+        cacheData: {},
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+        filter: {
+          proName: ''
+        },
+        type:'',
+        typeList:[
+          {
+            name:'类型1',
+            id:1,
+            key:1
+          },
+          {
+            name:'类型2',
+            id:2,
+            key:2
+          },
+          {
+            name:'类型3',
+            id:3,
+            key:3
+          },
+        ],
+        titleWidth:'1060px' //头部最小宽度
+      }
+    },
+    created() {
+      this.getDataList();
+    },
+    methods: {
+      toEditProduct(row){
+        // this.$router.push({
+        //   name:'AddSimilarName',
+        //   params: {id:row.questionId,name:row.questionName}
+        // })
+      },
+      filterDatas(){
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      getDataList() {
+        const param = this.getFilterItems();
+        /*api.similarName(param).then((res) => {
+          if (res.data.code == '0') {
+            const data = res.data.data;
+            this.list = data.records;
+            this.cacheData[param.current] = data.records;
+            this.total = data.total;
+          }
+        }).catch((error) => {
+          console.log(error);
+        });*/
+      },
+      getDetailList(id) {
+        const param = {'id': id,};
+        // this.$router.push({name:'DeptInfoDetail', params:{id: id}})
+      },
+      getFilterItems() {
+        const param = {
+          questionName: this.filter.proName,
+          current: this.currentPage,
+          size: this.pageSize
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+          this.list = this.cacheData[next];
+        } else {
+          this.getDataList();
+        }
+      },
+      warning(msg,type){
+        this.$message({
+          showClose: true,
+          message:msg,
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      showDelDialog(id){
+        this.showConfirmDialog('是否删除该关系?可能对现有系统造成影响',()=>{
+          api.delSimilarName({questionId:id}).then((res)=>{
+            if(res.data.code=='0'){
+              this.warning(res.data.msg||'操作成功','success');
+              this.getDataList();
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      },
+      uploadClick(){
+        let inp = document.getElementById("upFile");
+        inp.click();
+      },
+      uploadFile(e){
+        let fileInfo = e.target.files[0];
+        e.preventDefault();
+        let formData = new FormData();
+        formData.append('uploadfile', fileInfo);
+        console.log(123,fileInfo,formData);
+        const header = {
+          headers:{
+            'Content-Type': 'multipart/form-data'
+          }
+        }
+        /*api.uploadFile(formData,header).then((res)=>{
+          if(res.data.code==0){
+            this.$message({
+              message: '上传成功',
+              type: 'success',
+            });
+          }else{
+            this.$message.error(res.data.msg);
+          }
+        })
+        this.getDataList();*/
+        /*//解决上传相同文件不触发change
+        let inp = document.getElementById("upFile");
+        inp.value = "";
+        */
+      }
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+    @import "../../less/admin.less";
+    .delete{
+        color: red;
+    }
+    .el-table .cell{
+      overflow: hidden;
+      white-space: nowrap;
+    }
+    #upFile{
+      display: none !important;
+    }
+</style>

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

@@ -109,7 +109,7 @@
         // const param = {
         //   'name':''
         // };
-        api.getPromptList(param).then((res) => {
+        api.getTremList(param).then((res) => {
           if (res.data.code == '0') {
             const data = res.data.data;
             this.list = data.records;

+ 7 - 21
src/components/icss/PhysicalExamTemplate.vue

@@ -97,12 +97,15 @@
     },
     methods: {
       toEditProduct(row){
-        api.getPhysicalExamTempByDepId({deptId:row.id}).then((res)=>{
+        this.getPhysicalExamTempByDepId('isEdit', row)
+      },
+      getPhysicalExamTempByDepId(type, row) {
+        const param = {'deptId': row.id,};
+        api.getPhysicalExamTempByDepId(param).then((res)=>{
             const {code,data,msg} = res.data;
             if(code=='0'){
                 const item = Object.assign({},row,data);
-                console.log('item', item)
-                this.$router.push({name:'AddPhysicalExamTemp',params:{isEdit:true,data:item}});
+                this.$router.push({name:'AddPhysicalExamTemp',params:{[type]:true,data:item}});
             }else{
                 this.$message({
                 message: msg,
@@ -111,10 +114,6 @@
             }
         });
 
-        // this.$router.push({
-        //   name:'AddPhysicalExamTemp',
-        //   params: {info:row}
-        // })
       },
       filterDatas(){
         this.currentPage = 1;
@@ -127,7 +126,6 @@
         // };
         api.getPhysicalExamTempList(param).then((res) => {
           if (res.data.code == '0') {
-            console.log('PhysicalExamTempList', res)
             const data = res.data.data;
             this.list = data.records;
             this.total = data.total;
@@ -137,19 +135,7 @@
         });
       },
       getDetailList(row) {
-        const param = {'deptId': row.id,};
-        api.getPhysicalExamTempByDepId(param).then((res)=>{
-            const {code,data,msg} = res.data;
-            if(code=='0'){
-                const item = Object.assign({},row,data);
-                this.$router.push({name:'AddPhysicalExamTemp',params:{isDetail:true,data:item}});
-            }else{
-                this.$message({
-                message: msg,
-                type: 'warning'
-                });
-            }
-        });
+         this.getPhysicalExamTempByDepId('isDetail', row)
       },
       getFilterItems() {
         const param = {

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

@@ -219,7 +219,7 @@
 
 // 查体(val:4):输入框(val:6)、数字键盘(val:7)、单选(val:1)、多选(val:2)、
 
-// 化验(val:5):化验输入框(val:6)、化验单选(val:1)
+// 化验(val:5):化验数字键盘(val:7)、化验单选(val:1)
 
   export default {
     props:['editData'],
@@ -250,7 +250,7 @@
           '1':['1','2','5','6','7','99'],
           '3':['1','2','5','6','7'],
           '4':['1','2','6','7'],
-          '5':['1','6']
+          '5':['1','7']
         },
         rules: {
           region1: [

+ 4 - 2
src/components/icss/PubTagPartDetail.vue

@@ -128,6 +128,10 @@ export default {
         type: Array
     }
   },
+
+  destroyed:function(){
+    this.searchVal = ''
+  },
   data() {
     return {
       poolDetailList: [[],[],[],[],[],[]],     //默认6个部分
@@ -417,9 +421,7 @@ export default {
     getRightListDes(){
       let idStr = this.currentLis.join(',');
       let param = {
-        // "age": 0,
         "ids": idStr,
-        // "sexType": 3
       }
       api.detailsTagList(param).then((res) => {        //右侧展开内容
         if (res.data.code === '0') {

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

@@ -3,7 +3,7 @@
         <crumbs title="别名维护系统">
             <el-form :inline="true" class="demo-form-inline">
                 <el-form-item label="标签名称:">
-                    <el-input size="mini" v-model="filter.proName" placeholder="标签名称"></el-input>
+                    <el-input size="mini" v-model="filter.proName" placeholder="标签名称" clearable></el-input>
                 </el-form-item>
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
@@ -93,8 +93,6 @@
 
 <script>
   import api from '@api/icss.js';
-  import utils from '@api/utils.js';
-  import axios from 'axios';
   export default {
     name: 'SimilarName',
     data: function () {
@@ -231,10 +229,9 @@
           }
         })
         this.getDataList();
-        /*//解决上传相同文件不触发change
+        //解决上传相同文件不触发change
         let inp = document.getElementById("upFile");
         inp.value = "";
-        */
       }
     }
   }

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

@@ -43,7 +43,7 @@
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="modifier"
+                        prop="userName"
                         label="操作人">
                 </el-table-column>
                 <el-table-column

+ 7 - 5
src/components/icss/TemplateMaintenanceWrap.vue

@@ -44,7 +44,7 @@ export default {
       txt:'模板维护--添加模板',
       dataPub: {},                    //公用组件传的值都在这
       editData:{},                    //编辑数据
-      sendIds: [[], [], [], [], [], []],           //标签明细右侧操作数据
+      sendIds: [],           //标签明细右侧操作数据
     }
   },
   beforeMount:function(){
@@ -69,21 +69,23 @@ export default {
     validatePass() {      //验证成功回调,调取接口
       //仍需验证标签明细是否选择
       let type = this.dataPub.region1,name=this.dataPub.region2;
-      if (JSON.stringify(this.sendIds) == '[]') {
+      let detailLis = utils.orderTemplateData(this.sendIds)
+      console.log(detailLis)
+      if (JSON.stringify(this.sendIds) == '[]' || !detailLis) {
         this.$message({
-          message: '请选择标签明细',
+          message: '请选择模板内容',
           type: 'warning'
         });
         return;
       }
-      let detailLis = utils.orderTemplateData(this.sendIds)
       let param = {
         "modelDetils": detailLis,
         "name": name,
         "type": type,
+        "textType": type,
         "id":this.editData.id || ''
       }
-      console.log(param,'保存模板的参数')
+      // console.log(param,'保存模板的参数')
       this.showDelDialog(param)
     },
     showDelDialog(param) {

+ 282 - 0
src/components/icss/VersionDesc.vue

@@ -0,0 +1,282 @@
+<template>
+  <div class="version-desc">
+    <el-table v-if="list.length>0" 
+              :data="list"
+              border
+              style="width: 100%">
+        <el-table-column
+                type="index"
+                :index="indexMethod"
+                label="编号"
+                width="60">
+        </el-table-column>
+        <el-table-column
+                prop="gmtCreate"
+                label="建立时间"
+                :show-overflow-tooltip="true">
+        </el-table-column>
+        <el-table-column
+                prop="modifierid"
+                label="操作人">
+        </el-table-column>
+        <el-table-column v-if="isFirst"
+                label="操作">
+            <template slot-scope="scope">
+                <el-button type="text" size="small" @click="toEditDesc(scope.row)">修改</el-button>
+                <span style="margin:0 3px;">|</span>
+                <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row.id)">删除</el-button>
+            </template>
+        </el-table-column>
+        <el-table-column
+                label="详情">
+            <template slot-scope="scope">
+                <el-button type="text" size="small" @click="getDetail(scope.row)">明细</el-button>
+            </template>
+        </el-table-column>
+    </el-table>
+    <el-button v-if="isFirst" class="disclButn" size="small" type="primary" @click="addDesc">+ 添加说明</el-button>
+    <div class="boxMark" v-if="showBox">
+        <el-form ref="form" :model="form" :rules="showDesc?{}:rules" label-width="65px" class="add-desc-form">
+          <p class="top">
+            {{minTitle}}
+            <img src="../../images/close.png" height="12" width="12" @click="cancel">
+          </p>
+          <el-form-item label="标题:" prop="title">
+            <p v-if="showDesc" class="cont">{{form.title}}</p>
+            <el-input v-else v-model="form.title" placeholder="请输入标题" maxlength="30"></el-input>
+          </el-form-item>
+          <el-form-item label="内容:" prop="description" class="discDesc">
+            <p v-if="showDesc" v-html="form.description" class="cont">{{form.description}}</p>
+            <el-input v-else type="textarea" :rows="3" placeholder="请输入内容" v-model="form.description" maxlength="1024"></el-input>
+          </el-form-item>
+          <el-button class="disclButn" size="small" type="primary" @click="comfirn">确定</el-button>
+          <!-- <el-button class="disclButn can" size="small" type="primary" @click="cancel">取消</el-button> -->
+      </el-form>
+    </div>
+  </div>
+</template>
+<script type="text/javascript">
+  import api from '@api/icss.js';
+  export default {
+    name:'VersionDesc',
+    data(){
+      const titleVaild = (rule, value, callback) => {
+        if (!value) {
+          return callback(new Error('请输入标题'));
+        }
+        if (value.length > 30) {
+           this.form.name = value.substr(0, 120);
+           this.$message({
+             showClose: true,
+             type: 'warning',
+             message: '已超过最大字数限制'
+           })
+        }
+        callback();
+      };
+      return{
+        list:[],//版本说明列表
+        form:{
+          title:'',
+          description:''
+        },
+        rules: {
+          title:[
+            { required: true, validator: titleVaild, trigger: ['blur', 'change'] },
+            { required: true, message: '请输入标题', trigger: ['blur', 'change'] }
+          ],
+          description:[
+            { required: true, message: '请输入内容', trigger: ['blur', 'change'] }
+          ]
+        },
+        minTitle:'',
+        showBox:false,
+        modiId:null,
+        showDesc:false
+      }
+    },
+    created(){
+      if(this.versionId){
+        this.getList();
+      }
+    },
+    props:['detail','versionId','isFirst'],
+    methods:{
+      getList(){
+        api.getVersionDetlInfo({id:this.versionId}).then((res)=>{
+          const result = res.data;
+          if(result.code==0){
+            this.list = result.data;
+          }else{
+            this.$message.error(result.msg);
+          }
+        })
+      },
+      indexMethod(index) {
+        // return ((1 - 1) * 10) + index + 1;
+        return index + 1;
+      },
+      toEditDesc(item){//修改备注
+        console.log(124,item);
+        this.minTitle='修改说明';
+        this.showBox = true;
+        this.form.title = item.title;
+        this.form.description = item.description;
+        this.modiId = item.id;
+      },
+      addDesc(){//添加备注
+        this.minTitle='添加说明';
+        this.showBox = true;
+      },
+      comfirn(){//记得清空modiId
+        if(this.modiId){//修改
+          const param = {
+            title:this.form.title,
+            description:this.form.description,
+            detailId:this.modiId
+          }
+          api.modiVersionInfo(param).then((res)=>{
+            if(res.data.code==0){
+              this.$message({
+                message:"添加成功",
+                type:'success'
+              })
+              this.getList();
+            }else{
+              this.$message.error(res.data.msg);
+            }
+          })
+        }else if(this.showDesc){//明细
+
+        }else{//添加
+          const params = {
+            versionDetail: [
+              {
+                description: this.form.description,
+                title: this.form.title,
+              }
+            ],
+            versionInfoId: this.versionId
+          }
+          api.addVersionInfo(params).then((res)=>{
+            if(res.data.code==0){
+              this.$message({
+                message:"添加成功",
+                type:'success'
+              })
+              this.getList();
+            }else{
+              this.$message.error(res.data.msg);
+            }
+          })
+        }
+        this.reset();
+      },
+      reset(){//关闭弹窗复原数据
+        this.showBox = false;
+        this.showDesc = false;
+        this.form.title = "";
+        this.form.description = "";
+        this.modiId = null;
+        this.minTitle= "";
+      },
+      cancel(){
+        this.reset();
+      },
+      getDetail(item){//明细
+        this.minTitle='说明明细';
+        this.showDesc = true;
+        this.showBox = true;
+        this.form.title = item.title;
+        this.form.description = item.description;
+      },
+      warning(msg,type){
+        this.$message({
+          showClose: true,
+          message:msg,
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      showDelDialog(id){
+        this.showConfirmDialog('是否删除该版本说明?',()=>{
+          api.delVersionInfo({id}).then((res)=>{
+            if(res.data.code=='0'){
+              this.warning(res.data.msg||'操作成功','success');
+              this.getList();
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      },
+    }
+  }
+</script>
+<style lang="less" >
+  @import "../../less/admin.less";
+  .disclButn{
+    margin: 30px 0 10px;
+  }
+  .boxMark{
+    position: fixed;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    text-align: center;
+    // background: #808080;
+    background-color:rgba(0,0,0,0.3);
+    z-index: 1001;
+  }
+  // .el-form{
+  .add-desc-form{
+    width: 680px;
+    position: absolute;
+    top: 15%;
+    left: 50%;
+    // margin-top: -143px;
+    margin-left: -340px;
+    background: #fff;
+    padding: 20px;
+    max-height: 660px;
+    overflow-y: auto;
+  }
+  .top{
+    font-size: 15px;
+    font-weight: bold;
+    color: #545455;
+    text-align: left;
+    // padding-bottom: 10px;
+    margin-bottom: 15px;
+    // border-bottom: 1px solid #C9C9C9;
+    position: relative;
+    img{
+      position: absolute;
+      right: 5px;
+    }
+  }
+  .can,.can:hover{
+    background: #9B9B9B;
+    border-color: #9B9B9B;
+  }
+  .cont{
+    text-align: left;
+  }
+  .version-desc .el-table__body-wrapper{
+    max-height: 340px;
+    overflow-y: auto;
+  }
+  .version-desc .el-table th{
+    padding: 0px;
+  }
+</style>

+ 58 - 0
src/components/icss/VersionDetail.vue

@@ -0,0 +1,58 @@
+<template>
+  <div>
+    <crumbs title="版本信息维护-明细" linkTo="/admin/LT-YXSJWH-BBXXWH"></crumbs>
+    <div class="contents">
+      <div class="content">
+        <el-form ref="form" :label-position="labelPosition" label-width="85px" class="add-admin-form">
+          <el-form-item label="版本号:">
+              <p>{{data.name}}</p>
+          </el-form-item>
+          <el-form-item label="版本时间:">
+              <p>{{data.refreshTime}}</p>
+          </el-form-item>
+          <el-form-item label="版本备注:">
+              <p>{{data.remark}}</p>
+          </el-form-item>
+          <el-form-item label="版本说明:" v-if="list.length>0">
+              <!-- <p>{{data.remark}}</p> -->
+          </el-form-item>
+        </el-form>
+        <!-- 只有第一条可修改,内部的说明也是 -->
+        <VersionDesc :detail="list" :versionId="data.id" :isFirst="isFirst"/>
+      </div>    
+    </div>
+  </div>
+</template>
+<script type="text/javascript">
+  import api from '@api/icss.js';
+  import VersionDesc from './VersionDesc.vue';
+  export default {
+    name:'VersionDetail',
+    data(){
+      return{
+        data:{},
+        list:[],
+        labelPosition:'left',
+        isFirst:null
+      }
+    },
+    created(){
+      const info = this.$route.params.info;
+      this.data = info;
+      this.list = info.detail?info.detail:[];
+      this.isFirst = this.$route.params.isFirst;
+    },
+    components:{
+      VersionDesc
+    }
+  }
+</script>
+<style lang="less" scoped>
+  @import "../../less/admin.less";
+  .content{
+    background: #fff;
+    padding: 20px 20px 30px;
+    color: #545455;
+    min-width: 980px;
+  }
+</style>

+ 148 - 0
src/components/icss/VersionInfo.vue

@@ -0,0 +1,148 @@
+<template>
+    <div>
+        <crumbs title="版本信息维护">
+            <el-form :inline="true" class="demo-form-inline">
+                <el-form-item label="查询版本号:">
+                    <el-input size="mini" v-model="filter.name" placeholder="输入版本号"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                    <router-link to="/admin/LT-YXSJWH-TJBBXX" style="margin:0 10px">
+                        <el-button size="mini" type="warning">添加版本信息</el-button>
+                    </router-link>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table :data="list"
+                      border
+                      style="width: 100%">
+                <el-table-column
+                        type="index"
+                        :index="indexMethod"
+                        label="编号"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        prop="gmtCreate"
+                        label="操作时间"
+                        :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column
+                        prop="name"
+                        label="版本号">
+                </el-table-column>
+                <el-table-column
+                        prop="refreshTime"
+                        label="版本时间">
+                </el-table-column>
+                <el-table-column
+                        prop="modifierid"
+                        label="操作人">
+                </el-table-column>
+                <el-table-column
+                        label="操作">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" :class="{forbid:scope.row.id !=list[0].id}" @click="scope.row.id ==list[0].id?toEditVersion(scope.row):''">修改</el-button>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        label="详情">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" @click="getDetail(scope.row)">详情</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination v-if="total>pageSize"
+                           :current-page.sync="currentPage"
+                           @current-change="currentChange"
+                           background
+                           :page-size="pageSize"
+                           layout="total,prev, pager, next, jumper"
+                           :total="total">
+            </el-pagination>
+        </div>
+
+    </div>
+</template>
+
+<script>
+  import api from '@api/icss.js';
+
+  export default {
+    name: 'VersionInfo',
+    data: function () {
+      return {
+        list: [],
+        cacheData: {},
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+        filter: {
+          name: ''
+        }
+      }
+    },
+    created() {
+      this.getDataList();
+    },
+    methods: {
+      toEditVersion(row){
+        this.$router.push({
+          name:'AddVersion',
+          params: {info:row}
+        })
+      },
+      filterDatas(){
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      getDataList() {
+        const param = this.getFilterItems();
+        api.versionInfo(param).then((res) => {
+          if (res.data.code == '0') {
+            const data = res.data.data;
+            this.list = data.records;
+            this.cacheData[param.current] = data.records;
+            this.total = data.total;
+          }
+        }).catch((error) => {
+          console.log(error);
+        });
+      },
+      getDetail(item) {
+        let isFirst = item.id==this.list[0].id?true:false;
+        this.$router.push({name:'VersionDetail', params:{info:item,isFirst}});
+      },
+      getFilterItems() {
+        const param = {
+          name: this.filter.name,
+          current: this.currentPage,
+          size: this.pageSize
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+          this.list = this.cacheData[next];
+        } else {
+          this.getDataList();
+        }
+      }
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+    @import "../../less/admin.less";
+    .delete{
+      color: red !important;
+    }
+    .forbid{
+      color: #BFBFBF !important;
+    }
+</style>

+ 14 - 3
src/routes.js

@@ -54,6 +54,13 @@ import AddPhysicalExamTemp from '@components/icss/AddPhysicalExamTemp.vue'  //
 
 import TemplateMaintenance from '@components/icss/TemplateMaintenance.vue'//模板维护列表
 import TemplateMaintenanceWrap from '@components/icss/TemplateMaintenanceWrap.vue'//模板维护添加修改
+import VersionInfo from '@components/icss/VersionInfo.vue'//版本信息
+import VersionDetail from '@components/icss/VersionDetail.vue'//版本信息-详情
+import AddVersion from '@components/icss/AddVersion.vue'//版本信息-添加/修改
+import MedicalName from '@components/icss/MedicalName.vue'//医学术语维护-命名维护
+import AddMedicalName from '@components/icss/AddMedicalName.vue'//医学术语维护-命名维护/添加修改
+import MedicalRelation from '@components/icss/MedicalRelation.vue'//医学术语维护-关系维护
+import AddMedicalRelation from '@components/icss/AddMedicalRelation.vue'//医学术语维护-关系维护-添加
 export default [
   {
     path: '/',
@@ -161,7 +168,6 @@ export default [
       {path:'LT-YXSJWH-TSXXWH',component:PromptInfo,name:'PromptInfo'},         //提示信息维护
       {path:'LT-YXSJWH-TJTSXX',component:AddPromptInfo,name:'AddPromptInfo'},         //提示信息维护
 	    {path:'LT-YXSJWH-BMWH',component:SimilarName,name:'SimilarName'},     //别名维护
-      {path:'LT-YXSJWH-TJBM',component:AddSimilarName,name:'AddSimilarName'},     //别名维护-详情
       {path:'LT-YXSJWH-CJZZWH',component:CommonSymptom,name:'CommonSymptom'},  //常见症状维护
       {path:'LT-YXSJWH-TJCJZZ',component:AddCommonSymptom,name:'AddCommonSymptom'},  //常见症状维护--添加
       {path:'LT-YXSJWH-TJBM',component:AddSimilarName,name:'AddSimilarName'},     //别名维护-添加/修改
@@ -172,11 +178,16 @@ export default [
       {path:'LT-YXSJWH-CTBQWH',component:PhysicalExamTemplate,name:'PhysicalExamTemplate'},     //查体模板维护
       {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'},         //提示信息维护详情
       {path:'LT-YXSYKWH-YXSYJTZSWH',component:MedicinePrompt,name:'MedicinePrompt'},         //医学术语提示信息维护
       {path:'LT-YXSYKWH-TJYXSYJTZS',component:AddMedicinePrompt,name:'AddMedicinePrompt'},         //医学术语提示信息维护添加
-
+	    {path:'LT-YXSJWH-BBXXWH',component:VersionInfo,name:'VersionInfo'},     //版本信息
+      {path:'LT-YXSJWH-BBXXXQ',component:VersionDetail,name:'VersionDetail'},     //版本信息-详情
+      {path:'LT-YXSJWH-TJBBXX',component:AddVersion,name:'AddVersion'},     //版本信息-添加/修改
+      {path:'LT-YXSYKWH-YXSYMMWH',component:MedicalName,name:'MedicalName'},     //医学术语--命名维护
+      {path:'LT-YXSYKWH-TJYXSY',component:AddMedicalName,name:'AddMedicalName'},     //医学术语--命名维护
+      {path:'LT-YXSYKWH-YXSYGXWH',component:MedicalRelation,name:'MedicalRelation'},     //医学术语--关系维护
+      {path:'LT-YXSYKWH-TJYXSYGX',component:AddMedicalRelation,name:'AddMedicalRelation'},     //医学术语--关系维护-添加
 
     ]
   }