Parcourir la source

Merge branch 'dev' into test

Luolei il y a 6 ans
Parent
commit
db8cba2bcc

+ 8 - 2
src/api/config.js

@@ -104,7 +104,8 @@ export default {
     'delSimilarName': 'api/icssman/retrieval/delRetrievalsByQuesId', //别名维护-删除
     'similarNameDetl': 'api/icssman/retrieval/getRetrievalsByTag', //别名维护-详情
     'addSimilarName': 'api/icssman/retrieval/addTagRetrieval', //别名维护-添加、修改
-    'searchLable': 'api/icssman/questionInfo/index', //标签检索
+    // 'searchLable': 'api/icssman/questionInfo/index', //标签检索
+    'searchLable': 'api/icssman/questionInfo/indexRev', //标签检索--过滤别名?
     'uploadFile': 'api/icssman/retrieval/retrievalExcelIm', //别名维护-导入
     'commonSymptomList': 'api/icssman/questionUsual/getDeptInfos', //常见症状维护-常见症状列表
     'getDepartmentList':'api/icssman/questionUsual/getDeptName', //常见症状维护-科室列表
@@ -142,8 +143,13 @@ export default {
     'addVersionInfo': 'api/icssman/versionDetail/addVersionDetails', //版本信息-添加版本说明
     'modiVersionInfo': 'api/icssman/versionDetail/updateVersionDetails', //版本信息-修改版本说明
     'getVersionDetlInfo': 'api/icssman/versionDetail/getDetailById', //版本信息-版本说明列表获取
-    'saveConceptInfo':'/api/knowledgeman/Knowledge/upsertConceptKnowledge',   //保存术语静态知识
+    /**************医学术语维护****************/
+	'saveConceptInfo':'/api/knowledgeman/Knowledge/upsertConceptKnowledge',   //保存术语静态知识
     'delConceptInfo':'/api/knowledgeman/Knowledge/removeConceptKnowledge',   //删除术语静态知识
+    // 'knowledgeName': 'api/knowledgeman/medical/getAllMedicalInfo', //医学术语--命名维护
+    'knowledgeName': 'api/knowledgeman/concept/getAllInformation', //医学术语--命名维护
+    'knowledgeUpload': 'api/knowledgeman/concept/importTermExcel', //医学术语--命名维护-导入
+    'allKnowledgeType': 'api/knowledgeman/type/getAllType', //医学术语--类型列表
 	},
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 10 - 0
src/api/icss.js

@@ -213,4 +213,14 @@ export default {
     getVersionDetlInfo(param) {//版本信息-版本说明列表
       return axios.post(urls.getVersionDetlInfo, param)
     },
+    // 医学术语维护
+    knowledgeName(param) {//命名维护
+        return axios.post(urls.knowledgeName, param)
+    },
+    allKnowledgeType(param) {//命名维护
+        return axios.post(urls.allKnowledgeType, param)
+    },
+    knowledgeUpload(param) {//命名维护--导入
+        return axios.post(urls.knowledgeUpload, param)
+    },
 }

+ 5 - 4
src/components/icss/AddIndeptLabel.vue

@@ -14,7 +14,7 @@
         ></PubIndeptTag>
         <div class="main">
             <p class="title" v-if="dataPub.region2==1||dataPub.region2==2"> <i>*</i> 标签明细:</p>
-            <SingleSelect v-if="dataPub.region2==1 || dataPub.region2==2" :ascription="dataPub.region1" :sexType="dataPub.region7" :type="dataPub.region2" @pushValues="pushValues" :options="editData.questionDetailList"></SingleSelect>
+            <SingleSelect v-if="dataPub.region2==1 || dataPub.region2==2 || dataPub.region2==11" :ascription="dataPub.region1" :sexType="dataPub.region7" :type="dataPub.region2" @pushValues="pushValues" :options="editData.questionDetailList"></SingleSelect>
             <div class="btn">
                 <el-button
                         type="primary"
@@ -81,7 +81,8 @@
         //console.log(sex)
       },
       changeType(type) {        //填写单类型改变,标签明细左侧更新,右侧清空
-        //console.log(type)
+        // console.log(type)
+        this.options = [];
       },
       pushValues(its){
         this.options = its;
@@ -107,9 +108,9 @@
             });
             return;
         }
-        if(this.dataPub.region8 > this.dataPub.region9) {
+        if(this.dataPub.region8 >= this.dataPub.region9) {
           this.$message({
-            message: '最小年龄不能大于最大年龄',
+            message: '最小年龄不能大于或等于最大年龄',
             type: 'warning'
           });
           return;

+ 318 - 0
src/components/icss/AddMedicalInfo.vue

@@ -0,0 +1,318 @@
+<template>
+    <div class="MedicalInfoWrapper">
+        <div class="groupTitle"><i
+                class="el-icon-back"
+                @click="back"
+        ></i> 医学术语属性--{{isEdit?'修改':'添加'}}</div>
+        <div class="info-container">
+            <el-form :rules="rules"
+                     :model="form"
+                     label-width="130px"
+                     ref="groups">
+                <el-form-item label="选择概念:"  prop = "concept">
+                   <el-select v-model="form.concept" clearable placeholder="请选择" size="small">
+                        <el-option
+                            v-for="item in conceptList"
+                            :key="item.key"
+                            :label="item.name"
+                            :value="item.key">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="选择类型:" prop="type">
+                   <el-select v-model="form.type" clearable placeholder="请选择" size="small">
+                        <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="术语名称:" prop="termName">
+                   <el-input v-model="form.termName"></el-input>
+                </el-form-item>
+                 <el-form-item label="术语标准名称:" prop="termStandardName">
+                   <el-input v-model="form.termStandardName"></el-input>
+                </el-form-item>
+                 <el-form-item label="术语小类名称:" prop="termMiniClassName">
+                   <el-input v-model="form.termMiniClassName"></el-input>
+                </el-form-item>
+                <el-form-item label="术语类组:" prop="termClass">
+                   <el-input v-model="form.termClass"></el-input>
+                </el-form-item>
+                <el-form-item label="性别:" prop="sex">
+                   <el-select v-model="form.sex" clearable placeholder="请选择" size="small">
+                        <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="年龄"
+                    class="fix-inp"
+                    prop="age"
+                >
+                    <el-col :span="10">
+                        <el-input v-model="form.minAge"
+                                maxLength="3"
+                        ></el-input>
+                    </el-col>
+                    <el-col :span="4">~</el-col>
+                    <el-col :span="10">
+                        <el-input
+                            v-model="form.maxAge"
+                            maxLength="3"
+                        ></el-input>
+                    </el-col>
+                </el-form-item>
+                <el-form-item label="一级部位:" prop="primarySite">
+                    <el-select v-model="form.primarySite" clearable placeholder="请选择" size="small">
+                        <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="二级部位:" prop="twoLevelPosition">
+                    <el-select v-model="form.twoLevelPosition" clearable placeholder="请选择" size="small">
+                        <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="显示顺序:" prop="order">
+                   <el-input v-model="form.order"></el-input>
+                </el-form-item>
+                <el-form-item label="科室:" prop="department">
+                   <el-input v-model="form.department"></el-input>
+                </el-form-item>
+                <el-form-item label="术语编码:" prop="termCode">
+                   <el-input v-model="form.termCode"></el-input>
+                </el-form-item>
+                <el-form-item label="备注:" prop="remark">
+                   <el-input  type="textarea"  v-model="form.remark"></el-input>
+                </el-form-item>
+            </el-form>
+            <div class="btn">
+                <el-button
+                        type="primary"
+                        @click="submitForm"
+                >确 定</el-button>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+  /**
+   *
+   */
+  import api from '@api/icss.js';
+
+  export default {
+    name: 'AddMedicinePrompt',
+    components: {
+    },
+    data() {
+      return {
+        isEdit:false,
+        conceptList: [
+            {
+              name:'概念1',
+              id:1,
+              key:1
+            },
+            {
+              name:'概念2',
+              id:2,
+              key:2
+            },
+            {
+              name:'概念3',
+              id:3,
+              key:3
+            },
+        ],
+        typeList:[
+            {
+              name:'类型1',
+              id:1,
+              key:1
+            },
+            {
+              name:'类型2',
+              id:2,
+              key:2
+            },
+            {
+              name:'类型3',
+              id:3,
+              key:3
+            },
+        ],
+        form:{
+            concept: '',
+        },
+        rules: {
+            termName: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            termStandardName: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            termMiniClassName: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            termClass: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            sex: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            age: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            primarySite: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            twoLevelPosition: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+            department: [
+                { required: true, message: '请选择模板归属', trigger: 'change' }
+            ],
+        }
+      }
+    },
+    watch:{
+      
+    },
+    created:function(){
+      const {isEdit,data} = this.$route.params;
+      if(isEdit){
+        this.isEdit = isEdit;
+      }
+    },
+    methods: {
+      back() { this.$router.go(-1) },
+     
+     
+      
+     
+      
+      submitForm() {
+        //验证外层表单
+        let goOn=true,it=null;
+        this.$refs.groups.validate((valid) =>{
+          if(!valid){
+            goOn = false;
+            return false;
+          }
+        });
+        //验证段落表单
+        for(let i=0;i<this.$refs.subForm.length;i++){
+          it=this.$refs.subForm[i];
+          it.$refs.form.validate((valid) =>{
+            if(!valid){
+              goOn = false;
+            }
+          });
+        };
+
+        if(!goOn){
+          return;
+        }
+        //通过必填验证,提交保存
+        const param = {
+          name:this.form.selectedTerm.libId,
+          detailVOList:Object.assign(this.form.prags)
+        };
+        console.log(param);
+        this.showSaveDialog(param);
+      },
+      showSaveDialog(param) {
+        this.showConfirmDialog('是否保存该静态知识?', () => {
+          api.saveTermPrompts(param).then((res) => {
+            if (res.data.code === '0') {
+              this.warning(res.data.msg || '保存成功', 'success');
+              this.$router.push("/admin/LT-YXSYKWH-YXSYJTZSWH");
+            } else {
+              this.warning(res.data.msg)
+            }
+          }).catch((err) => {
+            this.warning(err);
+          })
+        });
+      },
+      showConfirmDialog(msg, resolve) {
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      warning(msg, type) {
+        this.$message({
+          showClose: true,
+          message: msg,
+          type: type || 'warning'
+        })
+      },
+    }
+  }
+</script>
+<style lang="less">
+    @import "../../less/common.less";
+    .MedicalInfoWrapper {
+
+        .fix-inp{
+            width: 330px;
+        }
+        .fix-inp .el-col .el-input__inner{
+            width: 100%;
+            display: inline-block;
+        }
+        .fix-inp .el-col-4{
+            text-align: center;
+        }
+        .fix-inp .el-col-8{
+            text-align: center;
+        }
+        .el-textarea__inner {
+            width: 400px;
+        }
+        .info-container{
+            background: #fff;
+            padding: 20px;
+            margin: 20px 20px -20px 20px;
+        .el-input__inner{
+            width: 200px;
+            height: 32px;
+        }
+        .el-form-item__label{
+            text-align: left;
+        }
+        .add-prg .el-form-item{
+            margin-bottom: 20px;
+        }
+        }
+        .line{
+            border-top:1px #dcdfe6 solid;
+            margin-bottom: 25px;
+
+        }
+
+    }
+    
+   
+</style>
+

+ 40 - 31
src/components/icss/AddMedicalName.vue

@@ -15,20 +15,21 @@
           <tr>
             <td class="ind">1</td>
             <td>
-              <el-input v-model="data.name" placeholder="请输入术语" maxlength="30"></el-input>
+              <el-input v-model="data.name" placeholder="请输入术语" maxlength="30" size="small"></el-input>
             </td>
             <td>
-              <el-select v-model="data.type" clearable placeholder="请选择">
+              <el-select v-if="!id" v-model="data.type" filterable placeholder="请选择" size="small">
                 <el-option
-                  v-for="item in data.typeList"
-                  :key="item.key"
+                  v-for="item in typeList"
+                  :key="item.id"
                   :label="item.name"
-                  :value="item.key">
+                  :value="item.name">
                 </el-option>
               </el-select>
+              <span v-else>{{data.type}}</span>
             </td>
             <td class="desc">
-              <el-input v-model="data.mark" placeholder="请输入术语说明" maxlength="120"></el-input>
+              <el-input v-model="data.mark" placeholder="请输入术语说明" maxlength="120" size="small"></el-input>
             </td>
           </tr>
         </table>
@@ -44,23 +45,24 @@
           <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>
+              <el-input v-model="item.term" placeholder="请输入术语" maxlength="30" size="small"></el-input>
             </td>
             <td>
-              <el-select v-model="item.type" clearable placeholder="请选择">
+              <!-- <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>
+              </el-select> -->
+              {{data.type}}
             </td>
             <td class="desc">
-              <el-input v-model="item.mark" placeholder="请输入术语说明" maxlength="120"></el-input>
+              <el-input v-model="item.mark" placeholder="请输入术语说明" maxlength="120" size="small"></el-input>
             </td>
             <td v-if="id">
-              <span @click="deleLine(index)">删除</span>
+              <span @click="deleLine(index)" class="delete">删除</span>
             </td>
           </tr>
           <tr @click="addSpan">
@@ -78,6 +80,7 @@
   </div>
 </template>
 <script type="text/javascript">
+import api from '@api/icss.js';
   export default {
     name:'AddMedicalName',
     data(){
@@ -87,25 +90,9 @@
           name:'',
           type:'',
           mark:'', 
-          type:'',
-          typeList:[
-            {
-              name:'类型1',
-              id:1,
-              key:1
-            },
-            {
-              name:'类型2',
-              id:2,
-              key:2
-            },
-            {
-              name:'类型3',
-              id:3,
-              key:3
-            },
-          ]
+          type:''
         },
+        typeList:[],
         id:null,
         synonymous:[//同义词
             {
@@ -127,18 +114,40 @@
               mark:''
             },
           ],
-        colspan:4
+        colspan:4,
+        currentPage:1,
+        pageSize:10
       }
     },
     created(){
+      this.getTypeList();
       const info = this.$route.params.info;
       if(info){
         this.minTitle = '医学术语命名维护-修改';
         this.id = info.id;
+        this.data.name = info.name;
+        this.data.type = info.type;
+        this.data.remark = info.remark;
         this.colspan = 5;
       }
     },
     methods:{
+      getTypeList(){
+        const param = {
+          current: this.currentPage,
+          size: this.pageSize
+        }
+        api.allKnowledgeType(param).then((res)=>{
+          const data = res.data;
+          if(data.code==0){
+            this.typeList = data.data.records;
+          }else{
+            console.log(res.msg);
+          }
+        }).catch((error) => {
+          console.log(error);
+        });
+      },
       handleInput(){//限制输入类型
 
       },
@@ -157,7 +166,7 @@
       },
       deleLine(index){
         this.synonymous.splice(index,1);
-        console.log(123,index,this.synonymous);
+        // console.log(123,index,this.synonymous);
       },
       comfirn(){
 

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

@@ -217,7 +217,7 @@
             this.$router.push({path:'LT-YXSJWH-BMWH'});
           }else{
             // console.log(result.msg);
-            this.$message.error("请选择标签");
+            this.$message.error("标签和拼音不能为空");
           }
         })
       },

+ 4 - 3
src/components/icss/CommonTemplate.vue

@@ -38,11 +38,11 @@
     </div>
     <div class="bottomPartRight bottomPartRightTemplate">
       <p class="poolTitle">模板内容:</p>
-      <div class="arrowWrap" style="float:right;marginRight:10px" v-if="type != 1 && type != 2">
+      <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>
       </div>
-      <div class="formWrap" v-if="type == 1 || type == 2">
+      <div class="formWrap" v-if="type == 1 || type == 2 || type == 3">
           <el-form
             class="subTemplate"
             :model="form"
@@ -370,7 +370,8 @@ export default {
     },
     getSubTemplate() {
       let param = {
-        noIds:this.subTmpList
+        noIds:this.subTmpList,
+        type:5
       }
       api.getModuleInfoSub(param).then((res) => {
         if (res.data.code === '0') {

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

@@ -17,7 +17,7 @@
                 </el-form-item>
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
-                    <el-button size="mini" type="primary" @click="addIndeptTag">添加独立标签</el-button>
+                    <el-button size="mini" type="warning" @click="addIndeptTag">添加独立标签</el-button>
                 </el-form-item>
             </el-form>
         </crumbs>

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

@@ -17,7 +17,7 @@
                 </el-form-item>
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
-                    <el-button size="mini" type="primary" @click="addTagGroup">添加标签组</el-button>
+                    <el-button size="mini" type="warning" @click="addTagGroup">添加标签组</el-button>
                 </el-form-item>
             </el-form>
         </crumbs>

+ 235 - 0
src/components/icss/MedicalInfo.vue

@@ -0,0 +1,235 @@
+<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="输入术语" clearable></el-input>
+                </el-form-item>
+                <el-form-item label="术语类型:">
+                    <el-select v-model="filter.termType" clearable placeholder="请选择" size="mini">
+                        <el-option
+                            v-for="item in termTypeList"
+                            :key="item.key"
+                            :label="item.name"
+                            :value="item.key">
+                        </el-option>
+                    </el-select>
+                </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-TJYXSYXX" 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" @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: 'MedicalInfo',
+    data: function () {
+      return {
+        list: [],
+        cacheData: {},
+        termTypeList: [
+            {
+              name:'类型1',
+              id:1,
+              key:1
+            },
+            {
+              name:'类型2',
+              id:2,
+              key:2
+            },
+            {
+              name:'类型3',
+              id:3,
+              key:3
+            },
+        ],
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+        filter: {
+          proName: '',
+          termType:''
+        }
+      }
+    },
+    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>

+ 51 - 17
src/components/icss/MedicalName.vue

@@ -3,7 +3,17 @@
         <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.term" placeholder="输入术语"></el-input>
+                </el-form-item>
+                <el-form-item label="术语类型:">
+                  <el-select v-model="filter.type" clearable filterable placeholder="请选择" size="mini">
+                    <el-option
+                      v-for="item in typeList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.name">
+                    </el-option>
+                  </el-select>
                 </el-form-item>
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
@@ -26,22 +36,22 @@
                         width="60">
                 </el-table-column>
                 <el-table-column
-                        prop="gmtOperate"
+                        prop="gmtCreated"
                         label="操作时间"
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
-                        prop="questionName"
+                        prop="name"
                         label="医学标准术语"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
-                        prop="retrievalSelfName"
+                        prop="synonymous"
                         label="其他术语"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
-                        prop="operatorName"
+                        prop="modifier"
                         label="操作人">
                 </el-table-column>
                 
@@ -79,19 +89,22 @@
         pageSize: 10,
         total: 0,
         filter: {
-          proName: ''
-        }
+          term:'',
+          type:''
+        },
+        typeList:[]
       }
     },
     created() {
       this.getDataList();
+      this.getTypeList();
     },
     methods: {
       toEditProduct(row){
-        // this.$router.push({
-        //   name:'AddSimilarName',
-        //   params: {id:row.questionId,name:row.questionName}
-        // })
+        this.$router.push({
+          name:'AddMedicalName',
+          params: {info:row}
+        })
       },
       filterDatas(){
         this.currentPage = 1;
@@ -99,7 +112,11 @@
       },
       getDataList() {
         const param = this.getFilterItems();
-        /*api.similarName(param).then((res) => {
+        // const param = {
+        //   current: this.currentPage,
+        //   size: this.pageSize
+        // }
+        api.knowledgeName(param).then((res) => {
           if (res.data.code == '0') {
             const data = res.data.data;
             this.list = data.records;
@@ -108,7 +125,23 @@
           }
         }).catch((error) => {
           console.log(error);
-        });*/
+        });
+      },
+      getTypeList(){
+        const param = {
+          current: this.currentPage,
+          size: this.pageSize
+        }
+        api.allKnowledgeType(param).then((res)=>{
+          const data = res.data;
+          if(data.code==0){
+            this.typeList = data.data.records;
+          }else{
+            console.log(res.msg);
+          }
+        }).catch((error) => {
+          console.log(error);
+        });
       },
       getDetailList(id) {
         const param = {'id': id,};
@@ -116,9 +149,10 @@
       },
       getFilterItems() {
         const param = {
-          questionName: this.filter.proName,
+          term: this.filter.term,
           current: this.currentPage,
-          size: this.pageSize
+          size: this.pageSize,
+          type:this.filter.type
         };
         return param;
       },
@@ -177,7 +211,7 @@
             'Content-Type': 'multipart/form-data'
           }
         }
-        api.uploadFile(formData,header).then((res)=>{
+        /*api.knowledgeUpload(formData,header).then((res)=>{
           if(res.data.code==0){
             this.$message({
               message: '上传成功',
@@ -188,7 +222,7 @@
           }
         })
         this.getDataList();
-        /*//解决上传相同文件不触发change
+        //解决上传相同文件不触发change
         let inp = document.getElementById("upFile");
         inp.value = "";
         */

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

@@ -175,9 +175,9 @@ export default {
         });
         return;
       }
-      if(this.dataPub.region8 > this.dataPub.region9) {
+      if(this.dataPub.region8 >= this.dataPub.region9) {
           this.$message({
-            message: '最小年龄不能大于最大年龄',
+            message: '最小年龄不能大于或等于最大年龄',
             type: 'warning'
           });
           return;
@@ -193,7 +193,7 @@ export default {
           "tagName": this.dataPub.region3,             //系统名称
           "name": this.dataPub.region4,                //界面名称
           "joint": this.dataPub.region5,               //标签间的连接符
-          "subType": this.dataPub.region6,   	         //0:可以,1:不可以(当项目检索)
+          // "subType": this.dataPub.region6,   	         //0:可以,1:不可以(当项目检索)
           "sexType": this.dataPub.region7,             //1:男,2:女,3:通用
           "ageBegin": this.dataPub.region8,       		 //最小年龄
           "ageEnd": this.dataPub.region9,              //最大年龄
@@ -206,6 +206,9 @@ export default {
           "questionMappings": detailLis       //映射关系,
         }
       }
+      if(this.dataPub.region2 == 2 && detailLis.length == 0) {
+         this.warning('请选择标签明细')
+      }
       this.showDelDialog(param)
     },
     showDelDialog(param) {

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

@@ -247,9 +247,9 @@
           tipLis:[],           //提示列表
         },
         labelTypesMaps: {       //// 归属和填写单类型限制
-          '1':['1','2','5','6','7','99'],
-          '3':['1','2','5','6','7'],
-          '4':['1','2','6','7'],
+          '1':['1','2','5','6','7','11','99'],
+          '3':['1','2','5','6','7', '11',],
+          '4':['1','2','6','7', '11',],
           '5':['1','7']
         },
         rules: {

+ 4 - 4
src/components/icss/PubTagGroup.vue

@@ -104,7 +104,7 @@
           @change="sendData"
         ></el-input>
       </el-form-item> -->
-      <el-form-item
+      <!-- <el-form-item
         label="能否当项目检索:"
         prop="region6"
       >
@@ -122,7 +122,7 @@
             value="0"
           ></el-option>
         </el-select>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item
         v-if="form.region1 == 1 && form.region2 ==4"
         label="是否为症状"
@@ -225,7 +225,7 @@ export default {
         region3: '',      //系统名称
         region4: '',      //界面名称
         region5: '',      //选项之间的链接
-        region6: '0',      //是否可以检索
+        // region6: '0',      //是否可以检索
         region7: '3',       //性别
         region8: '0',          //最小年龄
         region9: '200',         //最大年龄
@@ -365,7 +365,7 @@ export default {
       if(this.form.region3.trim() == ''){ return }
       let param = {
         "existName": this.form.region3,     
-        "type": this.form.region1,
+        // "type": this.form.region1,
         "notTagType":[8],        //去掉文字标签查重
       }
       api.validateSystomName(param).then((res) => {

+ 7 - 10
src/components/icss/PubTagPartDetail.vue

@@ -303,17 +303,14 @@ export default {
     },
     toRightPool(){
       if(this.currentLis.length == 0){
-        this.$message({
-          showClose: true,
-          message: '请选择标签池标签',
-          type: 'warning'
-        });
+        // this.$message({
+        //   showClose: true,
+        //   message: '请选择标签池标签',
+        //   type: 'warning'
+        // });
         return;
       }
       this.getRightListDes();
-      if(this.choose == 'multiple'){
-        // this.getRightListDes();
-      }
     },
     toLeftPool(){      //往左返回数据
       if(this.choose == 'single' && utils.filterArr(this.selectArr,true,2) && this.poolDetailList[this.activePart].length > 0){
@@ -454,7 +451,7 @@ export default {
                 ++plus2
                 if(plus2 == 5){     //右侧数据填满了
                   // alert('请选择需要修改的模块')
-                  return;
+                  // return;
                 }
               }
             }
@@ -506,7 +503,7 @@ export default {
                 if(num == 6){
                   for(let i = 1;i < this.poolDetailList.length;i++){
                     let ids = [];
-                    if(this.poolDetailList[i].length == 0 || (this.poolDetailList[i].length > 0 && !this.poolDetailList[i].id)){      //判断part里面是不是有数据,没有直接添加
+                    if(this.poolDetailList[i].length == 0 || (this.poolDetailList[i].length > 0 && !this.poolDetailList[i][0].id)){      //判断part里面是不是有数据,没有直接添加
                       this.poolDetailList[i] = tmpArr;
                       this.poolDetailListAll = Array.prototype.concat.apply([],this.poolDetailList);
                       this.searchTagList();

+ 11 - 5
src/components/icss/SingleSelect.vue

@@ -3,18 +3,20 @@
         <el-form>
             <div class="operation-row">
                 <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="type!=2&&(focusOn==i||(focusOn==-1&&i==0))" :key="1+i" v-model="rows[i].defaultSelect" @change="emitValues(i,'hasDefault',rows[i].defaultSelect)">
-                    <el-checkbox-button  v-if=" !(ascription == 5 && type == 1 || type == 2)" :label="i" :disabled="hasNone==i||hasBan==i|| hasError==i || (hasDefault!=-1&&hasDefault!=i)||focusOn==-1">默认选中</el-checkbox-button>
+                    <el-checkbox-button  v-if=" !(ascription == 5 && type == 1 || type == 2 || type == 11) " :label="i" :disabled="hasNone==i||hasBan==i|| hasError==i || (hasDefault!=-1&&hasDefault!=i)||focusOn==-1">默认选中</el-checkbox-button>
                 </el-checkbox-group>
                 <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="type!=1&&(focusOn==i||(focusOn==-1&&i==0))" :key="2+i" v-model="rows[i].isNone" @change="emitValues(i,'hasNone',rows[i].isNone)">
-                    <el-checkbox-button  v-if=" !(ascription == 5 && type == 1)" :label="i" :disabled="hasBan==i || hasError==i ||focusOn==-1">同“无”类型</el-checkbox-button>
+                    <el-checkbox-button  v-if=" !(ascription == 5 && type == 1 || type == 11)" :label="i" :disabled="hasBan==i || hasError==i ||focusOn==-1">同“无”类型</el-checkbox-button>
                 </el-checkbox-group>
                 <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="type!=1&&(focusOn==i||(focusOn==-1&&i==0))" :key="3+i" v-model="rows[i].isBan" @change="emitValues(i,'hasBan',rows[i].isBan)">
-                    <el-checkbox-button v-if=" !(ascription == 5 && type == 1)" :label="i" :disabled="hasNone==i || hasError==i||focusOn==-1">同“伴”类型</el-checkbox-button>
+                    <el-checkbox-button v-if=" !(ascription == 5 && type == 1 || type == 11)" :label="i" :disabled="hasNone==i || hasError==i||focusOn==-1">同“伴”类型</el-checkbox-button>
                 </el-checkbox-group>
                 <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="4+i" v-model="rows[i].isError" @change="emitValues(i,'hasError',rows[i].isError)">
-                    <el-checkbox-button v-if="ascription==5  && type == 1" :label="i" :disabled="hasDefault==i||hasBan==i ||hasNone==i ||(hasError!=-1&&hasError==i)||focusOn==-1">标记异常选项</el-checkbox-button>
+                    <el-checkbox-button v-if="ascription==5 && (type == 1 || type != 11)" :label="i" :disabled="hasDefault==i||hasBan==i ||hasNone==i ||(hasError!=-1&&hasError==i)||focusOn==-1">标记异常选项</el-checkbox-button>
                 </el-checkbox-group>
+                 <span v-if="type == 11" class="tip">可输入"()", 当作可输入内容的占位符</span>
                 <el-button type="danger" size="small" class="del" @click="delRow">删除</el-button>
+               
             </div>
             <div class="main-area">
                 <el-col v-for="(it,i) in rows" :key="i">
@@ -60,6 +62,9 @@
         .del{
            margin-left: 150px;
         }
+        .tip {
+          color: #22ccc8;
+        }
     }
     .main-area{
         width: 290px;
@@ -76,6 +81,7 @@
                 }
             }
         }
+        
         .el-button{
             width: 200px;
         }
@@ -190,7 +196,7 @@
         HandleInputName(i, name) {
           if(name.length > 30) {
             Vue.set(this.rows[i], 'name', this.rows[i].name.slice(0, 30))
-            this.$refs.inputName[i].currentValue = this.rows[i].namebvcx
+            this.$refs.inputName[i].currentValue = this.rows[i].name
             this.$message({
               message: '最多输入30个字',
               type: 'warning',

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

@@ -9,7 +9,7 @@
                 </el-form-item>
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
-                    <el-button size="mini" type="primary" @click="addIndeptTag">添加模板</el-button>
+                    <el-button size="mini" type="warning" @click="addIndeptTag">添加模板</el-button>
                 </el-form-item>
             </el-form>
         </crumbs>

+ 6 - 3
src/routes.js

@@ -61,6 +61,8 @@ 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'//医学术语维护-关系维护-添加
+import MedicalInfo from '@components/icss/MedicalInfo.vue'//医学术语维护-信息维护(属性维护)
+import AddMedicalInfo from '@components/icss/AddMedicalInfo.vue'//医学术语维护-信息维护(属性维护)-添加
 export default [
   {
     path: '/',
@@ -166,7 +168,6 @@ export default [
       {path:'LT-YXSJWH-DLLXBQWH',component:IndeptLabel,name:'IndeptLabel'},     //独立标签维护--详情
       {path:'LT-YXSJWH-TJDLBQ',component:AddIndeptLabel,name:'AddIndeptLabel'},     //独立标签维护--添加
       {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-CJZZWH',component:CommonSymptom,name:'CommonSymptom'},  //常见症状维护
       {path:'LT-YXSJWH-TJCJZZ',component:AddCommonSymptom,name:'AddCommonSymptom'},  //常见症状维护--添加
@@ -175,9 +176,10 @@ export default [
       {path:'LT-YXSJWH-MZSMXQ',component:DiscInfoDetail,name:'DiscInfoDetail'},     //免责声明-详情
       {path:'LT-YXSJWH-TJMZSM',component:AddDisclInfo,name:'AddDisclInfo'},     //免责声明-添加/修改
       {path:'LT-YXSJWH-MBWH',component:TemplateMaintenance,name:'TemplateMaintenance'},     //模板维护
-      {path:'LT-YXSJWH-CTBQWH',component:PhysicalExamTemplate,name:'PhysicalExamTemplate'},     //查体模板维护
+      {path:'LT-YXSJWH-CTMBWH',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'},         //医学术语提示信息维护添加
@@ -188,7 +190,8 @@ export default [
       {path:'LT-YXSYKWH-TJYXSY',component:AddMedicalName,name:'AddMedicalName'},     //医学术语--命名维护
       {path:'LT-YXSYKWH-YXSYGXWH',component:MedicalRelation,name:'MedicalRelation'},     //医学术语--关系维护
       {path:'LT-YXSYKWH-TJYXSYGX',component:AddMedicalRelation,name:'AddMedicalRelation'},     //医学术语--关系维护-添加
-
+      {path:'LT-YXSYKWH-YXSYXXWH',component:MedicalInfo,name:'MedicalInfo'},  //医学术语维护-信息维护(属性维护)
+      {path:'LT-YXSYKWH-TJYXSYXX',component:AddMedicalInfo,name:'AddMedicalInfo'},  //医学术语维护-信息维护(属性维护) -- 添加
     ]
   }
 ]