Ver código fonte

Squashed commit of the following:

commit 7aec89ad1af7201574105b99f0636c44e91a69e2
Author: zhouna <zhouna@zjlantone.com>
Date:   Wed Feb 13 16:32:54 2019 +0800

    禁用传值布尔型

commit 66fc0760cfcd217eba0577f8bfe2e68f3998448b
Author: zhouna <zhouna@zjlantone.com>
Date:   Wed Feb 13 16:28:50 2019 +0800

    修改标签归属、类型和性别不可改

commit 85d3a2321a8fbf021d3c8dd0185944dd1b8b4fd8
Author: zhouna <zhouna@zjlantone.com>
Date:   Wed Feb 13 16:22:22 2019 +0800

    单选标签修改

commit be7cbda8c07e9408ad26925b7cd6115fe5c3070e
Author: zhouna <zhouna@zjlantone.com>
Date:   Tue Feb 12 11:20:22 2019 +0800

    文本类型修改,单选类型修改未完

commit 2eb59396d0ba2af2245c2655ee3f9c0880f3ea79
Author: zhouna <zhouna@zjlantone.com>
Date:   Mon Feb 11 18:10:47 2019 +0800

    单选维护属性tag显示

commit 0321a75eab8f276a9d3ec826bd2dcc8f635902e0
Author: zhouna <zhouna@zjlantone.com>
Date:   Mon Feb 11 17:35:26 2019 +0800

    输入框类型维护

commit 082c91207349481dd5bbc13de511d46d212d83ea
Author: zhouna <zhouna@zjlantone.com>
Date:   Mon Feb 11 16:37:36 2019 +0800

    单选维护bug修改

commit 6e9b2f35040b7f082ba078cdab9634b6b2b9f6cf
Author: zhouna <zhouna@zjlantone.com>
Date:   Mon Feb 11 14:53:29 2019 +0800

    单选标签属性选项置灰

commit e344e25fd4fdfebf07d172e0e91cf35ad1b1835b
Merge: 7b95e36 d8f8c68
Author: zhouna <zhouna@zjlantone.com>
Date:   Sun Feb 3 10:04:46 2019 +0800

    Merge branch 'dev' into independentTag

commit d8f8c684797c688a85bdb6c5d50f54765e0d6cd4
Merge: e2dd153 ba5e9e6
Author: zhouna <zhouna@zjlantone.com>
Date:   Sun Feb 3 09:48:48 2019 +0800

    Merge remote-tracking branch 'origin/dev' into dev

commit e2dd1536cc4df81687c2f3634b7fb6582eba3ffe
Author: zhouna <zhouna@zjlantone.com>
Date:   Sat Feb 2 17:30:26 2019 +0800

    单选维护

commit 6eb57b7e5ccefc107775d6e9d7677deb50d3342b
Author: zhouna <zhouna@zjlantone.com>
Date:   Fri Feb 1 17:57:41 2019 +0800

    独立标签

commit 7b95e36f5bd527c1e23d3ff62b66184bb42b3743
Merge: 6568234 c1ca617
Author: zhouna <zhouna@zjlantone.com>
Date:   Fri Feb 1 15:29:27 2019 +0800

    Merge remote-tracking branch 'origin/depart' into independentTag

commit ba5e9e68617c1696e27de52e6deb48b39b47c9af
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 15:35:33 2019 +0800

    修改顶部标题样式

commit 60307c58ad8b6f06092ce19d0550c31b7c89c60d
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 15:18:06 2019 +0800

    修改横铺统一(血压)为每个后面添加一个输入框

commit 77d88846790cf2166999d602a6890d6ef4422190
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 15:06:13 2019 +0800

    修改左右箭头位置

commit 714eba80c300c481857d0df5285a86944c4469e0
Merge: 969688f 3fe9e97
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 15:01:58 2019 +0800

    Merge branch 'test' of http://192.168.2.236:10080/zhouna/platformFront into test

commit 969688f82f0f869e5eafdc40263054c83cf0093d
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 15:01:49 2019 +0800

    修改标签属性删除

commit 3fe9e97cc952b42e09c6564fa5ccf9fccf060501
Author: Luolei <16657115156@163.com>
Date:   Thu Jan 31 14:34:44 2019 +0800

    保存忘打开了

commit 6568234d9e55ae3d7b0de1c6739d8627ded2e14a
Merge: 58d39fc 3f48de8
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 13:24:55 2019 +0800

    Merge branch 'dev' into test

commit 3f48de89a4a27030ce0315be08d7afde6ec2a4b8
Merge: bf43109 025ac3d
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 13:24:36 2019 +0800

    Merge branch 'dev2/zhangxc' into dev

commit 025ac3d1380cd268e40ce856f873f1b92c27c9f7
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 13:22:17 2019 +0800

    修改操作池样式

commit 58d39fcdde20bc640cae05942b8eaea3a4e9f4b6
Author: Luolei <16657115156@163.com>
Date:   Thu Jan 31 13:18:04 2019 +0800

    去掉既往史下面的提示

commit 2964171fec51793f979776c433cede0594777d96
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 11:13:21 2019 +0800

    修改性别清除标签明细

commit bf43109c5f7a9da797f3256e5dcd178b1cb2c437
Author: Luolei <16657115156@163.com>
Date:   Thu Jan 31 10:41:53 2019 +0800

    不区分单选多选

commit 775e19e7edca1934ede0f43f42116bcefe29f5c6
Author: Luolei <16657115156@163.com>
Date:   Thu Jan 31 10:13:39 2019 +0800

    去掉弹窗

commit cdd3894959797fd53fa8fb26bf46e1d886d2d177
Merge: e0ae7ed 393d9e4
Author: Luolei <16657115156@163.com>
Date:   Thu Jan 31 10:11:23 2019 +0800

    Merge branch 'dev' of http://192.168.2.236:10080/zhouna/platformFront into dev

commit e0ae7ed97452c8e17f9517ab4b466daccdecab1e
Author: Luolei <16657115156@163.com>
Date:   Thu Jan 31 10:11:13 2019 +0800

    添加参数,默认值修改

commit 393d9e47dbbcc5293b3cb96f11024f30678fcaa7
Author: zhangxc <zhangxc@zjlantone.com>
Date:   Thu Jan 31 09:53:55 2019 +0800

    修改样式
liucf 6 anos atrás
pai
commit
1fdbcf52b4

+ 1 - 0
src/api/config.js

@@ -87,6 +87,7 @@ export default {
     'getTagList': 'api/icssman/questionInfo/list', //标签列表
     'searchTagList': 'api/icssman/questionInfo/index', //标签池检索
     'detailsTagList': 'api/icssman/questionInfo/getByIds', //根据多个标签ID返回标签内容
+    'detailsTag':'api/icssman/questionInfo/getById',      //根据标签ID返回标签内容
     'getDeptInfo': 'api/icssman/deptInfo/getDeptInfo', //科室维护
     'getDeptInfoDetials': 'api/icssman/deptInfo/getDeptInfoDetials', //科室维护-详情
     'deleteDeptInfo': 'api/icssman/deptInfo/deleteDeptInfo', //科室维护-删除

+ 3 - 0
src/api/icss.js

@@ -18,6 +18,9 @@ export default {
     detailsTagList(param) {
         return axios.post(urls.detailsTagList, param)
     },
+      detailsTag(param) {
+        return axios.post(urls.detailsTag, param)
+      },
     getDeptInfo(param) {//科室维护
         return axios.post(urls.getDeptInfo, param)
     },

+ 42 - 0
src/api/utils.js

@@ -146,5 +146,47 @@ export default {
       }
     }
     return tmpArr;
+  },
+  /**
+   * 单选数据转换提交
+   * **/
+  simpleOptionData(data){
+    let arr = data.map((it,i)=>{
+      let code = '';
+      if(it.isNone){
+        code = '2';
+      }
+      if(it.isBan){
+        code = '1';
+      }
+      return {name:it.name,defaultSelect:it.defaultSelect?'1':'0',code,remark:'单选项-'+it.name}
+    });
+    return arr;
+  },
+  /**
+   *将提交的参数转换成对应的组件form中的key
+   *
+   */
+  transformKeys(data){
+    const maps = {
+      "controlType": 'region2',                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
+      "id": "id",                                    //新增id置空
+      "type": 'region1',                //标签归属
+      "tagName": 'region3',             //系统名称
+      "name": 'region4',                //界面名称
+      "joint": 'region5',               //标签间的连接符
+      "subType": 'region6',   	         //0:可以,1:不可以(当项目检索)
+      "sexType": 'region7',             //1:男,2:女,3:通用
+      "ageBegin": 'region8',       		 //最小年龄
+      "ageEnd": 'region9',              //最大年龄
+      "labelPrefix":'prefix',                                 //前缀
+      "labelSuffix":'suffix'                                 //后缀
+    };
+    let obj = {};
+    for(let it in maps){
+      obj[maps[it]] = typeof data[it]=='number'?data[it]+'':data[it];
+    }
+    return obj;
   }
 }
+

+ 197 - 0
src/components/icss/AddIndeptLabel.vue

@@ -0,0 +1,197 @@
+<template>
+    <div class="NoiseTemplateWrapper TemplateWrapper">
+        <div class="groupTitle"><i
+                class="el-icon-back"
+                @click="back"
+        ></i> 独立标签维护--添加独立标签</div>
+        <PubIndeptTag
+                @changeVal="changeVal"
+                @changeSex="changeSex"
+                @changeType="changeType"
+                @validatePass="validatePass"
+                :editData="editData"
+                ref="submitForm"
+        ></PubIndeptTag>
+        <div class="main">
+            <p class="title" v-if="dataPub.region2==1||dataPub.region2==2||dataPub.region2==99"> <i>*</i> 标签明细:</p>
+            <SingleSelect v-if="dataPub.region2==1" :type="dataPub.region2" @pushValues="pushValues" :options="editData.questionDetailList"></SingleSelect>
+            <div class="btn">
+                <el-button
+                        type="primary"
+                        @click="submitForm"
+                >确 定</el-button>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+  /**
+   * dataPub.region2  判断底部显示哪些
+   */
+  import PubIndeptTag from './PubIndeptTag';
+  import SingleSelect from './SingleSelect';
+  import api from '@api/icss.js';
+  import utils from '@api/utils.js';
+
+  export default {
+    name: 'NoiseTemplateWrapper',
+    data() {
+      return {
+        dataPub: {},      //公用组件传的值都在这
+        itemsTypes:[1,2,99],            //有明细的类型
+        editData:{},                    //编辑数据
+        form: {
+          currentOrder: '0',     //标签成文顺序
+        },
+        rules: {
+          currentOrder: [
+            { required: true, message: '选择标签成文顺序', trigger: 'change' }
+          ]
+        },
+        options: [],           //标签明细右侧操作数据
+      }
+    },
+    beforeMount:function(){
+      const {isEdit,data} = this.$route.params;
+      if(isEdit){
+        this.editData = data;
+      }
+    },
+    computed: {
+      newSign() {
+        return this.dataPub.region2;
+      },
+    },
+    watch: {
+      newSign(nextVal, prevVal) {
+        if (nextVal != prevVal) {
+          this.form.currentOrder = '0'
+        }
+      },
+    },
+    methods: {
+      back() { this.$router.go(-1) },
+      changeVal(val) {    //子组件数据改变传递到父组件
+        this.dataPub = val
+        //console.log('公用组件传的值都在这', val)
+      },
+      changeSex(sex) {       //性别改变,清空标签明细
+        //console.log(sex)
+      },
+      changeType(type) {        //填写单类型改变,标签明细左侧更新,右侧清空
+        //console.log(type)
+      },
+      pushValues(its){
+        this.options = its;
+      },
+      submitForm() {      // 调用子组件的方法验证公用部分
+        this.$refs.submitForm.submitForm('groups');
+      },
+      validatePass() {      //验证成功回调,调取接口
+        //仍需验证标签明细是否选择
+        if (this.itemsTypes.includes(+this.dataPub.region2)&&this.options.length==0) {
+          this.$message({
+            message: '至少填一个选项',
+            type: 'warning'
+          });
+          return;
+        }
+        const {isEdit,data} = this.$route.params;
+        let param = {
+          "questionWrapper": {
+            "controlType": this.dataPub.region2,                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
+            "id": isEdit?data.id:'',                                    //新增id置空
+            "type": this.dataPub.region1,                //标签归属
+            "tagType": 1,             //标签类型
+            "tagName": this.dataPub.region3,             //系统名称
+            "name": this.dataPub.region4,                //界面名称
+            "joint": this.dataPub.region5,               //标签间的连接符
+            "subType": this.dataPub.region6,   	         //0:可以,1:不可以(当项目检索)
+            "sexType": this.dataPub.region7,             //1:男,2:女,3:通用
+            "ageBegin": this.dataPub.region8,       		 //最小年龄
+            "ageEnd": this.dataPub.region9,              //最大年龄
+            "textGenerate": this.form.currentOrder,      //成文顺序 默认0
+            "copyType": this.dataPub.region2 == 6 ? this.dataPub.region10 : (this.dataPub.region2 == 3 ? this.dataPub.region11 : ''),                               //是否复制
+            "showAdd": 0,                                //是否显示加号血压
+            "showInfo": 0,
+            "labelPrefix":this.dataPub.prefix,                                 //前缀
+            "labelSuffix":this.dataPub.suffix,                                 //后缀
+            "questionDetails": this.options,
+            "questionMappings": []       //映射关系,
+          }
+        };
+        this.showSaveDialog(param);
+      },
+      showSaveDialog(param) {
+        this.showConfirmDialog('是否保存该标签?', () => {
+          api.saveOrUpdate(param).then((res) => {
+            if (res.data.code === '0') {
+              this.warning(res.data.msg || '保存成功', 'success');
+              this.$router.push("/admin/LT-YXSJWH-DLLXBQWH");
+            } else {
+              this.warning(res.data.msg)
+            }
+          }).catch((err) => {
+            this.warning(err);
+          })
+        });
+      },
+      showConfirmDialog(msg, resolve) {
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      warning(msg, type) {
+        this.$message({
+          showClose: true,
+          message: msg,
+          type: type || 'warning'
+        })
+      },
+    },
+    components: {
+      PubIndeptTag,
+      SingleSelect
+    }
+  }
+</script>
+<style lang="less">
+    @import "../../less/common.less";
+    .NoiseTemplateWrapper {
+    .groupTitle {
+        background-color: #fff;
+        height: 40px;
+        line-height: 40px;
+        padding-left: 20px;
+    }
+    .main {
+        background-color: #fff;
+        margin: 0 20px 20px;
+        padding: 20px;
+        border-top: 1px solid @icssBorder;
+        box-sizing: border-box;
+        font-size: 14px;
+        color: #606266;
+    .title {
+        margin-bottom: 20px;
+    i {
+        color: #f56c6c;
+    }
+    }
+    }
+    .btn {
+        text-align: right;
+    }
+    .order {
+        margin-bottom: 20px;
+    .el-input__inner {
+        line-height: 30px;
+        height: 30px;
+    }
+    }
+    }
+</style>
+

+ 42 - 18
src/components/icss/BloodPressTagGroup.vue

@@ -25,8 +25,8 @@
       </div>
     </div>
     <div class="bottomPartMid fl">
-      <p><span class="el-icon-arrow-left" @click="toLeftList"></span></p>
-      <p><span class="el-icon-arrow-right" @click="toRightList"></span></p>
+        <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 ">
       <p class="poolTitle">操作池</p>
@@ -66,6 +66,10 @@ export default {
             default: '',
             type: String
         },
+        sexType: {
+            default: '',
+            type: String
+        },
     },
     data() {
         return {
@@ -98,6 +102,19 @@ export default {
                 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();
+                }
+            }
+        },
         
         
     },
@@ -177,9 +194,11 @@ export default {
             this.rightTagsList.push(...this.selectLeftTagsList);
             let textItem = { text: '' ,type:'input' }
             for (let i = 0; i < this.selectLeftTagsList.length; i++) { //选中标签每个前后加入输入框
-                let textItem1 = JSON.parse(JSON.stringify(textItem))
-                textItem1.id = this.selectLeftTagsList[i].id + ',,'
-                this.rightTagsList2.push(textItem1)
+                if(this.rightTagsList2.length === 0) {
+                    let textItem1 = JSON.parse(JSON.stringify(textItem))
+                    textItem1.id = this.selectLeftTagsList[i].id + ',,'
+                    this.rightTagsList2.push(textItem1)
+                }
                 this.rightTagsList2.push(this.selectLeftTagsList[i]);
                 let textItem2 = JSON.parse(JSON.stringify(textItem))
                     textItem2.id = this.selectLeftTagsList[i].id + ','
@@ -207,6 +226,7 @@ export default {
                 "controlType": [],
                 "type": this.type || '',
                 "notIds": notIds,
+                "sexType": this.sexType,
 
             }
             api.searchTagList(param).then((res) => {
@@ -250,21 +270,22 @@ export default {
         height: 30px;
     }
     .tagList {
-        padding: 10px 10px;
         height: 300px;
         overflow-y: auto;
         border: 1px solid @icssBorder;
     }
     .tagItem {
-        line-height: 20px;
+        line-height: 30px;
+        padding: 0px 10px;
+
     }
     .operationPool {
         position: relative;
         width: 85%;
     }
     .tagName {
-        height: 40px;
-        line-height: 40px;
+        height: 30px;
+        line-height: 30px;
     }
     .tagName:before {
         content: '['
@@ -273,20 +294,23 @@ export default {
         content: ']'
     }
     .bottomPartMid {
-        position: relative;
-        width: 10%;
-        top: 150px;
-    p {
+        width: 8%;
+        margin-top: 60px;
+        p {
         width: 100%;
         text-align: center;
         span {
+            cursor: pointer;
             display: inline-block;
-            width: 50px;
-            height: 30px;
-            line-height: 30px;
+            width: 30px;
+            height: 40px;
+            line-height: 40px;
             margin: 0 auto;
+            border: 1px solid @icssBorder;
+            margin-bottom: 15px;
+            font-size: 18px;
+        }
         }
-    }
     }
     .bottomPartRight {
         float: left;
@@ -296,7 +320,7 @@ export default {
         margin-top: 20px;
     }
     .operationItem {
-        float: left;
+        display: inline-block;
         line-height: 40px;
         margin: 0 5px 10px 0;
     }

+ 233 - 0
src/components/icss/IndeptLabel.vue

@@ -0,0 +1,233 @@
+<template>
+    <div>
+        <crumbs title="独立标签维护" style="min-width: 1085px">
+            <el-form :inline="true" class="demo-form-inline">
+                <!--<el-form-item label="标签类型:">
+                    <el-select size="mini" v-model="filter.tagType[0]" placeholder="标签类型" clearable>
+                        <el-option v-for="item in tagTypes" :label="item.name" :value="item.val" :key="item.id"></el-option>
+                    </el-select>
+                </el-form-item>-->
+                <el-form-item label="标签归属:">
+                    <el-select size="mini" v-model="filter.tagAdscription" @change="getValue"  placeholder="标签归属" clearable>
+                        <el-option v-for="item in Adscriptions" :label="item.name" :value="item.val" :key="item.id" ></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="标签系统名称:">
+                    <el-input size="mini" v-model="filter.tagSysName" placeholder="标签系统名称" clearable></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                    <el-button size="mini" type="primary" @click="addIndeptTag">添加独立标签</el-button>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table
+                    :data="list"
+                    border
+                    style="width: 100%">
+                <el-table-column
+                        type="index"
+                        :index = 'indexMethod'
+                        label="编号"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        prop="gmtModified"
+                        label="操作时间"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        prop="typeCn"
+                        label="标签归属">
+                </el-table-column>
+                <el-table-column
+                        prop="controlTypeCn"
+                        label="标签类型">
+                </el-table-column>
+                <el-table-column
+                        prop="tagName"
+                        label="标签系统名称">
+                </el-table-column>
+                <el-table-column
+                        prop="modifier"
+                        label="操作人">
+                </el-table-column>
+                <el-table-column
+                        prop="operate"
+                        label="操作">
+                    <template slot-scope="scope">
+                        <el-button  @click="modifyIndeptTag(scope.row)" type="text" size="small">修改</el-button>
+                        <el-button @click="showDelDialog(scope.row.id)" class="delete" type="text" size="small">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+
+        </div>
+        <el-pagination v-if="total>pageSize"
+                       :current-page.sync="currentPage"
+                       @current-change="currentChange"
+                       background
+                       :page-size="pageSize"
+                       layout="total,prev, pager, next, jumper"
+                       :total="total">
+        </el-pagination>
+    </div>
+</template>
+
+<script>
+  import api from '@api/icss.js';
+
+  export default {
+    name: 'tag-group',
+    data: function() {
+      return {
+        list: [],
+        tagTypes: [],
+        Adscriptions: [],
+        tagTypesList: [],
+        filter: {
+          tagType: [], //标签类型
+          tagAdscription: '', //标签归属
+          tagSysName: '', //标签系统名称
+        },
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+      }
+    },
+    created() {
+      this.getDropList().then(() => {
+        this.getDataList()
+      })
+
+    },
+    methods: {
+      getValue(val) {
+        console.log('changeVal', val, this.filter.tagAdscription)
+      },
+      getDropList() {
+        return api.getDropList().then((res) =>{
+          console.log('dropList', res)
+          if(res.data.code === '0') {
+            this.Adscriptions = res.data.data[1];
+            this.tagTypes =  res.data.data[6];
+            for (var i = 0; i < this.tagTypes.length; i++) {
+              this.tagTypesList.push(this.tagTypes[i].val)
+            }
+          }
+
+        })
+      },
+      getDataList() {
+        const param = this.getFilterItems();
+        console.log('param', param)
+        api.getTagList(param).then((res) => {
+          const list = res.data.data.records
+          for (var i = 0; i < list.length; i++) {
+            for (var j =  0; j < this.tagTypes.length; j++) {
+              if(list[i].tagType === this.tagTypes[j].val) {
+                list[i].tagTypeCn = this.tagTypes[j].name;
+              }
+            }
+            for (var z =  0; z < this.Adscriptions.length; z++) {
+              if(list[i].type === this.Adscriptions[z].val) {
+                list[i].typeCn = this.Adscriptions[z].name
+              }
+            }
+
+          }
+          this.list = list;
+          this.total = res.data.data.total;
+          console.log('tagGroup',res)
+        })
+      },
+      filterDatas() {
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      addIndeptTag() {
+        this.$router.push({path:'LT-YXSJWH-TJDLBQ'})
+      },
+      modifyIndeptTag(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);
+            this.$router.push({name:'AddIndeptLabel',params:{isEdit:true,data:item}});
+          }else{
+            this.$message({
+              message: msg,
+              type: 'warning'
+            });
+          }
+        });
+        //this.$router.push({name:'AddIndeptLabel',params:{isEdit:true,data:row}});
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        this.getDataList();
+        // if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+        //     this.list = this.cacheData[next];
+        // } else {
+        //     this.getDataList();
+        // }
+      },
+      getFilterItems() {
+        const param = {
+          tagTypeList: [1],
+          current: this.currentPage,
+          size: this.pageSize,
+          type: this.filter.tagAdscription,
+          tagName: this.filter.tagSysName
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      getTagType(val) {
+        return val
+      },
+      warning(msg,type){
+        this.$message({
+          showClose: true,
+          message:msg,
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
+        this.$alert(msg, '提示', {
+          confirmButtonText: '确定',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {});
+      },
+      showDelDialog(id){
+        this.showConfirmDialog('是否删除该标签?',()=>{
+          api.deleteTagGroup({ids:id}).then((res)=>{
+            if(res.data.code=='0'){
+              this.getDataList();
+              this.warning(res.data.msg || '操作成功','success');
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      }
+    }
+  }
+</script>
+
+
+<style lang="less">
+    .delete{
+        color: red
+    }
+    .delete:hover {
+        color: red;
+    }
+</style>

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

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <crumbs title="标签组维护" style="min-width: 1085px">
+        <crumbs title="标签组维护" style="min-width: 980px">
             <el-form :inline="true" class="demo-form-inline">
                 <el-form-item label="标签类型:">
                     <el-select size="mini" v-model="filter.tagType[0]" placeholder="标签类型" clearable>

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

@@ -28,6 +28,7 @@
         v-if="dataPub.region2 == 4" 
         :pool="dataPub.tagPool" 
         :type="dataPub.region1"
+        :sexType="dataPub.region7"
         @changeActionData="changeActionData"
         >
       </SymptomTagGroup>
@@ -35,6 +36,7 @@
         v-if="dataPub.region2 == 3" 
         :pool="dataPub.tagPool" 
         :type="dataPub.region1"
+        :sexType="dataPub.region7"
         @changeActionData="changeActionData"
         >
       </BloodPressTagGroup>
@@ -160,7 +162,7 @@ export default {
           "questionMappings": detailLis       //映射关系,
         }
       }
-      // this.showDelDialog(param)
+      this.showDelDialog(param)
     },
     showDelDialog(param) {
       this.showConfirmDialog('是否保存该标签组?', () => {

+ 389 - 0
src/components/icss/PubIndeptTag.vue

@@ -0,0 +1,389 @@
+<template>
+    <div class="PubTagGroupWrapper">
+        <el-form
+                class="groups"
+                :rules="rules"
+                ref="groups"
+                :model="form"
+                label-width="150px"
+        >
+            <el-form-item
+                    label="选择归属:"
+                    prop="region1"
+            >
+                <span class="changeTips">改变归属后,标签明细将会恢复到默认状态</span>
+                <el-select
+                        v-model="form.region1"
+                        placeholder="请选择归属"
+                        :disabled="!!editData.id"
+                        @change="(e)=>readyChangeSelect(e,1)"
+                >
+                    <el-option
+                            v-for="item in Adscriptions"
+                            :label="item.name"
+                            :value="item.val"
+                            :key="item.id"
+                    ></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item
+                    label="选择填写单类型:"
+                    prop="region2"
+            >
+                <span class="changeTips">改变类型后,标签明细将会恢复到默认状态</span>
+                <el-select
+                        v-model="form.region2"
+                        placeholder="请选择填写单类型"
+                        :disabled="!!editData.id"
+                        @change="(e)=>readyChangeSelect(e,2)"
+                >
+                    <el-option
+                            v-for="item in labelTypes"
+                            :label="item.name"
+                            :value="item.val"
+                            :key="item.id"
+                    ></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item
+                    label="标签系统名称:"
+                    prop="region3"
+            >
+                <el-input
+                        v-model="form.region3"
+                        maxLength="30"
+                        placeholder="请输入标签系统名称"
+                        @change="sendData"
+                ></el-input>
+            </el-form-item>
+            <el-form-item
+                    label="标签界面名称:"
+                    prop="region4"
+            >
+                <el-input
+                        v-model="form.region4"
+                        maxLength="30"
+                        placeholder="请输入标签界面名称"
+                        @change="sendData"
+                ></el-input>
+            </el-form-item>
+            <el-form-item
+                    label="标签前后缀:"
+                    class="fix-inp"
+                    prop="region12"
+                    v-if="form.region2==6"
+            >
+                <el-col :span="10">
+                <el-input v-model="form.prefix"
+                        maxLength="30"
+                        placeholder="前缀"
+                        @change="sendData"
+                ></el-input></el-col>
+                <el-col :span="4">标签</el-col>
+                <el-col :span="10">
+                <el-input
+                    v-model="form.suffix"
+                    maxLength="30"
+                    placeholder="后缀"
+                    @change="sendData"
+                ></el-input></el-col>
+            </el-form-item>
+            <el-form-item
+                    label="选择项之间链接:"
+                    prop="region5"
+            >
+                <el-input
+                        v-model="form.region5"
+                        maxLength="30"
+                        placeholder="请输入选择项之间链接"
+                        @change="sendData"
+                ></el-input>
+            </el-form-item>
+            <el-form-item
+                    label="能否当项目检索:"
+                    prop="region6"
+            >
+                <el-select
+                        v-model="form.region6"
+                        @change="sendData"
+                >
+                    <el-option
+                            label="不可以"
+                            value="1"
+                    ></el-option>
+                    <el-option
+                            label="可以"
+                            value="0"
+                    ></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"
+                        @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"
+                    class="ages"
+            >
+                <el-input
+                        v-model.number="form.region8"
+                        ref="valage1"
+                        @input="sendData"
+                ></el-input> ~
+                <el-input
+                        v-model.number="form.region9"
+                        ref="valage2"
+                        @input="sendData"
+                ></el-input>
+            </el-form-item>
+        </el-form>
+    </div>
+</template>
+<script>
+  import api from '@api/icss.js';
+  import utils from '@api/utils.js';
+  /**
+   * titlePar 顶部显示左(有默认值可不填)
+   * titleSub  顶部显示右(有默认值可不填)
+   * form 当前页面传到父组件的数据(region10,region11暂时不用)
+   * submitForm 基本信息验证必填项
+   * validatePass 基本信息必填项验证成功回调
+   * 父组件根据form.region2改变底部组件操作项
+   * searchTagList 函数的参数根据type变化
+   */
+
+  export default {
+    props:['editData'],
+    data() {
+      var validatePass2 = (rule, value, callback) => {
+        this.validateSystomName(value,callback)
+      };
+      return {
+        form: {
+          region1: '',    //归属
+          region2: '',     //填写单类型
+          region3: '',      //系统名称
+          region4: '',      //界面名称
+          region5: '',      //选项之间的链接
+          region6: '1',      //是否可以检索
+          region7: '3',       //性别
+          region8: '0',          //最小年龄
+          region9: '200',         //最大年龄
+          region12:'',
+          prefix:'',            //前缀
+          suffix:'',            //后缀
+          tipLis:[],           //提示列表
+        },
+        rules: {
+          region1: [
+            { required: true, message: '请选择归属', trigger: 'change' }
+          ],
+          region2: [
+            { required: true, message: '请选择填写单类型', trigger: 'change' }
+          ],
+          region3: [
+            { required: true, message: '请输入标签系统名称', trigger: 'change' },
+            { validator: validatePass2, trigger: 'blur' },
+          ],
+          region4: [
+            { required: true, message: '请输入标签界面名称', trigger: 'change' }
+          ],
+          region6: [
+            { required: true, message: '请输入能否当项目检索', trigger: 'change' }
+          ],
+          region7: [
+            { required: true, message: '请选择性别', trigger: 'change' }
+          ],
+          region8: [
+            { required: true, message: '请输入最小年龄', trigger: 'change' }
+          ],
+          region9: [
+            { required: true, message: '请输入最大年龄', trigger: 'change' }
+          ]
+        },
+        tmpSex: '通用',
+        tmpOwn: '',
+        tmpType: '',
+        Adscriptions: [],
+        labelTypes: [],
+        labelTypesList: [],
+        type:'',
+        systom:null,      //标签系统名称存在与否
+      }
+    },
+    computed: {
+      newSex() {
+        return this.form.region7;
+      },
+      newType() {
+        return this.form.region1;
+      },
+      newSign() {
+        return this.form.region2;
+      },
+    },
+    mounted() {
+      //编辑时赋值
+      const editData = this.$props.editData;
+      if(editData.id){
+        const trans = utils.transformKeys(editData);
+        this.form = Object.assign({},this.form,trans);
+      }
+
+      this.$emit('submitForm', 'groups', false);
+      this.getDropList();
+      this.$emit('changeVal', this.form, false);
+
+    },
+    watch: {
+      newSex(nextVal, prevVal) {
+        this.tmpSex = prevVal;
+      }
+    },
+    methods: {
+      getDropList() {
+        return api.getDropList().then((res) => {
+          if (res.data.code === '0') {
+            this.Adscriptions = res.data.data[1];
+            this.labelTypes = res.data.data[6];
+            this.form.tipLis = res.data.data[6];
+          }
+        })
+      },
+      validateSystomName(name,callback) {
+        if(this.form.region3.trim() == ''){ return }
+        let param = {
+          "existName": this.form.region3,
+          "type": this.form.region1,
+          "notIds":[this.$props.editData.id]
+        };
+        api.validateSystomName(param).then((res) => {
+          if (res.data.code === '0') {
+            if(res.data.data && res.data.data.length != 0){
+              callback(new Error('该系统名称已存在'));
+            }else{
+              callback();
+            }
+          }
+        })
+      },
+      sendData() {
+        this.$emit('changeVal', this.form, false)
+      },
+      changeType(type){
+        this.$emit('changeVal', this.form, false);
+        this.$emit('changeType', type, false)
+      },
+      changeSex(data) {   //改变性别清空数据
+        this.$emit('changeVal', this.form, false);
+        this.$emit('changeSex', data, false);
+      },
+      readyChangeSelect(tmpData,type) {
+        //console.log(tmpData)
+        this.changeSex(tmpData);
+      },
+      submitForm(formName) {
+        this.$refs[formName].validate((valid) => {
+          if (valid) {
+            this.$emit('validatePass', this.form, false)
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      },
+      warning(msg, type) {
+        this.$message({
+          showClose: true,
+          message: msg,
+          type: type || 'warning'
+        })
+      },
+    }
+  }
+</script>
+<style lang="less">
+    .fix-inp .el-col .el-input__inner{
+        width: 100%;
+        display: inline-block;
+    }
+    .fix-inp .el-col-4{
+        text-align: center;
+    }
+    .groups {
+        background-color: #fff;
+        padding: 20px;
+        margin: 20px 20px -20px 20px;
+    .el-form-item__content,
+    .el-input__inner {
+        height: 30px;
+        line-height: 30px;
+        width: 200px;
+    }
+    .el-form-item {
+        margin-bottom: 20px;
+    }
+    .el-form-item__error {
+        top: 28px;
+    }
+    .el-form-item__label {
+        line-height: 30px;
+        text-align: left;
+    }
+    .el-input__icon {
+        line-height: 30px;
+    }
+    .ages .el-input {
+        display: inline-block;
+        width: auto;
+    .el-input__inner {
+        width: 40px;
+        padding: 0 5px;
+    }
+
+    .el-input__inner::-webkit-outer-spin-button,
+    .el-input__inner::-webkit-inner-spin-button {
+        -webkit-appearance: none;
+    }
+
+    .el-input__inner[type="number"] {
+        -moz-appearance: textfield;
+    }
+    }
+    .el-message-box__btns .el-button--default {
+        color: #606266 !important;
+    }
+    .cancelColor {
+        color: #22ccc8 !important;
+    }
+    .changeTips {
+        position: absolute;
+        left: 220px;
+        min-width: 300px;
+        color: #ea7777;
+        font-size: 12px;
+    }
+    }
+</style>
+

+ 2 - 1
src/components/icss/PubTagGroup.vue

@@ -172,7 +172,7 @@ export default {
         region3: '',      //系统名称
         region4: '',      //界面名称
         region5: '',      //选项之间的链接
-        region6: '1',      //是否可以检索
+        region6: '0',      //是否可以检索
         region7: '3',       //性别
         region8: '0',          //最小年龄
         region9: '200',         //最大年龄
@@ -288,6 +288,7 @@ export default {
       if(this.form.region3.trim() == ''){ return }
       let param = {
         "existName": this.form.region3,
+        "tagType":this.form.region2 == 2?[1]:(this.form.region2 == 6?[1,2,3,4,10]:[]),
         "type": this.form.region1
       }
       api.validateSystomName(param).then((res) => {

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

@@ -132,7 +132,7 @@ export default {
       selectArr: [false, false, false, false, false, false],   //右侧选中part状态
 
       styles:{background:'#eae7e7'},                       //选中单条样式
-      styleR:{color:'red !important'},
+      styleR:{background:'#eae7e7 !important'},
       searchVal: '',           //搜索值
       currentPool: [],         //标签池数据
       currentLis:[],           //选中单条ID组合(多选)
@@ -234,8 +234,9 @@ export default {
         });
         return;
       }
+      this.getRightListDes();
       if(this.choose == 'multiple'){
-        this.getRightListDes();
+        // this.getRightListDes();
       }
     },
     toLeftPool(){      //往左返回数据
@@ -287,7 +288,11 @@ export default {
         }
       }
       this.$emit('changeActionData',poolDetailListIds, false);
-      this.poolDetailListTips = poolDetailListTips
+      if(this.choose == 'multiple'){
+        this.poolDetailListTips = [[],[],[],[],[],[]]
+      }else{
+        this.poolDetailListTips = poolDetailListTips
+      }
       this.poolDetailListIds = poolDetailListIds
     },
     getStyle(id){       //左侧选中状态
@@ -359,7 +364,7 @@ export default {
               if(JSON.stringify(this.poolDetailList[k]) != '[]'){
                 ++plus2
                 if(plus2 == 5){     //右侧数据填满了
-                  alert('请选择需要修改的模块')
+                  // alert('请选择需要修改的模块')
                   return;
                 }
               }
@@ -371,7 +376,7 @@ export default {
         let tmpIds = [];
         tmpIds.push(id);
         this.currentLis = tmpIds;
-        this.getRightListDes();
+        // this.getRightListDes();
       }else{                                //多选
         let tmpIds = this.currentLis;
         if(utils.filterArr(tmpIds,id,2)){

+ 164 - 0
src/components/icss/SingleSelect.vue

@@ -0,0 +1,164 @@
+<template>
+    <div class="single-container">
+        <el-form>
+            <div class="operation-row">
+                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="1+i" v-model="rows[i].defaultSelect" @change="emitValues(i,'hasDefault',rows[i].defaultSelect)">
+                    <el-checkbox-button :label="i" :disabled="hasNone==i||hasBan==i||(hasDefault!=-1&&hasDefault!=i)">默认选中</el-checkbox-button>
+                </el-checkbox-group>
+                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="2+i" v-model="rows[i].isNone" @change="emitValues(i,'hasNone',rows[i].isNone)">
+                    <el-checkbox-button :label="i" :disabled="hasDefault==i||hasBan==i||(hasNone!=-1&&hasNone!=i)">同“无”类型</el-checkbox-button>
+                </el-checkbox-group>
+                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="3+i" v-model="rows[i].isBan" @change="emitValues(i,'hasBan',rows[i].isBan)">
+                    <el-checkbox-button :label="i" :disabled="hasDefault==i||hasNone==i||(hasBan!=-1&&hasBan!=i)">同“伴”类型</el-checkbox-button>
+                </el-checkbox-group>
+                <el-button type="danger" size="small" class="del" @click="delRow">删除</el-button>
+            </div>
+            <div class="main-area">
+                <el-col v-for="(it,i) in rows" :key="i">
+                    <el-input v-model="rows[i].name"
+                              v-bind:class="{select:focusOn==i}"
+                              @focus="selectRow(i)"
+                              @blur="emitValues"></el-input>
+                    <el-tag type="info" size="mini" v-if="showTag(it)">{{showTag(it)}}</el-tag>
+                </el-col>
+                <el-button @click="addRow">+</el-button>
+            </div>
+        </el-form>
+    </div>
+</template>
+<style lang="less">
+    @import "../../less/common.less";
+    .el-checkbox-button--small .el-checkbox-button__inner{
+        font-size: 14px;
+    }
+    .el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{
+        border-color: @disableColor;
+        border-left-color: @disableColor;
+        color: @disableColor;
+    }
+    .el-checkbox-button:last-child .el-checkbox-button__inner{
+        border-radius: 3px;
+        border-color: @adminBase;
+        color: @adminBase;
+        margin-right: 15px;
+    }
+    .el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{
+        background-color:@adminBase;
+        border-left-color:@adminBase;
+        color:#fff;
+    }
+    .el-checkbox-group{
+        display: inline-block;
+    }
+    .operation-row{
+        margin-left:150px;
+        .del{
+           margin-left: 150px;
+        }
+    }
+    .main-area{
+        width: 290px;
+        margin:20px 150px;
+        .el-tag{
+            margin-left: 10px;
+        }
+        .el-col .el-input {
+            width: 200px;
+            display: inline-block;
+            &.select{
+                input{
+                    border-color: @adminBase;
+                }
+            }
+        }
+        .el-button{
+            width: 200px;
+        }
+    }
+</style>
+<script>
+  import utils from '@api/utils.js';
+    export default {
+      props:['type','options'],
+      data(){
+        return {
+          maps:{isBan:'同“伴”',isNone:'同“无”',defaultSelect:'默认选中'},
+          rows:[{name:'',defaultSelect:'',isBan:'',isNone:''},{name:'',defaultSelect:'',isBan:'',isNone:''},{name:'',defaultSelect:'',isBan:'',isNone:''},{name:'',defaultSelect:'',isBan:'',isNone:''}],
+          focusOn:-1
+        }
+      },
+      mounted(){
+        const {options} = this.$props;
+        const arr = options.map((it)=>{
+          return {name:it.name,defaultSelect:it.defaultSelect=='1'?true:false,isBan:it.code==1?true:'',isNone:it.code==2?true:''};
+        });
+        this.rows = arr;
+        console.log(this.$props.options)
+      },
+      computed:{
+        showTag:function(){
+          return function(it){
+            let name = Object.keys(this.maps).find((item)=>{
+              return it[item];
+            });
+            return this.maps[name];
+          }
+        },
+        hasDefault:function(){               //是否有选项默认选中
+          let index =this.rows.findIndex((it)=>{
+            return it.defaultSelect;
+          });
+          return index;
+        },
+        hasNone:function(){                 //是否有选项同无
+          let index =this.rows.findIndex((it)=>{
+            return it.isNone;
+          });
+          return index;
+        },
+        hasBan:function(){                  //是否有选项同伴
+          let index =this.rows.findIndex((it)=>{
+            return it.isBan;
+          });
+          return index;
+        }
+      },
+      methods:{
+        addRow(){
+          this.rows.push({name:'',defaultSelect:'',isBan:'',isNone:''});
+        },
+        selectRow(index){
+          this.focusOn = index;
+
+        },
+        emitValues(i,type,flag){
+          if(typeof i =='number'&&this.focusOn == -1){
+            this.$message({
+              message: '请先选择要操作的行',
+              type: 'warning'
+            });
+            return;
+          }
+          const items = utils.simpleOptionData(this.rows);
+          this.$emit('pushValues',items);
+        },
+        delRow(){
+          if(this.focusOn==-1){
+            this.$message({
+              message: '请先选择要删除的行',
+              type: 'warning'
+            });
+            return;
+          }
+          this.$alert('确定要删除该行吗?', '提示', {
+            confirmButtonText: '确定',
+            type: 'warning'
+          }).then(() => {
+            this.rows.splice(this.focusOn,1);
+            this.focusOn = -1;
+            this.emitValues();
+          }).catch(() => {});
+        }
+      }
+    }
+</script>

+ 67 - 20
src/components/icss/SymptomTagGroup.vue

@@ -25,8 +25,8 @@
       </div>
     </div>
     <div class="bottomPartMid fl">
-      <p><span class="el-icon-arrow-left" @click="toLeftList"></span></p>
-      <p><span class="el-icon-arrow-right" @click="toRightList"></span></p>
+        <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 ">
       <p class="poolTitle">操作池</p>
@@ -37,7 +37,7 @@
                 :style="getStyle2(item)?styles:null"
                 @click='selectRightTag(item)'
             >   
-                <div>
+                <div class="inputBox">
                     <el-input
                         v-if="item.type === 'input'"
                         placeholder=""
@@ -47,8 +47,8 @@
                 </div>
                 <p v-if="item.tagName" class="tagName">{{item.tagName}} </p>
                 <div class="attributeBox">
-                    <p v-if="item.symptomType === 1" class="tagAttribute">跟主症状</p>
-                    <p v-if="item.symptomType === 2" class="tagAttribute">跟伴随症状</p>
+                    <p v-if="item.symptomType === 1" class="tagAttribute" @click.stop>跟主症状 <span @click="closeTagAttribute(item)" class="closeTagAttribute"><i class="el-icon-error"></i></span></p>
+                    <p v-if="item.symptomType === 2" class="tagAttribute" @click.stop>跟伴随症状<span  @click="closeTagAttribute(item)" class="closeTagAttribute"><i class="el-icon-error"></i></span></p>
                 </div>
             </li>
         </ul>
@@ -78,6 +78,10 @@ export default {
             default: '',
             type: String
         },
+        sexType: {
+            default: '',
+            type: String
+        },
     },
     data() {
         return {
@@ -110,7 +114,20 @@ export default {
                 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: {
@@ -223,6 +240,7 @@ export default {
                 "controlType": [],
                 "type": this.type || '',
                 "notIds": notIds,
+                "sexType": this.sexType,
 
             }
             api.searchTagList(param).then((res) => {
@@ -256,13 +274,21 @@ export default {
                 })
             }
             this.selectRightTagsList = []
+        },
+        closeTagAttribute(tag) {
+            this.rightTagsList2 = this.rightTagsList2.filter((item) =>{
+                    if(item.id === tag.id) {
+                        item.symptomType = 3
+                    }
+                    return item
+                })
         }
 
     }
 }
 </script>
 
-<style lang="less" scoped>
+<style lang="less" >
 @import '../../less/common.less';
 .symptomTagGroupWrapper {
     .bottomPartLeft {
@@ -286,7 +312,6 @@ export default {
         height: 30px;
     }
     .tagList {
-        padding: 10px 10px;
         border: 1px solid @icssBorder;
     }
     .tagPool {
@@ -297,16 +322,19 @@ export default {
     .attributeBox {
         position: absolute;
         right: -100px;
-        top: 10px;
+        top: 2px;
     }
     .tagItem {
         position: relative;
-        line-height: 40px;
+        line-height: 30px;
+        cursor: pointer;
+        padding: 0 10px;
     }
     .operationPool {
         position: relative;
         width: 60%;
         min-height: 300px;
+        padding: 10px 0;
     }
     .tagName:before {
         content: '['
@@ -315,20 +343,23 @@ export default {
         content: ']'
     }
     .bottomPartMid {
-        position: relative;
-        width: 10%;
-        top: 150px;
-    p {
+        width: 8%;
+        margin-top: 60px;
+        p {
         width: 100%;
         text-align: center;
         span {
+            cursor: pointer;
             display: inline-block;
-            width: 50px;
-            height: 30px;
-            line-height: 30px;
+            width: 30px;
+            height: 40px;
+            line-height: 40px;
             margin: 0 auto;
+            border: 1px solid @icssBorder;
+            margin-bottom: 15px;
+            font-size: 18px;
+        }
         }
-    }
     }
     .bottomPartRight {
         float: left;
@@ -343,8 +374,24 @@ export default {
     }
     .tagAttribute {
        border: 1px solid @icssBorder;
-       height: 20px;
-       line-height: 20px;
+       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;

+ 4 - 0
src/routes.js

@@ -34,6 +34,8 @@ import NoiseTemplate from '@components/icss/NoiseTemplate.vue';
 import DeptInfo from '@components/icss/DeptInfo.vue';//科室信息
 import DeptInfoDetail from '@components/icss/DeptInfoDetail.vue';//科室信息-详情
 import AddDeptInfo from '@components/icss/AddDeptInfo.vue';//科室信息-添加
+import IndeptLabel from '@components/icss/IndeptLabel.vue';//独立标签
+import AddIndeptLabel from '@components/icss/AddIndeptLabel.vue'//独立标签-添加
 
 export default [
   {
@@ -137,6 +139,8 @@ export default [
       {path:'LT-YXSJWH-KSWH',component:DeptInfo},     //医学数据维护--科室维护
       {path:'LT-YXSJWH-KSXQ',component:DeptInfoDetail,name:'DeptInfoDetail'},     //科室维护--详情
       {path:'LT-YXSJWH-TJKS',component:AddDeptInfo,name:'AddDeptInfo'},     //科室维护--添加
+      {path:'LT-YXSJWH-DLLXBQWH',component:IndeptLabel,name:'IndeptLabel'},     //独立标签维护--详情
+      {path:'LT-YXSJWH-TJDLBQ',component:AddIndeptLabel,name:'AddIndeptLabel'},     //独立标签维护--添加
     ]
   }
 ]