Browse Source

Merge branch 'independentTag' into dev

zhangxc 6 years ago
parent
commit
381cec3d07

+ 3 - 3
src/api/config.js

@@ -133,7 +133,7 @@ export default {
     'getPhysicalExamTempByDepId':'api/icssman/deptVital/getModuleByDeptId', //通过科室id获取查体模板
     'savePhysicalExamTemp':'api/icssman/deptVital/saveDeptVitals',//保存查体模板
     'delPhysicalExamTemp':'api/icssman/deptVital/delAllDeptVitalList',//删除查体模板
-    'getConceptKnowledgeList':'/api/knowledgeman/Knowledge/getAllKnowledge', //  术语静态知识列表
+    'getConceptKnowledgeList':'/api/knowledgeman/libraryDetail/getLibraryDetailList', //  术语静态知识列表
     'getConceptKnowledge':'/api/knowledgeman/Knowledge/getConceptKnowledge',//术语静态知识查询
     'getConceptInfo':'/api/knowledgeman/concept/getConceptInfo', //  搜索术语
     'getAllConcept':'/api/knowledgeman/concept/getAllConcept', //  术语列表
@@ -146,8 +146,8 @@ export default {
     'getVersionDetlInfo': 'api/icssman/versionDetail/getDetailById', //版本信息-版本说明列表获取
     'promptServer':'/api/icssman/file/uploadImage',    //静态知识
     /**************医学术语维护****************/
-	'saveConceptInfo':'/api/knowledgeman/Knowledge/upsertConceptKnowledge',   //保存术语静态知识
-    'delConceptInfo':'/api/knowledgeman/Knowledge/removeConceptKnowledge',   //删除术语静态知识
+	  'saveConceptInfo':'/api/knowledgeman/libraryDetail/addLibraryDetail',   //保存术语静态知识
+    'delConceptInfo':'/api/knowledgeman/libraryDetail/removeLibraryDetail',   //删除术语静态知识
     // 'knowledgeName': 'api/knowledgeman/medical/getAllMedicalInfo', //医学术语--命名维护
     'knowledgeName': 'api/knowledgeman/concept/getAllInformation', //医学术语--命名维护
     'knowledgeUpload': 'api/knowledgeman/concept/importTermExcel', //医学术语--命名维护-导入

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

@@ -41,14 +41,11 @@
                     <el-input v-if="!isEdit" v-model="form.source" placeholder="输入静态知识来源"></el-input>
                     {{isEdit?form.source:''}}
                 </el-form-item>
-                <InfoParagraph v-for="(f,i) in form.prags"
-                               :data="f"
-                               :index="i"
+                <InfoParagraph :data="form.prags[0]"
+                               :index="0"
                                :len="1"
                                :isEdit = "isEdit"
-                               @change="getPgValues"
-                               @add="addParagraph"
-                               @del="delParagraph" ref="subForm"></InfoParagraph>
+                               ref="subForm"></InfoParagraph>
             </el-form>
             <div class="btn">
                 <el-button
@@ -64,7 +61,7 @@
    *
    */
   import api from '@api/icss.js';
-  import InfoParagraph from './InfoParagraph';
+  import InfoParagraph from './MedicineInfoPg';
 
   export default {
     name: 'AddMedicinePrompt',
@@ -81,6 +78,8 @@
           prags:[]
         },
         form:{
+          conceptId:'',             //术语id
+          isTip:0,                 //是否要覆盖,0不覆盖,1覆盖
           selectedTerm:'',            //术语标签
           termType:'',
           source:'',
@@ -110,6 +109,7 @@
         //this.editData.selectedTermName = name;
         this.form.selectedTermName = name;
         this.form.selectedTermType = newVal.type;
+        this.form.conceptId = newVal.conceptId;
       }
     },
     created:function(){
@@ -128,10 +128,12 @@
         }).catch((error) => {
           console.log(error);
         });*/
-        this.form.selectedTermName = data.name;
-        this.form.selectedTermType = data.type;
+        this.form.selectedTermName = data.conceptName;
+        this.form.selectedTermType = data.conceptType;
         this.form.source = data.source;
+        this.form.conceptId = data.conceptId;
         this.form.prags[0].content = data.content;
+        this.form.prags[0].isReason = data.isReason;
         this.form.prags[0].position=this.mapStringToNum(data.position);
         this.form.prags[0].title = data.title;
       }
@@ -164,41 +166,6 @@
           return +it;
         })
       },
-      parseData(info){
-        let detail = [];
-        info.prags.forEach((it)=>{
-          detail.push(Object.assign({},it,{position:it.position,source:this.form.source}));
-        });
-        return {
-          oldterm:'',
-          concept:'',
-          oldtype:'',
-          newterm:info.selectedTermName,
-          newtype:info.selectedTermType,
-          information:detail
-        };
-      },
-      addParagraph(){
-        this.form.prags.push({title:'',
-          content:'',
-          isReason:0,
-          orderNo:0,
-          position:[],
-          text:''});
-      },
-      delParagraph(i){
-        if(this.form.prags.length==1){
-          this.warning('只剩一个段落,不能再删啦!');
-          return;
-        }
-        this.showConfirmDialog('确定要删除该段落?', () => {
-          this.form.prags.splice(i,1);
-        });
-      },
-      getPgValues(i,data){
-        this.form.prags[i] = data;
-        //console.log(data,this.form.prags);
-      },
       submitForm() {
         //验证外层表单
         let goOn=true,it=null;
@@ -209,33 +176,36 @@
           }
         });
         //验证段落表单
-        for(let i=0;i<this.$refs.subForm.length;i++){
-          it=this.$refs.subForm[i];
+        //for(let i=0;i<this.$refs.subForm.length;i++){
+          it=this.$refs.subForm;
           it.$refs.form.validate((valid) =>{
             if(!valid){
               goOn = false;
             }
           });
-        };
+        //};
 
         if(!goOn){
           return;
         }
         //通过必填验证,提交保存
-        const param = this.parseData(this.form);/*{
-          newterm:this.form.selectedTermName,
-          newtype:this.form.termType,
-          information:Object.assign(this.form.prags)
-        };*/
-        //console.log(param);
-        this.showSaveDialog(param);
+        const item=this.form.prags[0];
+        const param = Object.assign({},item,{
+                                                position:typeof item.position=='string'?item.position:item.position.join(","),
+                                                source:this.form.source,
+                                                conceptId:this.form.conceptId,isTip:1,
+                                              });
+        this.showSaveDialog(param,'是否保存该静态知识?');
       },
-      showSaveDialog(param) {
-        this.showConfirmDialog('是否保存该静态知识?', () => {
+      showSaveDialog(param,msg) {
+        this.showConfirmDialog(msg, () => {
           api.saveTermPrompts(param).then((res) => {
             if (res.data.code === '0') {
               this.warning(res.data.msg || '保存成功', 'success');
               this.$router.push("/admin/LT-YXSYKWH-YXSYJTZSWH");
+            } else if(res.data.code === '00000002'){
+              //已存在,选择是否覆盖
+              this.showSaveDialog(Object.assign({},param,{isTip:0}),res.data.msg);
             } else {
               this.warning(res.data.msg)
             }
@@ -245,8 +215,10 @@
         });
       },
       showConfirmDialog(msg, resolve) {
-        this.$alert(msg, '提示', {
+        this.$confirm(msg, '提示', {
           confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          cancelButtonClass:'cancel',
           type: 'warning'
         }).then(() => {
           resolve();
@@ -278,6 +250,9 @@
         margin-bottom: 20px;
     }
     }
+    .cancel span{
+        color: #22ccc8;
+    }
     .line{
         border-top:1px #dcdfe6 solid;
         margin-bottom: 25px;

+ 124 - 0
src/components/icss/MedicineInfoPg.vue

@@ -0,0 +1,124 @@
+<template>
+    <el-form :rules="rules" :model="data" ref="form" class="sub-form">
+        <p class="line"></p>
+        <!--<el-input v-model="form.orderNo" :value="index" type="hidden"></el-input>-->
+        <el-form-item label="是否属于诊断:" prop="isReason">
+            <el-select v-model="data.isReason" placeholder="请选择" :disabled="isEdit&&index<len">
+                <el-option label="否" :value="0"></el-option>
+                <el-option label="是" :value="1"></el-option>
+            </el-select>
+        </el-form-item>
+        <el-form-item label="显示位置:" prop="position" label-width="130px">
+            <el-checkbox-group v-model="data.position" :disabled="isEdit&&index<len">
+                <el-checkbox v-for="it in positions" :key="it.key" :label="it.key">{{it.name}}</el-checkbox>
+            </el-checkbox-group>
+        </el-form-item>
+        <el-form-item label="标题" prop="title" label-width="130px">
+            <el-input v-model="data.title" maxlength="120"></el-input>
+        </el-form-item>
+        <el-form-item label="内容" prop="content" label-width="130px">
+            <quillEditor v-model="data.content" :options="editorOption"></quillEditor>
+        </el-form-item>
+        <!--<el-form-item label-width="130px">
+            <el-button @click="addEmit">添加段落</el-button>
+            <el-button @click="delEmit" type="info">删除本段落</el-button>
+        </el-form-item>-->
+    </el-form>
+</template>
+
+<script>
+  import 'quill/dist/quill.core.css'
+  import 'quill/dist/quill.snow.css'
+  import 'quill/dist/quill.bubble.css'
+  import {quillEditor, Quill} from 'vue-quill-editor'
+  import config from '@api/config';
+  import {container, ImageExtend, QuillWatch} from 'quill-image-extend-module';
+  Quill.register('modules/ImageExtend', ImageExtend);
+  export default{
+    props:['data','index','isEdit','len'],
+    name:'MedicineInfoParagraph',
+    components:{
+      quillEditor
+    },
+    data(){
+      return {
+        editorOption: {
+          modules: {
+            ImageExtend: {
+              loading: true,
+              name: 'upfile',
+              action: config.urls.promptServer,
+              response: (res) => {
+                return config.imgHost+res.url;
+              }
+            },
+            toolbar: {
+              container: container,
+              handlers: {
+                'image': function () {
+                  QuillWatch.emit(this.quill.id)
+                }
+              }
+            }
+          }
+        },
+        form:{
+          position:[],
+          orderNo:0
+        },
+        positions:[],               //位置列表
+        rules:{
+          isReason: [
+            { required: true, message: '请选择是否属于诊断', trigger: 'change' }
+          ],
+          position: [
+            { required: true, message: '请选择显示位置', trigger: 'change' }
+          ],
+          title: [
+            { required: true, message: '请输入段落标题', trigger: 'change' }
+          ],
+          content: [
+            { required: true, message: '请输入段落内容', trigger: 'change' }
+          ],
+        }
+      }
+    },
+    mounted(){
+      //显示位置枚举列表
+      const pos = localStorage.getItem("icssEnumsData");
+      this.positions = JSON.parse(pos)&&JSON.parse(pos).introducePositionEnum;
+    },
+    methods:{
+      /*addEmit(){
+        this.$emit("add");
+      },
+      delEmit(){
+        this.$emit("del",this.index);
+      },
+      emitVal(){
+        let data = this.form;
+        let pst=this.form.position;
+        pst = typeof pst=='string'?pst:pst.join(',');
+        data =   Object.assign({},data,{position:this.form.position?pst:'',orderNo:this.index,text:''});
+        this.$emit("change",this.index,data);
+      }*/
+    }
+  }
+</script>
+
+<style lang="less">
+    .is-error .el-form-item__error{
+        top:auto;
+    }
+    /**富文本编辑器样式修改***/
+    .ql-snow .ql-picker.ql-size .ql-picker-label::before,
+    .ql-snow .ql-picker.ql-size .ql-picker-item::before,
+    .ql-snow .ql-picker.ql-header .ql-picker-label::before,
+    .ql-snow .ql-picker.ql-header .ql-picker-item::before,
+    .ql-snow .ql-picker.ql-font .ql-picker-label::before,
+    .ql-snow .ql-picker.ql-font .ql-picker-item::before,
+    .ql-snow .ql-color-picker .ql-picker-label svg,
+    .ql-snow .ql-icon-picker .ql-picker-label svg{
+        vertical-align: top;
+    }
+</style>

+ 19 - 10
src/components/icss/MedicinePrompt.vue

@@ -5,11 +5,14 @@
                 <el-form-item label="医学标准术语:">
                     <el-input size="mini" v-model="filter.term" placeholder="医学标准术语" clearable></el-input>
                 </el-form-item>
-                <el-form-item label="术语类型:">
+                <el-form-item label="标题名称:">
+                    <el-input size="mini" v-model="filter.title" placeholder="标题名称" clearable></el-input>
+                </el-form-item>
+                <!--<el-form-item label="术语类型:">
                     <el-select size="mini" v-model="filter.type" placeholder="术语类型" clearable>
                         <el-option v-for="it in termTypes" :label="it.name" :value="it.name" :key="it.id"></el-option>
                     </el-select>
-                </el-form-item>
+                </el-form-item>-->
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
                     <router-link to="/admin/LT-YXSYKWH-TJYXSYJTZS" style="margin:0 10px">
@@ -35,17 +38,21 @@
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
-                        prop="name"
+                        prop="conceptNameAndType"
                         label="医学标准术语">
                 </el-table-column>
                 <el-table-column
-                        prop="type"
+                        prop="source"
+                        label="静态知识来源">
+                </el-table-column>
+                <!--<el-table-column
+                        prop="conceptType"
                         label="术语类型"
                         width="140">
-                </el-table-column>
+                </el-table-column>-->
                 <el-table-column
                         prop="title"
-                        label="静态知识名称"
+                        label="标题名称"
                         width="240">
                 </el-table-column>
                 <el-table-column
@@ -94,7 +101,7 @@
         pays:[],
         filter: {
           term: '',
-          type:''
+          title:''
         }
       }
     },
@@ -152,8 +159,8 @@
       },
       getFilterItems() {
         const param = {
-          term:this.filter.term,
-          type:this.filter.type,
+          conceptName:this.filter.term,
+          title:this.filter.title,
           current: this.currentPage,
           size: this.pageSize
         };
@@ -178,8 +185,10 @@
         })
       },
       showConfirmDialog(msg,resolve){
-        this.$alert(msg, '提示', {
+        this.$confirm(msg, '提示', {
           confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          cancelButtonClass:'cancel',
           type: 'warning'
         }).then(() => {
           resolve();