Browse Source

知识库-规则维护

zhouna 4 years ago
parent
commit
da0c75f2f7

+ 246 - 0
src/components/knowledgeExtra/AddNewRule.vue

@@ -0,0 +1,246 @@
+<template>
+    <div>
+        <crumbs :title="title" :param="$route.params" linkTo="RulesManager"></crumbs>
+        <div class="contents">
+            <div class="content">
+                <!-- <el-form ref="form" :label-position="labelPosition" label-width="95px" class="add-admin-form" :model="form" :rules="rules"> -->
+                <el-form ref="form" :label-position="labelPosition" class="add-new-form" label-width="120px" :model="form" :rules="rules">
+                    <el-form-item label="规则类型:" prop="ruleType">
+                        <el-select v-model="form.ruleType"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in ruleTypeList"
+                                    :key="item.name"
+                                    :label="item.name"
+                                    :value="item.name">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="规则术语类型:" prop="ruleTermType">
+                        <el-select v-model="form.ruleTermType"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in ruleTermTypeList"
+                                    :key="item.name"
+                                    :label="item.name"
+                                    :value="item.name">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item  class="addDepartFormItem" label="医学标准术语:" prop="department">
+                        <el-input  @focus="focuInput" v-model.trim = "searchConcept" suffix-icon="el-icon-search"></el-input>
+                        <ul class="itemList" v-show="conceptList.length>0">
+                            <li
+                                    v-for="item in conceptList"
+                                    class="diagItem ellipsis"
+                                    :title="item.conceptName"
+                                    @click="selectDiag(item)"
+                                    :key="item.conceptId">
+                                {{item.conceptNameType||item.conceptName}}
+                            </li>
+                        </ul>
+                    </el-form-item>
+                    <el-form-item label="有无子条件:" prop="hasSub">
+                        <el-select v-model="form.hasSub"
+                                   placeholder="请选择"
+                                   size="small">
+                            <el-option
+                                    v-for="item in hasSub"
+                                    :key="item.name"
+                                    :label="item.name"
+                                    :value="item.name">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="附加信息:" prop="remind" class="discDesc">
+                        <el-input type="textarea" :rows="3" placeholder="请输入附加信息" v-model="form.remind" maxlength="121"></el-input>
+                    </el-form-item>
+                    <el-form-item label="规则内容" prop="remind" class="discDesc">
+                        <div class="sub-groups">
+                            <SubConditions v-for="group in subGroups"></SubConditions>
+                            <div class="group-oper">
+                                <el-button class="" size="small" @click="addGroup('form')">+新增分组</el-button>
+                                <el-button class="" size="small" type="danger" plain @click="delGroup('form')">-删除分组</el-button>
+                            </div>
+                        </div>
+                    </el-form-item>
+                    <el-button class="disclButn" size="small" type="primary" @click="confirm('form')">保存</el-button>
+                </el-form>
+            </div>
+        </div>
+    </div>
+</template>
+<script type="text/javascript">
+    import api from '@api/rulesManage.js';
+    import SubConditions from './SubConditions';
+    export default {
+        name:'AddRule',
+        data(){
+            return{
+                labelPosition:'left',
+                isFirst:true,
+                title:'规则维护-添加规则',
+                searchConcept:'',
+                ruleTermTypeList:[],
+                ruleTypeList:[],
+                conceptList:[],
+                subGroups:[{
+
+                }],
+                form:{
+                },
+                id:null,
+                rules:{
+                    pubName:[{ required: true, message: '请输入规则名',trigger: ['blur'] }],
+                },
+                pickerOptions1:{
+                    disabledDate(time) {
+                        return time.getTime() < Date.now();
+                    },
+                },
+                hasSub:[{name:'无',key:0},
+                    {name:'有',key:1},
+                ]
+            }
+        },
+        created(){
+            let info = this.$route.params.data;
+            if(info){
+                this.id = info.id;
+                this.form=Object.assign({},this.form,info);
+                this.title = "规则维护-修改规则";
+                // this.getList();
+            }
+        },
+        components:{
+            SubConditions
+        },
+        methods:{
+            focuInput(){
+
+            },
+            searchTerm(){
+
+            },
+            addGroup(){
+
+            },
+            delGroup(){
+
+            },
+            confirm(form){
+                this.$refs[form].validate((valid) => {
+                    if (valid) {
+                        if(this.id){//修改
+                            const param = Object.assign({},this.form,{id:this.id?this.id:undefined})
+                            api.saveRule(param).then((res)=>{
+                                if(res.data.code==0){
+                                    this.$message({
+                                        message:"修改成功",
+                                        type:'success'
+                                    });
+                                    //返回带搜索条件的首页
+                                    this.$router.push({
+                                        name: 'VersionInfo',
+                                        params: Object.assign({}, this.$route.params, {currentPage: 1})
+                                    });
+                                }else{
+                                    this.$message({
+                                        message:res.data.msg,
+                                        type:'warning'
+                                    });
+                                }
+                            })
+                        }else{//添加
+                            const params = Object.assign({},this.form,{'id':this.id});
+                            api.saveRule(params).then((res)=>{
+                                if(res.data.code==0){
+                                    this.$message({
+                                        message:"添加成功",
+                                        type:'success'
+                                    });
+                                    this.$router.push({name: 'RulesManager'});
+                                }else{
+                                    this.$message({
+                                        message:res.data.msg,
+                                        type:'warning'
+                                    });
+                                }
+                            })
+                        }
+                    } else {
+                        return false;
+                    }
+                });
+            },
+        }
+    }
+</script>
+<style lang="less">
+    @import "../../less/admin.less";
+    .content{
+        background: #fff;
+        // padding: 20px 20px 30px;
+        padding: 20px 20px 50px;
+        color: #545455;
+        min-width: 980px;
+        position: relative;
+        .discDesc{
+            margin-bottom: 20px;
+        }
+        .disclButn{
+            position: absolute;
+            right: 80px;
+            bottom: 10px;
+        }
+    }
+    .add-new-form{
+        .sub-groups{
+            background: #F5F5F5;
+            padding: 20px;
+        }
+        .group-oper{
+            text-align: center;
+            padding: 11px 0;
+            border-top: 4px solid #F5F5F5;
+            background: #fff;
+        }
+        .addDepartFormItem {
+            position: relative;
+        }
+        .itemList {
+            position: absolute;
+            // display: none;
+            background: #fff;
+            width: 162px;
+            max-height: 150px;
+            border: 1px solid #DCDFE6;
+            left: 54px;
+            top: 37px;
+            z-index: 2;
+            overflow-y: auto;
+        }
+        .indexList {
+            left: 42px;
+            top: 78px;
+        }
+        .el-input__prefix, .el-input__suffix{
+            /*top:-2px;*/
+            right: 3px;
+        }
+        .el-input--suffix .el-input__inner{
+            padding-right: 22px;
+        }
+        .el-input,.el-input__inner{
+            width: 190px;
+            line-height: 32px;
+            height: 32px;
+        }
+        .el-input__icon{
+            line-height: 32px;
+        }
+    }
+
+</style>

+ 400 - 0
src/components/knowledgeExtra/RuleManager.vue

@@ -0,0 +1,400 @@
+<template>
+    <div>
+        <crumbs title="规则维护" :minWidth="titleWidth" class="knowledgeTitle">
+            <el-form :inline="true" class="demo-form-inline">
+                <el-form-item label="规则名称:">
+                    <el-input size="mini" v-model="filter.ruleName" placeholder="输入规则名称"></el-input>
+                </el-form-item>
+                <el-form-item label="规则类型:">
+                    <el-select v-model="filter.type" clearable placeholder="请选择" size="mini">
+                        <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="术语名称:">
+                    <el-input size="mini" v-model="filter.termName" placeholder="输入术语名称"></el-input>
+                </el-form-item>
+                <el-form-item label="状态:">
+                    <el-select v-model="filter.isState" clearable placeholder="请选择" size="mini">
+                        <el-option
+                                v-for="item in stateSelect"
+                                :key="item.id"
+                                :label="item.name"
+                                :value="item.id">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                </el-form-item>
+            </el-form>
+            <el-form class="secLine">
+                <el-form-item>
+                    <el-button size="mini" @click="addRule" type="warning" style="margin:0 10px">+ 新增规则</el-button>
+                    <input type="file" name="uploadfile " id="upFile" @change="uploadFile($event)" accept=".csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
+                    <el-button size="mini" @click="uploadClick">加载词库</el-button>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents knowledgeContents">
+            <el-table :data="list"
+                      border
+                      style="width: 100%">
+                <el-table-column
+                        type="index"
+                        :index="indexMethod"
+                        label="编号"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        prop="ruleName"
+                        label="规则名称">
+                </el-table-column>
+                <el-table-column
+                        prop="ruleType"
+                        label="规则类型">
+                </el-table-column>
+                <el-table-column
+                        prop="termName"
+                        label="术语名称">
+                </el-table-column>
+                <el-table-column
+                        prop="relationName"
+                        label="医学标准术语">
+                </el-table-column>
+                <el-table-column
+                        prop="endName"
+                        label="有无子条件">
+                </el-table-column>
+                <el-table-column
+                        prop="endType"
+                        label="附加信息">
+                </el-table-column>
+                <el-table-column
+                        label="状态">
+                    <template slot-scope="scope">
+                          <span>
+                            {{scope.row.isDeleted == 'N'?'禁用':'启用'}}
+                          </span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                        prop="operName"
+                        label="操作人">
+                </el-table-column>
+                <el-table-column
+                        prop="operTime"
+                        label="操作时间">
+                </el-table-column>
+                <el-table-column
+                        label="操作"
+                        width="120">
+                    <template slot-scope="scope">
+                        <el-button type="text" size="small" @click="showDelDialog(scope.row)">修改</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button type="text" size="small" :class="scope.row.isDeleted == 'N'?'':'delete'" @click="showDelDialog(scope.row)">{{scope.row.isDeleted == 'N'?'启用':'禁用'}}</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination :current-page.sync="currentPage"
+                           @current-change="currentChange"
+                           background
+                           :page-size="pageSize"
+                           :page-sizes="pageSizeArr"
+                           @size-change="handleSizeChange"
+                           :layout="pageLayout"
+                           :total="total">
+            </el-pagination>
+        </div>
+
+    </div>
+</template>
+
+<script>
+    import api from '@api/icss.js';
+    import config from '@api/config.js';
+    import utils from '@api/utils.js';
+
+    export default {
+        name: 'MedicalRelation',
+        data: function () {
+            return {
+                list: [],
+                stateSelect:[
+                    {id:'N',name:'启用'},
+                    {id:'Y',name:'禁用'},
+                ],
+                searched: false,
+                filter:{
+                    isState:'',
+                    ruleName:'',
+                    termName:'',
+                    type:'',
+                },
+                cacheData: {},
+                currentPage: 1,
+                pageSize: config.pageSize,
+                pageSizeArr:config.pageSizeArr,
+                pageLayout:config.pageLayout,
+                total: 0,
+                typeList:[],
+                titleWidth:'1070px' //头部最小宽度
+            }
+        },
+        created() {
+            // this.getRelationList();
+            const typeList = JSON.parse(localStorage.getItem("knowledgeEnumsData"));
+            if(typeList){
+                this.typeList = typeList.lexiconRSTypeEnum;
+            }
+            const that = this;
+            //返回时避免参数未赋值就获取列表
+            setTimeout(function(){
+                that.getDataList();
+            });
+        },
+        watch: {
+            'filter': {
+                handler: function () {
+                    this.searched = false;
+                },
+                deep: true
+            }
+        },
+        beforeRouteEnter(to, from, next) {
+            next(vm => {
+                //const pm = to.param;
+                Object.assign(vm, to.params);
+                vm.inCurrentPage=to.params.currentPage;
+            })
+        },
+        methods: {
+            handleSizeChange(val){
+                this.pageSize = val;
+                this.currentPage = utils.getCurrentPage(this.currentPage, this.total, this.pageSize);
+                this.getDataList();
+            },
+            addRule(){
+                const pam = this.searched ? {
+                    currentPage: this.currentPage,
+                    pageSize:this.pageSize,
+                    filter: this.filter
+                } : {currentPage: this.currentPage,
+                    pageSize:this.pageSize};
+                this.$router.push({name: 'AddMedicalRelation', params: pam});
+            },
+            filterDatas(){
+                this.currentPage = 1;
+                this.getDataList(1);
+            },
+            getDataList(flag,isTurnPage) {
+                const params = this.getFilterItems(isTurnPage);
+                this.searched = true;
+                const loading = this.$loading({
+                    lock: true,
+                    text: 'Loading',
+                    spinner: 'el-icon-loading',
+                    background: 'rgba(0, 0, 0, 0.7)'
+                });
+                api.knowledgeRelation(params).then((res) => {
+                    loading.close()
+                    if (res.data.code == '0') {
+                        const data = res.data.data;
+                        for(let j = 0;j < data.records.length;j++){
+                            data.records[j].condition = (data.records[j].isDeleted == 'N'?'启用中':'已删除')
+                        }
+                        this.list = data.records;
+                        if(!flag){//搜索时不缓存
+                            this.cacheData[params.current] = data.records;
+                        }else{
+                            this.cacheData = {}
+                        }
+                        this.total = data.total;
+                        if(this.inCurrentPage!==undefined){
+                            this.currentPage=this.inCurrentPage;
+                            this.inCurrentPage = undefined;
+                        }
+                    }
+                }).catch((error) => {
+                    console.log(error);
+                });
+            },
+            /*getRelationList(){
+              const param = {
+                'code':'',
+                'name':''
+              }
+              api.getAllRelationType(param).then((res)=>{
+                const result = res.data;
+                if(result.code==0){
+                  this.typeList = result.data;
+                }else{
+                  this.$message({
+                    message:result.msg || "数据请求失败",
+                    type:'warning'
+                  })
+                }
+              })
+            },*/
+            getFilterItems(isTurnPage) {
+                //翻页时筛选条件没点确定则清空
+                if(isTurnPage&&!this.searched){
+                    this.clearFilter();
+                };
+                const param = {
+                    current: this.inCurrentPage||this.currentPage,
+                    size: this.pageSize,
+                    relationId: this.filter.type,
+                    startName: this.filter.ruleName.trim(),
+                    endName: this.filter.termName.trim(),
+                    isDeleted:this.filter.isState
+                };
+                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(1,true);
+                //}
+            },
+            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(item){
+                const params = {
+                    id:item.id,
+                    isDeleted:item.isDeleted === 'N'?'Y':'N'
+                }
+                let warningTxt = item.isDeleted === 'N'?'是否删除该关系?可能对现有系统造成影响':'是否重新启用该条数据?'
+                this.showConfirmDialog(warningTxt,()=>{
+                    api.delKnowledgeRelation(params).then((res)=>{
+                        if(res.data.code=='0'){
+                            if(!this.searched){
+                                //未点确认时清空搜索条件
+                                this.clearFilter();
+                            }
+                            if(item.isDeleted !== 'N'){       //恢复成功后跳转到筛选条件的首页
+                                this.currentPage = 1;
+                            } else {
+                                if (this.filter.isState!==''&&this.list.length === 1){
+                                    //有启用状态筛选条件且当前页只有最后一条数据删除时,删除成功后跳转到前一页
+                                    this.currentPage = this.currentPage===1?1:this.currentPage-1;
+                                }
+                            }
+                            this.warning(res.data.msg||'操作成功','success');
+                            this.getDataList();
+                        }else{
+                            this.warning(res.data.msg);
+                        }
+                    }).catch((error)=>{
+                        this.warning(error);
+                    })
+                });
+            },
+            clearFilter(){
+                this.filter={
+                    isState:'',
+                    startName:'',
+                    endName:'',
+                    type:'',
+                };
+            },
+            uploadClick(){
+                let inp = document.getElementById("upFile");
+                inp.click();
+            },
+            uploadFile(e){
+                let fileInfo = e.target.files[0];
+                e.preventDefault();
+                let formData = new FormData();
+                formData.append('uploadfile', fileInfo);
+                const header = {
+                    headers:{
+                        'Content-Type': 'multipart/form-data'
+                    }
+                }
+                api.RelationUpload(formData,header).then((res)=>{
+                    if(res.data.code==0){
+                        this.$message({
+                            message: '上传成功',
+                            type: 'success',
+                        });
+                        this.getDataList()
+                    }else{
+                        /*this.$message({
+                          dangerouslyUseHTMLString: true,
+                          message:res.data.msg,
+                          type:'warning'
+                        });*/
+                        // 7-22 改成确定按钮
+                        this.$alert(res.data.msg,'错误信息',{
+                            dangerouslyUseHTMLString: true,
+                            confirmButtonText: '确定',
+                            callback: action => {
+                                /*this.$message({
+                                  type: 'info',
+                                  message: `action: ${ action }`
+                                });*/
+                            }
+                        });
+                    }
+                })
+                this.getDataList();
+                //解决上传相同文件不触发change
+                let inp = document.getElementById("upFile");
+                inp.value = "";
+
+            }
+        }
+    }
+</script>
+
+<style lang="less" scoped>
+    @import "../../less/admin.less";
+    /deep/ .container.knowledgeTitle {
+        height: 80px;
+    }
+    /deep/ .contents.knowledgeContents {
+        padding: 104px 20px 0;
+    }
+    /deep/ .secLine.el-form {
+        float: right;
+        display: block;
+        position: relative;
+        top: -5px;
+    }
+    .delete{
+        color: red;
+    }
+    .review{
+        color: #22ccc8;
+    }
+    .el-table .cell{
+        overflow: hidden;
+        white-space: nowrap;
+    }
+    #upFile{
+        display: none !important;
+    }
+</style>

+ 171 - 0
src/components/knowledgeExtra/SubConditions.vue

@@ -0,0 +1,171 @@
+<template>
+    <div class="groups-cont">
+        <el-form ref="form" :label-position="labelPosition" label-width="140px" class="sub-condition-form" :model="form" :rules="rules">
+            <el-form-item label="基础规则类型:" prop="ruleType">
+                <el-select v-model="form.minOperator"
+                           placeholder="请选择"
+                           size="small">
+                    <el-option
+                            v-for="item in operTypeList"
+                            :key="item.name"
+                            :label="item.name"
+                            :value="item.name">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="基础规则术语类型:" prop="ruleTermType">
+                <el-select v-model="form.ruleTermType"
+                           placeholder="请选择"
+                           size="small">
+                    <el-option
+                            v-for="item in operTypeList"
+                            :key="item.name"
+                            :label="item.name"
+                            :value="item.name">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item  class="addDepartFormItem" label="医学标准术语:" prop="department">
+                <el-input  @focus="focuInput" v-model.trim = "searchConcept" suffix-icon="el-icon-search"></el-input>
+                <ul class="itemList" v-show="conceptList.length>0">
+                    <li
+                            v-for="item in conceptList"
+                            class="diagItem ellipsis"
+                            :title="item.conceptName"
+                            @click="selectDiag(item)"
+                            :key="item.conceptId">
+                        {{item.conceptNameType||item.conceptName}}
+                    </li>
+                </ul>
+            </el-form-item>
+            <el-form-item label="选择类型:" prop="type">
+                <el-select v-model="form.type"
+                           placeholder="请选择"
+                           size="small">
+                    <el-option
+                            v-for="item in typeList"
+                            :key="item.name"
+                            :label="item.name"
+                            :value="item.name">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="最大值:" prop="max">
+                <div class="select-item clearfix">
+                    <el-select v-model="form.max"
+                               placeholder="请选择"
+                               size="small">
+                        <el-option
+                                v-for="item in operTypeList"
+                                :key="item.name"
+                                :label="item.name"
+                                :value="item.name">
+                        </el-option>
+                    </el-select>
+                    <el-input  type="text" placeholder="填写数值"/>
+                    <el-input  type="text" placeholder="填写单位"/>
+                </div>
+            </el-form-item>
+            <el-form-item label="最小值:" prop="min">
+                <div class="select-item clearfix">
+                    <el-select v-model="form.max"
+                               placeholder="请选择"
+                               size="small">
+                        <el-option
+                                v-for="item in operTypeList"
+                                :key="item.name"
+                                :label="item.name"
+                                :value="item.name">
+                        </el-option>
+                    </el-select>
+                    <el-input  type="text" placeholder="填写数值"/>
+                    <el-input  type="text" placeholder="填写单位"/>
+                </div>
+            </el-form-item>
+            <el-form-item label="文本信息:" prop="remind" class="discDesc">
+                <el-input type="textarea" :rows="3" placeholder="请输入文本信息" v-model="form.remind" maxlength="121"></el-input>
+            </el-form-item>
+        </el-form>
+        <div class="inner-oper">
+            <el-label>新增规则:</el-label>
+            <span class="add-btn"><img src="../../images/add.png" alt="新增规则"></span>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        name:'subCondititons',
+        data(){
+            return {
+                labelPosition:'left',
+                form:{
+                  max:'',
+                  min:'',
+                },
+                typeList:[],
+                searchConcept:'',
+                operTypeList:[{name:'>',key:1},
+                    {name:'>=',key:2},
+                    {name:'<',key:3},
+                    {name:'<=',key:4},
+                    {name:'=',key:5},
+                ],
+                conceptList:[],
+                rules:{
+                    pubName:[{ required: true, message: '请输入规则名',trigger: ['blur'] }],
+                }
+            }
+        },
+        methods:{
+            focuInput(){
+
+            },
+            searchTerm(){
+
+            }
+        }
+    }
+</script>
+<style lang="less">
+    .groups-cont{
+        background: #fff;
+        .inner-oper{
+            border-top:2px solid #F5F5F5;
+            padding: 15px 0 15px 21px;
+            .add-btn {
+                cursor: pointer;
+                img {
+                    vertical-align: middle;
+                }
+            }
+        }
+        .sub-condition-form{
+            padding: 20px;
+        }
+        .el-input__icon{
+            line-height: 32px;
+        }
+        .select-item{
+            &>div{
+                float: left;
+                margin-right: 10px;
+            }
+            .el-input{
+                width: auto;
+            }
+            input{
+                width: 95px;
+                line-height: 32px;
+                height: 32px;
+            }
+        }
+        .el-input,.el-input__inner{
+            width: 190px;
+            line-height: 32px;
+            height: 32px;
+        }
+        .el-button--danger.is-plain{
+            background: none;
+        }
+    }
+</style>

BIN
src/images/add.png


+ 2 - 2
src/routes.js

@@ -59,8 +59,8 @@ import VersionDetail from '@components/icss/VersionDetail.vue'; //版本信息-
 import AddVersion from '@components/icss/AddVersion.vue'; //版本信息-添加/修改
 import AddVersion from '@components/icss/AddVersion.vue'; //版本信息-添加/修改
 import MedicalName from '@components/icss/MedicalName.vue'; //医学术语维护-命名维护
 import MedicalName from '@components/icss/MedicalName.vue'; //医学术语维护-命名维护
 import AddMedicalName from '@components/icss/AddMedicalName.vue'; //医学术语维护-命名维护/添加修改
 import AddMedicalName from '@components/icss/AddMedicalName.vue'; //医学术语维护-命名维护/添加修改
-import MedicalRelation from '@components/icss/MedicalRelation.vue'; //医学术语维护-关系维护
-import AddMedicalRelation from '@components/icss/AddMedicalRelation.vue'; //医学术语维护-关系维护-添加
+import MedicalRelation from '@components/knowledgeExtra/RuleManager.vue';//'@components/icss/MedicalRelation.vue'; //医学术语维护-关系维护
+import AddMedicalRelation from '@components/knowledgeExtra/AddNewRule.vue';//'@components/icss/AddMedicalRelation.vue'; //医学术语维护-关系维护-添加
 import MedicalInfo from '@components/icss/MedicalInfo.vue'; //医学术语维护-信息维护(属性维护)
 import MedicalInfo from '@components/icss/MedicalInfo.vue'; //医学术语维护-信息维护(属性维护)
 import AddMedicalInfo from '@components/icss/AddMedicalInfo.vue'; //医学术语维护-信息维护(属性维护)-添加
 import AddMedicalInfo from '@components/icss/AddMedicalInfo.vue'; //医学术语维护-信息维护(属性维护)-添加
 import DiagnosisList from '@components/icss/DiagnosisList.vue'; //诊断标签维护 -- 列表显示
 import DiagnosisList from '@components/icss/DiagnosisList.vue'; //诊断标签维护 -- 列表显示