瀏覽代碼

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

Luolei 6 年之前
父節點
當前提交
5033494965

+ 11 - 0
src/api/config.js

@@ -106,6 +106,11 @@ export default {
     'addSimilarName': 'api/icssman/retrieval/addTagRetrieval', //别名维护-添加、修改
     'searchLable': 'api/icssman/questionInfo/index', //标签检索
     'uploadFile': 'api/icssman/retrieval/retrievalExcelIm', //别名维护-导入
+    'commonSymptomList': 'api/icssman/questionUsual/getDeptInfos', //常见症状维护-常见症状列表
+    'getDepartmentList':'api/icssman/questionUsual/getDeptName', //常见症状维护-科室列表
+    'getSymptomList':'api/icssman/questionUsual/getQuestionInfo', //常见科室症状维护--获取症状列表
+    'addCommonSymptom': 'api/icssman/questionUsual/addQuestionUsual',  //常见科室症状维护--添加修改科室症状
+    'delCommonSymptom': 'api/icssman/questionUsual/deleteQuestionUsual',  //常见科室症状维护--添加修改科室症状
     'discInformation': 'api/icssman/disclaimerInformation/getDisclaimerInformations', //免责声明
     'addDiscInformation': 'api/icssman/disclaimerInformation/addDisclaimerInformations', //免责声明-新增
     'modifDiscInformation': 'api/icssman/disclaimerInformation/updateDisclaimerInformations', //免责声明-修改
@@ -116,6 +121,12 @@ export default {
     'getModuleInfoList': 'api/icssman/moduleInfo/getModuleInfoList', //模板维护系统列表
     'getModuleInfoOne': 'api/icssman/moduleInfo/getModuleInfoOne', //模板维护系统修改获取单个模板信息
     'delTemplate': 'api/icssman/moduleInfo/delete', //模板维护系统删除单个模板信息
+    'getPhysicalExamTempList': 'api/icssman/deptVital/getDeptVitalPage', //查体模板列表
+    'getPhysicalExamTempDepartList':'api/icssman/deptVital/getDeptShortList_create' , //查体模板科室列表--新增
+    'getPhysicalExamTempByDepId':'api/icssman/deptVital/getModuleByDeptId', //通过科室id获取查体模板
+    'savePhysicalExamTemp':'api/icssman/deptVital/saveDeptVitals',//保存查体模板
+    'delPhysicalExamTemp':'api/icssman/deptVital/delAllDeptVitalList',//删除查体模板
+
 	},
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 30 - 0
src/api/icss.js

@@ -93,6 +93,21 @@ export default {
     uploadFile(param) {//别名维护-导入
         return axios.post(urls.uploadFile, param)
     },
+    commonSymptomList(param) {  //常见症状维护-常见症状列表
+        return axios.post(urls.commonSymptomList, param)
+    },
+    getDepartmentList() {   //常见症状维护-获取科室列表
+        return axios.post(urls.getDepartmentList)
+    },
+    getSymptomList(param) {
+        return axios.post(urls.getSymptomList, param)
+    },
+    addCommonSymptom(param) {
+        return axios.post(urls.addCommonSymptom, param)
+    },
+    delCommonSymptom(param) {
+        return axios.post(urls.delCommonSymptom, param)
+    },
     discInformation(param) {//免责声明
         return axios.post(urls.discInformation, param)
     },
@@ -123,4 +138,19 @@ export default {
     delTemplate(param) {//模板维护系统删除单个模板信息
         return axios.post(urls.delTemplate, param)
     },
+    getPhysicalExamTempList(param) {
+        return axios.post(urls.getPhysicalExamTempList, param)
+    },
+    getPhysicalExamTempDepartList() {
+        return axios.post(urls.getPhysicalExamTempDepartList)
+    },
+    getPhysicalExamTempByDepId(param) {
+        return axios.post(urls.getPhysicalExamTempByDepId, param)
+    },
+    savePhysicalExamTemp(param) {
+        return axios.post(urls.savePhysicalExamTemp, param)
+    },
+    delPhysicalExamTemp(param) {
+        return axios.post(urls.delPhysicalExamTemp, param)
+    },
 }

+ 4 - 3
src/api/utils.js

@@ -172,7 +172,7 @@ export default {
    *将提交的参数转换成对应的组件form中的key
    *
    */
-  transformKeys(data, tagFlag){   //tagFlag:独立标签还是标签组 ()
+  transformKeys(data, tagFlag){   //tagFlag:独立标签还是标签组 (2是标签组)
     const maps = {
       "controlType": 'region2',                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
       // "tagType": 'region2',(这个注释掉,不要解开了!!!!)
@@ -185,13 +185,14 @@ export default {
       "sexType": 'region7',             //1:男,2:女,3:通用
       "ageBegin": 'region8',       		 //最小年龄
       "ageEnd": 'region9',              //最大年龄
+      "copyType":'region10',          //是否复制主标签  
+      "showAdd":'region11',           //是否复制当前模块
       "labelPrefix":'prefix',                                 //前缀
       "labelSuffix":'suffix',                                 //后缀
       "maxValue":'maxNormalVal',                                 //前缀
       "minValue":'minNormalVal'                                 //后缀
     };
-    
-    if (tagFlag) {
+    if (tagFlag == 2) {
       maps["tagType"] = 'region2'
     }
     let obj = {};

+ 371 - 0
src/components/icss/AddCommonSymptom.vue

@@ -0,0 +1,371 @@
+<!-- 添加常见科室症状  -->
+<template>
+    <div class="addCommonSymptomWrapper">
+        <div class="groupTitle"><i
+            class="el-icon-back"
+            @click="back"
+        ></i> 常见症状维护系统--添加科室常见症状</div>
+        <el-form :model="form" ref="ruleForm" :rules="rules" class="addDepartForm">
+            <el-form-item label="选择科室" prop="department">
+                <el-select v-model="form.department" placeholder="请添加科室" 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 v-model="form.type" placeholder="请选择类型" class="selectDepart">
+                    <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+                </el-select>
+            </el-form-item>
+        </el-form>
+        <div class="symptomList">
+            <div class="bottomPartLeft fl">
+                
+                <p class="symptomPoolTitle">症状池</p>
+                <div class="symptomPool">
+                    <el-input
+                    placeholder="请输入搜索内容"
+                    v-model="searchVal"
+                    >
+                        <i
+                            slot="prefix"
+                            class="el-input__icon el-icon-search"
+                        ></i>
+                    </el-input>
+                    <ul class="tagList tagPool">
+                        <li v-for="(item, index) in leftTagsList"
+                            class = "tagItem"
+                            :key='item.id'
+                            :title="'[ '+item.tagName+' ]'"
+                            :style="getStyle(item)?styles:null"
+                            @click='selectLeftTag(item, index)'
+                        >
+                            <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: 'AddCommonSymptom',
+    data() {
+        return{
+            rules: {
+                department:[{required: true, message: '请选择科室', trigger: ['blur']}],
+                type:[{required: true, message: '请选择科室', trigger: ['blur']}]
+            },
+            form: {
+                department: '',
+                type:''
+            },
+            departList: [],
+            typeList:[],
+            searchVal: '',
+            leftTagsList:[],
+            rightTagsList:[],
+            selectLeftTagsList: [],
+            selectRightTagIndex: -1,
+            styles:{
+                background:'#eae7e7'
+            },
+        }
+    },
+    created(){
+        this.getDepartmentList()
+        this.getSymptomList()
+    },
+    watch: {
+        searchVal(newVal, preVal) {
+            if(newVal.trim() == ''){
+                this.getSymptomList()
+            }else if(newVal.trim() != preVal.trim()){
+                this.getSymptomList()
+            }
+        }
+    },
+    methods: {
+        back(){
+            this.$router.go(-1);
+        },
+        getDepartmentList() {
+            api.getDepartmentList().then((res)=>{
+               if(res.data.code === '0') {
+                   this.departList = res.data.data
+                   
+                }
+            })
+        },
+        getSymptomList() {
+            let noIds = []
+            for (let i =0; i < this.rightTagsList.length; i++) {
+                noIds.push(this.rightTagsList[i].id)
+            }
+            const param = {
+                "deptId": this.form.department,
+                "tagName": this.searchVal,
+                "noIds": noIds
+            }
+            api.getSymptomList(param).then((res)=>{
+               if(res.data.code === '0') {
+                   this.leftTagsList = res.data.data
+                }
+            })
+        },
+        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.selectRightTagsList = [];
+            this.getSymptomList()
+        },
+        toLeftList(){
+            for(let i = 0; i < this.selectRightTagsList.length; i++) {
+                this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[i].id)
+            }
+            this.selectLeftTagsList = [];
+            this.selectRightTagsList = [];
+            this.getSymptomList()
+
+        },
+        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) {
+           
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    return
+                } else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
+             if(!this.form.department) {
+                return 
+            }
+            this.showDelDialog()
+        },
+        showDelDialog() {
+            let questionId = []
+            for (let i =0; i < this.rightTagsList.length; i++) {
+                questionId.push(this.rightTagsList[i].id)
+            }
+            const param ={
+                "deptId": this.form.department,
+                "questionId": questionId
+   
+            }
+            this.showConfirmDialog('是否保存该标签组?', () => {
+                api.addCommonSymptom(param).then((res) => {
+                if (res.data.code  === '0') {
+                    this.warning(res.data.msg || '保存成功', 'success','1000')
+                    setTimeout(() => {
+                    this.$router.push({
+                        path:'/admin/LT-YXSJWH-CJZZWH'
+                    })
+                    }, 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';
+    .addCommonSymptomWrapper {
+        .groupTitle {
+            background-color: #fff;
+            height: 40px;
+            line-height: 40px;
+            padding-left: 20px;
+        }
+        .addDepartForm {
+            background-color: #fff;
+            padding: 20px;
+            margin: 20px 20px 0px 20px;
+        }
+        .symptomList {
+            background-color: #fff;
+             padding: 20px;
+             margin: 20px 20px 0px 20px;
+             height: 500px;
+        }
+        .bottomPartLeft {
+            width: 32%;
+        }
+        .symptomPoolTitle {
+            height: 40px;
+            line-height: 40px;
+        }
+        .symptomPool {
+            width: 100%;
+        }
+        .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;
+        }
+        .btn {
+            position: relative;
+            background-color: #fff;
+            margin: 0px 20px;
+            padding: 20px;
+            .el-button {
+                position: absolute;
+                right: 20px;
+                top: -20px;
+            }
+        }
+        .selectDepart {
+            
+        }
+    }
+    
+</style>

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

@@ -0,0 +1,370 @@
+<!-- 添加常见科室症状  -->
+<template>
+    <div class="addCommonSymptomWrapper">
+        <div class="groupTitle"><i
+            class="el-icon-back"
+            @click="back"
+        ></i> 查体模板维护系统--添加模板</div>
+        <el-form :model="form" ref="ruleForm" :rules="rules" class="addDepartForm">
+            <el-form-item label="模板归属:"  >
+               <span>查体</span>
+            </el-form-item>
+            <el-form-item label="选择科室" prop="department">
+                <el-select v-model="form.department" placeholder="请添加科室" @change="changeDepart" 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>
+        <div class="symptomList">
+            <div class="bottomPartLeft fl">
+                
+                <p class="symptomPoolTitle">症状池</p>
+                <div class="symptomPool">
+                    <el-input
+                    placeholder="请输入搜索内容"
+                    v-model="searchVal"
+                    >
+                        <i
+                            slot="prefix"
+                            class="el-input__icon el-icon-search"
+                        ></i>
+                    </el-input>
+                    <ul class="tagList tagPool">
+                        <li v-for="(item, index) in leftTagsList"
+                            class = "tagItem"
+                            :key='item.id'
+                            :title="'[ '+item.tagName+' ]'"
+                            :style="getStyle(item)?styles:null"
+                            @click='selectLeftTag(item, index)'
+                        >
+                            <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: 'AddCommonSymptom',
+    data() {
+        return{
+            rules: {
+                department:[{required: true, message: '请选择科室', trigger: ['blur']}],
+            },
+            form: {
+                department: '',
+            },
+            departList: [],
+            searchVal: '',
+            leftTagsList:[],
+            rightTagsList:[],
+            selectLeftTagsList: [],
+            selectRightTagIndex: -1,
+            styles:{
+                background:'#eae7e7'
+            },
+        }
+    },
+    created(){
+        this.getDepartmentList()
+        this.getTagList()
+    },
+    watch: {
+        searchVal(newVal, preVal) {
+            if(newVal.trim() == ''){
+                this.getTagList()
+            }else if(newVal.trim() != preVal.trim()){
+                this.getTagList()
+            }
+        }
+    },
+    methods: {
+        back(){
+            this.$router.go(-1);
+        },
+        getDepartmentList() {
+            api.getPhysicalExamTempDepartList().then((res)=>{
+               if(res.data.code === '0') {
+                   this.departList = res.data.data
+                   
+                }
+            })
+        },
+        getTagList() {
+            let noIds = []
+            for (let i =0; i < this.rightTagsList.length; i++) {
+                noIds.push(this.rightTagsList[i].id)
+            }
+            const param = {
+                "deptId": this.form.department,
+                // "tagName": this.searchVal,
+            }
+            console.log()
+            api.getPhysicalExamTempByDepId(param).then((res)=>{
+               if(res.data.code === '0') {
+                   this.leftTagsList = res.data.data
+                }
+            })
+        },
+        changeDepart(){
+            console.log(this.form.department)
+            this.getTagList()
+        },
+        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.selectRightTagsList = [];
+            this.getTagList()
+        },
+        toLeftList(){
+            for(let i = 0; i < this.selectRightTagsList.length; i++) {
+                this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[i].id)
+            }
+            this.selectLeftTagsList = [];
+            this.selectRightTagsList = [];
+            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) {
+           
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    return
+                } else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
+             if(!this.form.department) {
+                return 
+            }
+            this.showDelDialog()
+        },
+        showDelDialog() {
+            let questionId = []
+            for (let i =0; i < this.rightTagsList.length; i++) {
+                questionId.push(this.rightTagsList[i].id)
+            }
+            const param ={
+                "deptId": this.form.department,
+                "questionId": questionId
+   
+            }
+            this.showConfirmDialog('是否保存该标签组?', () => {
+                api.addCommonSymptom(param).then((res) => {
+                if (res.data.code  === '0') {
+                    this.warning(res.data.msg || '保存成功', 'success','1000')
+                    setTimeout(() => {
+                    this.$router.push({
+                        path:'/admin/LT-YXSJWH-CJZZWH'
+                    })
+                    }, 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';
+    .addCommonSymptomWrapper {
+        .groupTitle {
+            background-color: #fff;
+            height: 40px;
+            line-height: 40px;
+            padding-left: 20px;
+        }
+        .addDepartForm {
+            background-color: #fff;
+            padding: 20px;
+            margin: 20px 20px 0px 20px;
+        }
+        .symptomList {
+            background-color: #fff;
+             padding: 20px;
+             margin: 20px 20px 0px 20px;
+             height: 500px;
+        }
+        .bottomPartLeft {
+            width: 32%;
+        }
+        .symptomPoolTitle {
+            height: 40px;
+            line-height: 40px;
+        }
+        .symptomPool {
+            width: 100%;
+        }
+        .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;
+        }
+        .btn {
+            position: relative;
+            background-color: #fff;
+            margin: 0px 20px;
+            padding: 20px;
+            .el-button {
+                position: absolute;
+                right: 20px;
+                top: -20px;
+            }
+        }
+        .selectDepart {
+            
+        }
+    }
+    
+</style>

+ 206 - 0
src/components/icss/CommonSymptom.vue

@@ -0,0 +1,206 @@
+<template>
+    <div>
+        <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>
+                </el-form-item>
+                <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>
+                    </router-link>
+                </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="操作时间"
+                        :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="name"
+                        label="科室名称">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="userName"
+                        label="操作人"
+                        width="180">
+                </el-table-column>
+                
+                <el-table-column
+                        :resizable = "false"
+                        label="操作" width="200">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row.id)">删除</el-button>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        label="详情">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" @click="getDetailList(scope.row.id)">详情</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <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';
+  import utils from '@api/utils.js';
+
+  export default {
+    name: 'CommonSymptom',
+    data: function () {
+      return {
+        list: [], //常见症状列表
+        cacheData: {},
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+        linkIn:[],
+        pays:[],
+        filter: {
+          proName: ''
+        }
+      }
+    },
+    created() {
+      this.getDataList();
+    },
+    methods: {
+      toEditProduct(row){
+        this.$router.push({
+          name:'AddCommonSymptom',
+          params: {info:row}
+        })
+      },
+      filterDatas(){
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      getDataList() {
+        const param = this.getFilterItems();
+        // const param = {
+        //   'name':''
+        // };
+        api.commonSymptomList(param).then((res) => {
+          if (res.data.code == '0') {
+            console.log('commonSymptomList', res)
+            const data = res.data.data;
+            this.list = data.records;
+            this.total = data.total;
+          }
+        }).catch((error) => {
+          console.log(error);
+        });
+      },
+      getDetailList(id) {
+        const param = {'id': id,};
+        this.$router.push({name:'AddCommonSymptom', params:{id: id}})
+        /*api.getDeptInfoDetials(param).then((res) => {
+          if (res.data.code == '0') {
+            this.$router.push({name:'DeptInfoDetail', params:{id: id}})
+            // console.log("详情接口调用成功");
+          } else {
+            this.$message({
+              showClose: true,
+              message:res.data.msg,
+              type:'warning'
+            });
+            this.getDataList()  //刷新列表
+          }
+        }).catch((error) => {
+          console.log(error);
+        });*/
+      },
+      getFilterItems() {
+        const param = {
+          name: this.filter.proName,
+          current: this.currentPage,
+          size: this.pageSize
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+          this.list = this.cacheData[next];
+        } else {
+          this.getDataList();
+        }
+      },
+      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.delCommonSymptom({'deptId':id}).then((res)=>{
+            if(res.data.code=='0'){
+              this.warning(res.data.msg||'操作成功','success');
+              this.getDataList();
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      }
+    }
+  }
+</script>
+
+<style lang="less">
+    @import "../../less/admin.less";
+    .status-span{
+        font-size: 12px;
+        margin-right:10px;
+        color: unset;
+    }
+    .delete{
+        color: red
+    }
+</style>

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

@@ -27,33 +27,40 @@
                     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="controlTypeCn"
                         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">

+ 7 - 0
src/components/icss/LabelGroup.vue

@@ -27,33 +27,40 @@
                 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">

+ 206 - 0
src/components/icss/PhysicalExamTemplate.vue

@@ -0,0 +1,206 @@
+<template>
+    <div>
+        <crumbs title="查体模板维护">
+            <el-form :inline="true" class="demo-form-inline">
+                <el-form-item label="科室名称:">
+                    <el-input size="mini" v-model="filter.proName" placeholder="科室名称"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                    <router-link to="/admin/LT-YXSJWH-TJCTMB" style="margin:0 10px">
+                        <el-button size="mini" type="warning">添加模板</el-button>
+                    </router-link>
+                </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="gmtOperate"
+                        label="操作时间"
+                        :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="name"
+                        label="科室名称">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="operatorName"
+                        label="操作人"
+                        width="180">
+                </el-table-column>
+                
+                <el-table-column
+                        :resizable = "false"
+                        label="操作" width="200">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row.id)">删除</el-button>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        label="详情">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" @click="getDetailList(scope.row.id)">详情</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <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';
+  import utils from '@api/utils.js';
+
+  export default {
+    name: 'PhysicalExamTemplate',
+    data: function () {
+      return {
+        list: [], //常见症状列表
+        cacheData: {},
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
+        linkIn:[],
+        pays:[],
+        filter: {
+          proName: ''
+        }
+      }
+    },
+    created() {
+      this.getDataList();
+    },
+    methods: {
+      toEditProduct(row){
+        this.$router.push({
+          name:'AddPhysicalExam',
+          params: {info:row}
+        })
+      },
+      filterDatas(){
+        this.currentPage = 1;
+        this.getDataList();
+      },
+      getDataList() {
+        const param = this.getFilterItems();
+        // const param = {
+        //   'name':''
+        // };
+        api.getPhysicalExamTempList(param).then((res) => {
+          if (res.data.code == '0') {
+            console.log('PhysicalExamTempList', res)
+            const data = res.data.data;
+            this.list = data.records;
+            this.total = data.total;
+          }
+        }).catch((error) => {
+          console.log(error);
+        });
+      },
+      getDetailList(id) {
+        const param = {'id': id,};
+        this.$router.push({name:'AddPhysicalExam', params:{id: id}})
+        /*api.getDeptInfoDetials(param).then((res) => {
+          if (res.data.code == '0') {
+            this.$router.push({name:'DeptInfoDetail', params:{id: id}})
+            // console.log("详情接口调用成功");
+          } else {
+            this.$message({
+              showClose: true,
+              message:res.data.msg,
+              type:'warning'
+            });
+            this.getDataList()  //刷新列表
+          }
+        }).catch((error) => {
+          console.log(error);
+        });*/
+      },
+      getFilterItems() {
+        const param = {
+          name: this.filter.proName,
+          current: this.currentPage,
+          size: this.pageSize
+        };
+        return param;
+      },
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+          this.list = this.cacheData[next];
+        } else {
+          this.getDataList();
+        }
+      },
+      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.delCommonSymptom({'deptId':id}).then((res)=>{
+            if(res.data.code=='0'){
+              this.warning(res.data.msg||'操作成功','success');
+              this.getDataList();
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      }
+    }
+  }
+</script>
+
+<style lang="less">
+    @import "../../less/admin.less";
+    .status-span{
+        font-size: 12px;
+        margin-right:10px;
+        color: unset;
+    }
+    .delete{
+        color: red
+    }
+</style>

+ 7 - 0
src/components/icss/PromptInfo.vue

@@ -21,33 +21,39 @@
                       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="gmtOperate"
                         label="操作时间"
                         width="180"
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="name"
                         label="静态知识名称">
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="questionList"
                         label="关联标签"
                         width="240">
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="operatorName"
                         label="操作人"
                         width="80">
                 </el-table-column>
 
                 <el-table-column
+                        :resizable = "false"
                         label="操作" width="120">
                     <template slot-scope="scope">
                         <el-button type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
@@ -56,6 +62,7 @@
                     </template>
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         label="详情">
                     <template slot-scope="scope">
                         <el-button type="text" size="small" @click="getDetailList(scope.row.id)">详情</el-button>

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

@@ -155,6 +155,7 @@
                 <el-input
                         v-model.number="form.region8"
                         :disabled="!form.region1 || form.region2 == '99'"
+                         type="number"
                         ref="valage1"
                         @input="sendData"
                 ></el-input>
@@ -402,10 +403,10 @@
         width: 100%;
         display: inline-block;
     }
-    .fix-inp .el-col-4{
+    .PubTagGroupWrapper .fix-inp .el-col-4{
         text-align: center;
     }
-    .fix-inp .el-col-8{
+    .PubTagGroupWrapper .fix-inp .el-col-8{
         text-align: center;
     }
     

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

@@ -223,7 +223,8 @@ export default {
         '5':['7'],
         '6':['9'],
         '7':['9'],
-        '8':['9']
+        '8':['9'],
+        '9':['9']
       },
       rules: {
         region1: [

+ 8 - 0
src/components/icss/SimilarName.vue

@@ -20,42 +20,50 @@
                       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="gmtOperate"
                         label="操作时间"
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="questionName"
                         label="标签名称"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="retrievalSelfName"
                         label="本体"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="retrievalNames"
                         label="别名"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="retrievalSonNames"
                         label="子项"
                         show-overflow-tooltip>
                 </el-table-column>
                 <el-table-column
+                        :resizable = "false"
                         prop="operatorName"
                         label="操作人">
                 </el-table-column>
                 
                 <el-table-column
+                        :resizable = "false"
                         label="操作" width="160">
                     <template slot-scope="scope">
                         <el-button type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>

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

@@ -108,11 +108,11 @@ export default {
             if(this.options.length) {
                 if(this.options.length === 2) {     //当两个模块都有值时
                     this.rightTagsList = this.options
-                    this.$emit('changeActionData',this.rightTagsList, false);
                     
                 } else if(this.options.length === 1) {
                     this.options[0].controlType == 99 ? this.rightTagsList.splice(1, 1, this.options[0]) :this.rightTagsList.splice(0, 1, this.options[0])
                 }
+                 this.$emit('changeActionData',this.rightTagsList, false);
                 this.searchTagList()
             }
 

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

@@ -253,7 +253,6 @@ export default {
         },
         searchTagList() {
             let notIds = []
-            console.log('this.rightTagsList2',this.rightTagsList2)
             for (let i = 0; i < this.rightTagsList2.length; i++) {
                 if(typeof this.rightTagsList2[i].id === 'number') {
                     notIds.push(this.rightTagsList2[i].id)

+ 12 - 3
src/routes.js

@@ -29,7 +29,7 @@ import AddOrganization from '@components/admin/AddOrganization.vue';//添加机
 import ModifinedOrga from '@components/admin/ModifinedOrga.vue';//修改机构信息
 import ProductDetail from '@components/admin/ProductDetail.vue';
 import Console from '@components/user/Console.vue';
-import LabelGroup from '@components/icss/LabelGroup.vue'
+import LabelGroup from '@components/icss/LabelGroup.vue'  //标签组
 import NoiseTemplate from '@components/icss/NoiseTemplate.vue';
 import DeptInfo from '@components/icss/DeptInfo.vue';//科室信息
 import DeptInfoDetail from '@components/icss/DeptInfoDetail.vue';//科室信息-详情
@@ -40,9 +40,15 @@ import PromptInfo from '@components/icss/PromptInfo.vue'//提示信息
 import AddPromptInfo from '@components/icss/AddPromptInfo.vue'//添加提示信息
 import SimilarName from '@components/icss/SimilarName.vue'//别名维护
 import AddSimilarName from '@components/icss/AddSimilarName.vue'//别名维护-详情
+import CommonSymptom from '@components/icss/CommonSymptom.vue' //常见科室症状
+import AddCommonSymptom from '@components/icss/AddCommonSymptom' //常见科室症状--添加
+
 import DisclaimerInformation from '@components/icss/DisclaimerInformation.vue'//免责声明
 import DiscInfoDetail from '@components/icss/DiscInfoDetail.vue'//免责声明-详情
 import AddDisclInfo from '@components/icss/AddDisclInfo.vue'//免责声明-添加
+import PhysicalExamTemplate from '@components/icss/PhysicalExamTemplate.vue'  //查体模板维护
+import AddPhysicalExamTemp from '@components/icss/AddPhysicalExamTemp.vue'  //查体模板维护--添加
+
 import TemplateMaintenance from '@components/icss/TemplateMaintenance.vue'//模板维护列表
 import TemplateMaintenanceWrap from '@components/icss/TemplateMaintenanceWrap.vue'//模板维护添加修改
 export default [
@@ -152,13 +158,16 @@ export default [
       {path:'LT-YXSJWH-TSXXWH',component:PromptInfo,name:'PromptInfo'},         //提示信息维护
       {path:'LT-YXSJWH-TJTSXX',component:AddPromptInfo,name:'AddPromptInfo'},         //提示信息维护
 	    {path:'LT-YXSJWH-BMWH',component:SimilarName,name:'SimilarName'},     //别名维护
+      {path:'LT-YXSJWH-TJBM',component:AddSimilarName,name:'AddSimilarName'},     //别名维护-详情
+      {path:'LT-YXSJWH-CJZZWH',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'},     //免责声明
       {path:'LT-YXSJWH-MZSMXQ',component:DiscInfoDetail,name:'DiscInfoDetail'},     //免责声明-详情
       {path:'LT-YXSJWH-TJMZSM',component:AddDisclInfo,name:'AddDisclInfo'},     //免责声明-添加/修改
-	  {path:'LT-YXSJWH-BMWH',component:SimilarName,name:'SimilarName'},     //别名维护
-      {path:'LT-YXSJWH-TJBM',component:AddSimilarName,name:'AddSimilarName'},     //别名维护-详情
       {path:'LT-YXSJWH-MBWH',component:TemplateMaintenance,name:'TemplateMaintenance'},     //模板维护
+      {path:'LT-YXSJWH-CTBQWH',component:PhysicalExamTemplate,name:'PhysicalExamTemplate'},     //查体模板维护
+      {path:'LT-YXSJWH-TJCTMB',component:AddPhysicalExamTemp,name:'AddPhysicalExamTemp'},     //查体模板维护
       {path:'LT-YXSJWH-TJMBWH',component:TemplateMaintenanceWrap,name:'TemplateMaintenanceWrap'},     //模板维护-添加修改
     ]
   }