Переглянути джерело

Merge branch 'test' into dev

# Conflicts:
#	src/api/icss.js
zhouna 6 роки тому
батько
коміт
e1b7e2694c

+ 18 - 1
src/api/config.js

@@ -110,5 +110,22 @@ export default {
 		'LT-DDXT': 'el-icon-setting',
 		'LT-CPXGL': 'el-icon-upload',
 		'LT-GRZX': 'el-icon-news'
-  }
+  },
+  labelTypesMaps: {       //// 归属和填写单类型限制
+    '1':['2','3','4','11'],
+    '3':['4','6'],
+    '4':[,'2','3'],
+    '5':['7'],
+    '6':['9'],
+    '7':['9'],
+    '8':['9']
+  },
+  groupParams:[
+    {controlType:[1,2],tagType:[1],notTagType:[8]},     //多列多选(杂音/初为)     notTagType为文字标签剔除
+    {controlType:[1,2,6,7],tagType:[1,2],notTagType:[8]},  //多项统一横铺标签(血压)
+    {controlType:[1,2,6,7],tagType:[1,2],notTagType:[8]},  //症状详细(症状尾巴)
+    {controlType:[1,2],tagType:[1,2,3,4,10],notTagType:[8]}, //组合项标签(既往史)
+    {controlType:[1,6],tagType:[],notTagType:[8]},    //化验组合
+    {controlType:[1,2],tagType:[],notTagType:[8]},   //症状推送类型(添加症状)
+  ]
 }

+ 21 - 3
src/api/icss.js

@@ -2,6 +2,7 @@ import axios from 'axios';
 import config from '@api/config.js';
 
 const urls = config.urls;
+const groupParams = config.groupParams;
 export default {
     getIcssEnumsData(){
         return axios.post(urls.getIcssEnumsData)
@@ -33,9 +34,9 @@ export default {
     detailsTagList(param) {
         return axios.post(urls.detailsTagList, param)
     },
-  detailsTag(param) {
-        return axios.post(urls.detailsTag, param)
-      },
+    detailsTag(param) {   //根据id返回数据
+      return axios.post(urls.detailsTag, param)
+    },
     getDeptInfo(param) {//科室维护
         return axios.post(urls.getDeptInfo, param)
     },
@@ -57,4 +58,21 @@ export default {
     deleteTagGroup(param) {
         return axios.post(urls.deleteTagGroup, param)
     },
+    getGroupParams(val){
+      if(val == 2){
+        return groupParams[0]
+      }else if(val == 3){
+        return groupParams[1]
+      }else if(val == 4){
+        return groupParams[2]
+      }else if(val == 6){
+        return groupParams[3]
+      }else if(val == 7){
+        return groupParams[4]
+      }else if(val == 11){
+        return groupParams[5]
+      }else {
+        return null
+      }
+    }
 }

+ 9 - 6
src/api/utils.js

@@ -84,16 +84,16 @@ export default {
    * @param {type} 填写单类型 
    */
   dataRecombination(dataArr,type){
-    console.log(type,dataArr)
+    // console.log(dataArr,type)
     let tmpArr = [];
     for(let i = 0;i < dataArr.length;i++){
       let mapping = {
         "sonQuestion": "",
-        "position": 0,              //默认值,传0
+        "position": 0,               //默认值,传0
         "formPosition": 1,          // 填写单显示位置(0:左, 1:上)
         "exclusionType": 1,         //互斥:1
-        "text": "",                  //如果有文本内容,上面的值都置空
-        "symptomType": 0,         //0:默认值 1:主症状特有 2:伴随症状特有
+        "text": "",                 //如果有文本内容,上面的值都置空
+        "symptomType": 0,           //0:默认值 1:主症状特有 2:伴随症状特有
       }
       let sonQuestionMap = {     //目前只在既往史中用到,同层数据置空
           "id": "",
@@ -129,7 +129,7 @@ export default {
         }
         mapping.sonQuestion = tmpData[0];    //{sonQuestion:18}
         tmpArr.push(mapping)
-      }else if (type == 4 || type == 3) { //横铺展开(如咳嗽)
+      }else if (type == 4 || type == 3 || type == 7) { //横铺展开(如咳嗽)
         mapping.formPosition = 0;
         mapping.exclusionType = 0;
         mapping.symptomType = dataArr[i].symptomType
@@ -142,7 +142,9 @@ export default {
           mapping.sonQuestion = dataArr[i].id
           tmpArr.push(mapping)
         }
-       
+      } else if(type == 11) {    //推送症状类型(添加症状)
+        mapping.sonQuestion = dataArr[i].id
+        tmpArr.push(mapping)
       }
     }
     return tmpArr;
@@ -173,6 +175,7 @@ export default {
   transformKeys(data){
     const maps = {
       "controlType": 'region2',                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
+      "tagType": 'region2',              //标签类型
       "id": "id",                                    //新增id置空
       "type": 'region1',                //标签归属
       "tagName": 'region3',             //系统名称

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

@@ -11,7 +11,6 @@
                 <el-form-item label="描述:" prop="remark" class="desc">
                     <el-input type="textarea" :rows="3" placeholder="请输入科室描述" v-model="form.remark" maxlength="1024"></el-input>
                 </el-form-item>
-                </el-form-item>
                 <el-button size="small" type="primary" @click="addOrga">{{text}}</el-button>
             </el-form>
         </div>

+ 26 - 8
src/components/icss/BloodPressTagGroup.vue

@@ -71,6 +71,10 @@ export default {
             default: '',
             type: String
         },
+        options: {
+            default: () => [],
+            type: Array
+        },
     },
     data() {
         return {
@@ -86,15 +90,30 @@ export default {
         }
     },
     mounted() {
+        this.rightTagsList2 = this.options
+        let newArr = []
+        for (let i = 0; i < this.rightTagsList2.length; i++) {
+            if(this.rightTagsList2[i].tagType == 8) {
+                newArr.push({ text: this.rightTagsList2[i].tagName ,type:'input' ,id: i+',,,'})
+            } else {
+                if(i === 0 ) {
+                    newArr.push({ text: '' ,type:'input' ,id: i+',,,'})
+                }
+                newArr.push(this.rightTagsList2[i])
+                if(!this.rightTagsList2[i+1] || this.rightTagsList2[i+1]&&this.rightTagsList2[i+1].tagType != 8) {
+                    newArr.push({ text: '' ,type:'input' ,id: i+',,,,'})
+                }
+            }
+        }
+        this.rightTagsList2 = newArr
+        this.$emit('changeActionData',this.rightTagsList2, false);
         this.searchTagList()
         // this.leftTagsList = this.pool
         // console.log('TAGPOOL', this.pool)
     },
     watch: {
         pool(newVal, preVal) {
-            if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
-                this.leftTagsList = newVal
-            }
+          this.leftTagsList = newVal
         },
         searchVal(newVal, preVal){
             if(newVal.trim() == ''){
@@ -112,7 +131,7 @@ export default {
                     this.rightTagsList2 = [];
                     this.selectRightTagsList = [];
                     this.searchVal = '';
-                     this.searchTagList();
+                    //  this.searchTagList();
                 }
             }
         },
@@ -225,15 +244,14 @@ export default {
                 }
                 
             }
-            let param = {
+            let param1 = api.getGroupParams(3);            
+            let param2 = {
                 "tagName": this.searchVal,
-                "tagType": [1, 2],
-                "controlType": [],
                 "type": this.type || '',
                 "notIds": notIds,
                 "sexType": this.sexType,
-
             }
+            let param = Object.assign(param1,param2)
             api.searchTagList(param).then((res) => {
                 if (res.data.code === '0') {
                     this.leftTagsList = res.data.data

+ 329 - 0
src/components/icss/InspactTagGroup.vue

@@ -0,0 +1,329 @@
+<template>
+    <div class="symptomTagGroupWrapper clearfix">
+    <div class="bottomPartLeft">
+      <p class="poolTitle">标签池</p>
+      <div class="pool">
+        <el-input
+          placeholder="请输入搜索内容"
+          v-model="searchVal"
+        >
+            <i
+                slot="prefix"
+                class="el-input__icon el-icon-search"
+            ></i>
+        </el-input>
+        <ul class="tagList tagPool">
+            <li v-for="(item, index) in leftTagsList"
+                class = "tagItem"
+                :key='item.id'
+                :title="'[ '+item.tagName+' ]'"
+                :style="getStyle(item)?styles:null"
+                @click='selectLeftTag(item, index, $event)'
+            >
+                <p class="tagName ellipsis" >{{item.tagName}} </p>
+            </li>
+        </ul>
+      </div>
+    </div>
+    <div class="bottomPartMid fl">
+        <p><span class="el-icon-arrow-right" @click="toRightList"></span></p>
+        <p><span class="el-icon-arrow-left" @click="toLeftList"></span></p>
+    </div>
+    <div class="bottomPartRight inspectBottomPartRight">
+      <p class="poolTitle">操作界面:</p>
+      <ul class="tagList operationPool">
+            <li class = "tagItem"
+                v-for="(item) in rightTagsList2" 
+                :key='item.id'
+                :style="getStyle2(item)?styles:null"
+                @click='selectRightTag(item)'
+            >   
+                <p v-if="item.tagName" class="tagName">{{item.tagName}} </p>
+            </li>
+        </ul>
+    </div>
+  </div>
+</template>
+<script>
+import api from '@api/icss.js';
+import utils from '@api/utils.js';
+
+export default {
+    name: "InspactTagGroup",
+    props: {
+        pool: {
+            default: () => [],
+            type: Array
+        },
+        type: {
+            default: '',
+            type: String
+        },
+        sexType: {
+            default: '',
+            type: String
+        },
+        options: {
+            default: () => [],
+            type: Array
+        }
+    },
+    data() {
+        return {
+            leftTagsList: [],
+            selectLeftTagsList: [],
+            rightTagsList: [],
+            rightTagsList2: [],
+            selectRightTagsList: [],
+            searchVal: '',
+            styles:{
+                background:'#eae7e7'
+            },
+        }
+    },
+    mounted() {
+      this.$nextTick(()=>{
+        this.rightTagsList = this.options
+        this.rightTagsList2 = this.options
+        this.$emit('changeActionData',this.options, false);
+        this.searchTagList()
+      })
+    },
+    watch: {
+        pool(newVal, preVal) {
+            if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
+                this.leftTagsList = newVal
+            }
+        },
+        searchVal(newVal, preVal){
+            if(newVal.trim() == ''){
+                this.searchTagList()
+            }else if(newVal.trim() != preVal.trim()){
+                this.searchTagList()
+            }
+        },
+        sexType(newVal, preVal) {
+            if (newVal != preVal) {
+                if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
+                    this.leftTagsList = [];
+                    this.selectLeftTagsList = [];
+                    this.rightTagsList = [];
+                    this.rightTagsList2 = [];
+                    this.selectRightTagsList = [];
+                    this.searchVal = '';
+                     this.searchTagList();
+                }
+            }
+        },
+
+        
+    },
+    methods: {
+        selectLeftTag(tag, index, e) {
+            const hasTag = this.isHasTag(tag, this.selectLeftTagsList)
+            if (hasTag) {
+                this.selectLeftTagsList = this.selectLeftTagsList.filter(item => item.id !== tag.id)
+            } else {
+                this.selectLeftTagsList.push(tag);
+            }
+        },
+        selectRightTag(tag) {
+            const hasTag = this.isHasTag(tag, this.selectRightTagsList)
+            if (hasTag) {
+                this.selectRightTagsList = this.selectRightTagsList.filter(item => item.id !== tag.id)
+            } else {
+                this.selectRightTagsList.push(tag);
+            }
+            
+        },
+        isHasTag(item, arr) {
+            for ( let i = 0; i <arr.length; i++) {
+                if(arr[i].id === item.id) {
+                    return true;
+                }
+            }
+            return false;
+        },
+        getStyle(item){       //左侧选中状态
+            // console.log('selected',utils.filterArr(this.leftTagsList,item,2))
+            // return utils.filterArr(this.selectLeftTagsList,item,2)
+            return this.isHasTag(item, this.selectLeftTagsList)
+        },
+        getStyle2(item) {
+            // return utils.filterArr(this.selectRightTagsList,item,2)
+            return this.isHasTag(item, this.selectRightTagsList)
+        },
+        toLeftList() {
+            // if(!this.searchVal) {
+            //     this.leftTagsList = this.searchTagList()
+            // }
+            
+            for (let i = 0; i < this.selectRightTagsList.length; i++) {
+                this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[i].id)
+            }
+            for (let i = 0; i < this.selectRightTagsList.length; i++) {//每次往回移时同时删掉下面输入框
+                if (this.selectRightTagsList[i].type !== 'input') {
+                    for (let j = 0; j < this.rightTagsList2.length; j++) {
+                        if(this.selectRightTagsList[i].id === this.rightTagsList2[j].id) {
+                            this.rightTagsList2.splice(j, 1)
+                        }
+                    }
+                }
+            }
+            this.selectLeftTagsList = []
+            this.selectRightTagsList = []
+            this.searchTagList()
+            this.$emit('changeActionData',this.rightTagsList2, false);
+        },
+        toRightList() {
+            this.rightTagsList.push(...this.selectLeftTagsList);
+            // let textItem = { text: ',' ,type:'input' }
+            for (let i = 0; i < this.selectLeftTagsList.length; i++) { //选中标签每个加入输入框,默认为逗号
+                this.rightTagsList2.push(this.selectLeftTagsList[i]);
+            }
+            
+            for (let i = 0; i < this.rightTagsList.length; i++) {
+                this.leftTagsList = this.leftTagsList.filter(item => item.id !== this.rightTagsList[i].id)
+            }
+            this.selectLeftTagsList = []
+            this.selectRightTagsList = []
+            this.$emit('changeActionData',this.rightTagsList2, false);
+        },
+        searchTagList() {
+            let notIds = []
+            for (let i = 0; i < this.rightTagsList.length; i++) {
+                if(this.rightTagsList[i].id) {
+                    notIds.push(this.rightTagsList[i].id)
+                }
+            }
+            let param1 = api.getGroupParams(7);
+            let param2 = {
+                "tagName": this.searchVal,
+                "type": this.type || '',
+                "notIds": notIds,
+                "sexType": this.sexType,
+            }
+            let param = Object.assign(param1,param2)
+            api.searchTagList(param).then((res) => {
+                if (res.data.code === '0') {
+                    this.leftTagsList = res.data.data
+                    this.selectLeftTagsList = []
+                    this.selectRightTagsList = []
+                }
+            })
+           
+        },
+    }
+}
+</script>
+
+<style lang="less" >
+@import '../../less/common.less';
+.symptomTagGroupWrapper {
+    .bottomPartLeft {
+        width: 30%;
+        box-sizing: border-box;
+        float: left;
+    }
+    .poolTitle {
+        // border-bottom: 1px solid @icssBorder;
+        box-sizing: border-box;
+        margin-bottom: 20px;
+    }
+    .pool {
+        // border:1px solid @icssBorder;
+    
+    }
+    .search {
+        width: 100%;
+        border-bottom: 1px solid @icssBorder;
+        box-sizing: border-box;
+        height: 30px;
+    }
+    .tagList {
+        border: 1px solid @icssBorder;
+    }
+    .tagPool {
+        height: 300px;
+        overflow-y: auto;
+
+    }
+    .attributeBox {
+        position: absolute;
+        right: -100px;
+        top: 2px;
+    }
+    .tagItem {
+        position: relative;
+        line-height: 30px;
+        cursor: pointer;
+        padding: 0 10px;
+    }
+    .operationPool {
+        position: relative;
+        width: 60%;
+        min-height: 300px;
+        padding: 10px 0;
+    }
+    .tagName:before {
+        content: '['
+    }
+    .tagName::after {
+        content: ']'
+    }
+    .bottomPartMid {
+        width: 8%;
+        margin-top: 60px;
+        p {
+        width: 100%;
+        text-align: center;
+        span {
+            cursor: pointer;
+            display: inline-block;
+            width: 30px;
+            height: 40px;
+            line-height: 40px;
+            margin: 0 auto;
+            border: 1px solid @icssBorder;
+            margin-bottom: 15px;
+            font-size: 18px;
+        }
+        }
+    }
+    .bottomPartRight {
+        float: left;
+        width: 40%;
+    }
+    .buttonBox {
+        width: 10%;
+        float: left;
+    }
+    .followButton {
+        margin-top: 20px;
+    }
+    .tagAttribute {
+       border: 1px solid @icssBorder;
+       height: 17px;
+       line-height: 17px;
+       padding: 3px 5px;
+       border-radius: 10px;
+    }
+    .inputBox {
+        width: 120px;
+        .el-input {
+            .el-input__inner {
+                height: 30px;
+                background: rgb(234, 231, 231);
+            }
+        }
+    }
+    .closeTagAttribute {
+        position: absolute;
+        top: -5px;
+        right: -5px;
+    }
+    .active {
+        color: #aBcdef;
+    }
+}
+</style>

+ 15 - 3
src/components/icss/LabelGroup.vue

@@ -108,7 +108,7 @@ export default {
         },
         getDropList() {
             return api.getDropList().then((res) =>{
-                console.log('dropList', res)
+                // console.log('dropList', res)
                 if(res.data.code === '0') {
                     this.Adscriptions = res.data.data[1];
                     this.tagTypes =  res.data.data[3];
@@ -147,8 +147,20 @@ export default {
         addTagGroup() {
             this.$router.push({path:'LT-YXSJWH-TJBQZ'})
         },
-        modifyTagGroup() {
-            console.log('修改产品线');
+        modifyTagGroup(row) {
+            api.detailsTag({id:row.id,sexType:row.sexType,age:row.age}).then((res)=>{
+                const {code,data,msg} = res.data;
+                if(code=='0'){
+                    const item = Object.assign({},row,data);
+                    console.log('item', item)
+                    this.$router.push({name:'AddLabelGroup',params:{isEdit:true,data:item}});
+                }else{
+                    this.$message({
+                    message: msg,
+                    type: 'warning'
+                    });
+                }
+            });
         },
         currentChange(next) {
             this.currentPage = next;

+ 42 - 7
src/components/icss/NoiseTemplate.vue

@@ -5,6 +5,7 @@
         @click="back"
       ></i> 标签组维护--添加标签组</div>
     <PubTagGroup
+      :editData="editData"
       @changeVal="changeVal"
       @changeSex="changeSex"
       @changeType="changeType"
@@ -12,7 +13,7 @@
       ref="submitForm"
     ></PubTagGroup>
     <div class="main">
-      <p class="title"> <i>*</i> 标签明细:</p>
+      <p v-if="dataPub.region1 != 6 && dataPub.region1 != 7 && dataPub.region1 != 8" class="title"> <i>*</i> 标签明细:</p>
       <PubTagPartDetail
         :pool="dataPub.tagPool"
         :type="dataPub.region1"
@@ -21,6 +22,7 @@
         :sexType="dataPub.region7"
         :tipLis="dataPub.tipLis"
         :choose="dataPub.region2 == 6?'multiple':'single'"
+        :options="editData.questionMapping"
         v-show="dataPub.region2 == 2 || dataPub.region2 == 6"
         @changeActionData="changeActionData"
       ></PubTagPartDetail>
@@ -29,17 +31,37 @@
         :pool="dataPub.tagPool" 
         :type="dataPub.region1"
         :sexType="dataPub.region7"
+        :options="editData.questionMapping"
         @changeActionData="changeActionData"
         >
       </SymptomTagGroup>
+      <InspactTagGroup 
+        v-if="dataPub.region2 == 7" 
+        :pool="dataPub.tagPool" 
+        :type="dataPub.region1"
+        :sexType="dataPub.region7"
+        :options="editData.questionMapping"
+        @changeActionData="changeActionData"
+        >
+      </InspactTagGroup>
       <BloodPressTagGroup 
         v-if="dataPub.region2 == 3" 
         :pool="dataPub.tagPool" 
         :type="dataPub.region1"
         :sexType="dataPub.region7"
+        :options="editData.questionMapping"
         @changeActionData="changeActionData"
         >
       </BloodPressTagGroup>
+      <SymptomPush
+        v-if="dataPub.region2 == 11" 
+        :pool="dataPub.tagPool" 
+        :type="dataPub.region1"
+        :sexType="dataPub.region7"
+        :options="editData.questionMapping"
+         @changeActionData="changeActionData"
+      >
+      </SymptomPush>
       <el-form
         v-if="dataPub.region2 == 2"
         class="order"
@@ -80,7 +102,9 @@
 import PubTagGroup from './PubTagGroup';
 import PubTagPartDetail from './PubTagPartDetail';
 import SymptomTagGroup from './SymptomTagGroup';
+import InspactTagGroup from './InspactTagGroup';
 import BloodPressTagGroup from './BloodPressTagGroup';
+import SymptomPush from './SymptomPush';
 import api from '@api/icss.js';
 import utils from '@api/utils.js';
 
@@ -89,6 +113,7 @@ export default {
   data() {
     return {
       dataPub: {},      //公用组件传的值都在这
+      editData:{},                    //编辑数据
       form: {
         currentOrder: '0',     //标签成文顺序
       },
@@ -100,6 +125,13 @@ export default {
       sendIds: [[], [], [], [], [], []],           //标签明细右侧操作数据
     }
   },
+  beforeMount:function(){
+    const {isEdit,data} = this.$route.params;
+    if(isEdit){
+      this.editData = data;
+      // console.log('回读数据', this.editData)
+    }
+  },
   computed: {
     newSign() {
       return this.dataPub.region2;
@@ -116,13 +148,13 @@ export default {
     back() { this.$router.go(-1) },
     changeVal(val) {    //子组件数据改变传递到父组件
       this.dataPub = val
-      console.log('公用组件传的值都在这', val)
+      // console.log('公用组件传的值都在这', val)
     },
     changeSex(sex) {       //性别改变,清空标签明细
-      console.log(sex)
+      // console.log(sex)
     },
     changeType(type) {        //填写单类型改变,标签明细左侧更新,右侧清空
-      console.log(type)
+      // console.log(type)
     },
     changeActionData(arr) {          //标签明细右侧数据id
       this.sendIds = arr
@@ -132,20 +164,21 @@ export default {
     },
     validatePass() {      //验证成功回调,调取接口
       //仍需验证标签明细是否选择
-      if (JSON.stringify(this.sendIds) == '[[],[],[],[],[],[]]') {
+      let type = this.dataPub.region1;
+      if (JSON.stringify(this.sendIds) == '[[],[],[],[],[],[]]' && type != 6 && type != 7 && type != 8) {
         this.$message({
           message: '请选择标签明细',
           type: 'warning'
         });
         return;
       }
-
       let detailLis = utils.dataRecombination(this.sendIds, this.dataPub.region2)
       let param = {
         "questionWrapper": {
           "controlType": 0,                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
-          "id": "",                                    //新增id置
+          "id": this.editData.id || '',                //新增id
           "type": this.dataPub.region1,                //标签归属
+          // "itemType":0,                                //0:是症状,1:不是症状
           "tagType": this.dataPub.region2,             //标签类型
           "tagName": this.dataPub.region3,             //系统名称
           "name": this.dataPub.region4,                //界面名称
@@ -204,6 +237,8 @@ export default {
     PubTagPartDetail,
     SymptomTagGroup,
     BloodPressTagGroup,
+    SymptomPush,
+    InspactTagGroup,
   }
 }
 </script>

+ 55 - 40
src/components/icss/PubTagGroup.vue

@@ -13,6 +13,7 @@
       >
         <span class="changeTips">改变归属后,标签明细将会恢复到默认状态</span>
         <el-select
+          :disabled="!!editData.id"
           v-model="form.region1"
           placeholder="请选择归属"
           @change="(e)=>readyChangeSelect(e,1)"
@@ -31,7 +32,7 @@
       >
         <span class="changeTips">改变类型后,标签明细将会恢复到默认状态</span>
         <el-select
-          :disabled="!form.region1"
+          :disabled="!!editData.id || !form.region1"
           v-model="form.region2"
           placeholder="请选择填写单类型"
           @change="(e)=>readyChangeSelect(e,2)"
@@ -44,6 +45,30 @@
           ></el-option>
         </el-select>
       </el-form-item>
+      <el-form-item
+        label="性别:"
+        prop="region7"
+      >
+        <span class="changeTips">改变性别后,标签明细将会恢复到默认状态</span>
+        <el-select
+          v-model="form.region7"
+          :disabled="!!editData.id || !form.region1 || form.region2 == 11"
+          @change="(e)=>readyChangeSelect(e,3)"
+        >
+          <el-option
+            label="通用"
+            value="3"
+          ></el-option>
+          <el-option
+            label="男"
+            value="1"
+          ></el-option>
+          <el-option
+            label="女"
+            value="2"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item
         label="标签系统名称:"
         prop="region3"
@@ -98,30 +123,6 @@
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item
-        label="性别:"
-        prop="region7"
-      >
-        <span class="changeTips">改变性别后,标签明细将会恢复到默认状态</span>
-        <el-select
-          v-model="form.region7"
-          :disabled="!form.region1 || form.region2 == 11"
-          @change="(e)=>readyChangeSelect(e,3)"
-        >
-          <el-option
-            label="通用"
-            value="3"
-          ></el-option>
-          <el-option
-            label="男"
-            value="1"
-          ></el-option>
-          <el-option
-            label="女"
-            value="2"
-          ></el-option>
-        </el-select>
-      </el-form-item>
       <el-form-item
         label="年龄:"
         prop="region8"
@@ -164,6 +165,7 @@
 </template>
 <script>
 import api from '@api/icss.js';
+import utils from '@api/utils.js';
 /**
  * titlePar 顶部显示左(有默认值可不填)
  * titleSub  顶部显示右(有默认值可不填)
@@ -187,9 +189,15 @@ import api from '@api/icss.js';
 
 
 export default {
+  props:['editData'],
   data() {
     var validatePass2 = (rule, value, callback) => {
-        this.validateSystomName(value,callback)
+        const editData = this.$props.editData;
+        if(editData.id && value == editData.tagName){ //修改系统名称没变就不再校验
+          callback();    
+        }else{
+          this.validateSystomName(value,callback)
+        }
     };
     return {
       form: {
@@ -211,7 +219,7 @@ export default {
       labelTypesMaps: {       //// 归属和填写单类型限制
         '1':['2','3','4','11'],
         '3':['4','6'],
-        '4':[,'2','3'],
+        '4':['2','3'],
         '5':['7'],
         '6':['9'],
         '7':['9'],
@@ -273,6 +281,12 @@ export default {
     },
   },
   mounted() {
+    const editData = this.$props.editData;
+    if(editData.id){
+      const trans = utils.transformKeys(editData);
+      // console.log('editData1', editData)
+      this.form = Object.assign({},this.form,trans);
+    }
     this.$emit('submitForm', 'groups', false);
     this.getDropList();
     this.$emit('changeVal', this.form, false)
@@ -280,16 +294,16 @@ export default {
   watch: {
     newSex(nextVal, prevVal) {
       this.tmpSex = prevVal;
+      if (nextVal != prevVal || this.form.region2 == 2 || this.form.region2 == 6 || this.form.region2 == 7 || this.form.region2 == 9) {
+        this.searchTagList()
+      }
     },
     newType(nextVal, prevVal) {
       this.tmpOwn = prevVal;
-      if (nextVal != prevVal) {
-        this.searchTagList()
-      }
     },
     newSign(nextVal, prevVal) {
       this.tmpType = prevVal;
-      if (nextVal != prevVal && JSON.stringify(this.form.tagPool) != '[]' ) {
+      if (nextVal != prevVal || this.form.region2 == 2 || this.form.region2 == 6 || this.form.region2 == 7 || this.form.region2 == 9) {
         this.searchTagList()
       }
     },
@@ -302,18 +316,21 @@ export default {
           this.labelTypesList = res.data.data[2];
           this.form.order = res.data.data[5];
           this.form.tipLis = res.data.data[6];
-           this.Adscriptions = this.AdscriptionsList.filter(item => Object.keys(this.labelTypesMaps).indexOf(item.val) > -1)
+          this.labelTypes = this.labelTypesList;
+          // console.log('labelTypes', this.labelTypes)
+          this.Adscriptions = this.AdscriptionsList.filter(item => Object.keys(this.labelTypesMaps).indexOf(item.val) > -1);
         }
       })
     },
     searchTagList() {
       let region1 = this.form.region1, region2 = this.form.region2;
-      let param = {
+      let param1 = !!region2 ? api.getGroupParams(region2): {};
+      let param2 = {
         "type": region1,
-        "tagType": region2 == 2?[1]:(region2 == 6?[1,2,3,4,10]:[]),
-        "controlType":region2 == 2?[1,2]:[],
         "sexType": this.form.region7,
       }
+      let param = Object.assign(param1,param2)
+
       api.searchTagList(param).then((res) => {
         if (res.data.code === '0') {
           this.form.tagPool = res.data.data
@@ -324,8 +341,9 @@ export default {
       if(this.form.region3.trim() == ''){ return }
       let param = {
         "existName": this.form.region3,
-        "tagType":this.form.region2.split(''),
-        "type": this.form.region1
+        "tagType":this.form.region2.split(''),       
+        "type": this.form.region1,
+        "notTagType":[8],        //去掉文字标签查重
       }
       api.validateSystomName(param).then((res) => {
         if (res.data.code === '0') {
@@ -347,15 +365,12 @@ export default {
     changeSex(data) {   //改变性别清空数据
       this.$emit('changeVal', this.form, false)
       this.$emit('changeSex', data, false)
-      this.searchTagList()
     },
     readyChangeSelect(tmpData,type) {
       if(type === 1) {
         this.form.region2 = '';
         this.labelTypes = this.labelTypesList.filter(item => this.labelTypesMaps[tmpData].indexOf(item.val) > -1)
-        
       }
-      console.log(tmpData)
       this.changeSex(tmpData);
       // if(type == 3){
       //   this.form.region7 = this.tmpSex;

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

@@ -123,6 +123,10 @@ export default {
       default: 'single',      //multiple 多选 single 单选
       type: String
     },
+    options: {
+        default: () => [],
+        type: Array
+    }
   },
   data() {
     return {
@@ -142,8 +146,40 @@ export default {
       notIds:[],               //去重IDs
       multipleItem:[],         //右侧选中的单条标签
       currentTipLis:[],         //右侧选中的标签提示
+      tmpNum:0,
     }
   },
+  mounted(){
+    this.$nextTick(()=>{
+      let tagList = this.options;
+      if(tagList.length > 0){
+        let tmpArr = [[],[],[],[],[],[]];
+        this.tmpNum = 1
+        if(tagList[0].formPosition == 1){
+          tagList.map((val,idx)=>{
+            if(this.sign == 2) {     //杂音修改
+                tmpArr[idx].push(val)
+            }else{       //既往史修改
+              tmpArr[idx] = val.questionMapping
+            }
+          })
+        }else{
+          tagList.map((val,idx)=>{
+            if(this.sign == 2) {     //杂音修改
+                tmpArr[idx+1].push(val)
+            }else{       //既往史修改
+              tmpArr[idx+1] = val.questionMapping
+            }
+          })
+        }
+        
+        this.poolDetailList = tmpArr
+        this.poolDetailListAll = Array.prototype.concat.apply([],this.poolDetailList);     //二维转一维
+        this.searchTagList()
+        this.getPoolDetailListTips();
+      }
+    })
+  },
   watch: {
     pool(newVal, preVal) {
       this.currentPool = newVal
@@ -155,19 +191,19 @@ export default {
     },
     sexType(newVal, preVal) {
       if (newVal != preVal) {
-        if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
+        if (JSON.stringify(newVal) != JSON.stringify(preVal) && this.tmpNum != 1) {
           this.clearData()
         }
       }
     },
     sign(newVal, preVal) {
-      if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
+      if (JSON.stringify(newVal) != JSON.stringify(preVal) && this.tmpNum != 1) {
         this.clearData()
       }
     },
     type(newVal, preVal) {
-      if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
-        this.clearData()
+      if (JSON.stringify(newVal) != JSON.stringify(preVal) && this.tmpNum != 1) {
+        // this.clearData()
       }
     },
     searchVal(newVal, preVal){
@@ -195,11 +231,14 @@ export default {
     },
     selectTagOne(e,id,n){
       e.stopPropagation()
+      if(this.activePartSon != n){
+        this.multipleItem = []
+      }
       this.activePartSon = n
       this.activePart = -1
       this.selectArr = [false, false, false, false, false, false]
       this.poolDetailListAll = Array.prototype.concat.apply([],this.poolDetailList);     //二维转一维
-      if(utils.filterArr(this.multipleItem,id,2)){
+      if(utils.filterArr(this.multipleItem,id,2)){     //选中的有没有单列的小项,有去掉
         let tmpArr = utils.filterArr(this.multipleItem,id,1);
         this.multipleItem = tmpArr;
       }else{
@@ -294,14 +333,16 @@ export default {
         ids.push(value.id)
       })
       this.notIds = ids;
-      let param = {
+      
+      let param1 = !!this.sign ? api.getGroupParams(this.sign): {};
+      let param2 = {
         "tagName": this.searchVal || '',
         "type": this.type,
         "notIds": this.notIds,
-        "tagType": this.sign == 2?[1]:(this.sign == 6?[1,2,3,4,10]:[]),
-        "controlType":this.sign == 2?[1,2]:[],
         "sexType": this.sexType,
       }
+      let param = Object.assign(param1,param2)
+
       api.searchTagList(param).then((res) => {
         if (res.data.code === '0') {
           this.currentPool = res.data.data
@@ -387,7 +428,7 @@ export default {
             tmpArr.push(res.data.data[idStr]);
             this.selectArr.map((flg,idx)=>{         //判断右侧有没有选中
               if(flg){    //有选中
-                if(idx == 0 && res.data.data[idStr].questionDetailList && res.data.data[idStr].questionDetailList.length > 1){
+                if(idx == 0 && res.data.data[idStr].questionDetailList && res.data.data[idStr].questionDetailList.length != 1){
                   this.$message({
                     showClose: true,
                     message: '添加的数据有误',
@@ -396,7 +437,7 @@ export default {
                   return;
                 }
                 let ids = [];
-                this.poolDetailList[idx] = tmpArr;
+                this.poolDetailList[idx] = tmpArr;     //单选的数据
                 this.poolDetailListAll = Array.prototype.concat.apply([],this.poolDetailList);     //二维转一维
                 this.searchTagList();
                 this.getPoolDetailListTips();
@@ -417,6 +458,7 @@ export default {
               }
               this.currentLis = [];       //左侧选中数据清空
             })
+            // console.log('单选的数据',this.poolDetailList)
           }else{           //判断是多选
             let num = 0,tmpArr = [];
             this.currentLis.map((id)=>{

+ 351 - 0
src/components/icss/SymptomPush.vue

@@ -0,0 +1,351 @@
+<template>
+    <div class="symptomPushWrapper clearfix">
+    <div class="symptomPushBottomPartLeft">
+      <p class="symptomPushPoolTitle">标签池</p>
+      <div class="symptomPushPool">
+        <el-input
+          placeholder="请输入搜索内容"
+          v-model="searchVal"
+        >
+            <i
+                slot="prefix"
+                class="el-input__icon el-icon-search"
+            ></i>
+        </el-input>
+        <ul class="symptomPushTagList symptomPushTagPool">
+            <li v-for="(item, index) in leftTagsList"
+                class = "symptomPushTagItem"
+                :key='item.id'
+                :title="'[ '+item.tagName+' ]'"
+                :style="getStyle(item)?styles:null"
+                @click='selectLeftTag(item, index, $event)'
+            >
+                <p class="symptomPushTagName ellipsis" >{{item.tagName}} </p>
+            </li>
+        </ul>
+      </div>
+    </div>
+    <div class="symptomPushBottomPartMid fl">
+        <p><span class="el-icon-arrow-right" @click="toRightList"></span></p>
+        <p><span class="el-icon-arrow-left" @click="toLeftList"></span></p>
+    </div>
+    <div class="symptomPushBottomPartRight ">
+      <p class="symptomPushPoolTitle">操作界面:</p>
+      <ul v-for="(item, index) in rightTagsList" 
+            :key="index"    
+            class="symptomPushTagList symptomPushOperationPool"
+            :class="index === 1 ? 'symptomPushOperationPoolPush':'' "
+            :style="currentSelectIndex === index?styles:null"
+            @click="SelectList(index)"
+      >
+             
+            <li v-if="index===1" class = "symptomPushTagItemPushBox">   
+                <p class = "symptomPushTagItemPush" v-if="index===1">此处放置推送模块</p>
+            </li>
+            <li 
+                v-for="(it) in item.questionDetailList"
+                :key = "it.id"
+                class = "symptomPushTagItem">   
+                {{it.name}}
+            </li>
+        </ul>
+    </div>
+  </div>
+</template>
+<script>
+import api from '@api/icss.js';
+import utils from '@api/utils.js';
+
+export default {
+    name: "SymptomPush",
+    props: {
+        pool: {
+            default: () => [],
+            type: Array
+        },
+        type: {
+            default: '',
+            type: String
+        },
+        sexType: {
+            default: '',
+            type: String
+        },
+        options: {
+            default: () => [],
+            type: Array
+        }
+    },
+    data() {
+        return {
+            leftTagsList: [],
+            selectLeftTagId: '',
+            rightTagsList: [{}, {}],
+            currentSelectIndex: -1,
+            searchVal: '',
+            styles:{
+                background:'#eae7e7'
+            },
+        }
+    },
+    mounted() {
+        // this.rightTagsList = this.options
+        // let newArr = []
+        // for (let i = 0; i < this.rightTagsList2.length; i++) {
+        //     if(this.rightTagsList2[i].tagType == 8) {
+        //         newArr.push({ text: this.rightTagsList2[i].tagName ,type:'input' ,id: i+',,,'})
+        //     } else {
+        //         if(i === 0 ) {
+        //             newArr.push({ text: '' ,type:'input' ,id: i+',,,'})
+        //         }
+        //         newArr.push(this.rightTagsList2[i])
+        //         if(!this.rightTagsList2[i+1] || this.rightTagsList2[i+1]&&this.rightTagsList2[i+1].tagType != 8) {
+        //             newArr.push({ text: '' ,type:'input' ,id: i+',,,,'})
+        //         }
+        //     }
+        // }
+        // this.rightTagsList2 = newArr
+        console.log('this.options',this.options)
+        if(this.options.length) {
+            this.rightTagsList = this.options
+            this.$emit('changeActionData',this.rightTagsList, false);
+        }
+        this.searchTagList()
+        // this.leftTagsList = this.pool
+        // console.log('TAGPOOL', this.pool)
+    },
+    watch: {
+        pool(newVal, preVal) {
+            if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
+                this.leftTagsList = newVal
+            }
+        },
+        searchVal(newVal, preVal){
+            if(newVal.trim() == ''){
+                this.searchTagList()
+            }else if(newVal.trim() != preVal.trim()){
+                this.searchTagList()
+            }
+        },
+        sexType(newVal, preVal) {
+           
+        },
+
+        
+    },
+    methods: {
+        selectLeftTag(tag, index, e) {
+            let isFull = true
+            for(let i = 0; i < this.rightTagsList.length; i++) {
+                if(Object.keys(this.rightTagsList[i]).length === 0) {
+                    isFull = false
+                    break;
+                }
+            }
+            if (isFull && this.currentSelectIndex === -1) {
+                return
+            }
+           this.selectLeftTagId = tag
+           console.log(this.selectLeftTagId)
+        },
+        
+        getStyle(item){       //左侧选中状态
+            return item.id == this.selectLeftTagId.id
+        },
+        
+        toLeftList() {
+            if(this.currentSelectIndex === -1) {
+                return
+            }
+            this.rightTagsList.splice(this.currentSelectIndex, 1, { })
+            this.selectLeftTagId = {}
+            this.searchTagList()
+            this.$emit('changeActionData',this.rightTagsList, false);
+        },
+        toRightList() {
+            
+            if(this.currentSelectIndex === -1) {
+                let fillIndex = -1
+                for(let i = 0; i < this.rightTagsList.length; i++) {
+                    if(Object.keys(this.rightTagsList[i]).length === 0) {
+                        fillIndex = i
+                        break
+                     }
+                
+                }
+                if(fillIndex === 0) {
+                    this.getRighDetailsTag(fillIndex)
+                } else if (fillIndex === 1) {
+                    this.getRighDetailsTag(fillIndex)
+                }
+                
+            }
+            
+            
+           
+        },
+        searchTagList() {
+            let notIds = []
+            for (let i = 0; i < this.rightTagsList.length; i++) {
+                if(this.rightTagsList[i].id) {
+                    notIds.push(this.rightTagsList[i].id)
+                }
+                
+            }
+            let param = {
+                "tagName": this.searchVal,
+                "tagType": [1],
+                "controlType": [1,2,99],
+                "type": this.type || '',
+                "notIds": notIds,
+                "sexType": this.sexType,
+
+            }
+            api.searchTagList(param).then((res) => {
+                if (res.data.code === '0') {
+                    this.leftTagsList = res.data.data
+                }
+            })
+           
+        },
+        getRighDetailsTag(fillIndex) {
+            let param = {
+                // "age": 0,
+                "id":  this.selectLeftTagId.id,
+                // "sexType": 3
+            }
+             api.detailsTag(param).then((res) =>{
+                //  if (res.data.code === '0') {
+                //      this.selectLeftTagId = res.data.data
+                //      if(this.currentSelectIndex !== -1) {
+                //         console.log('this.selectLeftTagId',this.selectLeftTagId)
+                //         //    this.rightTagsList[this.currentSelectIndex] = this.selectLeftTagId;
+                //         this.rightTagsList.splice(this.currentSelectIndex, 1, this.selectLeftTagId)
+                //     } else {
+                //         console.log(55656,this.selectLeftTagId)
+                //         for(let i = 0; i < this.rightTagsList.length; i++) {
+                //             if(Object.keys(this.rightTagsList[i]).length === 0) {
+                //                 this.rightTagsList.splice(i, 1, this.selectLeftTagId)
+                //                 break;
+                //             }
+                //         }
+                //     }
+                //     this.searchTagList()
+                //     console.log('this.rightTagsList',this.rightTagsList)
+                //     this.$emit('changeActionData',this.rightTagsList, false);
+                //  }
+             })
+        },
+        SelectList(index) {
+            
+            this.currentSelectIndex = this.currentSelectIndex === index ? -1 : index;
+        }
+    }
+}
+</script>
+
+<style lang="less" >
+@import '../../less/common.less';
+.symptomPushWrapper {
+    .symptomPushBottomPartLeft {
+        width: 30%;
+        box-sizing: border-box;
+        float: left;
+    }
+    .symptomPushPoolTitle {
+        // border-bottom: 1px solid @icssBorder;
+        box-sizing: border-box;
+        margin-bottom: 20px;
+    }
+    .symptomPushPool {
+        // border:1px solid @icssBorder;
+    
+    }
+    .symptomPushSearch {
+        width: 100%;
+        border-bottom: 1px solid @icssBorder;
+        box-sizing: border-box;
+        height: 30px;
+    }
+    .symptomPushTagList {
+        border: 1px solid @icssBorder;
+    }
+    .symptomPushTagPool {
+        height: 300px;
+        overflow-y: auto;
+
+    }
+    .symptomPushOperationPoolPush {
+        border: 1px dashed @icssBorder;
+    }
+    .symptomPushTagItem {
+        position: relative;
+        line-height: 30px;
+        cursor: pointer;
+        padding: 0 10px;
+    }
+    .symptomPushOperationPool {
+        position: relative;
+        width: 30%;
+        min-height: 300px;
+        padding: 10px 0;
+        float: left;
+    }
+    .symptomPushTagName:before {
+        content: '['
+    }
+    .symptomPushTagName::after {
+        content: ']'
+    }
+    .symptomPushBottomPartMid {
+        width: 8%;
+        margin-top: 60px;
+        p {
+        width: 100%;
+        text-align: center;
+        span {
+            cursor: pointer;
+            display: inline-block;
+            width: 30px;
+            height: 40px;
+            line-height: 40px;
+            margin: 0 auto;
+            border: 1px solid @icssBorder;
+            margin-bottom: 15px;
+            font-size: 18px;
+        }
+        }
+    }
+    .symptomPushBottomPartRight {
+        float: left;
+        width: 60%;
+    }
+    .symptomPushButtonBox {
+        width: 10%;
+        float: left;
+    }
+    .symptomPushFollowButton {
+        margin-top: 20px;
+    }
+    .symptomPushInputBox {
+        width: 120px;
+        .el-input {
+            .el-input__inner {
+                height: 30px;
+                background: rgb(234, 231, 231);
+            }
+        }
+    }
+    .symptomPushTagItemPushBox {
+        text-align: center
+    }
+    .symptomPushTagItemPush {
+        display: inline-block;
+        padding: 5px 10px;
+    }
+
+    .active {
+        color: #aBcdef;
+    }
+}
+</style>

+ 43 - 13
src/components/icss/SymptomTagGroup.vue

@@ -83,6 +83,10 @@ export default {
             default: '',
             type: String
         },
+        options: {
+            default: () => [],
+            type: Array
+        }
     },
     data() {
         return {
@@ -98,15 +102,42 @@ export default {
         }
     },
     mounted() {
-        this.searchTagList()
+      this.$nextTick(()=>{
+        let tagList = this.options;
+        if(tagList.length > 0){
+          console.log(99)
+          this.rightTagsList2 = this.options
+          let newArr = []
+          for (let i = 0; i < this.rightTagsList2.length; i++) {
+              if(this.rightTagsList2[i].tagType == 8) {
+                  newArr.push({ text: this.rightTagsList2[i].tagName ,type:'input' ,id: i+',,,'})
+              } else {
+                  if(i === 0 ) {
+                      newArr.push({ text: '' ,type:'input' ,id: i+',,,'})
+                  }
+                  newArr.push(this.rightTagsList2[i])
+                  if(!this.rightTagsList2[i+1] || this.rightTagsList2[i+1]&&this.rightTagsList2[i+1].tagType != 8) {
+                      newArr.push({ text: '' ,type:'input' ,id: i+',,,,'})
+                  }
+              }
+          }
+          this.rightTagsList2 = newArr
+          this.$emit('changeActionData',this.rightTagsList2, false);
+          this.searchTagList()
+        }
+      })
+        
         // this.leftTagsList = this.pool
         // console.log('TAGPOOL', this.pool)
     },
     watch: {
         pool(newVal, preVal) {
-            if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
-                this.leftTagsList = newVal
-            }
+             this.leftTagsList = newVal
+            // console.log('sdsadasdasdasdas11111111', newVal,'asds',preVal)
+            // if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
+            //     console.log('sdsadasdasdasdas')
+            //     //  this.leftTagsList = newVal
+            // }
         },
         searchVal(newVal, preVal){
             if(newVal.trim() == ''){
@@ -124,7 +155,7 @@ export default {
                     this.rightTagsList2 = [];
                     this.selectRightTagsList = [];
                     this.searchVal = '';
-                     this.searchTagList();
+                    //  this.searchTagList();
                 }
             }
         },
@@ -147,7 +178,6 @@ export default {
             } else {
                 this.selectRightTagsList.push(tag);
             }
-            
         },
         isHasTag(item, arr) {
             for ( let i = 0; i <arr.length; i++) {
@@ -229,21 +259,21 @@ export default {
         },
         searchTagList() {
             let notIds = []
-            for (let i = 0; i < this.rightTagsList.length; i++) {
-                if(this.rightTagsList[i].id) {
-                    notIds.push(this.rightTagsList[i].id)
+            for (let i = 0; i < this.rightTagsList2.length; i++) {
+                if(this.rightTagsList2[i].id) {
+                    notIds.push(this.rightTagsList2[i].id)
                 }
                 
             }
-            let param = {
+            
+            let param1 = api.getGroupParams(4);            
+            let param2 = {
                 "tagName": this.searchVal,
-                "tagType": [1, 2],
-                "controlType": [],
                 "type": this.type || '',
                 "notIds": notIds,
                 "sexType": this.sexType,
-
             }
+            let param = Object.assign(param1,param2)
             api.searchTagList(param).then((res) => {
                 if (res.data.code === '0') {
                     this.leftTagsList = res.data.data

+ 1 - 1
src/routes.js

@@ -137,7 +137,7 @@ export default [
       {path: 'LT-CPXGL-TJCPX', component: AddProductLine,name:'editProductLine'},
       {path: 'LT-GRZX/CHANGE',component: ChangePwd}, //个人中心--修改密码
       {path: 'LT-YXSJWH-BQZWH',component: LabelGroup}, //医学数据维护--标签组维护
-      {path:'LT-YXSJWH-TJBQZ',component:NoiseTemplate},     //医学数据维护--标签组维护--添加标签组
+      {path:'LT-YXSJWH-TJBQZ',component:NoiseTemplate,name:'AddLabelGroup'},     //医学数据维护--标签组维护--添加标签组
       {path:'LT-YXSJWH-KSWH',component:DeptInfo},     //医学数据维护--科室维护
       {path:'LT-YXSJWH-KSXQ',component:DeptInfoDetail,name:'DeptInfoDetail'},     //科室维护--详情
       {path:'LT-YXSJWH-TJKS',component:AddDeptInfo,name:'AddDeptInfo'},     //科室维护--添加