Browse Source

静态知识维护

luolei 4 years ago
parent
commit
e00ad76e1a

+ 2 - 2
src/api/config.js

@@ -10,8 +10,8 @@ export default {
     'promptServer':'/api/knowledgeman/file/uploadImage',    //静态知识富文本图片上传
     'getConceptKnowledgeList':'/graph/conceptInfo/getPage', //  术语静态知识列表
     'getConceptKnowledge':'/graph/conceptInfo/getRecordById',//术语静态知识详情
-    'getAllConcept':'/api/knowledgeman/conceptDetail/index',   //医学术语--获取所有概念(标准术语)
-	  'saveConceptInfo':'/api/knowledgeman/conceptDetail/insertOrUpdate',   //保存术语静态知识
+    'getAllConcept':'/graph/conceptInfo/staticKnowledgeIndexWithoutInfo',   //医学术语--获取所有概念(标准术语)
+	  'saveConceptInfo':'/graph/conceptInfo/saveOrUpdateRecord',   //保存术语静态知识
     'getLisMappingPage': '/tran/diseaseConfig/getPage', //诊断
     'delLisMappingById': '/api/knowledgeman/lisMapping/delLisMappingById',  //医学数据-化验大小项与公表项维护-单个删除
     'getConceptInfoAssay': '/api/knowledgeman/concept/getAllForRelation',  //化验子项维护-搜索术语

+ 68 - 57
src/components/icss/AddMedicinePrompt.vue

@@ -20,19 +20,20 @@
                                loading-text="加载中..."
                                @change="changeWord"
                                value-key="conceptId"
+                               @clear="handleClear"
                                ref="termName"
                                placeholder="搜索"
                                :remote-method="searchTerms">
-                        <el-option v-for="term in terms" :key="term.conceptId" :label="term.nameType" :value="term" ></el-option>
+                        <el-option v-for="(term,idx) in terms" :key="idx" :label="term.name+(term.typeName?'('+term.typeName+')':'')" :value="term" ></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="已选择标准术语:" label-width="160px">
                     {{form.selectedTermName}}
                 </el-form-item>
-               
+                <el-form-item v-if="form.selectedTerm&&(form.typeId==1||form.typeId==3||form.typeId==4||form.typeId==5)" :label="titleChange" prop="titleChange" label-width="160px">
+                        <el-input v-model="form.titleChange"></el-input>
+                </el-form-item>
                 <p class="line"></p>
-                 
-               
                 <InfoParagraph v-for="(f,i) in form.prags"
                                v-if="!upload"
                                :key="i"
@@ -111,15 +112,19 @@
           typeId:'',
           selectedTermName:'',
           selectedTermType:'',
+          titleChange:'',
           fileList:[],
+          name:'',
           prags:[{              //单个段落相关
             title:'',
             content:'',
             isReason:0,
             orderNo:0,
             position:[],
-            text:''}],
-          fileTitle:'',          
+            text:''}
+          ],
+          fileTitle:'',
+          titleChange:''          
         },
         rules: {
           selectedTerm: [
@@ -132,7 +137,8 @@
                   callback(new Error('标题名称不能超过30字'));
                 }else{
                   callback();
-                }}, trigger: 'change' }
+                }
+                }, trigger: 'change' }
           ],
           fileList: [
              { required: true, message: '请上传文件', trigger: 'change' },             
@@ -149,14 +155,6 @@
         isShowTip: false
       }
     },
-
-    /*watch:{
-      'form.selectedTerm':function(newVal){
-        const name = newVal.nameType;console.log(newVal)
-        this.form.selectedTermName = name;
-        this.form.conceptId = newVal.conceptId;
-      }
-    },*/
     created:function(){
       const {isEdit,data,isCopy} = this.$route.params;
       if(isEdit||isCopy){
@@ -164,30 +162,32 @@
         this.isCopy = isCopy;
         this.title = isEdit?'编辑':(isCopy?'复制':'添加');
         isEdit&&this.changeWord(data);
-        //this.form.selectedTerm = data;
-        //this.form.selectedTermName = data.libName;
-        //this.form.conceptId = data.conceptId;
         api.getTremList({id:data.id}).then((res) => {
           if (res.data.code == '0') {
             const data = res.data.data;
             if(this.form.typeId === 82 || this.form.typeId === 83){
-              console.log('data',data)
+              // console.log('data',data)
              this.form.fileList=data&&data.map((it)=>{
                 return JSON.parse(it.content);
               });
-              console.log(' this.form.fileList', this.form.fileList)
               this.showFileList = true
               this.showUpLoad = false
             }else{
-            console.log(data.details) //ssssssssssssssssssss
+            console.log(data) //ssssssssssssssssssss
+              this.conceptId = data.id
+              this.form.typeId = data.type
+              this.form.name = data.name
+              this.form.titleChange = data.type==1?data.clinicalPathwayName:(data.type==3||data.type==4||data.type==5)?data.noticeName:''
+              this.form.selectedTermName = data.name+(data.typeName?'('+data.typeName+')':'')
+              this.form.selectedTerm = data.name+(data.typeName?'('+data.typeName+')':'')
               this.form.prags=data&&data.details.map((it)=>{
                 return {
-                          title:it.title,
-                          position:this.mapStringToNum(it.position),
-                          content:it.content.replace(/{imageUrlPrefix}/g,config.imgHost),
-                          isReason:it.isReason,
-                          text:it.text,
-                          disabled:true};
+                    title:it.title,
+                    position:this.mapStringToNum(it.contentType  ),
+                    content:it.content.replace(/{imageUrlPrefix}/g,config.imgHost),
+                    // isReason:it.isReason,
+                    text:it.text,
+                    disabled:true};
               });
             }
 
@@ -228,6 +228,11 @@
 
     },
     methods: {
+      handleClear(){
+        this.form.selectedTermName = ''
+        this.form.selectedTerm = ''
+      },
+
       handleMouseenter(){
         if(this.form.fileList.length !== 0 ){
           this.isShowTip = true
@@ -237,14 +242,17 @@
         this.isShowTip = false
       },
       changeWord(newVal){
-        const name = newVal.nameType;
-        this.form.selectedTermName = name;
-        this.form.selectedTerm=name;
-        this.form.conceptId = newVal.conceptId;
+        const name = newVal.name;
+        const typeName = newVal.typeName;
+        const type = newVal.type;
+        this.form.selectedTermName = name+(typeName?'('+typeName+')':'');
+        this.form.selectedTerm=name+(typeName?'('+typeName+')':'');
+        this.form.name=name
         this.form.fileList=[]
         this.showFileList = false
-        this.form.typeId = newVal.typeId || ""
+        this.form.typeId = type || ""
         this.showUpLoad = true
+        this.titleChange = type==1?'临床路径标题:':type==3||type==4||type==5?'注意事项标题:':''
         this.form.fileTitle = "" 
         if(newVal.typeId === 82 || newVal.typeId === 83){
           this.upload = true
@@ -262,9 +270,7 @@
             return ;
           }
           temp = Object.assign(this.form.prags[i-1]);
-          //temp.orderNo = temp.orderNo+1;
           it = Object.assign(this.form.prags[i]);
-          //it.orderNo = it.orderNo-1;
           this.form.prags.splice(i-1,2,it,temp);
         }else{
           if(i===this.form.prags.length-1){
@@ -272,9 +278,7 @@
             return ;
           }
           temp = Object.assign(this.form.prags[i+1]);
-          //temp.orderNo = temp.orderNo-1;
           it = Object.assign(this.form.prags[i]);
-          //it.orderNo = it.orderNo+1;
           this.form.prags.splice(i,2,temp,it);
         }
       },
@@ -287,16 +291,8 @@
           text:''});
         //添加段落光标自动落到新增的段落中
         setTimeout(()=>{
-          //console.log(this.$refs.subForm[i+1].$el.getElementsByClassName("el-input__inner")[0]);
           this.$refs.subForm[i+1].$el.getElementsByClassName("el-input__inner")[0].focus()
         })
-        /*this.form.prags.push({
-          title:'',
-          content:'',
-          isReason:0,
-          orderNo:this.form.prags.length,
-          position:[],
-          text:''});*/
       },
       delParagraph(i){
         if(this.form.prags.length==1){
@@ -310,11 +306,12 @@
       back() { this.$router.go(-1) },
       searchTerms(query){
         if(!query.trim()){
+            this.form.terms = []
             return;
         }
         //搜索术语列表
         this.showDrop = true;
-        api.getAllConcept({name:query.trim()}).then((res) =>{
+        api.getAllConcept({inputStr:query.trim(),types:[0]}).then((res) =>{
           this.showDrop = false;
           if(res.data.code === '0') {
             this.terms = res.data.data;
@@ -375,13 +372,25 @@
           }))
          
         }else {
-          param =item.map((it,i)=>{
-            return Object.assign({},it,{
-                    position:typeof it.position=='string'?it.position:it.position.join(","),
-                    conceptId:this.form.conceptId,
-                    orderNo:i,
-                    content:it.content.replace(new RegExp(config.imgHost,'g'),'{imageUrlPrefix}')});
-          });
+          let data = this.form.prags,tempArr=[],paramsAll={},types = this.form.typeId;
+          for(let i = 0;i < data.length;i++){
+            let obj = {}
+            obj.content = data[i].content
+            obj.text = data[i].text
+            obj.conceptId = data[i].conceptId
+            obj.orderNo = i
+            obj.title = data[i].title
+            obj.contentType = data[i].position.join(',')
+            tempArr.push(obj)
+          }
+          paramsAll.clinicalPathwayName = types==1?this.form.titleChange:''
+          paramsAll.id = ''
+          paramsAll.name = this.form.name
+          paramsAll.noticeName = types==3||types==4||types==5?this.form.titleChange:''
+          paramsAll.type = this.form.typeId
+          paramsAll.details = tempArr
+          param = paramsAll
+
         }
         this.showSaveDialog(param,'是否保存该静态知识?');
       },
@@ -389,7 +398,6 @@
         this.showConfirmDialog(msg, () => {
           this.saveDisable = true  //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
           api.saveTermPrompts(param).then((res) => {
-           
             if (res.data.code === '0') {
               this.isSuccessUpload = 0 // 修改文件上传状态为0
               this.warning(res.data.msg || '保存成功', 'success');
@@ -523,9 +531,9 @@
     .NoiseTemplateWrapper .info-container .el-input__inner{
        width: 250px;
     }
-    .NoiseTemplateWrapper .el-select .el-input .el-icon-circle-close{
-        display: inherit!important;
-    }
+    // .NoiseTemplateWrapper .el-select .el-input .el-icon-circle-close{
+    //     display: inherit!important;
+    // }
     .cacelBtn{
       color: #22ccc8!important;
     }
@@ -580,7 +588,10 @@
       border-right: 6px solid transparent;
       // border-right: 6px solid #4D4D4D;
     }
-
+    .btn {
+      text-align: right;
+      padding-right: 20px;
+    }
 
  
 </style>

+ 9 - 4
src/components/icss/MedicineInfoPg.vue

@@ -25,7 +25,7 @@
             <a v-if="index!==0" :class="index===total-1?'order-spc':'order-up'" @click="reOrder(1)">上升</a>
             <a v-if="index!==total-1" :class="index===0?'order-spc':'order-down'" @click="reOrder(0)">下降</a>
         </div>
-        <el-form-item label-width="130px">
+        <el-form-item label-width="160px">
             <el-button @click="addEmit">添加段落</el-button>
             <el-button @click="delEmit" type="info">删除本段落</el-button>
         </el-form-item>
@@ -162,6 +162,9 @@
 </script>
 
 <style lang="less">
+    .quill-editor.ql-editor {
+      padding-left: 0 !important;
+    }
     .is-error .el-form-item__error{
         top:auto;
     }
@@ -170,10 +173,9 @@
     }
     .order-btn{
         position:absolute;
-        top:-22px;
-        right:50px;
+        top:12px;
+        right:0;
         a{
-            display: block;
             margin-bottom: 20px;
             border: 1px solid #22ccc8;
             color: #22ccc8;
@@ -185,6 +187,9 @@
         .order-spc{
             margin-top: 28px;
         }
+        .order-down {
+            margin-left: 20px;
+        }
     }
     /**富文本编辑器样式修改***/
     .ql-snow .ql-picker.ql-size .ql-picker-label::before,

+ 21 - 8
src/components/icss/MedicinePrompt.vue

@@ -8,14 +8,14 @@
                     </el-select>
                 </el-form-item>
                 <el-form-item label="标准术语:">
-                    <el-input size="mini" v-model="filter.term" placeholder="标准术语" clearable></el-input>
+                    <el-input size="mini" maxlength="50" v-model="filter.term" placeholder="标准术语" clearable></el-input>
                 </el-form-item>
                 <el-form-item label="状态:">
                     <el-select size="mini" v-model="filter.status" placeholder="状态" clearable>
                         <el-option v-for="item in stateList" :label="item.name" :value="item.id" :key="item.id"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item>
+                <el-form-item class="dododo">
                     <el-button size="mini" @click="filterDatas">确认</el-button>
                     <el-button size="mini" type="warning" style="margin:0 10px" @click="addMedicalPrompt">添加静态知识</el-button>
                 </el-form-item>
@@ -38,7 +38,7 @@
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
-                        prop="libName"
+                        prop="name"
                         label="标准术语">
                 </el-table-column>
                 <el-table-column
@@ -68,12 +68,12 @@
                     <template slot-scope="scope">
                         <el-button v-if="scope.row.isDeleted=='Y'" type="text" size="small" class="is-disabled">修改</el-button>
                         <el-button v-if="scope.row.isDeleted=='N'" type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
-                        <span style="margin:0 3px;">|</span>
+                        <!-- <span style="margin:0 3px;">|</span>
                         <el-button v-if="scope.row.isDeleted=='Y' || scope.row.typeId === 82 || scope.row.typeId === 83" type="text" size="small" class="is-disabled">复制</el-button>
-                        <el-button v-if="scope.row.isDeleted=='N'&&scope.row.typeId !== 82 && scope.row.typeId !== 83" type="text" size="small" @click="toCopyProduct(scope.row)">复制</el-button>
+                        <el-button v-if="scope.row.isDeleted=='N'&&scope.row.typeId !== 82 && scope.row.typeId !== 83" type="text" size="small" @click="toCopyProduct(scope.row)">复制</el-button> -->
                         <span style="margin:0 3px;">|</span>
-                        <el-button v-if="scope.row.isDeleted=='Y'" type="text" size="small" @click="showReuseDialog(scope.row)">恢复</el-button>
-                        <el-button v-if="scope.row.isDeleted=='N'" type="text" size="small" class="delete" @click="showDelDialog(scope.row)">删除</el-button>
+                        <el-button v-if="scope.row.isDeleted=='Y'" type="text" size="small" @click="showReuseDialog(scope.row)">启用</el-button>
+                        <el-button v-if="scope.row.isDeleted=='N'" type="text" size="small" class="delete" @click="showDelDialog(scope.row)">禁用</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -81,6 +81,7 @@
                            @current-change="currentChange"
                            background
                            :page-size="pageSize"
+                           class="pagepage"
                            :page-sizes="pageSizeArr"
                            @size-change="handleSizeChange"
                            :layout="pageLayout"
@@ -310,4 +311,16 @@
         margin-right:10px;
         color: unset;
     }
-</style>
+    .dododo {
+      margin-top: 1px !important
+    }
+    .pagepage {
+      .el-input.el-input--mini.el-input--suffix input {
+        height: 28px;
+        line-height: 28px;
+      }
+      .el-pagination__sizes {
+        margin-right: 20px !important;
+      }
+    }
+</style>