瀏覽代碼

Merge branch 'dev' into dev2/zhangxc

zhangxc 6 年之前
父節點
當前提交
376a0bfacb

+ 63 - 6
package-lock.json

@@ -3319,8 +3319,7 @@
     "deep-equal": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
-      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=",
-      "dev": true
+      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
     },
     "deep-is": {
       "version": "0.1.3",
@@ -4323,8 +4322,7 @@
     "extend": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-      "dev": true
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
     },
     "extend-shallow": {
       "version": "3.0.2",
@@ -4435,6 +4433,11 @@
       "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
       "dev": true
     },
+    "fast-diff": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz",
+      "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig=="
+    },
     "fast-glob": {
       "version": "2.2.6",
       "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz",
@@ -7355,8 +7358,7 @@
     "object-assign": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-      "dev": true
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
     },
     "object-copy": {
       "version": "0.1.0",
@@ -7641,6 +7643,11 @@
         "no-case": "2.3.2"
       }
     },
+    "parchment": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz",
+      "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg=="
+    },
     "parse-asn1": {
       "version": "5.1.1",
       "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
@@ -8548,6 +8555,47 @@
       "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==",
       "dev": true
     },
+    "quill": {
+      "version": "1.3.6",
+      "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.6.tgz",
+      "integrity": "sha512-K0mvhimWZN6s+9OQ249CH2IEPZ9JmkFuCQeHAOQax3EZ2nDJ3wfGh59mnlQaZV2i7u8eFarx6wAtvQKgShojug==",
+      "requires": {
+        "clone": "2.1.2",
+        "deep-equal": "1.0.1",
+        "eventemitter3": "2.0.3",
+        "extend": "3.0.2",
+        "parchment": "1.1.4",
+        "quill-delta": "3.6.3"
+      },
+      "dependencies": {
+        "clone": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+          "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
+        },
+        "eventemitter3": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
+          "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
+        }
+      }
+    },
+    "quill-delta": {
+      "version": "3.6.3",
+      "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz",
+      "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
+      "requires": {
+        "deep-equal": "1.0.1",
+        "extend": "3.0.2",
+        "fast-diff": "1.1.2"
+      }
+    },
+    "quill-image-extend-module": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/quill-image-extend-module/-/quill-image-extend-module-1.1.2.tgz",
+      "integrity": "sha512-yHJWZWlTjNZzV34zuT4H55ttDwMxmVJ7JUgKnt/Wd3ejUNcaPOV57/sKG8VEMU5mL7bKZPIKmBdb3weM0M5UeA==",
+      "dev": true
+    },
     "randombytes": {
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
@@ -10681,6 +10729,15 @@
         "vue-style-loader": "4.1.2"
       }
     },
+    "vue-quill-editor": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz",
+      "integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==",
+      "requires": {
+        "object-assign": "4.1.1",
+        "quill": "1.3.6"
+      }
+    },
     "vue-router": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.0.2.tgz",

+ 3 - 1
package.json

@@ -9,7 +9,8 @@
   },
   "dependencies": {
     "js-md5": "^0.7.3",
-    "vue": "^2.5.17"
+    "vue": "^2.5.17",
+    "vue-quill-editor": "^3.0.6"
   },
   "eslintConfig": {
     "env": {
@@ -29,6 +30,7 @@
     "less-loader": "^4.1.0",
     "path": "^0.12.7",
     "qs": "^6.5.2",
+    "quill-image-extend-module": "^1.1.2",
     "vue-router": "^3.0.1",
     "vue-template-compiler": "^2.5.17",
     "vue-ueditor-wrap": "^2.4.0"

+ 3 - 0
src/api/icss.js

@@ -25,6 +25,9 @@ export default {
     getPrompDetail(param){
       return axios.post(urls.PromptInfoDetail,param);
     },
+    getAllType(){
+      return axios.post(urls.allKnowledgeType,{size:10});
+    },
     getTremList(param){
       return axios.post(urls.getConceptKnowledge,param);
     },

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

@@ -13,7 +13,7 @@
                 ref="submitForm"
         ></PubIndeptTag>
         <div class="main">
-            <p class="title" v-if="dataPub.region2==1||dataPub.region2==2"> <i>*</i> 标签明细:</p>
+            <p class="title" v-if="dataPub.region2==1||dataPub.region2==2"> <i>*</i> 标签明细:<i style="margin-left:70px;color: #22ccc8; font-size: 12px;">所有选项必须都有或者都没有同“伴”/“无”标记</i></p>
             <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
@@ -94,6 +94,7 @@
         //仍需验证标签明细是否选择
         let isNull = true
         let options2 = []
+        const opts = this.options;
         for (let i = 0; i < this.options.length; i++) {
           if(this.options[i].name.trim() != '') {
             isNull = false
@@ -108,6 +109,23 @@
             });
             return;
         }
+        let flag=true;
+        if(opts[0].code){
+          flag=opts.findIndex((it)=>{
+            return !it.code;
+          })==-1;
+        }else{
+          flag=opts.findIndex((it)=>{
+            return it.code;
+          })==-1;
+        }
+        if(!flag){
+          this.$message({
+            message: '所有选项必须都有或者都没有同“伴”/“无”标记',
+            type: 'warning'
+          });
+          return;
+        }
         if(this.dataPub.region8 >= this.dataPub.region9) {
           this.$message({
             message: '最小年龄不能大于或等于最大年龄',

+ 71 - 18
src/components/icss/AddMedicinePrompt.vue

@@ -9,26 +9,42 @@
                      :model="form"
                      label-width="130px"
                      ref="groups">
-                <el-form-item v-if="!isEdit" label="选择术语标签:" prop="selectedTerm">
+                <el-form-item v-if="!isEdit" label="选择术语:" prop="selectedTerm">
                     <el-select v-model="form.selectedTerm"
                                filterable
                                remote
                                clearable
-                               value-key="libId"
+                               value-key="id"
                                ref="termName"
                                placeholder="搜索术语"
                                :remote-method="searchTerms">
-                        <el-option v-for="term in terms" :key="term.libId" :label="term.name" :value="term" ></el-option>
+                        <el-option v-for="term in terms" :key="term.id" :label="term.name+'-('+term.type+')'" :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 label="术语类型:">
+                    {{form.selectedTermType}}
+                    <!--<el-select  filterable
+                                remote
+                                clearable
+                                v-model="form.termType"
+                                placeholder="搜索术语类型">
+                        <el-option v-for="it in termTypes" :label="it.name" :value="it.name" :key="it.id"></el-option>
+                    </el-select>-->
+                </el-form-item>
+                <p class="line"></p>
+                <el-form-item label="添加静态知识" style="font-weight: bold">
+                </el-form-item>
+                <el-form-item label="静态知识来源:" prop="source">
+                    <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"
+                               :len="1"
                                :isEdit = "isEdit"
                                @change="getPgValues"
                                @add="addParagraph"
@@ -58,6 +74,7 @@
     data() {
       return {
         isEdit:false,
+        termTypes:[],
         terms:[],              //术语列表
         editData:{
           selectedTerm:'',
@@ -65,7 +82,10 @@
         },
         form:{
           selectedTerm:'',            //术语标签
+          termType:'',
+          source:'',
           selectedTermName:'',
+          selectedTermType:'',
           prags:[{              //单个段落相关
             title:'',
             content:'',
@@ -75,6 +95,9 @@
             text:''}]
         },
         rules: {
+          source: [
+            { required: true, message: '请输入静态知识来源', trigger: 'change' }
+          ],
           selectedTerm: [
             { required: true, message: '请选择术语标签', trigger: 'change' }
           ]
@@ -84,14 +107,30 @@
     watch:{
       'form.selectedTerm':function(newVal){
         const name = newVal.name;
-        this.editData.selectedTermName = name;
+        //this.editData.selectedTermName = name;
+        this.form.selectedTermName = name;
+        this.form.selectedTermType = newVal.type;
       }
     },
     created:function(){
       const {isEdit,data} = this.$route.params;
+      //this.getTermTypes();
       if(isEdit){
         this.isEdit = isEdit;
+        /*api.getTremList({term:data.name,type:data.type}).then((res) => {
+          if (res.data.code == '0') {
+            const data = res.data.data;
+            this.form.prags=data.information&&data.information.map((it)=>{
+              return {title:it.title,position:this.mapStringToNum(it.position),content:it.content,isReason:it.isReason};
+            });
+            console.log(data)
+          }
+        }).catch((error) => {
+          console.log(error);
+        });*/
         this.form.selectedTermName = data.name;
+        this.form.selectedTermType = data.type;
+        this.form.source = data.source;
         this.form.prags[0].content = data.content;
         this.form.prags[0].position=this.mapStringToNum(data.position);
         this.form.prags[0].title = data.title;
@@ -99,11 +138,22 @@
     },
     methods: {
       back() { this.$router.go(-1) },
+      async getTermTypes(){
+        let types = localStorage.getItem('termTypes');
+        if(!types){
+          types = await api.getAllType();
+          if(types.data.code=='0'){
+            this.termTypes = types.data.data.records;
+          }
+        }else{
+          this.termTypes = JSON.parse(types).records;
+        }
+      },
       searchTerms(query){
         //搜索术语列表
-        api.getConceptInfo({term:query,type:''}).then((res) =>{
+        api.knowledgeName({term:query,type:''}).then((res) =>{
           if(res.data.code === '0') {
-            this.terms = res.data.data;
+            this.terms = res.data.data.records;
           }else{
             this.warning("数据获取失败");
           }
@@ -116,14 +166,16 @@
       },
       parseData(info){
         let detail = [];
-        info.details.forEach((it)=>{
-          detail.push(Object.assign({},it,{position:this.mapStringToNum(it.position)}));
+        info.prags.forEach((it)=>{
+          detail.push(Object.assign({},it,{position:it.position,source:this.form.source}));
         });
         return {
-          name:info.name,
-          tagFor:info.questionList[0].type+'',
-          selectedTags:info.questionList,
-          prags:detail
+          oldterm:'',
+          concept:'',
+          oldtype:'',
+          newterm:info.selectedTermName,
+          newtype:info.selectedTermType,
+          information:detail
         };
       },
       addParagraph(){
@@ -170,11 +222,12 @@
           return;
         }
         //通过必填验证,提交保存
-        const param = {
-          name:this.form.selectedTerm.libId,
-          detailVOList:Object.assign(this.form.prags)
-        };
-        console.log(param);
+        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);
       },
       showSaveDialog(param) {

+ 3 - 0
src/components/icss/AddPromptInfo.vue

@@ -15,6 +15,7 @@
                 <InfoParagraph v-for="(f,i) in form.prags"
                                :data="f"
                                :index="i"
+                               :len="len"
                                :isEdit = "isEdit"
                                @change="getPgValues"
                                @add="addParagraph"
@@ -68,6 +69,7 @@
       return {
         isEdit:false,
         tagPool:[],                 //标签池数据
+        len:0,
         Adscriptions:[],            //归属列表
         editData:{
           tagFor:'',
@@ -106,6 +108,7 @@
           if(res.data.code === '0') {
             this.form = this.parseData(res.data.data);
             this.editData = Object.assign({},this.form);
+            this.len=res.data.data.details&&res.data.data.details.length;
           }else{
             this.warning("数据获取失败");
           }

+ 35 - 21
src/components/icss/InfoParagraph.vue

@@ -3,13 +3,13 @@
             <p class="line"></p>
             <el-input v-model="data.orderNo" :value="index" type="hidden"></el-input>
             <el-form-item label="是否属于诊断:" prop="isReason" @change="emitVal">
-                <el-select v-model="data.isReason" placeholder="请选择" :disabled="isEdit">
+                <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" @change="emitVal" :disabled="isEdit">
+                <el-checkbox-group v-model="data.position" @change="emitVal" :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>
@@ -17,37 +17,49 @@
                 <el-input v-model="data.title" @change="emitVal"></el-input>
             </el-form-item>
             <el-form-item label="内容" prop="content" label-width="130px">
-                <InfoUeditor v-model="data.content" :config="config"></InfoUeditor>
+                <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="addEmit">添加段落</el-button>
                 <el-button @click="delEmit" type="info">删除本段落</el-button>
             </el-form-item>
     </el-form>
 </template>
 
 <script>
-  import InfoUeditor from 'vue-ueditor-wrap';
+  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 {container, ImageExtend, QuillWatch} from 'quill-image-extend-module';
+  Quill.register('modules/ImageExtend', ImageExtend);
   export default{
-    props:['data','index','isEdit'],
+    props:['data','index','isEdit','len'],
     name:'InfoParagraph',
     components:{
-      InfoUeditor
+      quillEditor
     },
     data(){
         return {
-          config:{
-            initialFrameWidth: null,
-            initialFrameHeight: 350,
-            imageUrlPrefix:"http://192.168.2.236:82",
-            serverUrl: '/api/icssman/file/uploadImage',
-            UEDITOR_HOME_URL: '/UEditor/',        //静态文件路径
-            toolbars:[['source','undo','redo','bold','italic','underline','fontborder','strikethrough','superscript','subscript','removeformat','formatmatch','autotypeset','blockquote',
-              'pasteplain','forecolor','backcolor','insertorderedlist','insertunorderedlist','selectall',
-              'cleardoc','rowspacingtop','rowspacingbottom','lineheight','customstyle','paragraph',
-              'fontfamily','fontsize','directionalityltr','directionalityrtl','indent','justifyleft',
-              'justifycenter','justifyright','justifyjustify','touppercase','tolowercase','link','simpleupload','insertimage','horizontal',
-              'date','time','spechars','fullscreen']]      //自定义工具
+          editorOption: {
+            modules: {
+              ImageExtend: {
+                loading: true,
+                name: 'upfile',
+                action: 'http://192.168.2.236/api/icssman/file/uploadImage',
+                response: (res) => {
+                  return 'http://192.168.2.236:82'+res.url;
+                }
+              },
+              toolbar: {
+                container: container,
+                handlers: {
+                  'image': function () {
+                    QuillWatch.emit(this.quill.id)
+                  }
+                }
+              }
+            }
           },
           form:{},
           positions:[],               //位置列表
@@ -78,7 +90,7 @@
       //显示位置枚举列表
       const pos = localStorage.getItem("icssEnumsData");
       this.positions = JSON.parse(pos)&&JSON.parse(pos).introducePositionEnum;
-      this.form = this.data;console.log(this.isEdit)
+      this.form = this.data;
     },
     methods:{
       addEmit(){
@@ -89,7 +101,9 @@
       },
       emitVal(){
         let data = Object.assign({},this.data);
-        data =   Object.assign({},data,{position:this.data.position?this.data.position.join(","):''});
+        let pst=this.data.position;
+        pst = typeof pst=='string'?pst:pst.join(',');
+        data =   Object.assign({},data,{position:this.data.position?pst:''});
         this.$emit("change",this.index,data);
       }
     }

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

@@ -6,11 +6,7 @@
                     <el-input size="mini" v-model="filter.term" placeholder="输入术语"></el-input>
                 </el-form-item>
                 <el-form-item label="术语类型:">
-                  <el-select v-model="filter.type" 
-                  clearable 
-                  filterable 
-                  placeholder="请选择" 
-                  size="mini">
+                  <el-select v-model="filter.type" clearable filterable placeholder="请选择" size="mini">
                     <el-option
                       v-for="item in typeList"
                       :key="item.id"

+ 40 - 14
src/components/icss/MedicinePrompt.vue

@@ -2,11 +2,13 @@
     <div>
         <crumbs title="医学术语静态知识维护">
             <el-form :inline="true" class="demo-form-inline">
-                <el-form-item label="静态知识名称:">
-                    <el-input size="mini" v-model="filter.name" placeholder="静态知识名称" clearable></el-input>
+                <el-form-item label="医学标准术语:">
+                    <el-input size="mini" v-model="filter.term" placeholder="医学标准术语" clearable></el-input>
                 </el-form-item>
-                <el-form-item label="标签系统名称:">
-                    <el-input size="mini" v-model="filter.term" placeholder="术语标签" clearable></el-input>
+                <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-button size="mini" @click="filterDatas">确认</el-button>
@@ -36,6 +38,11 @@
                         prop="name"
                         label="医学标准术语">
                 </el-table-column>
+                <el-table-column
+                        prop="type"
+                        label="术语类型"
+                        width="140">
+                </el-table-column>
                 <el-table-column
                         prop="title"
                         label="静态知识名称"
@@ -52,7 +59,7 @@
                     <template slot-scope="scope">
                         <el-button type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
                         <span style="margin:0 3px;">|</span>
-                        <el-button type="text" size="small" @click="showDelDialog(scope.row.id)">删除</el-button>
+                        <el-button type="text" size="small" @click="showDelDialog(scope.row)">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -77,6 +84,7 @@
     name: 'MedicinePrompt',
     data: function () {
       return {
+        termTypes:[],
         list: [],
         cacheData: {},
         currentPage: 1,
@@ -85,15 +93,36 @@
         linkIn:[],
         pays:[],
         filter: {
-          name: '',
-          tagName:''
+          term: '',
+          type:''
         }
       }
     },
     created() {
       this.getDataList();
+      this.getTermTypes();
     },
     methods: {
+      getTermTypes(){
+        api.getAllType().then((res)=>{
+          if(res.data.code=='0'){
+            this.termTypes = res.data.data.records;
+          }
+        }).catch((error)=>{
+          console.log('获取术语类型失败');
+        });
+      },
+      /*async getTermTypes(){
+        let types = localStorage.getItem('termTypes');
+        if(!types){
+          types = await api.getAllType();
+          if(types.data.code=='0'){
+            this.termTypes = types.data.data.records;
+          }
+        }else{
+          this.termTypes = JSON.parse(types).records;
+        }
+      },*/
       toEditProduct(row){
         this.$router.push({
           name:'AddMedicinePrompt',
@@ -106,9 +135,6 @@
       },
       getDataList() {
         const param = this.getFilterItems();
-        // const param = {
-        //   'name':''
-        // };
         api.getConceptKnowledgeList(param).then((res) => {
           if (res.data.code == '0') {
             const data = res.data.data;
@@ -126,8 +152,8 @@
       },
       getFilterItems() {
         const param = {
-          term:this.filter.name,
-          conecpt_name:this.filter.term,
+          term:this.filter.term,
+          type:this.filter.type,
           current: this.currentPage,
           size: this.pageSize
         };
@@ -159,9 +185,9 @@
           resolve();
         }).catch(() => {});
       },
-      showDelDialog(id){
+      showDelDialog(row){
         this.showConfirmDialog('是否删除该静态知识?',()=>{
-          api.delConceptInfo({id}).then((res)=>{
+          api.delConceptInfo({id:row.id}).then((res)=>{
             if(res.data.code=='0'){
               this.warning(res.data.msg||'操作成功','success');
               this.getDataList();

文件差異過大導致無法顯示
+ 6 - 1
src/components/icss/NoiseTemplate.vue


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

@@ -250,7 +250,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']
+          '5':['1','6']
         },
         rules: {
           region1: [
@@ -337,7 +337,7 @@
         if(this.form.region3.trim() == ''){ return }
         let param = {
           "existName": this.form.region3,
-          "type": this.form.region1,
+          // "type": this.form.region1,
           "notIds":[this.$props.editData.id]
         };
         api.validateSystomName(param).then((res) => {

+ 11 - 13
src/components/icss/PubTagGroup.vue

@@ -169,8 +169,8 @@
       </el-form-item>
       <el-form-item class="verticalMiddle" label="选择子项时是否复制主项标签:" prop="region10" v-if="form.region2 == 6">
         <el-select v-model="form.region10" :disabled="!form.region1 || form.region2 == 11">
-          <el-option label="不可以" value="1"></el-option>
-          <el-option label="可以" value="0"></el-option>
+          <el-option label="不可以" value="0"></el-option>
+          <el-option label="可以" value="1"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="是否显示加号:" prop="region11" v-if="form.region2 == 2 || form.region2 == 3">
@@ -229,7 +229,7 @@ export default {
         region7: '3',       //性别
         region8: '0',          //最小年龄
         region9: '200',         //最大年龄
-        region10: '0',        //是否复制主标签
+        region10: '1',        //是否复制主标签
         region11: '0',       //是否复制当前模块
         region12:'1',        //是否为症状
         tagPool:[],          //标签池数据
@@ -293,10 +293,6 @@ export default {
       systom:null,      //标签系统名称存在与否
     }
   },
-  beforeDestroy:function(){
-    console.log(995)
-    this.searchVal = ''
-  },
   computed: {
     newSex() {
       return this.form.region7;
@@ -352,14 +348,16 @@ export default {
     },
     searchTagList() {
       let region1 = this.form.region1, region2 = this.form.region2;
-      let param1 = !!region2 ? api.getGroupParams(region2): {};
-      let param2 = {
+      let paramFst = !!region2 ? api.getGroupParams(region2): {};
+      let paramSec = {
         "type": region1,
         "sexType": this.form.region7,
+        "tagName":'',
+        "notIds": [],
       }
-      let param = Object.assign(param1,param2)
-
-      api.searchTagList(param).then((res) => {
+      console.log(paramFst,paramSec,7787)
+      let params = Object.assign({},paramFst,paramSec)
+      api.searchTagList(params).then((res) => {
         if (res.data.code === '0') {
           this.form.tagPool = res.data.data
         }
@@ -459,7 +457,7 @@ export default {
     },
     initForm() {
       this.form.region12 = '1'
-      this.form.region10 = '0'
+      this.form.region10 = '1'
       this.form.region11 = '0'
 
     }

+ 66 - 29
src/components/icss/PubTagPartDetail.vue

@@ -53,7 +53,7 @@
             <li v-for="n in 5"
               :key="n + 'part'"
               class="onlyBottomPart "
-              :class="selectArr[n]?'activeBgc':null"
+              :class="selectArr[n]?'activeBgc':''"
               :style="{borderRight:n==5?'0':''}"
               @click="selectPart(n)"
             >
@@ -66,7 +66,7 @@
               </ul>
               <ul v-else>
                 <template v-if="n == 1">
-                  <li class="partDetail ellipsis" v-for="item in poolDetailList[n][0].questionDetailList" :style="getStyleR(item.id)?styleR:null" :title="'[ '+item.name+' ]'" :key="item.name">
+                  <li class="partDetail ellipsis" v-for="item in poolDetailList[n][0].questionDetailList" :style="getStyleR(item.id)?styleR:null" :title="'[ '+item.name+' ]'" :key="item.id">
                     [ {{item.name}} ]
                   </li>
                 </template>
@@ -89,7 +89,7 @@
                   <span v-if="item.type == section.val" :title="section.name" :key="section.val">{{section.name}}</span>         
                 </template>
               </p>        
-              <p class="partDetail tipsWrap" :title="item.join" :key="item.join+'--'" v-if="!!item.join">标签之间链接{{item.join}}</p> 
+              <p class="partDetail tipsWrap" :title="item.join" :key="item.join+'--'" v-if="!!item.join">标签之间链接{{item.join}}</p>
               <p class="partDetail tipsWrap" :title="item.name" :key="item.type+'--'" v-if="!!item.name">{{item.name}}</p> 
             </template>
           </li>
@@ -135,8 +135,7 @@ export default {
     }
   },
 
-  beforeDestroy:function(){
-    console.log(99)
+  destroyed:function(){
     this.searchVal = ''
   },
   data() {
@@ -158,6 +157,7 @@ export default {
       multipleItem:[],         //右侧选中的单条标签
       currentTipLis:[],         //右侧选中的标签提示
       tmpNum:0,
+
     }
   },
   mounted(){
@@ -255,11 +255,6 @@ export default {
         this.clearData()
       }
     },
-    type(newVal, preVal) {
-      if (JSON.stringify(newVal) != JSON.stringify(preVal) && this.tmpNum != 1) {
-        // this.clearData()
-      }
-    },
     searchVal(newVal, preVal){
       if(newVal.trim() == ''){
         this.searchTagList();
@@ -270,7 +265,7 @@ export default {
   },
   methods: {
     clearData(){
-        this.poolDetailList = [[],[],[],[],[],[]]
+        this.poolDetailList = [[{questionDetailList:[]}],[{questionDetailList:[]}],[],[],[],[]]
         this.poolDetailListTips = [[],[],[],[],[],[]]
         this.poolDetailListIds = [[],[],[],[],[],[]]
         this.poolDetailListAll=[]
@@ -522,7 +517,7 @@ export default {
             this.currentLis.map((id)=>{
               tmpArr.push(res.data.data[id]);
             })
-            console.log(tmpArr,'多选既往史')
+            // console.log(tmpArr,'多选既往史')
             this.selectArr.map((flg,idx)=>{         //判断右侧有没有选中
               if(flg){    //有选中
                 if(idx == 0 || idx == 1){
@@ -534,19 +529,52 @@ export default {
                     });
                     return;
                   }else{
-                    if((idx == 0 && (tmpArr[0].questionDetailList && tmpArr[0].questionDetailList.length > 1)) || (idx == 1 && (tmpArr[0].tagType != 1 && tmpArr[0].tagType != 2))){      //第一列
-                      this.$message({
+                    if(idx == 0){//互斥
+                      if(tmpArr[0].controlType != 1 || (tmpArr[0].questionDetailList && tmpArr[0].questionDetailList.length > 1)){
+                        this.$message({
+                          showClose: true,
+                          message: '添加的数据有误',
+                          type: 'warning'
+                        });
+                        return;
+                      }else{
+                        this.poolDetailList[idx] = tmpArr;
+                      }
+                    }else{//第一列伴无
+                      if(tmpArr[0].controlType != 2){
+                        this.$message({
+                          showClose: true,
+                          message: '添加的数据有误',
+                          type: 'warning'
+                        });
+                        return;
+                      }else if(tmpArr[0].questionDetailList && tmpArr[0].questionDetailList.length > 0){
+                        if(tmpArr[0].questionDetailList[0].code == 0){
+                          this.poolDetailList[idx] = tmpArr;
+                        }else if(!tmpArr[0].questionDetailList[0].code){
+                          this.$message({
+                            showClose: true,
+                            message: '添加的数据有误',
+                            type: 'warning'
+                          });
+                          return;
+                        }else{
+                          this.poolDetailList[idx] = tmpArr;
+                        }
+                      }
+                    }
+                  }
+                }else{
+                  if(tmpArr[0].tagType != 4){
+                    this.$message({
                         showClose: true,
                         message: '添加的数据有误',
                         type: 'warning'
-                      });
-                      return;
-                    }else{
-                      this.poolDetailList[idx] = tmpArr;
-                    }
+                    });
+                    return
+                  }else{
+                    this.poolDetailList[idx] = (this.poolDetailList[idx]).concat(tmpArr);
                   }
-                }else{
-                  this.poolDetailList[idx] = (this.poolDetailList[idx]).concat(tmpArr);
                 }
                 this.poolDetailListAll = Array.prototype.concat.apply([],this.poolDetailList);     //二维转一维
                 this.searchTagList();
@@ -554,14 +582,23 @@ export default {
               }else{
                 ++num;
                 if(num == 6){
-                  for(let i = 2;i < this.poolDetailList.length;i++){
-                    let ids = [];
-                    if(this.poolDetailList[i].length == 0){      //判断part里面是不是有数据,没有直接添加
-                      this.poolDetailList[i] = tmpArr;
-                      this.poolDetailListAll = Array.prototype.concat.apply([],this.poolDetailList);
-                      this.searchTagList();
-                      this.getPoolDetailListTips();
-                      return;
+                  if(tmpArr[0].tagType != 4){
+                    this.$message({
+                        showClose: true,
+                        message: '添加的数据有误',
+                        type: 'warning'
+                    });
+                    return
+                  }else{
+                    for(let i = 2;i < this.poolDetailList.length;i++){
+                      let ids = [];
+                      if(this.poolDetailList[i].length == 0){      //判断part里面是不是有数据,没有直接添加
+                        this.poolDetailList[i] = tmpArr;
+                        this.poolDetailListAll = Array.prototype.concat.apply([],this.poolDetailList);
+                        this.searchTagList();
+                        this.getPoolDetailListTips();
+                        return;
+                      }
                     }
                   }
                 }

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

@@ -229,7 +229,7 @@
             this.$message({
               dangerouslyUseHTMLString: true,
               message:res.data.msg,
-              type:'error'
+              type:'waring'
             });
           }
         })

+ 3 - 0
src/less/common.less

@@ -169,4 +169,7 @@
 /* 选中状态边框颜色改变 */
 .activeBgc {
   background-color: #eae7e7;
+}
+.activeBgcF5 {
+  background-color: #f5f5f5;
 }