Forráskód Böngészése

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

liucf 6 éve
szülő
commit
85ecd1446b
35 módosított fájl, 4358 hozzáadás és 288 törlés
  1. 19 3
      src/api/config.js
  2. 57 6
      src/api/icss.js
  3. 1 0
      src/api/utils.js
  4. 425 0
      src/components/icss/AddChemicalAndCommonMapping.vue
  5. 370 0
      src/components/icss/AddChronicAndIndexRelation.vue
  6. 45 59
      src/components/icss/AddCommonSymptom.vue
  7. 463 0
      src/components/icss/AddDisAndScaleRelation.vue
  8. 7 6
      src/components/icss/AddIndeptLabel.vue
  9. 12 4
      src/components/icss/AddMedicalInfo.vue
  10. 11 3
      src/components/icss/AddMedicinePrompt.vue
  11. 11 6
      src/components/icss/AddPhysicalExamTemp.vue
  12. 1 1
      src/components/icss/AddSimilarName.vue
  13. 6 21
      src/components/icss/ChemicalAndCommonMapping.vue
  14. 198 0
      src/components/icss/ChronicAndIndexRelation.vue
  15. 474 0
      src/components/icss/ChronicDiseaseAdd.vue
  16. 196 0
      src/components/icss/ChronicDiseaseManage.vue
  17. 284 0
      src/components/icss/ChronicDiseaseManageAdd.vue
  18. 201 0
      src/components/icss/ChronicDiseaseStructureList.vue
  19. 3 3
      src/components/icss/CommonSymptom.vue
  20. 31 25
      src/components/icss/CommonTemplate.vue
  21. 256 0
      src/components/icss/DiagnosisList.vue
  22. 525 0
      src/components/icss/DiagnosisPubTag.vue
  23. 222 0
      src/components/icss/DiagnosisTemplate.vue
  24. 213 0
      src/components/icss/DisAndScaleRelation.vue
  25. 10 6
      src/components/icss/LabelGroup.vue
  26. 17 8
      src/components/icss/NoiseTemplate.vue
  27. 2 4
      src/components/icss/PromptDetail.vue
  28. 6 3
      src/components/icss/PubTagGroup.vue
  29. 159 67
      src/components/icss/PubTemplateGroup.vue
  30. 81 49
      src/components/icss/TemplateMaintenance.vue
  31. 24 10
      src/components/icss/TemplateMaintenanceWrap.vue
  32. BIN
      src/images/relation.png
  33. 0 1
      src/main.js
  34. 26 1
      src/routes.js
  35. 2 2
      vue.config.js

+ 19 - 3
src/api/config.js

@@ -136,7 +136,6 @@ export default {
     'getConceptKnowledgeList':'/api/knowledgeman/libraryDetail/getLibraryDetailList', //  术语静态知识列表
     'getConceptKnowledge':'/api/knowledgeman/Knowledge/getConceptKnowledge',//术语静态知识查询
     'getConceptInfo':'/api/knowledgeman/concept/getConceptInfo', //  搜索术语
-    'getAllConcept':'/api/knowledgeman/concept/getAllConcept', //  术语列表
     'versionInfo': 'api/icssman/versionInfo/getVersionInfoAlls', //版本信息
     'addVersInfo': 'api/icssman/versionInfo/saveVersionInfoAlls', //版本信息-添加
     'updateVersInfo': 'api/icssman/versionInfo/updateVersionInfoAlls', //版本信息-修改
@@ -159,7 +158,9 @@ export default {
     'getAllRelationType': 'api/knowledgeman/lexiconRelationship/getAllLexiconRelationship', //医学术语-关系维护-关系下拉
     'addRelationConcept': 'api/knowledgeman/relation/addRelationInfo', //医学术语-关系维护-添加
     'RelationUpload': 'api/knowledgeman/relation/relationInfoExcelIm', //医学术语-关系维护-导入
-    'getAllConcept': 'api/knowledgeman/concept/getAllConcept', //查询所有术语名称
+    'scaleContentStructure': 'api/icssman/scaleContent/list',  //量表结构维护 -- 列表
+    'getAllDeptAndDisInfo': 'api/icssman/moduleInfo/getAllDeptAndDisInfo',  //模板维护-获取科室和疾病所有信息
+    'queryEvaluationModulePages': 'api/icssman/evaluationModuleMapping/queryEvaluationModulePages',  //慢病管理评估维护 -- 列表
     'getMedicalInfoList': '/api/knowledgeman/medical/getMedicalInfoList', //医学术语--属性维护--属性列表
     'medicalInfoExcelIm': '/api/knowledgeman/medical/medicalInfoExcelIm', //医学术语--属性维护-术语医学属性excel文件导入
     'getMedicalInfoDetail': '/api/knowledgeman/medical/getMedicalInfoDetail', //医学术语--属性维护--属性详情
@@ -170,12 +171,27 @@ export default {
     'getAllBodypart': '/api/knowledgeman/bodypart/getAllBodypart',  //医学术语--获取所有部位
     'getAllDepts': '/api/knowledgeman/medical/getAllDepts',  //医学术语--获取所有科室
     'getLisMappingPage': '/api/icssman/lisMapping/getLisMappingPage', //医学数据-化验大小项与公表项维护-列表
-    'addLisMapping': '/api/icssman/lisMapping/addLisMapping',  //医学数据-化验大小项与公表项维护-新增
+    'saveLisMapping': '/api/icssman/lisMapping/saveLisMapping',  //医学数据-化验大小项与公表项维护-新增
     'delLisMappingById': '/api/icssman/lisMapping/delLisMappingById',  //医学数据-化验大小项与公表项维护-单个删除
     'delLisMappingByIds': '/api/icssman/lisMapping/delLisMappingByIds', //医学数据-化验大小项与公表项维护-批量删除
     'modifyLisMapping': '/api/icssman/lisMapping/modifyLisMapping',  //医学数据-化验大小项与公表项维护-修改
+    'hasLisMapping': '/api/icssman/lisMapping/hasLisMapping',  //医学数据-化验大小项与公表项维护-化验公表项映射是否已存在
     'getTypeList': 'api/knowledgeman/lexicon/getLexiconList', //术语类型-列表
     'addType': 'api/knowledgeman/lexicon/addLexicon', //术语类型-添加
+    'getAllLisConcept':'api/knowledgeman/concept/getAllLisConcept',  //医学数据-化验大小项与公表项维护-获取所有化验公表项
+    'queryIndexConfigPages':'api/icssman/indexConfig/queryIndexConfigPages',  //医学数据-慢病指标值关联维护-列表
+    'getIndexConfigLists':'api/icssman/indexConfig/getIndexConfigLists',  //医学数据-慢病指标值关联维护-获取慢病指标值关联
+    'cancelIndexConfigAlls':'api/icssman/indexConfig/cancelIndexConfigAlls',  //医学数据-慢病指标值关联维护-删除慢病指标值关联
+    'saveIndexConfigLists':'api/icssman/indexConfig/saveIndexConfigLists',  //医学数据-慢病指标值关联维护-添加关联
+    'updateIndexConfigList':'api/icssman/indexConfig/updateIndexConfigList',  //医学数据-慢病指标值关联维护-修改关联
+    'queryIndexConfigDiseaseNames':'api/icssman/indexConfig/queryIndexConfigDiseaseNames',  //医学数据-慢病指标值关联维护-慢病指标疾病标签查询
+    'getDisScaleAllInfo':'api/icssman/disScale/getDisScaleAllInfo',  //医学数据-诊断量表关联维护-列表
+    'addDisScaleInfo':'api/icssman/disScale/addDisScaleInfo',  //医学数据-诊断量表关联维护-添加和修改
+    'getDisScaleByDisId':'api/icssman/disScale/getDisScaleByDisId',  //医学数据-诊断量表关联维护-根据诊断id获取诊断量表关联信息(修改回读用)
+    'delDisScaleInfo':'api/icssman/disScale/delDisScaleInfo',  //医学数据-诊断量表关联维护-删除
+    'insertOrUpdate': 'api/icssman/scaleContent/insertOrUpdate',  //量表结构维护 -- 添加或者更新
+    'deleteScale': 'api/icssman/scaleContent/delete',  //量表结构维护 -- 删除
+    'getModuleType': 'api/icssman/moduleInfo/getModuleType',  //模板维护 -- 类型筛选
 	},
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 57 - 6
src/api/icss.js

@@ -250,9 +250,6 @@ export default {
     RelationUpload(param) {//关系维护-导入
         return axios.post(urls.RelationUpload, param)
     },
-    getAllConcept(param) {//查询所有术语名称
-        return axios.post(urls.getAllConcept, param)
-    },
     getMedicalInfoList(param) { //医学术语--属性维护--属性列表
         return axios.post(urls.getMedicalInfoList, param)
     },
@@ -277,14 +274,24 @@ export default {
     getAllBodypart(param) {
         return axios.post(urls.getAllBodypart, param)
     },
+
+    scaleContentStructure(param) {
+        return axios.post(urls.scaleContentStructure, param)
+    },
+    getAllDeptAndDisInfo() { //模板维护-获取科室和疾病所有信息
+        return axios.post(urls.getAllDeptAndDisInfo)
+    },
+    queryEvaluationModulePages(param) { 
+        return axios.post(urls.queryEvaluationModulePages,param)
+    },
     getAllDepts(param) {
         return axios.post(urls.getAllDepts, param)
     },
     getLisMappingPage(param) {  //医学数据-化验大小项与公表项维护-列表
         return axios.post(urls.getLisMappingPage, param)
     },
-    addLisMapping(param) {  //医学数据-化验大小项与公表项维护-新增
-        return axios.post(urls.addLisMapping, param)
+    saveLisMapping(param) {  //医学数据-化验大小项与公表项维护-新增
+        return axios.post(urls.saveLisMapping, param)
     },
     delLisMappingById(param) {  //医学数据-化验大小项与公表项维护-单个删除
         return axios.post(urls.delLisMappingById, param)
@@ -294,6 +301,9 @@ export default {
     },
     modifyLisMapping(param) {  //医学数据-化验大小项与公表项维护-修改
         return axios.post(urls.modifyLisMapping, param)
+    },
+    hasLisMapping(param) {  //医学数据-化验大小项与公表项维护-化验公表项映射是否已存在
+        return axios.post(urls.hasLisMapping, param)
     },
 	getTypeList(param) {//术语类型-列表
         return axios.post(urls.getTypeList, param)
@@ -301,5 +311,46 @@ export default {
     addType(param) {//术语类型-添加
         return axios.post(urls.addType, param)
     },
-
+    getAllLisConcept(param) {   //医学数据-化验大小项与公表项维护-获取所有化验公表项
+        return axios.post(urls.getAllLisConcept, param)
+    },
+    queryIndexConfigPages(param) {
+        return axios.post(urls.queryIndexConfigPages, param)    //医学数据-慢病指标值关联维护-列表
+    },
+    getIndexConfigLists(param) {
+        return axios.post(urls.getIndexConfigLists, param)    //医学数据-慢病指标值关联维护-获取慢病指标值关联
+    },
+    cancelIndexConfigAlls(param) {
+        return axios.post(urls.cancelIndexConfigAlls, param)    //医学数据-慢病指标值关联维护-删除慢病指标值关联
+    },
+    saveIndexConfigLists(param) {
+        return axios.post(urls.saveIndexConfigLists, param)    //医学数据-慢病指标值关联维护-添加关联
+    },
+    updateIndexConfigList(param) {
+        return axios.post(urls.updateIndexConfigList, param)    //医学数据-慢病指标值关联维护-修改关联
+    },
+    queryIndexConfigDiseaseNames(param) {
+        return axios.post(urls.queryIndexConfigDiseaseNames, param)    //医学数据-慢病指标值关联维护-慢病指标疾病标签查询
+    },
+    getDisScaleAllInfo(param) {
+        return axios.post(urls.getDisScaleAllInfo, param)    //医学数据-诊断量表关联维护-列表
+    },
+    addDisScaleInfo(param) {
+        return axios.post(urls.addDisScaleInfo, param)    //医学数据-诊断量表关联维护-添加和修改
+    },
+    getDisScaleByDisId(param) {
+        return axios.post(urls.getDisScaleByDisId, param)    //医学数据-诊断量表关联维护-根据诊断id获取诊断量表关联信息(修改回读用)
+    },
+    delDisScaleInfo(param) {
+        return axios.post(urls.delDisScaleInfo, param)    //医学数据-诊断量表关联维护-删除
+    },
+    insertOrUpdate(param) {
+        return axios.post(urls.insertOrUpdate, param)    //量表结构--添加或更新
+    },
+    getModuleType(param) {
+        return axios.post(urls.getModuleType, param)    //模板维护 -- 类型筛选
+    },
+    deleteScale(param) {
+        return axios.post(urls.deleteScale, param)    //量表结构 -- 删除
+    },
 }

+ 1 - 0
src/api/utils.js

@@ -199,6 +199,7 @@ export default {
       "copyType":'region10',          //是否复制主标签  
       "showAdd":'region11',           //是否复制当前模块
       "itemType": 'region12',
+      "disType": 'region13',
       "labelPrefix":'prefix',                                 //前缀
       "labelSuffix":'suffix',                                 //后缀
       "maxValue":'maxNormalVal',                                 //前缀

+ 425 - 0
src/components/icss/AddChemicalAndCommonMapping.vue

@@ -0,0 +1,425 @@
+<template>
+    <div class="AddChemicalAndCommonMappingWrapper clearfix">
+        <!-- <div class="groupTitle"><i
+                class="el-icon-back"
+                @click="back"
+        ></i> 化验大小项与公表项对应维护--添加关联</div> -->
+        <crumbs
+          title="化验大小项与公表项对应维护--添加关联"
+          class="topBack"
+          linkTo="/admin/LT-YXSJWH-HYDXXYGBXDY"
+        ></crumbs>
+        <div class="AddChemicalAndCommonMappingBox clearfix">
+            <div class="titleBox clearfix">
+                <p class="title">关联公表项</p>
+                <p class="title">关联化验项</p> 
+            </div>
+            <div class="leftBox clearfix" >
+                
+                <div class="itemLabel clearfix">
+                    <label class="itemLabelName">选择化验大项:</label> 
+                    <input class="searchInput" @focus="focuInput" type="text" v-model = "mealText"> 
+                    <span class="searchName" @click="searchMealItem(1)">搜索</span>
+                    <ul class="itemList mealNameList" ref="mealNameList">
+                      <li 
+                        v-for="item in mealNameList" 
+                        class="mealNameItem ellipsis"
+                        :title="item.tagName"
+                        @click="selectMealName(item)"
+                        :key="item.id">
+                        {{item.tagName}}
+                      </li>
+                    </ul>
+                    
+                </div>
+                <div class="itemLabel clearfix">
+                    <label  class="itemLabelName isRequired">已选择化验大项:</label>
+                    <span class="selectItemName">{{form.mealName}}</span>
+                </div>
+                <div class="itemLabel clearfix">
+                    <label  class="itemLabelName">选择化验小项:</label>
+                    <input class="searchInput"  @focus="focuInput" type="text" v-model = "itemText"> 
+                    <span class="searchName" @click="searchMealItem(2)">搜索</span>
+                    <ul class="itemList itemNameList" ref="itemNameList">
+                      <li 
+                        v-for="item in itemNameList" 
+                        class="mealNameItem ellipsis"
+                        :title="item.tagName"
+                        @click="selectItemName(item)"
+                        :key="item.id">
+                        {{item.tagName}}
+                      </li>
+                    </ul>
+                </div>
+                <div class="itemLabel">
+                    <label  class="itemLabelName">已选择化验小项:</label>
+                    <span class="selectItemName">{{form.itemName}}</span>
+                </div>
+            </div>
+            <div class="midBox">
+                <img class="midLogo" src="../../images/relation.png" alt="">
+                <p class="midTitle">相互关联</p>
+            </div>
+            <div class="rightBox">
+                <div class="itemLabel">
+                    <label  class="itemLabelName">选择公表项:</label>
+                    <input class="searchInput"  @focus="focuInput" type="text" v-model = "uniqueText"> 
+                    <span class="searchName" @click="searchMealItem(3)">搜索</span>
+                    <ul class="itemList uniqueNameList" ref="uniqueNameList">
+                      <li 
+                        v-for="item in uniqueNameList" 
+                        class="mealNameItem ellipsis"
+                        :title="item.conceptName"
+                        @click="selectUniqueName(item)"
+                        :key="item.conceptName">
+                        {{item.conceptName}}
+                      </li>
+                    </ul>
+                </div>
+                <div class="itemLabel">
+                    <label  class="itemLabelName isRequired">已选择公表项:</label>
+                    <span class="selectItemName">{{form.uniqueName}}</span>
+                </div>
+            </div>
+        </div>
+       <div class="sumbitBox">
+           <!-- <span class="sumbit" @click="submitForm">建立关联</span> -->
+           <el-button
+                type="primary"
+                @click="submitForm"
+            >建立关联</el-button>
+        </div> 
+    </div>
+    
+</template>
+<script>
+import api from '@api/icss.js';
+
+export default {
+    name: 'AddChemicalAndCommonMapping',
+    data() {
+        return {
+            mealText: '', //化验大项搜索文字内容
+            itemText: '',   //化验小项搜索文字内容
+            uniqueText: '',     //公表项搜索文字内容
+            isEdit: false,
+            mealNameList:[],
+            itemNameList: [],
+            uniqueNameList:[],
+            form: {
+                mealName: '', //大项名称
+                itemName: '',   //小项名称
+                uniqueName: '',    //公表名称,必填
+            }
+            
+        }
+    },
+    created() {
+        //修改(不需要)
+        // const { isEdit, data } = this.$route.params
+        // if(isEdit) {
+        //     this.isEdit = isEdit;
+        //     this.form.mealName = data.mealName
+        //     this.form.itemName = data.itemName
+        //     this.form.uniqueName = data.uniqueName
+        // }
+    },
+    methods: {
+        back() {
+            this.$router.go(-1)
+        },
+        searchMealItem(type) {
+            if( type == '1' || type == '2') {
+                this.getTagList(type)
+            } else if ( type == '3') {
+                this.getAllLisConcept()
+            }
+            
+        },
+        getTagList(type) {
+            let param = {}
+            if (type == 1) {
+                param.tagName = this.mealText
+                param.tagType = [7]
+            } else if (type == 2) {
+                param.tagName = this.itemText
+                param.tagType = [1]
+            }
+            api.searchTagList(param).then((res) => {
+                if (res.data.code === '0') {
+                     if (type == 1) {
+                        this.mealNameList = res.data.data
+                        if(this.mealNameList.length > 0){ this.$refs['mealNameList'].style.display='block' }
+                        if(this.itemNameList.length > 0) { this.$refs['itemNameList'].style.display='none' }
+                        if(this.uniqueNameList.length > 0){this.$refs['uniqueNameList'].style.display='none'}
+                    } else if (type == 2) {
+                       
+                        this.itemNameList = res.data.data
+                        if(this.itemNameList.length > 0) { this.$refs['itemNameList'].style.display='block' }
+                        if(this.uniqueNameList.length > 0){this.$refs['uniqueNameList'].style.display='none'}
+                        if(this.mealNameList.length > 0){ this.$refs['mealNameList'].style.display='none' }
+                    }
+                }
+            })
+            
+        },
+        getAllLisConcept() {
+            const param = {
+                conceptName: this.uniqueText
+            }
+            api.getAllLisConcept(param).then((res) => {
+                if(res.data.code === '0') {
+                    this.uniqueNameList = res.data.data
+                    if(this.uniqueNameList.length > 0){this.$refs['uniqueNameList'].style.display='block'}
+                    if(this.itemNameList.length > 0) { this.$refs['itemNameList'].style.display='none' }
+                    if(this.mealNameList.length > 0){ this.$refs['mealNameList'].style.display='none' }
+                }
+            })
+        },
+        focuInput() {
+            this.$refs['mealNameList'].style.display='none'
+            this.$refs['itemNameList'].style.display='none'
+            this.$refs['uniqueNameList'].style.display='none'
+        },
+        selectMealName(item) {
+            this.form.mealName = item.tagName
+            this.$refs['mealNameList'].style.display='none'
+            this.mealText = ''
+            this.mealNameList = []
+        },
+        selectItemName(item) {
+             this.form.itemName = item.tagName
+            this.$refs['itemNameList'].style.display='none'
+            this.itemText = ''
+            this.itemNameList = []
+        },
+        selectUniqueName(item) {
+             this.form.uniqueName = item.conceptName
+            this.$refs['uniqueNameList'].style.display='none'
+            this.uniqueText = ''
+            this.uniqueNameList = []
+        },
+        initForm() {
+            this.form.mealName = ''
+            this.form.itemName = ''
+            this.form.uniqueName = ''
+        },
+        submitForm() {
+        const { mealName, itemName, uniqueName } = this.form
+        if (!mealName || !uniqueName) {
+            this.warning('请填写相关数据')
+            return
+        }
+        //通过必填验证,提交保存
+        const param = {
+            "itemName": itemName,
+            "mealName": mealName,
+            "uniqueName": uniqueName
+        }
+        console.log(param);
+        this.showSaveDialog(param);
+      },
+      saveLisMapping(param, msg, type) {
+        api.saveLisMapping(param).then((res) => {
+            if (res.data.code === '0') {
+            this.warning(res.data.msg || msg, type);
+            // this.$router.push({name: 'ChemicalAndCommonMapping'});
+            this.initForm();
+            } else {
+                this.warning(res.data.msg)
+            }
+        })
+      },
+      showSaveDialog(param) {
+        //  修改(不需要)
+        //   if(this.isEdit) {
+        //       this.saveLisMapping(param)
+        //   } else {
+            api.hasLisMapping(param).then((res) => {
+                if (!res.data.data) {
+                    this.saveLisMapping(param, '关联建立成功', 'success' )
+                } else {
+                    this.showConfirmDialog('该关联已存在是否替换旧的关系信息', () => {
+                        this.saveLisMapping(param, '关联建立成功', 'success' )
+                    });
+                }
+            }).catch((err) => {
+                this.warning(err);
+            })
+
+        //   }
+      },
+      showConfirmDialog(msg, resolve) {
+        this.$confirm(msg, '提示', {
+          customClass: 'confirmRealation',
+          confirmButtonText: '是',
+          cancelButtonText: '否',
+          cancelButtonClass: 'cancelButton',
+          type: 'warning'
+        }).then(() => {
+          resolve();
+        }).catch(() => {
+            this.warning('建立失败','error')
+        });
+      },
+      warning(msg, type) {
+        this.$message({
+          showClose: true,
+          message: msg,
+          type: type || 'warning'
+        })
+      },
+
+    }
+}
+</script>
+<style lang="less">
+.AddChemicalAndCommonMappingWrapper {
+    .AddChemicalAndCommonMappingBox {
+        min-width: 940px;
+    }
+    color: #606266;
+    .topBack {
+        top: 0;
+    }
+    // .groupTitle {
+    //     width: calc(100% - 50px);
+    //     height: 40px;
+    //     background: #fff;
+    //     padding: 0 20px 0 30px;
+    //     margin-bottom: 20px;
+    //     line-height: 40px;
+    //     position: relative;
+    //     z-index: 5;
+            
+    // }
+    .titleBox {
+        padding:  0 0 10px 0px;
+    }
+    .title {
+        width: 50%;
+        float: left;
+        font-size: 14px;
+    }
+    .AddChemicalAndCommonMappingBox {
+        padding: 20px 30px 20px 30px;
+        margin: 70px 20px 0 20px;
+        background: #fff;
+    }
+    .leftBox , .midBox, .rightBox{
+        width: 40%;
+        float: left;
+        height: 200px;
+        font-size: 14px;
+    }
+    .midBox {
+        width: 6%;
+        padding:  50px 0 0 0;
+        text-align: center;
+    }
+    .midTitle {
+        width: 40px;
+        margin: 0 auto;
+    }
+    .midLogo {
+        margin: 0 auto;
+    }
+    .leftBox, .rightBox {
+        border: 1px solid #a9a9a9;
+        padding: 20px 20px;
+    }
+    .itemLabel {
+        width: 100%;
+        height: 50px;
+        line-height: 50px;
+        position: relative;
+    }
+    .itemLabelName, .searchInput,  .searchName{
+        float: left;
+        color: #606266;
+    }
+    .itemLabelName {
+        width: 150px;
+    }
+    .isRequired::before {
+        content: '*';
+        color: red;
+    }
+    .searchInput, .mealNameItem {
+        padding: 0 5px;
+    }
+    .searchInput, .searchName {
+        display: inline-block;
+        height: 32px;
+        line-height: 32px;
+        border: 1px solid #a9a9a9;
+        margin: 8px 0 0 0;
+    }
+    
+    .searchName {
+        text-align: center;
+        border-left: none;
+        cursor: pointer;
+        padding: 0 12px;
+        font-size: 16px;
+    }
+    .itemList {
+        position: absolute;
+        display: none;
+        background: #fff;
+        width: 162px;
+        max-height: 150px;
+        border: 1px solid #a9a9a9;
+        left: 150px;
+        top: 42px;
+        z-index: 2;
+        overflow-y: auto;
+    }
+    .mealNameItem {
+        height: 30px;
+        line-height: 30px;
+        font-size: 14px;
+        cursor: pointer;
+    }
+    .mealNameItem:hover {
+        background: #f5f7fa;
+    }
+    .selectItemName {
+        display: inline-block;
+        width: calc(100% - 160px);
+    }
+    .sumbitBox {
+         position: relative;
+            background-color: #fff;
+            margin: 0px 20px;
+            padding: 20px;
+            min-width: 960px;
+            height: 80px;
+            .el-button {
+                position: absolute;
+                right: 80px;
+                top: 20px;
+            }
+    }
+    .sumbit {
+        position: absolute;
+        display: inline-block;
+        width: 80px;
+        height: 30px;
+        line-height: 30px;  
+        border: 1px solid #a9a9a9;
+        text-align: center;
+        right: 100px;
+    }
+}
+.confirmRealation {
+    .cancelButton{
+        border: 1px solid #a9a9a9;
+        span {
+            color: #606266;
+        }
+    }  
+    
+
+}
+</style>

+ 370 - 0
src/components/icss/AddChronicAndIndexRelation.vue

@@ -0,0 +1,370 @@
+<!-- 添加常见科室症状  -->
+<template>
+    <div class="AddChronicAndIndexRelationWrapper">
+        <!-- <div class="groupTitle"><i
+            class="el-icon-back"
+            @click="back"
+        ></i> 量表管理维护--{{titleText}}</div> -->
+        <crumbs
+          :title="'慢病指标值关联维护-'+titleText"
+          class="topBack"
+          linkTo="/admin/LT-YXSJWH-MBZBZGLWH"
+        ></crumbs>
+        <el-form :model="form" ref="ruleForm"  class="addDepartForm">
+            <el-form-item  class="addDepartFormItem"  v-if="!isEdit" label="选择诊断标签:" prop="department">
+                <input class="searchInput"  @focus="focuInput" type="text" v-model = "searchDiagVal"> 
+                <span class="searchName" @click="searchDiag">搜索</span>
+                <ul class="itemList diagList" ref="diagList">
+                    <li 
+                    v-for="item in diagList" 
+                    class="diagItem ellipsis"
+                    :title="item.diseaseName"
+                    @click="selectDiag(item)"
+                    :key="item.diseaseId">
+                    {{item.diseaseName}}
+                    </li>
+                </ul>
+            </el-form-item>
+             <el-form-item class="isRequired" label="已选择诊断:" prop="type">
+                {{form.diseaseName}}
+            </el-form-item>
+        </el-form>
+        <div class="symptomList">
+            <div class="screenIndex clearfix">
+                    <label class="screenIndexLabel">选择指标项内容:</label>
+                    <input class="searchInput"  @focus="focuInput" type="text" v-model = "searchIndexVal"> 
+                    <span class="searchName" @click="searchIndex">搜索</span>
+                    <ul class="itemList indexList" ref="indexList">
+                        <li 
+                        v-for="item in indexList" 
+                        class="diagItem ellipsis"
+                        :title="item.conceptName"
+                        @click="selectIndex(item)"
+                        :key="item.conceptName">
+                        {{item.conceptName}}
+                        </li>
+                    </ul>
+            </div>
+            <table class="indexTab">
+                
+                <tr>
+                    <td class="selectedContent">已选择内容</td>
+                    <td class="selectedContentGrop">已选内容分组(只可输入数字,相同数字归为一组展示)</td>
+                    <td class="selectedContentOpera">操作</td>
+                </tr>
+                <tr v-for="(item, index) in selectedIndexList" :key="item.indexUnique"> 
+                    <td class="selectedContent ">{{item.indexUnique}}</td>
+                    <td class="selectedContentGrop"><input class="groupInput" type="number" v-model="item.indexDesc"></td>
+                    <td class="selectedContentOpera"><el-button type="text" size="small" class="delete" @click="delSelectedIndex(item, index)">删除</el-button></td>
+                </tr>
+            </table>
+        </div>
+        <div class="btn">
+            <el-button
+            type="primary"
+            @click="submitForm('ruleForm')"
+            >确 定</el-button>
+        </div>
+    </div>
+    
+</template>
+
+<script>
+  import api from '@api/icss.js';
+  export default {
+    name: 'AddDisAndScaleRelationWrapper',
+    data() {
+        return{
+            
+            form: {
+                diseaseId: '',  //诊断id
+                diseaseName:''  //诊断名称
+            },
+            titleText: '添加关联',
+            diagList: [],
+            indexList: [],
+            selectedIndexMap: [],   //已经选择过的指标
+            selectedIndexList: [],  //选择的指标列表
+            searchDiagVal: '',
+            searchIndexVal: '',
+            isEdit: false,
+        }
+    },
+    created(){
+        const { isEdit, data } = this.$route.params;
+        if(isEdit) {
+            if(isEdit) {
+                this.isEdit = isEdit;
+                this.titleText = '修改关联';
+                this.form.diseaseId = data.diseaseId
+                this.form.diseaseName = data.diseaseName
+                this.selectedIndexList = data.data
+                for (let i = 0; i < this.selectedIndexList.length; i++) {
+                    this.selectedIndexMap.push(this.selectedIndexList[i].indexUnique)
+                }
+            } 
+        } else {
+            
+        }
+    },
+    watch: {
+        // searchTagVal(newVal, preVal) {
+        //     if(newVal.trim() == ''){
+        //         this.getTagList()
+        //     }else if(newVal.trim() != preVal.trim()){
+        //         this.getTagList()
+        //     }
+        // }
+    },
+    methods: {
+        back(){
+            this.$router.go(-1);
+        },
+        searchDiag() {
+            const param = {
+                "diseaseName": this.searchDiagVal,
+            }
+            api.queryIndexConfigDiseaseNames(param).then((res)=>{
+               if(res.data.code === '0') {
+                   this.diagList = res.data.data
+                   if(this.diagList.length>0) {this.$refs['diagList'].style.display = 'block'}
+                   if(this.indexList.length>0) {this.$refs['indexList'].style.display = 'none'}
+                }
+            })
+        },
+        selectDiag(item) {
+            this.form.diseaseId = item.diseaseId
+            this.form.diseaseName = item.diseaseName
+            this.$refs['diagList'].style.display='none'
+            this.searchDiagVal = ''
+            this.diagList=[]
+        },
+        focuInput() {
+            this.$refs['diagList'].style.display='none'
+             this.$refs['indexList'].style.display='none'
+            
+        },
+        searchIndex() {
+             const param = {
+                conceptName: this.searchIndexVal,
+                excludedConceptNames:  this.selectedIndexMap
+            }
+            
+            api.getAllLisConcept(param).then((res)=>{
+               if(res.data.code === '0') {
+                   this.indexList = res.data.data
+                    // this.indexList =[
+                    //     {conceptName : '空腹血糖'},
+                    //     {conceptName : '餐后2小时血糖'},
+                    //     {conceptName : '随机血糖'},
+                    //     {conceptName : '糖化血红蛋白'},
+                    //     {conceptName : '血常规'},
+                    // ]
+                   if(this.indexList.length > 0){this.$refs['indexList'].style.display='block'}
+                   if(this.diagList.length>0) {this.$refs['diagList'].style.display = 'none'}
+                }
+            })
+        },
+        selectIndex(item) {
+            this.selectedIndexList.push({indexUnique: item.conceptName, indexDesc:''})
+            this.selectedIndexMap.push(item.conceptName)
+            this.indexList = []
+            this.$refs['indexList'].style.display='none'
+        },
+        delSelectedIndex(selectedItem, index) {
+            this.selectedIndexMap = this.selectedIndexMap.filter((item) => {return item != selectedItem.indexUnique})
+            this.selectedIndexList.splice(index, 1)
+        },
+        submitForm(formName) {
+            if(!this.form.diseaseId) {
+                this.warning('请选择诊断')
+                return
+            }
+            if(this.selectedIndexList.length === 0) {
+                this.warning('请选择指标')
+                return
+            }
+            for (let i = 0; i < this.selectedIndexList.length; i++) {
+                if(!this.selectedIndexList[i].indexDesc) {
+                    this.warning('请填写内容分组')
+                    return
+                }
+            }
+            this.showDelDialog()
+        },
+        showDelDialog() {
+            this.selectedIndexList.map((item) => {
+                item.diseaseId = this.form.diseaseId
+                return item
+            })
+            const param ={
+                "diseaseId": this.form.diseaseId,
+                "indexConfigData": this.selectedIndexList
+            }
+            this.showConfirmDialog('是否建立该关联?', () => {
+                const  url = this.isEdit ?api.updateIndexConfigList(param) : api.saveIndexConfigLists(param) 
+                url.then((res) => {
+                if (res.data.code  === '0') {
+                    this.warning(res.data.msg || '关联成功', 'success','1000')
+                    setTimeout(() => {
+                    this.$router.push({
+                        path:'/admin/LT-YXSJWH-MBZBZGLWH'
+                    })
+                    }, 1000);
+                } 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,time) {
+            this.$message({
+                showClose: true,
+                message: msg,
+                type: type || 'warning',
+                duration:time || '3000'
+            })
+        },
+    }
+  }
+</script>
+
+<style lang="less">
+    @import '../../less/common.less';
+    .AddChronicAndIndexRelationWrapper {
+        color: #606266;
+        .topBack {
+            top: 0;
+        }
+        .groupTitle {
+            background-color: #fff;
+            height: 40px;
+            line-height: 40px;
+            padding-left: 20px;
+        }
+        
+        .searchInput, .searchName {
+            display: inline-block;
+            height: 32px;
+            line-height: 32px;
+            border: 1px solid #a9a9a9;
+            margin: 0px 0 0 0;
+            padding: 0 5px;
+            float: left;
+            margin-top: 4px;
+        }
+        .isRequired .el-form-item__label::before {
+            content: '*';
+            color: red;
+        }
+        .searchName {
+            border-left: none;
+            cursor: pointer;
+            font-size: 16px;
+            padding: 0 14px;
+        }
+        .itemList {
+            position: absolute;
+            display: none;
+            background: #fff;
+            width: 162px;
+            max-height: 150px;
+            border: 1px solid #a9a9a9;
+            left: 110px;
+            top: 35px;
+            z-index: 2;
+            overflow-y: auto;
+        }
+        .diagItem {
+            padding: 0 5px;
+            height: 30px;
+            line-height: 30px;
+            font-size: 14px;
+            cursor: pointer;
+        }
+        .diagItem:hover {
+            background: #f5f7fa;
+        }
+        .addDepartForm {
+            position: relative;
+            background-color: #fff;
+            padding: 20px;
+            margin: 70px 20px 0px 20px;
+            border-bottom: 1px solid #c0c4cc;
+        }
+        .addDepartFormItem {
+            position: relative;
+        }
+        .symptomList {
+            background-color: #fff;
+             padding: 20px;
+             margin: 0px 20px 0px 20px;
+             min-height: 400px;
+        }
+        .screenIndexLabel {
+            float: left;
+            height: 40px;
+            line-height: 40px;
+            font-size: 14px;
+        }
+        .indexTab {
+            width: 100%;
+            border-collapse: collapse;
+            tr {
+                td {
+                    padding: 5px 10px;
+                    border-bottom: 1px solid #a9a9a9;
+                    text-align: center;
+                }
+            }
+            .selectedContent {
+                width: 25%;
+            }
+            .selectedContentGrop {
+                width: 55%;
+            }
+            .selectedContentOpera {
+                width: 20%;
+            }
+        }
+        .screenIndex {
+            width: 100%;
+            margin-bottom: 30px;
+            position: relative;
+        }
+        .indexList {
+            left: 112px;
+        }
+        .groupInput {
+            text-align: center;
+            height: 28px;
+            color: #606266;
+            width: 60%;
+        }
+        .btn {
+            position: relative;
+            background-color: #fff;
+            margin: 0px 20px;
+            height: 40px;
+            padding: 20px;
+            .el-button {
+                position: absolute;
+                right: 20px;
+            }
+        }
+        .selectDepart {
+            
+        }
+    }
+    
+</style>

+ 45 - 59
src/components/icss/AddCommonSymptom.vue

@@ -1,36 +1,29 @@
-<!-- 添加常见科室症状  -->
+<!-- 添加常见科室选项  -->
 <template>
     <div class="addCommonSymptomWrapper">
-        <div class="groupTitle"><i
-            class="el-icon-back"
-            @click="back"
-        ></i> 常见症状维护系统--{{titleText}}</div>
+         <crumbs
+          :title="'常见选项维护系统-' + titleText"
+          class="topBack"
+          linkTo="/admin/LT-YXSJWH-CJXXWH"
+        ></crumbs>
         <el-form :model="form" ref="ruleForm" :rules="rules" class="addDepartForm">
-            <!-- 一期 -->
-            <el-form-item label="选择科室" prop="department">
-                <el-select :disabled="isEdit || isDetail" v-model="form.department" placeholder="请添加科室" @change="changeDept" class="selectDepart">
-                    <el-option v-for="item in departList" :key="item.id" :label="item.name" :value="item.id"></el-option>
-                </el-select>
-            </el-form-item>
+           
              <el-form-item label="选择类型" prop="type">
                 <el-select :disabled="isEdit || isDetail" v-model="form.type" placeholder="请选择类型"  @change="changeType" class="selectDepart">
-                    <!-- 一期 -->
-                    <el-option v-for="item in typeList" :key="item.type" :label="item.typeName" :value="item.type"></el-option>
-                    <!-- 二期 -->
-                    <!-- <el-option v-for="item in typeList" :key="item.key" :label="item.name" :value="item.key"></el-option> -->
+                    
+                    <el-option v-for="item in typeList" :key="item.key" :label="item.name" :value="item.key"></el-option>
                 </el-select>
             </el-form-item>
-            <!-- 二期 -->
-            <!-- <el-form-item label="选择科室" prop="department">
+            <el-form-item label="选择科室" prop="department">
                 <el-select :disabled="isEdit || isDetail || !form.type" v-model="form.department" placeholder="请添加科室" @change="changeDept" class="selectDepart">
                     <el-option v-for="item in departList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                 </el-select>
-            </el-form-item> -->
+            </el-form-item>
         </el-form>
         <div class="symptomList">
             <div class="bottomPartLeft fl" v-if="!isDetail">
                 
-                <p class="symptomPoolTitle">症状池</p>
+                <p class="symptomPoolTitle">选项池</p>
                 <div class="symptomPool">
                     <el-input
                     placeholder="请输入搜索内容"
@@ -60,7 +53,7 @@
                 <p><span class="el-icon-arrow-left" @click="toLeftList"></span></p>
             </div>
             <div class="bottomPartRight fl">
-                <p class="symptomPoolTitle">常见症状:</p>
+                <p class="symptomPoolTitle">常见选项:</p>
                 <ul class="tagList operationPool">
                         <li class = "tagItem"
                             v-for="(item,index) in rightTagsList" 
@@ -103,13 +96,13 @@
                 department: '',
                 type:''
             },
-            titleText: '添加科室常见症状',
+            titleText: '添加科室常见选项',
             departList: [],
             typeList:[
-                 {
-                    "name": "症状",
-                    "key": 1
-                },
+                //  {
+                //     "name": "症状",
+                //     "key": 1
+                // },
             ],
             searchVal: '',
             isEdit: false,
@@ -127,23 +120,23 @@
         const { isEdit, isDetail, data } = this.$route.params;
         if(isEdit || isDetail) {
             if(isEdit) {
-                this.titleText = '修改科室常见症状'
+                this.titleText = '修改科室常见选项'
             } else {
-                this.titleText = '科室常见症状详情'
+                this.titleText = '科室常见选项详情'
             }
+            console.log('datadata', data)
             this.isEdit = isEdit
             this.isDetail = isDetail
             this.rightTagsList = data.data
             this.departList.push({name: data.name, id: data.id})
-            this.typeList.push({typeName: data.typeName, type: data.type})
+            this.typeList.push({name: data.typeName, key: data.type})
             this.form.department =data.id
             this.form.type =data.type
             this.getSymptomList()
             
         } else {
             this.getDepartmentList()
-            //二期
-            // this.getIcssEnumsData()
+            this.getIcssEnumsData()
         }
     },
     watch: {
@@ -159,22 +152,18 @@
         back(){
             this.$router.go(-1);
         },
-        // 二期
-        // getIcssEnumsData()  {
-        //     api.getIcssEnumsData().then((res) => {
-        //         if(res.data.code === '0') {
-        //            this.typeList = res.data.data.questionUsualTypeEnum
-        //         }
-        //     })
-        // },
+        getIcssEnumsData()  {
+            api.getIcssEnumsData().then((res) => {
+                if(res.data.code === '0') {
+                   this.typeList = res.data.data.questionUsualTypeEnum
+                }
+            })
+        },
         getDepartmentList() {
-            // 二期
-            // const param = {
-            //     "type": this.form.type
-            // }
-            // api.getDepartmentList(param).then((res)=>{
-            // 一期
-            api.getDepartmentList({}).then((res)=>{
+            const param = {
+                "type": this.form.type
+            }
+            api.getDepartmentList(param).then((res)=>{
                if(res.data.code === '0') {
                    this.departList = res.data.data
                 }
@@ -199,19 +188,12 @@
             })
         },
         changeDept() {
-            //一期
-            this.form.type = ''
-            this.typeList = this.departList.filter(item => this.form.department == item.id)[0].typeDTOList
-            //二期
-            // this.getSymptomList()
+            this.getSymptomList()
             this.clearData()
         },
         changeType() {
-            // 一期
-            this.getSymptomList()
-            // 二期
-            // this.form.department = ''
-            // this.getDepartmentList()
+            this.form.department = ''
+            this.getDepartmentList()
             this.clearData()
         },
         clearData() {
@@ -284,7 +266,7 @@
         submitForm(formName) {
             if(this.isDetail) {
                 this.$router.push({
-                        path:'/admin/LT-YXSJWH-CJZZWH'
+                        path:'/admin/LT-YXSJWH-CJXXWH'
                 })
                 return;
             }
@@ -322,7 +304,7 @@
                     this.warning(res.data.msg || '保存成功', 'success','1000')
                     setTimeout(() => {
                     this.$router.push({
-                        path:'/admin/LT-YXSJWH-CJZZWH'
+                        path:'/admin/LT-YXSJWH-CJXXWH'
                     })
                     }, 1000);
                 } else {
@@ -356,6 +338,9 @@
 <style lang="less">
     @import '../../less/common.less';
     .addCommonSymptomWrapper {
+        .topBack {
+            top: 0;
+        }
         .groupTitle {
             background-color: #fff;
             height: 40px;
@@ -365,12 +350,13 @@
         .addDepartForm {
             background-color: #fff;
             padding: 20px;
-            margin: 20px 20px 0px 20px;
+            margin: 70px 20px 0px 20px;
+            border-bottom: 1px solid #c0c4cc;
         }
         .symptomList {
             background-color: #fff;
              padding: 20px;
-             margin: 20px 20px 0px 20px;
+             margin: 0px 20px 0px 20px;
              height: 500px;
         }
         .bottomPartLeft {

+ 463 - 0
src/components/icss/AddDisAndScaleRelation.vue

@@ -0,0 +1,463 @@
+<!-- 添加常见科室症状  -->
+<template>
+    <div class="addDisAndScaleRelationWrapper">
+        <!-- <div class="groupTitle"><i
+            class="el-icon-back"
+            @click="back"
+        ></i> 量表管理维护--{{titleText}}</div> -->
+        <crumbs
+          :title="'量表管理维护-'+titleText"
+          class="topBack"
+          linkTo="/admin/LT-YXSJWH-LBGLWH"
+        ></crumbs>
+        <el-form :model="form" ref="ruleForm"  class="addDepartForm">
+            <el-form-item  v-if="!isEdit" label="选择诊断标签:" prop="department">
+                <input class="searchInput"  @focus="focuInput" type="text" v-model = "searchDiagVal"> 
+                <span class="searchName" @click="searchDiag">搜索</span>
+                <ul class="itemList diagList" ref="diagList">
+                    <li 
+                    v-for="item in diagList" 
+                    class="diagItem ellipsis"
+                    :title="item.tagName"
+                    @click="selectDiag(item)"
+                    :key="item.id">
+                    {{item.tagName}}
+                    </li>
+                </ul>
+            </el-form-item>
+             <el-form-item class="isRequired" label="已选择诊断:" prop="type">
+                {{form.disName}}
+            </el-form-item>
+        </el-form>
+        <div class="symptomList">
+            <div class="bottomPartLeft fl">
+                
+                <p class="symptomPoolTitle">标签池</p>
+                <div class="symptomPool">
+                    <el-input
+                    placeholder="请输入搜索内容"
+                    v-model="searchTagVal"
+                    >
+                        <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)'
+                        >
+                            <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 fl">
+                <p class="symptomPoolTitle">已选内容:</p>
+                <ul class="tagList operationPool">
+                        <li class = "tagItem"
+                            v-for="(item,index) in rightTagsList" 
+                            :key='item.id'
+                            :style="index === selectRightTagIndex?styles:null"
+                            @click='selectRightTag(index)'
+                        >   
+                            <p v-if="item.tagName" class="tagName  ellipsis" :title="'[ '+item.tagName+' ]'">{{item.tagName}} </p>
+                        </li>
+                    </ul>
+
+            </div>
+            <div class="bottomPartMid fl" >
+                <p><span class="el-icon-arrow-up" @click="toUp"></span></p>
+                <p><span class="el-icon-arrow-down" @click="toDown"></span></p>
+            </div>
+            
+        </div>
+        <div class="btn">
+            <el-button
+            type="primary"
+            @click="submitForm('ruleForm')"
+            >确 定</el-button>
+        </div>
+    </div>
+    
+</template>
+
+<script>
+  import api from '@api/icss.js';
+  export default {
+    name: 'AddDisAndScaleRelationWrapper',
+    data() {
+        return{
+            
+            form: {
+                disId: '',  //诊断id
+                disName:''  //诊断名称
+            },
+            titleText: '添加量表关联',
+            diagList: [],
+            searchDiagVal: '',
+            searchTagVal: '',
+            isEdit: false,
+            leftTagsList:[],
+            rightTagsList:[],
+            selectLeftTagsList: [],
+            selectRightTagIndex: -1,
+            styles:{
+                background:'#eae7e7'
+            },
+        }
+    },
+    created(){
+        const { isEdit, data } = this.$route.params;
+        if(isEdit) {
+            if(isEdit) {
+                this.titleText = '修改量表关联'
+            } 
+            data.data.map((item) => {
+                item.id = item.scaleId
+                item.tagName = item.scaleName
+                return item
+            })
+            this.isEdit = isEdit
+            this.rightTagsList = data.data
+            this.form.disId =data.disId
+            this.form.disName =data.disName
+            this.getTagList()
+            
+        } else {
+            this.getTagList()
+            
+        }
+    },
+    watch: {
+        searchTagVal(newVal, preVal) {
+            if(newVal.trim() == ''){
+                this.getTagList()
+            }else if(newVal.trim() != preVal.trim()){
+                this.getTagList()
+            }
+        }
+    },
+    methods: {
+        back(){
+            this.$router.go(-1);
+        },
+        searchDiag() {
+             const param = {
+                "tagName": this.searchDiagVal,
+                "type": '7',
+            }
+            api.searchTagList(param).then((res)=>{
+               if(res.data.code === '0') {
+                   this.diagList = res.data.data
+                   if(this.diagList.length > 0){ this.$refs['diagList'].style.display='block' }
+                }
+            })
+        },
+        selectDiag(item) {
+            this.form.disId = item.id
+            this.form.disName = item.tagName
+            this.$refs['diagList'].style.display='none'
+            this.searchDiagVal = ''
+            this.diagList=[]
+        },
+        focuInput() {
+            this.$refs['diagList'].style.display='none'
+        },
+        getTagList() {
+            const notIds = this.selectedTags()
+            const param = {
+                "tagName": this.searchTagVal,
+                "type": '21',
+                "notIds": notIds,
+                "sexType": this.sexType,
+            }
+            api.searchTagList(param).then((res)=>{
+               if(res.data.code === '0') {
+                   this.leftTagsList = res.data.data
+                }
+            })
+        },
+        selectedTags() {
+            let selectedTags = []
+            for (let i =0; i < this.rightTagsList.length; i++) {
+                selectedTags.push(this.rightTagsList[i].id)
+            }
+            return selectedTags
+        },
+        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(index) {
+            this.selectRightTagIndex = this.selectRightTagIndex === index ? -1 : index
+        },
+        toRightList(){
+            this.rightTagsList.push(...this.selectLeftTagsList);
+            this.selectLeftTagsList = [];
+            this.selectRightTagIndex = -1;
+            this.getTagList()
+        },
+        toLeftList(){
+            if(this.selectRightTagIndex == -1) {
+                return
+            }
+            this.rightTagsList.splice(this.selectRightTagIndex, 1)
+            this.selectLeftTagsList = [];
+            this.selectRightTagIndex -= 1;
+            this.getTagList()
+
+        },
+        toUp(){
+            if(this.selectRightTagIndex === 0 || this.selectRightTagIndex === -1) {
+                return
+            }
+            const tempItem = this.rightTagsList[this.selectRightTagIndex]
+            this.rightTagsList.splice(this.selectRightTagIndex, 1)
+            this.rightTagsList.splice(this.selectRightTagIndex-1, 0,tempItem)
+            this.selectRightTagIndex -= 1
+        },
+        toDown(){
+             if(this.selectRightTagIndex === this.rightTagsList.length-1 || this.selectRightTagIndex === -1) {
+                return
+            }
+            const tempItem = this.rightTagsList[this.selectRightTagIndex]
+            this.rightTagsList.splice(this.selectRightTagIndex, 1)
+            this.rightTagsList.splice(this.selectRightTagIndex+1, 0,tempItem)
+            this.selectRightTagIndex += 1
+
+        },
+
+        isHasTag(item, arr) {
+            for ( let i = 0; i <arr.length; i++) {
+                if(arr[i].id === item.id) {
+                    return true;
+                }
+            }
+            return false;
+        },
+        getStyle(item){       //左侧选中状态
+            return this.isHasTag(item, this.selectLeftTagsList)
+        },
+        getStyle2(item) {
+            return this.isHasTag(item, this.selectRightTagsList)
+        },
+        submitForm(formName) {
+            if(!this.form.disId) {
+                this.warning('请选择诊断')
+                return
+            }
+            if(this.rightTagsList.length === 0) {
+                this.warning('请选择量表')
+                return
+            }
+            this.showDelDialog()
+        },
+        showDelDialog() {
+            const scaleId = this.selectedTags()
+            const param ={
+                "disId": this.form.disId,
+                "scaleId": scaleId
+            }
+            this.showConfirmDialog('是否建立该关联?', () => {
+                api.addDisScaleInfo(param).then((res) => {
+                if (res.data.code  === '0') {
+                    this.warning(res.data.msg || '关联成功', 'success','1000')
+                    setTimeout(() => {
+                    this.$router.push({
+                        path:'/admin/LT-YXSJWH-LBGLWH'
+                    })
+                    }, 1000);
+                } 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,time) {
+            this.$message({
+                showClose: true,
+                message: msg,
+                type: type || 'warning',
+                duration:time || '3000'
+            })
+        },
+    }
+  }
+</script>
+
+<style lang="less">
+    @import '../../less/common.less';
+    .addDisAndScaleRelationWrapper {
+        color: #606266;
+        font-size: 14px;
+        .topBack {
+            top: 0;
+        }
+        .groupTitle {
+            background-color: #fff;
+            height: 40px;
+            line-height: 40px;
+            padding-left: 20px;
+        }
+        .searchInput, .searchName {
+            display: inline-block;
+            height: 32px;
+            line-height: 32px;
+            border: 1px solid #a9a9a9;
+            margin: 0px 0 0 0;
+            padding: 0 5px;
+            float: left;
+        }
+        .isRequired .el-form-item__label::before {
+            content: '*';
+            color: red;
+        }
+        .searchName {
+            border-left: none;
+            cursor: pointer;
+            padding: 0 12px;
+            font-size: 16px;
+        }
+        .itemList {
+            position: absolute;
+            display: none;
+            background: #fff;
+            width: 162px;
+            max-height: 150px;
+            border: 1px solid #a9a9a9;
+            left: 110px;
+            top: 35px;
+            z-index: 2;
+            overflow-y: auto;
+        }
+        .diagItem {
+            padding: 0 5px;
+            height: 30px;
+            line-height: 30px;
+            font-size: 14px;
+            cursor: pointer;
+        }
+        .diagItem:hover {
+            background: #f5f7fa;
+        }
+        .addDepartForm {
+            background-color: #fff;
+            padding: 20px;
+            margin: 70px 20px 0px 20px;
+            border-bottom: 1px solid #a9a9a9;
+        }
+        .symptomList {
+            background-color: #fff;
+             padding: 20px;
+             margin: 0px 20px 0px 20px;
+             height: 500px;
+        }
+        .bottomPartLeft {
+            width: 32%;
+        }
+        .symptomPoolTitle {
+            height: 40px;
+            line-height: 40px;
+        }
+        .symptomPool {
+            width: 100%;
+            .el-input__inner {
+                border-radius: 0;
+            }
+        }
+        .tagList {
+            width: 100%;
+            height: 300px;
+            border: 1px solid @icssBorder;
+            box-sizing: border-box;
+        }
+        .tagList {
+            border: 1px solid @icssBorder;
+        }
+        .tagPool {
+            height: 300px;
+            overflow-y: auto;
+
+        }
+        .tagItem {
+            position: relative;
+            line-height: 30px;
+            cursor: pointer;
+            padding: 0 10px;
+        }
+        .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 {
+            width: 32%;
+        }
+        .operationPool {
+            position: relative;
+            width: 100%;
+            height: 340px;
+            padding: 10px 0;
+            overflow-y: auto;
+        }
+        .btn {
+            position: relative;
+            background-color: #fff;
+            margin: 0px 20px;
+            padding: 20px;
+            .el-button {
+                position: absolute;
+                right: 20px;
+                top: -20px;
+            }
+        }
+        .selectDepart {
+            
+        }
+    }
+    
+</style>

+ 7 - 6
src/components/icss/AddIndeptLabel.vue

@@ -1,9 +1,10 @@
 <template>
     <div class="NoiseTemplateWrapper TemplateWrapper">
-        <div class="groupTitle"><i
-                class="el-icon-back"
-                @click="back"
-        ></i> {{txt}}</div>
+        <crumbs
+          :title="txt"
+          class="topBack"
+          linkTo="/admin/LT-YXSJWH-DLLXBQWH"
+        ></crumbs>
         <PubIndeptTag
                 @changeVal="changeVal"
                 @changeSex="changeSex"
@@ -40,7 +41,7 @@
     name: 'NoiseTemplateWrapper',
     data() {
       return {
-        txt:'独立标签维护--添加独立标签',
+        txt:'独立标签维护-添加独立标签',
         dataPub: {},      //公用组件传的值都在这
         itemsTypes:[1,2],            //有明细的类型
         editData:{},                    //编辑数据
@@ -58,7 +59,7 @@
     beforeMount:function(){
       const {isEdit,data} = this.$route.params;
       if(isEdit){
-        this.txt = '独立标签维护--修改独立标签'
+        this.txt = '独立标签维护-修改独立标签'
         this.editData = data;
       }
     },

+ 12 - 4
src/components/icss/AddMedicalInfo.vue

@@ -1,9 +1,14 @@
 <template>
     <div class="MedicalInfoWrapper">
-        <div class="groupTitle"><i
+        <!-- <div class="groupTitle"><i
                 class="el-icon-back"
                 @click="back"
-        ></i> 医学术语属性--{{isEdit?'修改':'添加'}}</div>
+        ></i> 医学术语属性--{{isEdit?'修改':'添加'}}</div> -->
+        <crumbs
+          :title=" isEdit? '医学术语属性-修改':'医学术语属性-添加'"
+          class="topBack"
+          linkTo="/admin/LT-YXSYKWH-SYYXSXWH"
+        ></crumbs>
         <div class="info-container">
             <el-form :rules="rules"
                      :model="form"
@@ -546,6 +551,9 @@
 <style lang="less">
     @import "../../less/common.less";
     .MedicalInfoWrapper {
+      .topBack {
+        top: 0;
+      }
       .required {
         .el-form-item__label::before {
           color: red;
@@ -597,7 +605,7 @@
           overflow: hidden;
         }
         .conceptItem:hover {
-          border: 1px solid #22ccc8;
+          background: #f5f7fa;
         }
         .termMiniClassSearch {
           z-index: 8
@@ -644,7 +652,7 @@
         .info-container{
             background: #fff;
             padding: 20px;
-            margin: 20px 20px -20px 20px;
+            margin: 70px 20px 20px 20px;
         .el-input__inner{
             width: 200px;
             height: 32px;

+ 11 - 3
src/components/icss/AddMedicinePrompt.vue

@@ -1,9 +1,14 @@
 <template>
     <div class="NoiseTemplateWrapper TemplateWrapper">
-        <div class="groupTitle"><i
+        <!-- <div class="groupTitle"><i
                 class="el-icon-back"
                 @click="back"
-        ></i> 医学静态知识--{{isEdit?'修改':'添加'}}</div>
+        ></i> 医学静态知识--{{isEdit?'修改':'添加'}}</div> -->
+        <crumbs
+          :title=" isEdit? '医学静态知识-修改':'医学静态知识-添加'"
+          class="topBack"
+          linkTo="/admin/LT-YXSYKWH-YXSYJTZSWH"
+        ></crumbs>
         <div class="info-container">
             <el-form :rules="rules"
                      :model="form"
@@ -236,10 +241,13 @@
 </script>
 <style lang="less">
     @import "../../less/common.less";
+    .topBack{
+      top: 0;
+    }
     .info-container{
         background: #fff;
         padding: 20px;
-        margin: 20px 20px -20px 20px;
+        margin: 70px 20px -20px 20px;
     .el-input__inner{
         width: 200px;
     }

+ 11 - 6
src/components/icss/AddPhysicalExamTemp.vue

@@ -1,10 +1,11 @@
 <!-- 添加常见科室症状  -->
 <template>
     <div class="AddPhysicalExamTempWrapper">
-        <div class="groupTitle"><i
-            class="el-icon-back"
-            @click="back"
-        ></i> 查体模板维护系统--{{titleText}}</div>
+        <crumbs
+          :title="'查体模板维护系统-'+titleText"
+          class="topBack"
+          linkTo="/admin/LT-YXSJWH-CTMBWH"
+        ></crumbs>
         <el-form :model="form" ref="ruleForm" :rules="rules" class="addDepartForm">
             <el-form-item label="模板归属:"  >
                <span>查体</span>
@@ -306,6 +307,9 @@
 <style lang="less">
     @import '../../less/common.less';
     .AddPhysicalExamTempWrapper {
+        .topBack {
+        top:0;
+        }
         .groupTitle {
             background-color: #fff;
             height: 40px;
@@ -315,12 +319,13 @@
         .addDepartForm {
             background-color: #fff;
             padding: 20px;
-            margin: 20px 20px 0px 20px;
+            margin: 70px 20px 0px 20px;
+            border-bottom: 1px solid #c0c4cc;
         }
         .symptomList {
             background-color: #fff;
              padding: 20px;
-             margin: 20px 20px 0px 20px;
+             margin: 0px 20px 0px 20px;
              height: 500px;
         }
         .bottomPartLeft {

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

@@ -392,7 +392,7 @@
         text-overflow: ellipsis;
       }
       li:hover{
-        border-color:#22ccc8;
+        background: #f5f7fa;
       }
     }
   }

+ 6 - 21
src/components/icss/ChemicalAndCommonMapping.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <crumbs title="标签组维护" style="min-width: 980px">
+        <crumbs title="化验大小项与公表项对应维护" style="min-width: 980px">
             <el-form :inline="true" class="demo-form-inline">
                 <el-form-item label="化验大项:">
                     <el-input size="mini" v-model="filter.mealName" placeholder="化验大项" clearable></el-input>
@@ -63,7 +63,8 @@
                     prop="operate"
                     label="操作">
                     <template slot-scope="scope">
-                        <el-button  @click="modifyRelation(scope.row)" type="text" size="small">修改</el-button>
+                        <!-- 没有修改 -->
+                        <!-- <el-button  @click="modifyRelation(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>
@@ -131,28 +132,12 @@ export default {
             this.getDataList();
         },
         addRelation() {
-            this.$router.push({path:'LT-YXSJWH-TJBQZ'})
+            this.$router.push({name:'AddChemicalAndCommonMapping'})
         },
         modifyRelation(row) {
             console.log(row,'row')
-            const param = {
-                mealName:row.mealName,
-                itemName:row.itemName,
-                uniqueName:row.uniqueName
-            }
-            api.modifyLisMapping(param).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:'AddChemicalAndCommonMapping',params:{isEdit:true,data:item}});
-                }else{
-                    this.$message({
-                    message: msg,
-                    type: 'warning'
-                    });
-                }
-            });
+            const item = Object.assign({},row);
+            this.$router.push({name:'AddChemicalAndCommonMapping',params:{isEdit:true,data:item}});
         },
         currentChange(next) {
             this.currentPage = next;

+ 198 - 0
src/components/icss/ChronicAndIndexRelation.vue

@@ -0,0 +1,198 @@
+<template>
+    <div>
+        <crumbs title="慢病指标值关联维护" style="min-width: 980px">
+            <el-form :inline="true" class="demo-form-inline">
+                <el-form-item label="慢病名称:">
+                    <el-input size="mini" v-model="filter.diseaseName" placeholder="慢病名称" clearable></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                    <el-button size="mini" type="warning" @click="addRelation">添加关联</el-button>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table
+                :data="list"
+                border
+                style="width: 100%">
+                <el-table-column
+                    :resizable = "false"
+                    type="index"
+                    :index = 'indexMethod'
+                    label="编号"
+                    width="60">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="gmtModified"
+                    label="操作时间"
+                    width="180">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="diseaseName"
+                    label="慢病名称"
+                    show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="modifier"
+                    label="操作人">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="operate"
+                    label="操作">
+                    <template slot-scope="scope">
+                        <el-button  @click="modifyRelation(scope.row)" type="text" size="small">修改</el-button>
+                        <el-button @click="showDelDialog(scope.row)" class="delete" type="text" size="small">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        <div class="pagination">
+            <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>
+        
+        </div>
+       <!--  <div class="pagination">
+           <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> -->
+        
+    </div>
+</template>
+
+<script>
+import api from '@api/icss.js';
+
+export default {
+    name: 'ChronicAndIndexRelation',   //慢病指标值关联维护
+    data: function() {
+        return {
+            list: [],
+            filter: {
+                diseaseName: ''
+            },
+            currentPage: 1,
+            pageSize: 10,
+            total: 0,
+        }
+    },
+    created() {
+        this.getDataList()
+        
+    },
+    methods: {
+        getDataList() {
+            const param = this.getFilterItems();
+            api.queryIndexConfigPages(param).then((res) => {
+                if(res.data.code == '0') {
+                    this.list = res.data.data.records
+                    this.total = res.data.data.total;
+                }
+            })
+        },
+        filterDatas() {
+            this.currentPage = 1;
+            this.getDataList();
+        },
+        addRelation() {
+            this.$router.push({name:'AddChronicAndIndexRelation'})
+        },
+        modifyRelation(row) {
+            const param = {
+                diseaseId: row.diseaseId
+            }
+            api.getIndexConfigLists(param).then((res) => {
+                if(res.data.code == '0') {
+                    const item = Object.assign({},row,{data: res.data.data});
+                    this.$router.push({name:'AddChronicAndIndexRelation',params:{isEdit:true,data:item}});
+                }
+            })
+        },
+        currentChange(next) {
+            this.currentPage = next;
+            this.getDataList();
+            // if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+            //     this.list = this.cacheData[next];
+            // } else {
+            //     this.getDataList();
+            // }
+        },
+        getFilterItems() {
+            const param = {
+                current: this.currentPage,
+                size: this.pageSize,
+                diseaseName:this.filter.diseaseName,
+            };
+            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(row){
+          const param = {
+              diseaseId:row.diseaseId
+          }
+          this.showConfirmDialog('是否删除该关联?',()=>{
+            api.cancelIndexConfigAlls(param).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">
+    @import "../../less/admin.less";
+    .delete{
+       color: red;
+    }
+    .delete:hover {
+        color: red;
+    } 
+    .pagination {
+        min-width: 1010px;
+    }
+</style>

+ 474 - 0
src/components/icss/ChronicDiseaseAdd.vue

@@ -0,0 +1,474 @@
+<template>
+  <div>
+    <crumbs
+      :title="minTitle"
+      class="topBack"
+      linkTo="/admin/LT-YXSJWH-LBJGWH"
+    ></crumbs>
+    <div class="ChronicDiseaseAddWrap" @click="close">
+      <div class="ChronicDisease">
+        <p class="ChronicDiseaseTop" v-if="!editData.isEdit">
+          <span>选择量表标签:</span>
+          <input
+            type="text"
+            v-model="region"
+            @click.stop
+          >
+          <i @click.stop="searchTagList">搜索</i>
+          <ul v-if="showLis">
+            <li v-for="item in AdscriptionsType" :key="item.id" @click="selectLis(item.id,item.tagName)">{{item.tagName}}</li>
+          </ul>
+        </p>
+        <p class="ChronicDiseaseBtm">
+          <span>已选择量表:</span>
+          <i>{{selectName}}</i>
+        </p>
+      </div>
+      <div class="ChronicDiseaseDetail">
+        <div class="ChronicDiseaseLeft">
+          <h4>操作栏:</h4>
+          <div class="parts" v-for="(item,idx) in parts" :class="selectLeftPart.id == item.id?'selectDom':null" :key="item.id" @click="selectPart(item,1)">
+            {{item.name}}
+          </div>
+        </div>
+        <div class="bottomPartMid fl">
+          <p><span
+              class="el-icon-arrow-right"
+              @click="toRightPool"
+            ></span></p>
+          <p><span
+              class="el-icon-arrow-left"
+              @click="toLeftPool"
+            ></span></p>
+        </div>
+        <div class="ChronicDiseaseRight">
+          <h4>内容池:</h4>
+          <div class="contentWrap">
+            <div class="contentDetail clearfix" v-for="(item,idx) in contentPool" :class="selectRightPart.order == item.order?'selectDom':null" :key="item.order" @click="selectPart(item,2)">
+              <span>{{item.name}}:</span>
+              <div class="contentDetails">
+                <quillEditor v-model="item.content" :options="editorOption" v-if="item.val == 0"></quillEditor>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="bottomPartMid upAndDown">
+          <p><span
+              class="el-icon-arrow-up"
+              @click="movePool(1)"
+            ></span></p>
+          <p><span
+              class="el-icon-arrow-down"
+              @click="movePool(2)"
+            ></span></p>
+        </div>
+        <div class="btn">
+          <el-button
+            type="primary"
+            @click="submitForm"
+          >确 定</el-button>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import api from '@api/icss.js';
+import utils from '@api/utils.js';
+import 'quill/dist/quill.core.css'
+import 'quill/dist/quill.snow.css'
+import 'quill/dist/quill.bubble.css'
+import {quillEditor, Quill} from 'vue-quill-editor'
+import config from '@api/config';
+import {container, ImageExtend, QuillWatch} from 'quill-image-extend-module';
+Quill.register('modules/ImageExtend', ImageExtend);
+/**
+ * 归属type
+ * 1:主诉模板 2:现病史模板 3:现病史空模板 4 : 其他史模板 5:嵌套模板 6:慢病模板
+ */
+export default {
+  data() {
+    return {
+      editorOption: {
+        modules: {
+          toolbar: {
+            container: container
+          }
+        }
+      },
+      region: '',    //量表标签
+      selectName:'',
+      selectId:'',
+      AdscriptionsType: [],
+      editData: {},
+      minTitle:'量表维护-添加量表',
+      showLis:false,
+      parts:[],
+      selectLeftPart:{},//左侧选中
+      selectRightPart:{},//右侧选中
+      contentPool:[], //内容池
+    }
+  },
+  beforeMount:function(){
+    let tmpPart = localStorage.getItem('DiseaseManage')
+    this.parts = JSON.parse(tmpPart)
+  },
+  mounted() {
+    let tmpEditData = this.$route.params
+    if (tmpEditData.isEdit) {      //修改
+      this.editData = tmpEditData
+      this.minTitle='量表维护-修改量表'
+      this.selectName = tmpEditData.data.name
+      this.selectId = tmpEditData.data.id
+      let tmpScale = tmpEditData.data.scale
+      for(let i = 0;i < tmpScale.length;i++){
+        tmpScale[i].val = tmpScale[i].type
+        tmpScale[i].order = tmpScale[i].orderNo
+        tmpScale[i].name = tmpScale[i].type == 0?'文本模块':'推送模块'
+      }
+      this.contentPool = tmpScale
+    }
+    this.$emit('changeVal', this.form, false)
+  },
+  methods: {
+    toRightPool() {
+      let tmpLeft = JSON.parse(JSON.stringify(this.selectLeftPart))
+      let tmpPool = JSON.parse(JSON.stringify(this.contentPool))
+      if(JSON.stringify(tmpLeft) == '{}'){
+        return
+      }
+      if(tmpLeft.val == 1){
+        for(let i = 0;i < tmpPool.length;i++){
+          if(tmpPool[i].val == 1){
+            // this.$message({
+            //   message: '推送模块只能添加一次',
+            //   type: 'warning'
+            // });
+            return
+          }
+        }
+      }
+      tmpPool.push(tmpLeft)
+      this.selectLeftPart = {}
+      for(let i = 0;i < tmpPool.length;i++){
+        tmpPool[i].order = i+1
+      }
+      this.contentPool = tmpPool
+    },
+    toLeftPool() {
+      let tmpRight = JSON.parse(JSON.stringify(this.selectRightPart))
+      let tmpPool = JSON.parse(JSON.stringify(this.contentPool))
+      if(JSON.stringify(tmpRight) == '{}'){
+        return
+      }
+      tmpPool = tmpPool.filter((item)=>item.order != tmpRight.order)
+      for(let i = 0;i < tmpPool.length;i++){
+        tmpPool[i].order = i+1
+      }
+      this.contentPool = tmpPool
+      this.selectRightPart = {}
+    },
+    movePool(dir) {
+      let tmpRight = JSON.parse(JSON.stringify(this.selectRightPart))
+      let tmpPool = JSON.parse(JSON.stringify(this.contentPool))
+      if((dir == 1 && tmpRight.order == 1) || (dir == 2 && tmpRight.order == tmpPool.length)){
+        return
+      }
+      if(JSON.stringify(tmpRight) == '{}'){
+        return
+      }
+      tmpPool = tmpPool.filter((item)=>item.order != tmpRight.order)
+      if(dir == 1){
+        tmpPool.splice(tmpRight.order-2,0,tmpRight)
+        for(let i = 0;i < tmpPool.length;i++){
+          tmpPool[i].order = i+1
+        }
+      }else if(dir == 2){
+        tmpPool.splice(tmpRight.order,0,tmpRight)
+        for(let i = 0;i < tmpPool.length;i++){
+          tmpPool[i].order = i+1
+        }
+      }
+      this.selectRightPart = tmpRight
+      this.contentPool = tmpPool
+    },
+    selectPart(part,dir){
+      if(dir == 1){
+        if(this.selectLeftPart.val == part.val){
+          this.selectLeftPart = {}
+        }else{
+          this.selectLeftPart = part
+        }
+      }else if(dir == 2){
+        if(this.selectRightPart.order == part.order){
+          this.selectRightPart = {}
+        }else{
+          this.selectRightPart = part
+        }
+      }
+    },
+    close(){
+      this.showLis = false
+    },
+    selectLis(id,name){
+      this.selectName = name
+      this.selectId = id
+    },
+    searchTagList() {
+      let param = {
+        "tagName": this.region,
+        "type": "21",
+        "filterList":[
+          "scale"
+        ]
+      }
+      api.searchTagList(param).then((res) => {
+        if (res.data.code === '0') {
+          this.AdscriptionsType = res.data.data
+          this.showLis = this.AdscriptionsType.length > 0
+        }
+      })
+    },
+    getParams(){
+      let tmpParams = []
+      let tmpPool = JSON.parse(JSON.stringify(this.contentPool))
+      for(let i = 0;i < tmpPool.length;i++){
+        if(tmpPool[i].val == 0 && !tmpPool[i].content){
+          
+        }else{
+          let tmpObj = {
+            "content": "",
+            "orderNo": '',
+            "type": ''
+          }
+          tmpObj.content = tmpPool[i].content || ''
+          tmpObj.orderNo = tmpPool[i].order
+          tmpObj.type = tmpPool[i].val
+          tmpParams.push(tmpObj)
+        }
+      }
+      return {
+        "content": tmpParams,
+        "scaleId": this.selectId
+      }
+    },
+    submitForm() {
+      if(this.selectName == ''){
+        this.$message({
+          message: '请选择量表标签',
+          type: 'warning'
+        });
+        return
+      }
+      let param = this.getParams();
+      if(param.content.length == 0){
+        this.$message({
+          message: '请添加内容池内容',
+          type: 'warning'
+        });
+        return
+      }
+      this.showConfirmDialog('是否保存该标签组?', () => {
+        api.insertOrUpdate(param).then((res) => {
+          if (res.data.code === '0') {
+            this.warning(res.data.msg || '保存成功', 'success');
+            setTimeout(() => {
+              this.$router.push({
+                path:'/admin/LT-YXSJWH-LBJGWH'
+              })
+            }, 1000);
+          }
+        })
+      })
+    },
+    showConfirmDialog(msg, resolve) {
+      this.$alert(msg, '提示', {
+        confirmButtonText: '确定',
+        type: 'warning'
+      }).then(() => {
+        resolve();
+      }).catch(() => {});
+    },
+    warning(msg, type,time) {
+      this.$message({
+        showClose: true,
+        message: msg,
+        type: type || 'warning',
+        duration:time || '3000'
+      })
+    },
+  },
+  components:{
+    quillEditor
+  }
+}
+</script>
+<style lang="less">
+.contentDetails{
+  .quill-editor .ql-toolbar.ql-snow .ql-formats  .ql-image,
+  .quill-editor .ql-toolbar.ql-snow .ql-formats  .ql-video,
+  .quill-editor .ql-toolbar.ql-snow .ql-formats  .ql-link{
+    display: none;
+  }
+}
+</style>
+
+<style lang="less" scoped>
+@import "../../less/common.less";
+.topBack {
+  top: 0;
+}
+.btn {
+  text-align: right;
+  margin-top: 20px;
+}
+.ChronicDiseaseAddWrap {
+  margin: 20px;
+  box-sizing: border-box;
+  background-color: #fff;
+  color: #606266;
+  .ChronicDisease {
+    border-bottom: 1px solid #c0c4cc;
+    padding: 20px;
+    margin-top: 60px;
+    span {
+      width: 160px;
+      display: inline-block;
+    }
+    .ChronicDiseaseTop {
+      input {
+        width: 221px;
+        height: 34px;
+        line-height: 34px;
+        padding-left: 7px;
+        padding-right: 56px;
+        box-sizing: border-box;
+      }
+      i {
+        display: inline-block;
+        width: 56px;
+        height: 34px;
+        line-height: 32px;
+        border-left: 1px solid @icssBorder;
+        position: relative;
+        left: -57px;
+        vertical-align: middle;
+        text-align: center;
+        cursor: pointer;
+      }
+      ul {
+        width: 219px;
+        margin-left: 160px;
+        border: 1px solid @icssBorder;
+        background: #fff;
+        max-height: 200px;
+        overflow-y: auto;
+        height: auto;
+        position: absolute;
+        z-index: 9999;
+        li {
+          border: 1px solid #fff;
+          padding-left: 7px;
+          height: 27px;
+          line-height: 27px;
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        li:hover {
+          background: #f5f7fa;
+        }
+      }
+    }
+    .ChronicDiseaseBtm {
+      margin: 25px 0 10px 0;
+    }
+  }
+  .ChronicDiseaseDetail {
+    padding: 20px;
+    overflow: hidden;
+    position: relative;
+    h4 {
+      margin-bottom: 10px;
+    }
+    .bottomPartMid {
+      width: 80px;
+      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;
+        }
+      }
+    }
+    .upAndDown {
+      position: absolute;
+      right: 0;
+      top: 0;
+    }
+    .ChronicDiseaseLeft {
+      float: left;
+      .parts {
+        height: 40px;
+        line-height: 40px;
+        width: 160px;
+        text-align: center;
+        font-size: 14px;
+        margin: 20px 0;
+        background-color: #EFEFEF;
+        border: 1px solid @icssBorder;
+        color: #333;
+        cursor: pointer;
+      }
+    }
+  }
+  .ChronicDiseaseRight {
+    padding-right: 50px;
+    .contentWrap {
+      color: #333;
+      min-width: 400px;
+      min-height: 500px;
+      max-height: 600px;
+      border: 1px solid @icssBorder;
+      background: #fff;
+      overflow-y: auto;
+      .contentDetail {
+        border: 1px solid #fff;
+        padding: 5px;
+        padding-left: 80px;
+        box-sizing: border-box;
+        margin: 5px;
+        position: relative;
+        span {
+          width: 80px;
+          display: inline-block;
+          position: absolute;
+          top: 12px;
+          left: 0px;
+          text-align: right;
+        }
+        .contentDetails {
+          float: left;
+          min-height: 40px;
+          width: 100%;
+          box-sizing: border-box;
+          background-color: #EFEFEF;
+        }
+      }
+    }
+  }
+  .selectDom {
+    border: 1px solid @adminBase !important;
+  }
+}
+</style>
+

+ 196 - 0
src/components/icss/ChronicDiseaseManage.vue

@@ -0,0 +1,196 @@
+<template>
+    <div>
+        <crumbs title="慢病管理与评估维护" style="min-width: 980px">
+            <el-form :inline="true" class="demo-form-inline">
+                <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="warning" @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="编号"
+                        :resizable = "false"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="gmtModified"
+                        label="操作时间"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="diseaseName"
+                        label="慢病名称">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modifier"
+                        label="操作人">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        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>
+        <div class="pagination">
+            <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>
+        
+    </div>
+</template>
+
+<script>
+  import api from '@api/icss.js';
+
+  export default {
+    name: 'TemplateMaintenance',
+    data: function() {
+      return {
+        list: [],
+        tagTypes: [],
+        Adscriptions: [],
+        AdscriptionsType:[],
+        AdscriptionsOwnTo:[],
+        tagTypesList: [],
+        filter: {
+          tagType: [], //标签类型
+          tagSysName: '', //标签系统名称
+        },
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+      }
+    },
+    created() {
+      this.getDropList().then(() => {
+        this.getDataList()
+      })
+    },
+    methods: {
+      getDropList() {
+        let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
+        let templateType = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleInfoTypeEnum : []
+        this.Adscriptions = templateOwn;
+        this.AdscriptionsType = templateType
+        return api.getDropList().then((res) =>{
+          if(res.data.code === '0') {
+            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();
+        api.queryEvaluationModulePages(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;
+        })
+      },
+      filterDatas() {
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      addIndeptTag() {
+        this.$router.push({name:'ChronicDiseaseManageAdd'})
+      },
+      modifyIndeptTag(row) {
+        this.$router.push({name:'ChronicDiseaseManageAdd',params:{isEdit:true,data:row}});
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        this.getDataList();
+      },
+      getFilterItems() {
+        const param = {
+          current: this.currentPage,
+          size: this.pageSize,
+          diseaseName:this.filter.tagSysName,
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      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.delTemplate({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>

+ 284 - 0
src/components/icss/ChronicDiseaseManageAdd.vue

@@ -0,0 +1,284 @@
+<template>
+  <div>
+    <crumbs
+      :title="minTitle"
+      class="topBack"
+      linkTo="/admin/LT-YXSJWH-MBGLYPG"
+    ></crumbs>
+    <div class="ChronicDiseaseAddWrap">
+      <div class="ChronicDisease">
+        <p class="ChronicDiseaseTop">
+          <span>选择诊断标签:</span>
+          <input
+            type="text"
+            v-model="region"
+          >
+          <i>搜索</i>
+          <ul>
+            <li>哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</li>
+            <li>呵呵呵</li>
+            <li>咯咯咯</li>
+          </ul>
+        </p>
+        <p class="ChronicDiseaseBtm">
+          <span>已选择诊断:</span>
+          <i>{{region}}</i>
+        </p>
+      </div>
+      <div class="ChronicDiseaseDetail">
+         <el-form
+            class="ChronicDiseaseForm"
+          >
+            <el-form-item
+              label="数据来源:"
+              prop="comes"
+            >
+              <el-select
+                v-model="comes"
+                placeholder="请选择数据来源"
+              >
+                <el-option
+                  v-for="item in Adscriptions"
+                  :label="item.name"
+                  :value="item.id"
+                  :key="item.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-form>
+        <div class="ChronicDiseaseLeft">
+          <h4>操作栏:</h4>
+          <ul>
+            <li>哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</li>
+            <li>呵呵呵</li>
+            <li>咯咯咯</li>
+          </ul>
+        </div>
+        <div class="bottomPartMid fl">
+          <p><span
+              class="el-icon-arrow-right"
+              @click="toRightPool"
+            ></span></p>
+          <p><span
+              class="el-icon-arrow-left"
+              @click="toLeftPool"
+            ></span></p>
+        </div>
+        <div class="ChronicDiseaseRight">
+          <h4>内容池:</h4>
+          <ul>
+            <li>哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈</li>
+            <li>呵呵呵</li>
+            <li>咯咯咯</li>
+          </ul>
+        </div>
+        <div class="bottomPartMid fl">
+          <p><span
+              class="el-icon-arrow-up"
+              @click="toTopPool"
+            ></span></p>
+          <p><span
+              class="el-icon-arrow-down"
+              @click="toBtmPool"
+            ></span></p>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import api from '@api/icss.js';
+import utils from '@api/utils.js';
+
+/**
+ * 归属type
+ * 1:主诉模板 2:现病史模板 3:现病史空模板 4 : 其他史模板 5:嵌套模板 6:慢病模板
+ */
+
+
+export default {
+  data() {
+    return {
+      region: '',    //量表标签
+      AdscriptionsType: [],
+      Adscriptions:[
+        {name:'图谱',id:'1'},
+        {name:'后端',id:'2'},
+        {name:'前端',id:'3'},
+      ],
+      editData: {},
+      comes:'',
+      minTitle: '慢病评估维护-添加管理评估'
+    }
+  },
+  mounted() {
+    console.log(this.$route.params, 78787)
+    let tmpEditData = this.$route.params
+    this.editData = tmpEditData
+    if (tmpEditData.isEdit) {      //修改
+      this.minTitle = '慢病评估维护-修改管理评估'
+      this.form = Object.assign({}, this.form, editData);
+      this.form.region1 = (editData.type + '')
+      this.form.region2 = editData.name
+    }
+    this.$emit('changeVal', this.form, false)
+    // this.searchTagList()
+  },
+  methods: {
+    sendData(val) {
+      this.$emit('changeVal', this.form, false)
+    },
+    toRightPool() {
+
+    },
+    toLeftPool() {
+
+    },
+    toTopPool() {
+
+    },
+    toBtmPool() {
+
+    },
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          this.$emit('validatePass', this.form, false)
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+  }
+}
+</script>
+<style lang="less" scoped>
+@import "../../less/common.less";
+.topBack {
+  top: 0;
+}
+.ChronicDiseaseAddWrap {
+  margin: 20px;
+  box-sizing: border-box;
+  background-color: #fff;
+  color: #606266;
+  .ChronicDisease {
+    border-bottom: 1px solid #c0c4cc;
+    padding: 20px;
+    margin-top: 60px;
+    span {
+      width: 160px;
+      display: inline-block;
+    }
+    .ChronicDiseaseTop {
+      input {
+        width: 221px;
+        height: 34px;
+        line-height: 34px;
+        padding-left: 7px;
+        padding-right: 56px;
+        box-sizing: border-box;
+      }
+      i {
+        display: inline-block;
+        width: 56px;
+        height: 34px;
+        line-height: 32px;
+        border-left: 1px solid #ccc;
+        position: relative;
+        left: -57px;
+        vertical-align: middle;
+        text-align: center;
+        cursor: default;
+      }
+      ul {
+        margin-left: 160px;
+        width: 219px;
+        border: 1px solid #ccc;
+        background: #fff;
+        max-height: 291px;
+        overflow-y: auto;
+        li {
+          border: 1px solid #fff;
+          padding-left: 7px;
+          height: 27px;
+          line-height: 27px;
+          overflow: hidden;
+          white-space: nowrap;
+          text-overflow: ellipsis;
+        }
+        li:hover {
+          border-color: #22ccc8;
+        }
+      }
+    }
+    .ChronicDiseaseBtm {
+      margin: 10px 0;
+    }
+  }
+  .ChronicDiseaseDetail {
+    padding: 20px;
+    overflow: hidden;
+    min-width: 650px;
+    .ChronicDiseaseForm {
+      margin-bottom: 15px;
+      .el-form-item__content {
+        font-size: 16px;
+      }
+    }
+    h4 {
+      margin-bottom: 10px;
+      font-weight: normal;
+    }
+    .bottomPartMid {
+      width: 60px;
+      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;
+        }
+      }
+    }
+    .ChronicDiseaseLeft {
+      float: left;
+    }
+  }
+  .ChronicDiseaseRight {
+    float: left;
+    ul {
+      width: auto;
+    }
+  }
+  ul {
+    width: 219px;
+    border: 1px solid #ccc;
+    background: #fff;
+    height: 400px;
+    overflow-y: auto;
+    li {
+      border: 1px solid #fff;
+      padding: 0 7px;
+      height: 27px;
+      line-height: 27px;
+      overflow: hidden;
+      white-space: nowrap;
+      text-overflow: ellipsis;
+    }
+    li:hover {
+      border-color: #22ccc8;
+    }
+  }
+}
+</style>
+

+ 201 - 0
src/components/icss/ChronicDiseaseStructureList.vue

@@ -0,0 +1,201 @@
+<template>
+    <div>
+        <crumbs title="量表结构维护" style="min-width: 980px">
+            <el-form :inline="true" class="demo-form-inline">
+                <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="warning" @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="编号"
+                        :resizable = "false"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="gmtModified"
+                        label="操作时间"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="name"
+                        label="量表名称">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modifier"
+                        label="操作人">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        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>
+        <div class="pagination">
+            <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>
+        
+    </div>
+</template>
+
+<script>
+  import api from '@api/icss.js';
+
+  export default {
+    name: 'TemplateMaintenance',
+    data: function() {
+      return {
+        list: [],
+        tagTypes: [],
+        AdscriptionsType:[],
+        AdscriptionsOwnTo:[],
+        tagTypesList: [],
+        filter: {
+          tagType: [], //标签类型
+          tagSysName: '', //标签系统名称
+        },
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+      }
+    },
+    created() {
+      this.getDropList().then(() => {
+        this.getDataList()
+      })
+    },
+    methods: {
+      getDropList() {
+        let templateType = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleInfoTypeEnum : []
+        this.AdscriptionsType = templateType
+        return api.getDropList().then((res) =>{
+          if(res.data.code === '0') {
+            localStorage.setItem('DiseaseManage',JSON.stringify(res.data.data[8]))
+            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();
+        api.scaleContentStructure(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;
+              }
+            }
+          }
+          this.list = list;
+          this.total = res.data.data.total;
+        })
+      },
+      filterDatas() {
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      addIndeptTag() {
+        this.$router.push({name:'ChronicDiseaseAdd'})
+      },
+      modifyIndeptTag(row) {
+        api.detailsTag({id:row.id}).then((res)=>{
+            const {code,data,msg} = res.data;
+            if(code=='0'){
+              this.$router.push({name:'ChronicDiseaseAdd',params:{isEdit:true,data:data}});
+            }else{
+              this.$message({
+                message: msg,
+                type: 'warning'
+              });
+            }
+        });
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        this.getDataList();
+      },
+      getFilterItems() {
+        const param = {
+          current: this.currentPage,
+          size: this.pageSize,
+          tagName: this.filter.tagSysName,
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      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){
+        let tmpArr = []
+        tmpArr.push(id)
+        this.showConfirmDialog('是否删除该标签?',()=>{
+          api.deleteScale({ids:tmpArr}).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>

+ 3 - 3
src/components/icss/CommonSymptom.vue

@@ -1,6 +1,6 @@
 <template>
     <div>
-        <crumbs title="icss科室症状维护">
+        <crumbs title="icss科室选项维护">
             <el-form :inline="true" class="demo-form-inline">
                 <el-form-item label="科室名称:">
                     <el-input size="mini" v-model="filter.proName" placeholder="科室名称"></el-input>
@@ -8,7 +8,7 @@
                 <el-form-item>
                     <el-button size="mini" @click="filterDatas">确认</el-button>
                     <router-link to="/admin/LT-YXSJWH-TJCJZZ" style="margin:0 10px">
-                        <el-button size="mini" type="warning">添加科室常见症状</el-button>
+                        <el-button size="mini" type="warning">添加科室常见选项</el-button>
                     </router-link>
                 </el-form-item>
             </el-form>
@@ -181,7 +181,7 @@
         }).catch(() => {});
       },
       showDelDialog(row){
-        this.showConfirmDialog('是否删除该常见选项?',()=>{
+        this.showConfirmDialog('是否删除该科室常见选项?',()=>{
           const param = {
             "deptId": row.id,
             "type": row.type

+ 31 - 25
src/components/icss/CommonTemplate.vue

@@ -39,27 +39,27 @@
     <div class="bottomPartRight bottomPartRightTemplate">
       <p class="poolTitle poolTitleTmp">模板内容:
         <span style="color:#22ccc8;fontSize:12px" v-if="type == 1">特殊标记1-只可放入主诉模块中,放入其他模块数据会显示异常;</span>
-        <span style="color:#22ccc8;fontSize:12px" v-if="type == 3 || type == 2">特殊标记4-只可放入现病史模块中,放入其他模块数据会显示异常;</span>
-        <span style="color:#22ccc8;fontSize:12px" v-if="type == 5">特殊标记1-只可放入主诉模块中,放入其他模块数据会显示异常;特殊标记4-只可放入现病史模块中,放入其他模块数据会显示异常;</span>
+        <span style="color:#22ccc8;fontSize:12px" v-if="type == 2">特殊标记4-只可放入现病史模块中,放入其他模块数据会显示异常;</span>
+        <span style="color:#22ccc8;fontSize:12px" v-if="type == 322 || type == 32 || type == 31">特殊标记1-只可放入主诉模块中,放入其他模块数据会显示异常;特殊标记4-只可放入现病史模块中,放入其他模块数据会显示异常;</span>
       </p>
-        <div v-if="type == 5">
-          <span style="marginLeft:10px;">
-            <el-button v-if="flagLisFst == 1" type="primary" class="flagStyle" size="mini" @click="addFlg(1)" :disabled="flagLisSec == 4">1、标示主诉中添加症状展示位置</el-button>
-            <el-button v-else class="flagStyle" size="mini" @click="addFlg(1)" :disabled="flagLisSec == 4">1、标示主诉中添加症状展示位置</el-button>
-          </span>
-          <span style="marginLeft:10px;">
-            <el-button style="marginTop:3px;" v-if="flagLisSec == 4" type="primary" class="flagStyle" size="mini" @click="addFlg(4)" :disabled="flagLisFst == 1">4、标示在主诉中症状引用到现病史中展示位置
-  和添加症状位置</el-button>
-            <el-button style="marginTop:3px;" v-else class="flagStyle" size="mini" @click="addFlg(4)" :disabled="flagLisFst == 1">4、标示在主诉中症状引用到现病史中展示位置
-  和添加症状位置</el-button>
-          </span>
-        </div>
-      <div class="arrowWrap" style="float:right;marginRight:10px" v-if="type != 1 && type != 2 && type != 3">
-        <el-button size="mini" @click="addDomTemplate(1)">插入输入栏</el-button>
+      <div v-if="type == 322 || type == 32 || type == 31">
+        <span style="marginLeft:10px;">
+          <el-button v-if="flagLisFst == 1" type="primary" class="flagStyle" size="mini" @click="addFlg(1)" :disabled="flagLisSec == 4">1、标示主诉中添加症状展示位置</el-button>
+          <el-button v-else class="flagStyle" size="mini" @click="addFlg(1)" :disabled="flagLisSec == 4">1、标示主诉中添加症状展示位置</el-button>
+        </span>
+        <span style="marginLeft:10px;">
+          <el-button style="marginTop:3px;" v-if="flagLisSec == 4" type="primary" class="flagStyle" size="mini" @click="addFlg(4)" :disabled="flagLisFst == 1">4、标示在主诉中症状引用到现病史中展示位置
+和添加症状位置</el-button>
+          <el-button style="marginTop:3px;" v-else class="flagStyle" size="mini" @click="addFlg(4)" :disabled="flagLisFst == 1">4、标示在主诉中症状引用到现病史中展示位置
+和添加症状位置</el-button>
+        </span>
+      </div>
+      <div class="arrowWrap" style="float:right;marginRight:10px" v-if="type != 1 && type != 2">
+        <el-button size="mini" @click="addDomTemplate(1)" v-if="type != 5 && type != 6 && type != 7 && type != 8">插入输入栏</el-button>
         <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
         <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
       </div>
-      <div class="formWrap" v-if="type == 1 || type == 2 || type == 3">
+      <div class="formWrap" v-if="type == 1 || type == 2">
           <el-form
             class="subTemplate"
             :model="form"
@@ -87,7 +87,7 @@
                 <el-button v-if="flagLisFst == 1" type="primary" class="flagStyle" size="mini" @click="addFlg(1)">1、标示主诉中添加症状展示位置</el-button>
                 <el-button v-else class="flagStyle" size="mini" @click="addFlg(1)">1、标示主诉中添加症状展示位置</el-button>
               </span>
-              <span v-if="type == 2 || type == 3" style="marginLeft:10px;">
+              <span v-if="type == 2" style="marginLeft:10px;">
                 <el-button v-if="flagLisSec == 4" type="primary" class="flagStyle" size="mini" @click="addFlg(4)">4、标示在主诉中症状引用到现病史中展示位置
 和添加症状位置</el-button>
                 <el-button v-else class="flagStyle" size="mini" @click="addFlg(4)">4、标示在主诉中症状引用到现病史中展示位置
@@ -149,7 +149,11 @@ export default {
       default: '',
       type: String
     },
-    sign: {
+    signe: {
+      default: '',
+      type: String
+    },
+    rela: {
       default: '',
       type: String
     },
@@ -236,7 +240,7 @@ export default {
       }
       this.searchTagList()       //重新获取标签池数据
     },
-    sign(newVal, preVal) {
+    signe(newVal, preVal) {
       if(newVal != preVal){
         this.form = {region: ''}  
         this.subTmpList = []     //子模板的id用于去重
@@ -464,7 +468,7 @@ export default {
     searchTagList() {
       let notIds = []
       let tmpArr = this.rightTagsList.slice();
-      console.log(tmpArr)
+      // console.log(tmpArr)
       for (let i = 0; i < tmpArr.length; i++) {
         if(tmpArr[i].type != 'sub' && tmpArr[i].type != 'input'){
           notIds.push(tmpArr[i].id)
@@ -472,9 +476,9 @@ export default {
       }
       let param = {
         "tagName": this.searchVal,
-        "type": this.type == 4?3:1,
-        "noIds": notIds,
-        "notTagType":[3,4,8,10]
+        "type": this.type == 3?3:1,
+        "notIds": notIds,
+        "notTagType": [3,4,8,10]
       }
       api.searchTagList(param).then((res) => {
         if (res.data.code === '0') {
@@ -487,7 +491,9 @@ export default {
     getSubTemplate() {
       let param = {
         noIds:this.subTmpList,
-        type:5
+        type:this.type,
+        moduleType: this.signe,
+        relationId: this.rela
       }
       api.getModuleInfoSub(param).then((res) => {
         if (res.data.code === '0') {

+ 256 - 0
src/components/icss/DiagnosisList.vue

@@ -0,0 +1,256 @@
+<template>
+    <div>
+        <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>
+                        <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="warning" @click="addTagGroup">添加诊断标签</el-button>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table
+                :data="list"
+                border
+                style="width: 100%">
+                <el-table-column
+                    :resizable = "false"
+                    type="index"
+                    :index = 'indexMethod'
+                    label="编号"
+                    width="60">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="gmtModified"
+                    label="操作时间"
+                    width="180">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="typeCn"
+                    label="诊断归属">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="tagTypeCn"
+                    label="标签类型">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="tagName"
+                    label="标签系统名称">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="modifier"
+                    label="操作人">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="operate"
+                    label="操作">
+                    <template slot-scope="scope">
+                        <el-button  @click="modifyTagGroup(scope.row)" type="text" size="small">修改</el-button>
+                        <el-button @click="showDelDialog(scope.row.id,scope.row.type)" class="delete" type="text" size="small">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+        <div class="pagination">
+            <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>
+        
+        </div>
+       <!--  <div class="pagination">
+           <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> -->
+        
+    </div>
+</template>
+
+<script>
+import api from '@api/icss.js';
+
+export default {
+    name: 'DiagnosisList',
+    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[7];
+                    this.tagTypes =  res.data.data[3];
+                    for (var i = 0; i < this.tagTypes.length; i++) {
+                        this.tagTypesList.push(this.tagTypes[i].val)
+                    }
+                }
+                 
+            })
+        },
+        getDataList() {
+            const param = this.getFilterItems();
+            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].disType == this.Adscriptions[z].val) {
+                            list[i].typeCn = this.Adscriptions[z].name
+                        }
+                    }
+                   
+                }
+                this.list = list;
+                this.total = res.data.data.total;
+            })
+        },
+        filterDatas() {
+            this.currentPage = 1;
+            this.getDataList();
+        },
+        addTagGroup() {
+            this.$router.push({path:'LT-YXSJWH-ZDBQTJ'})
+        },
+        modifyTagGroup(row) {
+            api.detailsTag({id:row.id}).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:'DiagnosisTemplate',params:{isEdit:true,data:item}});
+                }else{
+                    this.$message({
+                    message: msg,
+                    type: 'warning'
+                    });
+                }
+            });
+        },
+        currentChange(next) {
+            this.currentPage = next;
+            this.getDataList();
+            // if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+            //     this.list = this.cacheData[next];
+            // } else {
+            //     this.getDataList();
+            // }
+        },
+        getFilterItems() {
+            const param = {
+                tagTypeList: ['9'],
+                current: this.currentPage,
+                size: this.pageSize,
+                type: '7',
+                disType: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,type){
+          this.showConfirmDialog('是否删除该标签组?',()=>{
+            api.deleteTagGroup({ids:id,type:type}).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">
+    @import "../../less/admin.less";
+    .delete{
+       color: red;
+    }
+    .delete:hover {
+        color: red;
+    } 
+    .pagination {
+        min-width: 1010px;
+    }
+</style>

+ 525 - 0
src/components/icss/DiagnosisPubTag.vue

@@ -0,0 +1,525 @@
+<template>
+  <div class="PubTagGroupWrapper">
+    <el-form
+      class="groups"
+      :rules="rules"
+      ref="groups"
+      :model="form"
+      label-width="150px"
+    >
+      <el-form-item
+        label="选择归属:"
+        prop="region1"
+      >
+        <el-select
+          :disabled="true"
+          v-model="form.region1"
+          placeholder="请选择归属"
+          @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"
+      >
+        <el-select
+          :disabled="true"
+          v-model="form.region2"
+          placeholder="请选择填写单类型"
+          @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="region7"
+      >
+        <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"
+      >
+        <el-input
+          v-model="form.region3"
+          :disabled="!form.region1"
+          maxLength="30"
+          placeholder="请输入标签系统名称"
+          @change="sendData"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="标签界面名称:"
+        prop="region4"
+      >
+        <el-input
+          v-model="form.region4"
+          :disabled="!form.region1"
+          maxLength="30"
+          placeholder="请输入标签界面名称"
+          @change="sendData"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="诊断归属:"
+        prop="region2"
+      >
+        <el-select
+          :disabled="!!editData.id"
+          v-model="form.region13"
+          placeholder="请选择诊断归属"
+          @change="(e)=>readyChangeSelect(e,2)"
+        >
+          <el-option
+            v-for="item in DiagnosislabelTypes"
+            :label="item.name"
+            :value="item.val"
+            :key="item.id"
+          ></el-option>
+        </el-select>
+      </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"
+          :disabled="!form.region1 || form.region2 == 11"
+          @change="sendData"
+        >
+          <el-option
+            label="不可以"
+            value="1"
+          ></el-option>
+          <el-option
+            label="可以"
+            value="0"
+          ></el-option>
+        </el-select>
+      </el-form-item> -->
+      <el-form-item
+        v-if="form.region1 == 1 && form.region2 ==4"
+        label="是否为症状"
+        prop="region12"
+      >
+        <el-select
+          v-model="form.region12"
+          @change="sendData"
+        >
+          <el-option
+            label="是"
+            value="0"
+          ></el-option>
+          <el-option
+            label="不是"
+            value="1"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item
+        label="年龄:"
+        prop="region8"
+        class="ages"
+      >
+        <el-input
+          v-model.number="form.region8"
+          :disabled="!form.region1 || form.region2 == 11"
+          ref="valage1"
+          type="number"
+          @input="sendData"
+        ></el-input>
+      </el-form-item> ~
+      <el-form-item
+        prop="region9"
+        class="ages maxAges"
+      > 
+        <el-input
+          v-model.number="form.region9"
+          :disabled="!form.region1 || form.region2 == 11"
+          type="number"
+          ref="valage2"
+          @input="sendData"
+        ></el-input>
+      </el-form-item>
+      <el-form-item class="verticalMiddle" label="选择子项时是否复制主项标签:" prop="region10" v-if="form.region2 == 6">
+        <el-select v-model="form.region10" :disabled="!form.region1 || form.region2 == 11">
+          <el-option label="不可以" value="0"></el-option>
+          <el-option label="可以" value="1"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="是否显示加号:" prop="region11" v-if="form.region2 == 2 || form.region2 == 3">
+        <el-select v-model="form.region11" :disabled="!form.region1 || form.region2 == 11">
+          <el-option label="显示" value="1"></el-option>
+          <el-option label="不显示" value="0"></el-option>
+        </el-select>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+<script>
+import api from '@api/icss.js';
+import utils from '@api/utils.js';
+
+export default {
+  props:['editData'],
+  data() {
+    var validatePass2 = (rule, value, callback) => {
+        const editData = this.$props.editData;
+        if(editData.id && value == editData.tagName){ //修改系统名称没变就不再校验
+          callback();    
+        }else{
+          this.validateSystomName(value,callback)
+        }
+    };
+    return {
+      form: {
+        region1: '7',    //归属
+        region2: '9',     //填写单类型
+        region3: '',      //系统名称
+        region4: '',      //界面名称
+        region5: '',      //选项之间的链接
+        // region6: '0',      //是否可以检索
+        region7: '3',       //性别
+        region8: '0',          //最小年龄
+        region9: '200',         //最大年龄
+        region10: '1',        //是否复制主标签
+        region11: '0',       //是否复制当前模块
+        region12:'1',        //是否为症状
+        region13:'',        //诊断归属
+        tagPool:[],          //标签池数据
+        order:[],            //排序方式
+        tipLis:[],           //提示列表
+      },
+      labelTypesMaps: {       //// 归属和填写单类型限制
+        '7':['9'],
+      },
+      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' }
+        ],
+        region10: [
+          { required: true, message: '选择子项时是否复制主项标签', trigger: 'change' }
+        ],
+        region11: [
+          { required: true, message: '是否复制当前模块', trigger: 'change' }
+        ],
+        region12: [
+          { required: true, message: '是否为症状', trigger: 'change' }
+        ],
+        region13: [
+          { required: true, message: '请选择诊断归属', trigger: 'change' }
+        ],
+      },
+      tmpSex: '通用',
+      tmpOwn: '',
+      tmpType: '',
+      Adscriptions: [
+        {
+          id:6,
+          name:"诊断",
+          remark:"标签归属",
+          val:"7",
+        }
+      ],
+      labelTypes: [],
+      DiagnosislabelTypes: [],
+      labelTypesList: [],
+      tagTypes: [],        //标签池数据
+      type:'',
+      systom:null,      //标签系统名称存在与否
+    }
+  },
+  computed: {
+    newType() {
+      return this.form.region1;
+    },
+  },
+  mounted() {
+    const editData = this.$props.editData;
+    if(editData.id){
+      const trans = utils.transformKeys(editData,2); //(2是标签组类型)
+      // console.log('editData1', editData)
+      this.form = Object.assign({},this.form,trans);
+    }
+    this.$emit('submitForm', 'groups', false);
+    this.getDropList();
+    this.$emit('changeVal', this.form, false)
+  },
+  watch: {
+    newType(nextVal, prevVal) {
+      this.tmpOwn = prevVal;
+    },
+  },
+  methods: {
+    getDropList() {
+      return api.getDropList().then((res) => {
+        if (res.data.code === '0') {
+          this.AdscriptionsList = res.data.data[1];
+          this.labelTypesList = res.data.data[2];
+          this.form.order = res.data.data[5];
+          this.form.tipLis = res.data.data[6];
+          this.labelTypes = this.labelTypesList;
+          this.DiagnosislabelTypes = res.data.data[7];
+          // console.log('labelTypes', this.labelTypes)
+          this.Adscriptions = this.AdscriptionsList.filter(item => Object.keys(this.labelTypesMaps).indexOf(item.val) > -1);
+        }
+      })
+    },
+    searchTagList() {
+      const editData = this.$props.editData;
+      if(editData.id){
+        return;
+      }
+      let region1 = this.form.region1, region2 = this.form.region2;
+      let paramFst = !!region2 ? api.getGroupParams(region2): {};
+      let paramSec = {
+        "type": region1,
+        "sexType": this.form.region7,
+        "tagName":'',
+        "notIds": [],
+      }
+      // console.log(paramFst,paramSec,7787)
+      let params = Object.assign({},paramFst,paramSec)
+      api.searchTagList(params).then((res) => {
+        if (res.data.code === '0') {
+          this.form.tagPool = res.data.data
+        }
+      })
+    },
+    validateSystomName(name,callback) {
+      if(this.form.region3.trim() == ''){ return }
+      let param = {
+        "existName": this.form.region3,     
+        "type": this.form.region1,  
+        "notTagType":[8,10],        //去掉文字标签查重
+      }
+      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) {
+      if(type === 1) {
+        this.form.region2 = '';
+        this.labelTypes = this.labelTypesList.filter(item => this.labelTypesMaps[tmpData].indexOf(item.val) > -1)
+      }
+      if(type === 2) {
+        this.initForm()
+      }
+      this.changeSex(tmpData);
+      // if(type == 3){
+      //   this.form.region7 = this.tmpSex;
+      //   this.$alert('改变性别后,标签明细将会恢复到默认状态?', '提示', {
+      //     confirmButtonText: '确定',
+      //     cancelButtonClass: 'cancelColor',
+      //     type: 'warning'
+      //   }).then(() => {
+      //     this.form.region7 = tmpData
+      //     this.changeSex(tmpData);
+      //   }).catch(() => {
+      //     // this.form.region7 = this.tmpSex;
+      //   });
+      // }else if(type == 2){
+      //   this.form.region2 = this.tmpType
+      //   this.$alert('改变类型后,标签明细将会恢复到默认状态?', '提示', {
+      //     confirmButtonText: '确定',
+      //     cancelButtonClass: 'cancelColor',
+      //     type: 'warning'
+      //   }).then(() => {
+      //     this.form.region2 = tmpData;
+      //     this.changeSex(tmpData);
+      //   }).catch(() => {
+      //     // this.form.region2 = this.tmpType;
+      //   });
+      // }else if(type == 1){
+      //   this.form.region1 = this.tmpOwn;
+      //   this.$alert('改变归属后,标签明细将会恢复到默认状态?', '提示', {
+      //     confirmButtonText: '确定',
+      //     cancelButtonClass: 'cancelColor',
+      //     type: 'warning'
+      //   }).then(() => {
+      //     this.form.region1 = tmpData;
+      //     this.changeSex(tmpData);
+      //   }).catch(() => {
+      //     // this.form.region1 = this.tmpOwn;
+      //   });
+      // }
+    },
+    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'
+      })
+    },
+    initForm() {
+      this.form.region12 = '1'
+      this.form.region10 = '1'
+      this.form.region11 = '0'
+    }
+  }
+}
+</script>
+<style lang="less">
+.PubTagGroupWrapper {
+  .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;
+  }
+  .verticalMiddle .el-form-item__content {
+    position: relative;
+    top: 16px;
+  }
+  .maxAges {
+    margin-left: -125px;
+  }
+  .ages {
+    display: inline-block;
+    .el-form-item__content {
+      width: auto;
+    }
+    .el-input {
+      display: inline-block;
+      width: auto;
+      .el-input__inner {
+        width: 60px;
+        padding: 0 5px;
+        margin-right: 25px;
+        text-align: center;
+      }
+
+      .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: #22ccc8;
+    font-size: 12px;
+  }
+}
+}
+</style>
+

+ 222 - 0
src/components/icss/DiagnosisTemplate.vue

@@ -0,0 +1,222 @@
+<template>
+  <div class="NoiseTemplateWrapper TemplateWrapper">
+    <crumbs
+      :title="txt"
+      class="topBack"
+      linkTo="/admin/LT-YXSJWH-ZDBQWH"
+    ></crumbs>
+    <DiagnosisPubTag
+      :editData="editData"
+      @changeVal="changeVal"
+      @changeSex="changeSex"
+      @changeType="changeType"
+      @validatePass="validatePass"
+      ref="submitForm"
+    ></DiagnosisPubTag>
+    <div class="main">
+      <div class="btn">
+        <el-button
+          type="primary"
+          @click="submitForm"
+        >确 定</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+/**
+ * dataPub.region2  判断底部显示哪些
+ */
+import DiagnosisPubTag from './DiagnosisPubTag';
+import api from '@api/icss.js';
+
+export default {
+  name: 'NoiseTemplateWrapper',
+  data() {
+    return {
+      txt:'诊断标签维护-添加诊断标签',
+      dataPub: {},      //公用组件传的值都在这
+      editData:{},                    //编辑数据
+      form: {
+        currentOrder: '0',     //标签成文顺序
+      },
+      rules: {
+        currentOrder: [
+          { required: true, message: '选择标签成文顺序', trigger: 'change' }
+        ]
+      },
+      sendIds: [[], [], [], [], [], []],           //标签明细右侧操作数据
+    }
+  },
+  beforeMount:function(){
+    const {isEdit,data} = this.$route.params;
+    if(isEdit){
+      this.txt = '诊断标签维护-修改诊断标签';
+      this.editData = data;
+      // console.log('回读数据', this.editData)
+    }
+  },
+  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)
+    },
+    changeActionData(arr) {          //标签明细右侧数据id
+      this.sendIds = arr
+    },
+    submitForm() {       // 调用子组件的方法验证公用部分
+      this.$refs.submitForm.submitForm('groups');
+    },
+    validatePass() {      //验证成功回调,调取接口
+      //仍需验证标签明细是否选择
+      let type = this.dataPub.region1;
+      if (JSON.stringify(this.sendIds) == '[[],[],[],[],[],[]]' && type != 6 && type != 7 && type != 8 && type != 9 && type != 10 && type != 11) {
+        this.$message({
+          message: '请选择标签明细',
+          type: 'warning'
+        });
+        return;
+      }
+      if(parseInt(this.dataPub.region8) >= parseInt(this.dataPub.region9)) {
+          this.$message({
+            message: '最小年龄不能大于或等于最大年龄',
+            type: 'warning'
+          });
+          return;
+      }
+     
+
+      let param = {
+        "disTypeVO": {
+          "type": this.dataPub.region13
+        },
+        "questionWrapper": {
+          "controlType": 0,                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
+          "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,                //界面名称
+          "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.region10,           //是否复制
+          "showAdd": this.dataPub.region11,            //是否显示加号血压
+          "itemType" :this.dataPub.region12,
+          "showInfo": 0,
+          "questionDetails": [],
+          "questionMappings": []       //映射关系,
+        }
+      }
+      if((this.dataPub.region2 == 2 || this.dataPub.region2 == 3)&& detailLis.length == 0) {
+         this.warning('请选择标签明细')
+         return
+      }
+      this.showDelDialog(param)
+    },
+    showDelDialog(param) {
+      this.showConfirmDialog('是否保存该诊断标签?', () => {
+        api.saveOrUpdate(param).then((res) => {
+          if (res.data.code === '0') {
+            this.warning(res.data.msg || '保存成功', 'success','1000')
+            setTimeout(() => {
+              this.$router.push({
+                path:'/admin/LT-YXSJWH-ZDBQWH'
+              })
+            }, 1000);
+          } 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,time) {
+      this.$message({
+        showClose: true,
+        message: msg,
+        type: type || 'warning',
+        duration:time || '3000'
+      })
+    },
+  },
+  components: {
+    DiagnosisPubTag
+  }
+}
+</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;
+      min-width: 915px;
+      i {
+        color: #f56c6c;
+      }
+      span {
+        color:#22ccc8;
+        font-size: 12px;
+      }
+    }
+  }
+  .btn {
+    text-align: right;
+    margin-top: 10px;
+  }
+  .order {
+    margin-bottom: 20px;
+    .el-input__inner {
+      line-height: 30px;
+      height: 30px;
+    }
+  }
+}
+</style>
+

+ 213 - 0
src/components/icss/DisAndScaleRelation.vue

@@ -0,0 +1,213 @@
+<template>
+    <div>
+        <crumbs title="量表关联维护" style="min-width: 980px">
+            <el-form :inline="true" class="demo-form-inline">
+                <el-form-item label="量表名称:">
+                    <el-input size="mini" v-model="filter.scaleName" placeholder="量表名称" clearable></el-input>
+                </el-form-item>
+                 <el-form-item label="关联标签:">
+                    <el-input size="mini" v-model="filter.disName" placeholder="关联标签" clearable></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                    <el-button size="mini" type="warning" @click="addRelation">添加关联</el-button>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table
+                :data="list"
+                border
+                style="width: 100%">
+                <el-table-column
+                    :resizable = "false"
+                    type="index"
+                    :index = 'indexMethod'
+                    label="编号"
+                    width="60">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="gmtModified"
+                    label="操作时间"
+                    width="180">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="disName"
+                    label="关联标签"
+                    show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="scaleName"
+                    label="量表名称"
+                    show-overflow-tooltip>
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="modifier"
+                    label="操作人">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="operate"
+                    label="操作">
+                    <template slot-scope="scope">
+                        <el-button  @click="modifyRelation(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 class="pagination">
+            <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>
+        
+        </div>
+       <!--  <div class="pagination">
+           <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> -->
+        
+    </div>
+</template>
+
+<script>
+import api from '@api/icss.js';
+
+export default {
+    name: 'DisAndScaleRelation',   //诊断量表关联维护
+    data: function() {
+        return {
+            list: [],
+            filter: {
+                disName: '',
+                scaleName: '',
+            },
+            currentPage: 1,
+            pageSize: 10,
+            total: 0,
+        }
+    },
+    created() {
+        this.getDataList()
+        
+    },
+    methods: {
+        getDataList() {
+            const param = this.getFilterItems();
+            api.getDisScaleAllInfo(param).then((res) => {
+                if(res.data.code == '0') {
+                    this.list = res.data.data.records
+                    this.total = res.data.data.total;
+                }
+            })
+        },
+        filterDatas() {
+            this.currentPage = 1;
+            this.getDataList();
+        },
+        addRelation() {
+            this.$router.push({name:'AddDisAndScaleRelation'})
+        },
+        modifyRelation(row) {
+            console.log(row,'row')
+            const param = {
+                disId: row.disId
+            }
+            api.getDisScaleByDisId(param).then((res) => {
+                if(res.data.code=='0'){
+                    const { data } = res.data
+                    const item = Object.assign({},row, {data: data});
+                    this.$router.push({name:'AddDisAndScaleRelation',params:{isEdit:true,data:item}});
+                } else {
+                    this.warning(res.data.msg);
+                }
+            }).catch((error)=>{
+                this.warning(error)
+            })
+            
+        },
+        currentChange(next) {
+            this.currentPage = next;
+            this.getDataList();
+            // if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+            //     this.list = this.cacheData[next];
+            // } else {
+            //     this.getDataList();
+            // }
+        },
+        getFilterItems() {
+            const param = {
+                current: this.currentPage,
+                size: this.pageSize,
+                disName:this.filter.disName,
+                scaleName: this.filter.scaleName
+            };
+            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.delDisScaleInfo({id: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">
+    @import "../../less/admin.less";
+    .delete{
+       color: red;
+    }
+    .delete:hover {
+        color: red;
+    } 
+    .pagination {
+        min-width: 1010px;
+    }
+</style>

+ 10 - 6
src/components/icss/LabelGroup.vue

@@ -65,7 +65,7 @@
                     label="操作">
                     <template slot-scope="scope">
                         <el-button  @click="modifyTagGroup(scope.row)" type="text" size="small">修改</el-button>
-                        <el-button @click="showDelDialog(scope.row.id)" class="delete" type="text" size="small">删除</el-button>
+                        <el-button @click="showDelDialog(scope.row.id,scope.row.type)" class="delete" type="text" size="small">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -130,8 +130,11 @@ export default {
             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[3];
+                    // this.Adscriptions = res.data.data[1];
+                    let tmpLis = res.data.data[1]
+                    this.Adscriptions = tmpLis.filter(item => item.val != 7);
+
+                    this.tagTypes =  res.data.data[2];
                     for (var i = 0; i < this.tagTypes.length; i++) {
                         this.tagTypesList.push(this.tagTypes[i].val)
                     }
@@ -197,7 +200,8 @@ export default {
                 current: this.currentPage,
                 size: this.pageSize,
                 type: this.filter.tagAdscription,
-                tagName: this.filter.tagSysName
+                tagName: this.filter.tagSysName,
+                notTypeList: [7]
             };
             return param;
         },
@@ -222,9 +226,9 @@ export default {
             resolve();
           }).catch(() => {});
         },
-        showDelDialog(id){
+        showDelDialog(id,type){
           this.showConfirmDialog('是否删除该标签组?',()=>{
-            api.deleteTagGroup({ids:id}).then((res)=>{
+            api.deleteTagGroup({ids:id,type:type}).then((res)=>{
               if(res.data.code=='0'){
                 this.getDataList();
                 this.warning(res.data.msg || '操作成功','success');

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 17 - 8
src/components/icss/NoiseTemplate.vue


+ 2 - 4
src/components/icss/PromptDetail.vue

@@ -1,9 +1,7 @@
 <template>
     <div class="NoiseTemplateWrapper TemplateWrapper">
-        <div class="groupTitle"><i
-                class="el-icon-back"
-                @click="back"
-        ></i> 提示信息维护--详情</div>
+        <crumbs title="提示信息维护--详情" linkTo="/admin/LT-YXSJWH-TSXXWH">
+        </crumbs>
         <div class="info-container">
             <el-form label-width="130px"
                      ref="groups">

+ 6 - 3
src/components/icss/PubTagGroup.vue

@@ -242,9 +242,12 @@ export default {
         '4':['2','3'],
         '5':['7'],
         '6':['9'],
-        '7':['9'],
+        // '7':['9'],
         '8':['9'],
-        '9':['9']
+        '9':['9'],
+        '21':['9'],
+        '22':['9'],
+        '10':['9']
       },
       rules: {
         region1: [
@@ -463,13 +466,13 @@ export default {
       this.form.region12 = '1'
       this.form.region10 = '1'
       this.form.region11 = '0'
-
     }
   }
 }
 </script>
 <style lang="less">
 .PubTagGroupWrapper {
+  margin-top: 60px;
   .groups {
   background-color: #fff;
   padding: 20px;

+ 159 - 67
src/components/icss/PubTemplateGroup.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="PubTagGroupWrapper">
+    <el-button class="copyTmpt" type="primary" @click="copyTmpt" v-if="editData.id && this.form.region3 != 0">复制该内容</el-button>
     <el-form
       class="groups"
       :rules="rules"
@@ -8,54 +9,73 @@
       label-width="150px"
     >
       <el-form-item
-        label="选择归属:"
-        prop="region1"
+        label="模板名称:"
+        prop="region2"
+      >
+        <el-input
+          v-model="form.region2"
+          maxLength="120"
+          placeholder="请输入模板名称"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="模板类型:"
+        prop="region3"
       >
-        <span class="changeTips">改变归属后,模板内容将会恢复到默认状态</span>
+        <span class="changeTips">改变模板类型后,模板内容将会恢复到默认状态</span>
         <el-select
-          :disabled="!!editData.id"
-          v-model="form.region1"
-          placeholder="请选择模板归属"
+          :disabled="form.isCopy || !!editData.id"
+          v-model="form.region3"
+          placeholder="模板类型"
           @change="sendData"
         >
           <el-option
-            v-for="item in Adscriptions"
+            v-for="item in AdscriptionsType"
             :label="item.name"
             :value="item.key+''"
             :key="item.key"
           ></el-option>
         </el-select>
       </el-form-item>
-      <!-- <el-form-item
-        label="选择子模板归属:"
-        prop="region3"
-        v-if="form.region1 == 5"
+      <el-form-item
+        :label="form.region3 == 1?'属于科室:':'属于慢病:'"
+        prop="region4"
+        v-if="form.region3 != 0"
       >
-        <span class="changeTips">改变子模板归属后,模板内容将会恢复到默认状态</span>
+        <span class="changeTips">改变属于类别后,模板内容将会恢复到默认状态</span>
         <el-select
           :disabled="!!editData.id"
-          v-model="form.region3"
-          placeholder="请选择子模板"
+          v-model="form.region4"
+          :placeholder="form.region3 == 1?'属于科室':'属于慢病'"
           @change="sendData"
         >
           <el-option
             v-for="item in sonLis"
             :label="item.name"
-            :value="item.key+''"
-            :key="item.key"
+            :value="item.id+''"
+            :key="item.id"
+            v-if="!!item.name"
           ></el-option>
         </el-select>
-      </el-form-item> -->
+      </el-form-item>
       <el-form-item
-        label="模板名称:"
-        prop="region2"
+        label="模板归属:"
+        prop="region1"
       >
-        <el-input
-          v-model="form.region2"
-          :disabled="!!editData.id"
-          maxLength="120"
-          placeholder="请输入模板名称"
-        ></el-input>
+        <span class="changeTips">改变模板归属后,模板内容将会恢复到默认状态</span>
+        <el-select
+          :disabled="form.isCopy || !!editData.id || (form.region3 == '') || (form.region3 != '0' && form.region4 == '')"
+          v-model="form.region1"
+          placeholder="模板归属"
+          @change="sendData"
+        >
+          <el-option
+            v-for="item in Adscriptions"
+            :label="item.name"
+            :value="item.type+''"
+            :key="item.type"
+          ></el-option>
+        </el-select>
       </el-form-item>
     </el-form>
   </div>
@@ -76,24 +96,13 @@ export default {
     return {
       numWord:0,
       Adscriptions:[],
-      sonLis:[{
-        name:'空',
-        key:'-1',
-      },{
-        name:'主诉模板',
-        key:'1'
-      },{
-        name:'现病史模板',
-        key:'2'
-      },{
-        name:'现病史空模板',
-        key:'3'
-      }],
+      sonLis:[],
       form: {
         region1: '',    //归属
         region2: '',     //模板名称
-        region3: '-1',     //子模板
-        tagPool:[],      //标签池
+        region3: '',     //类型
+        region4: '',     //所属科室慢病
+        isCopy:false
       },
       rules: {
         region1: [
@@ -101,52 +110,129 @@ export default {
         ],
         region2: [
           { required: true, message: '请输入模板名称', trigger: 'change' },
-          // { validator: validatePass2, trigger: 'blur' },
         ],
         region3: [
-          { required: true, message: '请选择子模板归属', trigger: 'change' },
-          // { validator: validatePass2, trigger: 'blur' },
+          { required: true, message: '请选择模板类型', trigger: 'change' },
+        ],
+        region4: [
+          { required: true, message: '请选择所属', trigger: 'change' },
         ],
       },
+      AdscriptionsType:[],
+      deptDis:{}
     }
   },
   beforeMount:function(){
-    let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
-    let guisu = localStorage.getItem('guisu') ? JSON.parse(localStorage.getItem('guisu')) : []
-    for(let k = 0;k < guisu.length;k++){
-      templateOwn = templateOwn.filter(item => item.key != guisu[k])
+    let templateType = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleInfoTypeEnum : []
+    let templateOwn = localStorage.getItem('typeLis') ? JSON.parse(localStorage.getItem('typeLis')) : []
+    this.deptDis = localStorage.getItem('deptDis') ? JSON.parse(localStorage.getItem('deptDis')) : {}
+    for(let i = 0;i < templateOwn.length;i++){
+      templateOwn[i].type = templateOwn[i].val
+    }
+    this.Adscriptions = templateOwn
+    this.AdscriptionsType = templateType
+  },
+  computed:{
+    tmpType(){
+      return this.form.region3
+    },
+    tmpOwnTo(){
+      return this.form.region4
+    }
+  },
+  watch: {
+    tmpType(newVal, preVal){
+      if(newVal != preVal){
+        if(newVal == 1){
+          let tmpDeptDTOS = this.deptDis.deptDTOS
+          let obj = {id:-1,name:'通用'}
+          if(tmpDeptDTOS[0].id != 0){
+            tmpDeptDTOS.unshift(obj)
+          }
+          this.sonLis = tmpDeptDTOS
+          if(!this.form.id){
+            this.form.region4 = ''
+            this.form.region1 = ''
+          }
+        }else if(newVal == 2){
+          let tmpDisDTOS = this.deptDis.disDTOS
+          let obj = {id:-1,name:'通用'}
+          if(tmpDisDTOS[0].id != 0){
+            tmpDisDTOS.unshift(obj)
+          }
+          this.sonLis = tmpDisDTOS
+          if(!this.form.id){
+            this.form.region4 = ''
+            this.form.region1 = ''
+          }
+        }else{
+          this.sonLis = []
+          if(!this.form.id){
+            this.getTypes()
+            this.form.region4 = ''
+            this.form.region1 = ''
+          }
+        }
+      }
+    },
+    tmpOwnTo(newVal, preVal){
+      if(newVal != preVal){
+          if(!this.form.id){
+            this.getTypes()
+            this.form.region1 = ''
+          }
+          if(this.form.isCopy){
+            this.getTypes('copy')
+          }
+      }
     }
-    this.Adscriptions = templateOwn;
   },
   mounted() {
     const editData = this.$props.editData;
-    let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
     if(editData.id){      //修改
-      // const trans = utils.transformKeys(editData,2);
       this.form = Object.assign({},this.form,editData);
-      this.Adscriptions = templateOwn
-      this.form.region1 = (editData.type+'')
+      this.form.region1 = editData.type
       this.form.region2 = editData.name
+      this.form.region3 = editData.moduleType+''
+      this.form.region4 = editData.relationId+''
     }
     this.$emit('changeVal', this.form, false)
-    // this.searchTagList()
   },
   methods:{
-    changes(){
-      let nameVal = this.form.region2
-      console.log(nameVal.length)
-      if(nameVal.length == 10){
-        this.$message({
-          message: '最多输入120个字',
-          type: 'warning',
-          showClose: true,
-        });
-      }
-      if(nameVal.length == 10){
-        this.numWord = 10
-      }else{
-        this.numWord = 0
+    copyTmpt(){
+      this.editData.id = ''
+      this.form.isCopy = true
+      this.$emit('staticOwn', this.form.region4, false)
+      this.$emit('changeVal', this.form, false)
+    },
+    getTypes(type){
+      let param = {
+          "moduleType": this.form.region3,
+          "relationId": this.form.region4
       }
+      api.getModuleType(param).then((res) => {
+        if (res.data.code === '0') {//获取模板归属
+          let result = res.data.data
+          if(type){
+            let num = 0;
+            for(let i = 0;i < result.length;i++){
+              if(result[i].type == this.form.region1){
+                ++num
+              }
+            }
+            if(num == 0){
+              this.$message({
+                message:'该归属下的模板已添加',
+                type:'warning'
+              })
+              this.$emit('staticOwn', this.form.region4, false)
+              return
+            }
+          }else{
+            this.Adscriptions = result
+          }
+        }
+      })
     },
     sendData(val){
       this.$emit('changeVal', this.form, false)
@@ -166,6 +252,12 @@ export default {
 </script>
 <style lang="less">
 .PubTagGroupWrapper {
+  position: relative;
+  .copyTmpt {
+    position: absolute;
+    right: 40px;
+    top: 20px;
+  }
   .groups {
   background-color: #fff;
   padding: 20px;

+ 81 - 49
src/components/icss/TemplateMaintenance.vue

@@ -2,9 +2,19 @@
     <div>
         <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.tagAdscription" placeholder="模板归属" clearable>
-                        <el-option v-for="item in Adscriptions" :label="item.name" :value="item.key" :key="item.key" ></el-option>
+                <el-form-item label="模板类型:">
+                    <el-select size="mini" v-model="filter.templateType" placeholder="模板类型" clearable>
+                        <el-option v-for="item in AdscriptionsType" :label="item.name" :value="item.key" :key="item.key" ></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="归属:">
+                    <el-select size="mini" v-model="filter.tagAdscription" placeholder="归属" clearable>
+                        <el-option v-for="item in Adscriptions" :label="item.name" :value="item.val" :key="item.val" ></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="属于:">
+                    <el-select size="mini" v-model="filter.ownTo" placeholder="属于" clearable>
+                        <el-option v-if="!!item.name" v-for="item in AdscriptionsOwnTo" :label="item.name" :value="item.id" :key="item.id" ></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item>
@@ -36,6 +46,16 @@
                         prop="name"
                         label="模板名称">
                 </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="moduleTypeName"
+                        label="模板类型">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="relationName"
+                        label="属于">
+                </el-table-column>
                 <el-table-column
                         :resizable = "false"
                         prop="ascriptionName"
@@ -52,7 +72,7 @@
                         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> -->
+                        <el-button @click="showDelDialog(scope.row.id,scope.row.type)" class="delete" type="text" size="small">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -82,15 +102,20 @@
         list: [],
         tagTypes: [],
         Adscriptions: [],
+        AdscriptionsType:[],
+        AdscriptionsOwnTo:[],
         tagTypesList: [],
         filter: {
           tagType: [], //标签类型
+          templateType: '', //模板类型
+          ownTo: '', //属于科室、慢病
           tagAdscription: '', //标签归属
           tagSysName: '', //标签系统名称
         },
         currentPage: 1,
         pageSize: 10,
         total: 0,
+        deptAndDisInfo:{},
       }
     },
     created() {
@@ -99,48 +124,45 @@
       })
       this.getSubTemplate()
     },
+    computed:{
+      tmpType(){
+        return this.filter.templateType
+      }
+    },
+    watch: {
+      tmpType(newVal, preVal){
+        if(newVal != preVal){
+          if(newVal == 1){
+            this.AdscriptionsOwnTo = this.deptAndDisInfo.deptDTOS
+            this.filter.ownTo = ''
+          }else if(newVal == 2){
+            this.AdscriptionsOwnTo = this.deptAndDisInfo.disDTOS
+            this.filter.ownTo = ''
+          }else{
+            this.AdscriptionsOwnTo = []
+            this.filter.ownTo = ''
+          }
+        }
+      }
+    },
     methods: {
       getSubTemplate() {
-        let param = {
-          noIds:this.subTmpList,
-        }
-        api.getModuleInfoSub(param).then((res) => {
-          if (res.data.code === '0') {
+        api.getAllDeptAndDisInfo().then((res) => {
+          if (res.data.code === '0') {//获取科室和疾病所有信息
             let result = res.data.data
-            let arr = [],main = '',now = '',nowEmpt = '',other = '';
-            for(let i = 0;i < result.length;i++){
-              if(result[i].name == '主诉模板'){
-                if(!main){
-                  main = 1
-                  arr.push(main)
-                }
-              }else if(result[i].name == '现病史模板'){
-                if(!now){
-                  now = 2
-                  arr.push(now)
-                }
-              }else if(result[i].name == '现病史空模板'){
-                if(!nowEmpt){
-                  nowEmpt = 3
-                  arr.push(nowEmpt)
-                }
-              }else if(result[i].name == '其他史模板'){
-                if(!other){
-                  other = 4
-                  arr.push(other)
-                }
-              }
-            }
-            localStorage.setItem('guisu',JSON.stringify(arr))
+            this.deptAndDisInfo = result
+            localStorage.setItem('deptDis',JSON.stringify(result))
           }
         })
       },
       getDropList() {
-        let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
-        this.Adscriptions = templateOwn;
+        let templateType = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleInfoTypeEnum : []
+        this.AdscriptionsType = templateType
         return api.getDropList().then((res) =>{
           if(res.data.code === '0') {
             this.tagTypes =  res.data.data[6];
+            this.Adscriptions = res.data.data[4];
+            localStorage.setItem('typeLis',JSON.stringify(res.data.data[4]))
             for (var i = 0; i < this.tagTypes.length; i++) {
               this.tagTypesList.push(this.tagTypes[i].val)
             }
@@ -150,21 +172,23 @@
       getDataList() {
         const param = this.getFilterItems();
         api.getModuleInfoList(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;
+          if(res.data.code == 0){
+            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
+              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;
           }
-          this.list = list;
-          this.total = res.data.data.total;
         })
       },
       filterDatas() {
@@ -175,6 +199,12 @@
         this.$router.push({path:'LT-YXSJWH-TJMBWH'})
       },
       modifyIndeptTag(row) {
+        // api.detailsTag({ids:row.id}).then((res) => {
+        //   if (res.data.code === '0') {//获取科室和疾病所有信息
+        //     let result = res.data.data
+        //     console.log(result)
+        //   }
+        // })
         Promise.all([
           api.getModuleInfoOne({moduleId:row.id}),
           api.getModuleDetailInfo({moduleId:row.id})
@@ -201,6 +231,8 @@
           current: this.currentPage,
           size: this.pageSize,
           type: this.filter.tagAdscription,
+          moduleType:this.filter.templateType,
+          relationId:this.filter.ownTo
         };
         return param;
       },
@@ -222,9 +254,9 @@
           resolve();
         }).catch(() => {});
       },
-      showDelDialog(id){
+      showDelDialog(id,type){
         this.showConfirmDialog('是否删除该标签?',()=>{
-          api.delTemplate({ids:id}).then((res)=>{
+          api.delTemplate({ids:id,type:type}).then((res)=>{
             if(res.data.code=='0'){
               this.getDataList();
               this.warning(res.data.msg || '操作成功','success');

+ 24 - 10
src/components/icss/TemplateMaintenanceWrap.vue

@@ -1,13 +1,15 @@
 <template>
   <div class="NoiseTemplateWrapper TemplateWrapper">
-    <div class="groupTitle"><i
-        class="el-icon-back"
-        @click="back"
-      ></i> {{txt}}</div>
+    <crumbs
+      :title="txt"
+      class="topBack"
+      linkTo="/admin/LT-YXSJWH-MBWH"
+    ></crumbs>
     <PubTemplateGroup
       :editData="editData"
       @changeVal="changeVal"
       @validatePass="validatePass"
+      @staticOwn="staticOwn"
       ref="submitForm"
     ></PubTemplateGroup>
     <div class="main">
@@ -15,7 +17,8 @@
         v-if="dataPub.region1"
         :pool="dataPub.tagPool"
         :type="dataPub.region1"
-        :sign="dataPub.region3"
+        :signe="dataPub.region3"
+        :rela="dataPub.region4"
         :options="editData"
          @changeActionData="changeActionData"
       >
@@ -23,6 +26,8 @@
       <div class="btn">
         <el-button
           type="primary"
+          :disabled="dataPub.isCopy && staticOwnTo == dataPub.region4"
+          :plain="dataPub.isCopy && staticOwnTo == dataPub.region4"
           @click="submitForm"
         >确 定</el-button>
       </div>
@@ -42,24 +47,32 @@ export default {
   name: 'TemplateMaintenanceWrap',
   data() {
     return {
-      txt:'模板维护--添加模板',
+      txt:'模板维护-添加模板',
       dataPub: {},                    //公用组件传的值都在这
       editData:{},                    //编辑数据
       sendIds: [],           //标签明细右侧操作数据
+      staticOwnTo:''
     }
   },
   beforeMount:function(){
     const {isEdit,data} = this.$route.params;
     if(isEdit){
-      this.txt = '模板维护--修改模板';
+      this.txt = '模板维护-修改模板';
       this.editData = data;
       // console.log('回读数据', this.editData)
     }
   },
   methods: {
     back() { this.$router.go(-1) },
+    staticOwn(val){
+      console.log(val,'change555')
+      this.staticOwnTo = val
+    },
     changeVal(val) {    //子组件数据改变传递到父组件
       this.dataPub = val    // console.log('公用组件传的值都在这', val)
+      if(val.isCopy){
+        this.txt = '模板维护-复制模板'
+      }
     },
     changeActionData(arr) {          //标签明细右侧数据id
       this.sendIds = arr
@@ -71,7 +84,6 @@ export default {
       //仍需验证标签明细是否选择
       let type = this.dataPub.region1,name=this.dataPub.region2;
       let detailLis = utils.orderTemplateData(this.sendIds)
-      // console.log(detailLis.text == '' , detailLis.questionId == '')
       if (JSON.stringify(this.sendIds) == '[]' || !detailLis) {
         this.$message({
           message: '模板至少包含一个标签池标签',
@@ -89,9 +101,11 @@ export default {
         "modelDetils": detailLis,
         "name": name,
         "type": type,
-        "flag": type == 5?3:'',
+        "flag": (type == 322 || type == 32 || type == 31)?3:'',
         "textType": type,
-        "id":this.editData.id || ''
+        "id":this.editData.id || '',
+        "moduleType": this.dataPub.region3,
+        "relationId": this.dataPub.region4
       }
       // console.log(param,'保存模板的参数')
       this.showDelDialog(param)

BIN
src/images/relation.png


+ 0 - 1
src/main.js

@@ -10,7 +10,6 @@ import qs from 'qs';
 import utils from '@api/utils.js';
 import Crumbs from '@components/common/Crumbs.vue';
 
-
 Vue.config.productionTip = false;
 Vue.prototype.axios = axios;
 Vue.prototype.qs = qs;

+ 26 - 1
src/routes.js

@@ -63,7 +63,21 @@ import MedicalRelation from '@components/icss/MedicalRelation.vue'//医学术语
 import AddMedicalRelation from '@components/icss/AddMedicalRelation.vue'//医学术语维护-关系维护-添加
 import MedicalInfo from '@components/icss/MedicalInfo.vue'//医学术语维护-信息维护(属性维护)
 import AddMedicalInfo from '@components/icss/AddMedicalInfo.vue'//医学术语维护-信息维护(属性维护)-添加
+import DiagnosisList from '@components/icss/DiagnosisList.vue'//诊断标签维护 -- 列表显示
+import DiagnosisTemplate from '@components/icss/DiagnosisTemplate.vue';//诊断标签维护 -- 添加
+import ChronicDiseaseStructureList from '@components/icss/ChronicDiseaseStructureList.vue'; //量表结构维护 -- 列表
+import ChronicDiseaseAdd from '@components/icss/ChronicDiseaseAdd.vue'; //量表结构维护 -- 添加
+import ChronicDiseaseManage from '@components/icss/ChronicDiseaseManage.vue'; //慢病管理评估维护 -- 列表
+import ChronicDiseaseManageAdd from '@components/icss/ChronicDiseaseManageAdd.vue'; //慢病管理评估维护 -- 添加
+
 import ChemicalAndCommonMapping from '@components/icss/ChemicalAndCommonMapping.vue'; //化验大小项与公表维护
+import AddChemicalAndCommonMapping from '@components/icss/AddChemicalAndCommonMapping.vue'  //化验大小项与公表维护--添加关联
+import ChronicAndIndexRelation from '@components/icss/ChronicAndIndexRelation.vue'  //医学数据--慢病指标值关联维护
+import AddChronicAndIndexRelation from '@components/icss/AddChronicAndIndexRelation.vue'  //医学数据--添加慢病指标值关联
+import DisAndScaleRelation from '@components/icss/DisAndScaleRelation.vue'  //医学数据--量表关联维护
+import AddDisAndScaleRelation from '@components/icss/AddDisAndScaleRelation.vue'  //医学数据--添加量表关联
+
+
 
 import MedicalType from '@components/icss/MedicalType.vue'//医学术语维护-类型维护
 export default [
@@ -172,7 +186,7 @@ export default [
       {path:'LT-YXSJWH-TJDLBQ',component:AddIndeptLabel,name:'AddIndeptLabel'},     //独立标签维护--添加
       {path:'LT-YXSJWH-TSXXWH',component:PromptInfo,name:'PromptInfo'},         //提示信息维护
 	    {path:'LT-YXSJWH-BMWH',component:SimilarName,name:'SimilarName'},     //别名维护
-      {path:'LT-YXSJWH-CJZZWH',component:CommonSymptom,name:'CommonSymptom'},  //常见症状维护
+      {path:'LT-YXSJWH-CJXXWH',component:CommonSymptom,name:'CommonSymptom'},  //常见症状维护
       {path:'LT-YXSJWH-TJCJZZ',component:AddCommonSymptom,name:'AddCommonSymptom'},  //常见症状维护--添加
       {path:'LT-YXSJWH-TJBM',component:AddSimilarName,name:'AddSimilarName'},     //别名维护-添加/修改
       {path:'LT-YXSJWH-MZSMWH',component:DisclaimerInformation,name:'DisclaimerInformation'},     //免责声明
@@ -195,8 +209,19 @@ export default [
       {path:'LT-YXSYKWH-TJYXSYGX',component:AddMedicalRelation,name:'AddMedicalRelation'},     //医学术语--关系维护-添加
       {path:'LT-YXSYKWH-SYYXSXWH',component:MedicalInfo,name:'MedicalInfo'},  //医学术语维护-信息维护(属性维护)
       {path:'LT-YXSYKWH-TJYXSYXX',component:AddMedicalInfo,name:'AddMedicalInfo'},  //医学术语维护-信息维护(属性维护) -- 添加
+      {path:'LT-YXSJWH-ZDBQWH',component:DiagnosisList,name:'DiagnosisList'},  //诊断标签维护 -- 列表显示
+      {path:'LT-YXSJWH-ZDBQTJ',component:DiagnosisTemplate,name:'DiagnosisTemplate'},  //诊断标签维护 -- 添加
+      {path:'LT-YXSJWH-LBJGWH',component:ChronicDiseaseStructureList,name:'ChronicDiseaseStructureList'},  //量表结构维护 -- 列表
+      {path:'LT-YXSJWH-LBJGTJ',component:ChronicDiseaseAdd,name:'ChronicDiseaseAdd'},  //量表结构维护 -- 添加
+      {path:'LT-YXSJWH-MBGLYPG',component:ChronicDiseaseManage,name:'ChronicDiseaseManage'},  //慢病管理评估维护 -- 列表
+      {path:'LT-YXSJWH-MBGLYTJ',component:ChronicDiseaseManageAdd,name:'ChronicDiseaseManageAdd'},  //慢病管理评估维护 -- 添加
       {path:'LT-YXSJWH-HYDXXYGBXDY',component:ChemicalAndCommonMapping,name:'ChemicalAndCommonMapping'},  //化验大小项与公表维护
+      {path:'LT-YXSJWH-TJHYDXXYGBXDY',component:AddChemicalAndCommonMapping,name:'AddChemicalAndCommonMapping'},  //化验大小项与公表维护--添加关联
       {path:'LT-YXSYKWH-YXSYLXWH',component:MedicalType,name:'MedicalType'},     //医学术语--类型维护
+      {path:'LT-YXSJWH-MBZBZGLWH',component:ChronicAndIndexRelation,name:'ChronicAndIndexRelation'},     //医学数据--慢病指标值关联维护
+      {path:'LT-YXSJWH-TJMBZBZGL',component:AddChronicAndIndexRelation,name:'AddChronicAndIndexRelation'},     //医学数据--慢病指标值关联维护
+      {path:'LT-YXSJWH-LBGLWH',component:DisAndScaleRelation,name:'DisAndScaleRelation'},     //医学数据--慢病指标值关联维护
+      {path:'LT-YXSJWH-TJLBGL',component:AddDisAndScaleRelation,name:'AddDisAndScaleRelation'},     //医学数据--慢病指标值关联维护
     ]
   }
 ]

+ 2 - 2
vue.config.js

@@ -1,7 +1,7 @@
 const path = require('path');
 // const proxy_path = 'http://192.168.2.236:80';
-const proxy_path = 'http://192.168.2.241:88';
-// const proxy_path = 'http://192.168.2.236:88';
+// const proxy_path = 'http://192.168.2.241:88';
+const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.3.101:5050';
 // const proxy_path = 'http://192.168.3.117:5050';//周铁刚
 // const proxy_path = 'http://192.168.3.115:5050';