Jelajahi Sumber

新增考评预警规则页面,服务联调(列表,新增,修改,删除);测试并修改问题

SunZehao 1 tahun lalu
induk
melakukan
d1e22fa432

+ 37 - 0
src/api/api.js

@@ -450,6 +450,17 @@ export function apiGetscoreCountevaluationList(params) {
     })
 }
 
+//考评预警---列表
+export function apiGetevaluationwarninginfoList(params) {
+    return httpRequest({
+        url: 'evaluation/warning/info/list',
+        method: 'get',
+        params: params
+    })
+}
+
+
+
 
 //--------考评报告列表
 export function apiGetEvalReportList(params) {
@@ -914,4 +925,30 @@ export function apiGetintervalscoringRemove(params) {
         method: 'post'
     })
 }
+
+
+
+//----考评预警规则列表查询-list
+export function apiGetevaluationWarningruleList(params) {
+    return httpRequest({
+        url: 'evaluation/warning/rule/list',
+        method: 'get',
+        params: params
+    })
+}
+//----"考评预警规则-保存/修改"
+export function apiGetevaluationWarningSave(params) {
+    return httpRequest.post('evaluation/warning/rule/save', params)
+}
+// //----"考评预警规则删除"
+export function apiPostevaluationwarningruleDelete(params) {
+    return httpRequest({
+        url: `evaluation/warning/rule/delete`,
+        method: 'get',
+        params: params
+    })
+}
+
+
+
 //----------------------------------------基础信息配置------------------------------------------------

+ 425 - 0
src/components/assessment/evaluationWarningPage.vue

@@ -0,0 +1,425 @@
+<template>
+    <div class="evaluationWaring">
+        <div class="evaluationWaringBtn">
+            <div class="collectSeach">
+                <div class="exceed">
+                    <span class="exceedSpan">业务属性:</span>
+                    <el-select v-model="sectionStr" placeholder="请选择业务属性">
+                        <el-option
+                        v-for="item in moduleData"
+                        :key="item.id"
+                        :label="item.sectionName"
+                        :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <seachs @handleSeach="getSeachData" @handleRest="resetSeach"></seachs>
+            </div>
+            <div class="PeriodBtn">
+                <btns
+                :showImport="false" :showExport="false" :showAdd="true"
+                :showSave="false" :showDelete="false"
+                :disImport="false" :disExport="false"
+                @handleAdd="handleAdd" @handleEdit="handleEdit" @handleDelete="handleDelete"
+                ></btns>
+            </div>
+            <div class="evaluationWaringTableData">
+                <el-table :data="evaluationWaringData" style="width: 100%" @select="rowClick" @select-all="rowClick">
+                    <el-table-column type="selection" label="操作" align="center"></el-table-column>
+                    <el-table-column label="序号" type="index" />
+                    <el-table-column label="单位名称" prop="createOrgName" width="300" />
+                    <el-table-column label="业务属性" prop="sectionName" />
+                    <el-table-column label="年度" prop="year" />
+                    <el-table-column label="党建系数" prop="multiplier">
+                        <template #default="scope">
+                            <span>{{scope.row.multiplier}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="备注" prop="remarks" width="350" />
+                </el-table>
+                <el-pagination
+                    @size-change="handleSizeChange"
+                    @current-change="handleCurrentChange"
+                    :current-page="page.currentPage"
+                    :page-size="page.pagesize"
+                    layout="total, prev, pager, next, jumper"
+                    :total="page.total">
+                </el-pagination>
+            </div>
+            <el-dialog :title="title" v-model="dialogVisible" width="600px" :close-on-click-modal="false">
+                <div class="periodFrom">
+                    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
+                        <el-form-item label="单位名称" prop="organizationName">
+                            <el-select v-model="ruleForm.organizationName" placeholder="请选择单位名称">
+                                <el-option
+                                v-for="item in companyDatas"
+                                :key="item.id"
+                                :label="item.name"
+                                :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="业务属性" prop="sectionName">
+                            <el-select v-model="ruleForm.sectionName" placeholder="请选择业务属性">
+                                <el-option
+                                v-for="item in moduleData"
+                                :key="item.id"
+                                :label="item.sectionName"
+                                :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="年份" prop="year">
+                            <el-date-picker
+                                v-model="ruleForm.year"
+                                type="year"
+                                value-format="YYYY"
+                                placeholder="请选择年份"
+                                />
+                        </el-form-item>
+                        <el-form-item label="党建系数" prop="multiplier">
+                            <el-input-number v-model="ruleForm.multiplier" :precision="2" :step="0.1" :min="0" :max="1" placeholder="请输入党建系数" />
+                        </el-form-item>
+                        <el-form-item label="描述" prop="remarks">
+                            <el-input v-model="ruleForm.remarks" :rows="5" type="textarea" placeholder="请输入描述"></el-input>
+                        </el-form-item>
+                    </el-form>
+                </div>
+                <template #footer>
+                    <span class="dialog-footer">
+                        <el-button @click="dialogVisible = false">取 消</el-button>
+                        <el-button type="primary" @click="saveevaluaStart('ruleForm')">确 定</el-button>
+                    </span>
+                </template>
+            </el-dialog>
+            <indicator-item ref="indicatorItem"></indicator-item>
+        </div>
+    </div>
+</template>
+
+<script>
+import btns from '../elbuttonS.vue'
+import seachs from '../seachGroup.vue'
+import {apiGetevaluationwarninginfoList, apiDeletepartyBuildRemove,apiGetbinsectionList,
+ apiGetorganizationgetTree, apiPostpartybuildSave} from '../../api/api'
+export default {
+  components: { btns, seachs },
+    data() {
+        return {
+            dialogVisible: false,
+            title: '',
+            isSave: false,
+            changeDateSelect: [],
+            sectionStr: '',
+            evaluationWaringData:[],
+            departmentDataAll: [],
+            companyDatas: [],
+            moduleData: [],
+            ruleForm: {
+                organizationName: '',
+                sectionName: '',
+                year: '',
+                multiplier: 0,
+                remarks: ''
+            },
+            rules: {
+                organizationName: [
+                    { required: true, message: '请选择单位名称', trigger: 'change' }
+                ],
+                sectionName: [
+                    { required: true, message: '请选择业务属性', trigger: 'change' }
+                ],
+                year: [
+                    { required: true, message: '请选择年份', trigger: 'change' }
+                ],
+                multiplier: [
+                    { required: true, message: '请输入党建系数', trigger: 'blur' }
+                ],
+                remarks: [
+                    { required: true, message: '请输入描述', trigger: 'blur' }
+                ]
+            },
+            page:{
+                pagesize: 12,
+                currentPage: 1,
+                total: 0
+            },
+            evalradio: {}
+        }
+    },
+    created() {
+        this.getevaluationWaringData()
+        this.getOrganizetionData()
+        this.getBinSectionS()
+    },
+    methods:{
+        getevaluationWaringData() {
+            let that = this
+            let params = {
+                pageNum: that.page.currentPage,
+                pageSize: that.page.pagesize
+            }
+            apiGetevaluationwarninginfoList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.evaluationWaringData = datas.data.records
+                    that.page.total = datas.data.total
+                }
+            })
+        },
+        // 查询业务属性
+        getBinSectionS() {
+            let that = this
+            apiGetbinsectionList().then(datas =>{
+                if (datas && datas.data) {
+                    that.moduleData = datas.data
+                }
+            })
+        },
+        //查询组织数据
+        getOrganizetionData() {
+            let that = this
+            let params = {
+                id: '23031000',
+                num: 1
+            }
+            apiGetorganizationgetTree(params).then(datas =>{
+                if (datas && datas.data && datas.data[0].children.length>0) {
+                    that.companyDatas = datas.data[0].children
+                }
+            })
+        },
+        handleAdd() {
+            this.dialogVisible = true
+            this.isSave = false
+            this.title = '新增党建考核系数'
+            this.ruleForm = {
+                organizationName: '',
+                sectionName: '',
+                year: '',
+                multiplier: 0,
+                remarks: ''
+            }
+        },
+        handleEdit() {
+            this.dialogVisible = true
+            this.isSave = true
+            this.title = '修改党建考核系数'
+            this.evalradio = this.changeDateSelect[0]
+            this.ruleForm = {
+                organizationName: this.evalradio.departId,
+                sectionName: this.evalradio.sectionId,
+                year: this.evalradio.year,
+                multiplier: this.evalradio.multiplier,
+                remarks: this.evalradio.remarks
+            }
+        },
+        saveevaluaStart(formName) {
+            let that = this
+            that.$refs[formName].validate((valid) => {
+                if (valid) {
+                    that.saveAndEditpartBuildData()
+                }
+            });
+        },
+        saveAndEditpartBuildData() {
+            let that = this
+            let userMes = JSON.parse(window.sessionStorage.getItem('user'))
+            let comName = ''
+            that.companyDatas.forEach(item =>{
+                if (item.id === that.ruleForm.organizationName) {
+                    comName = item.name
+                }
+            })
+            let params = {                
+                departId: that.ruleForm.organizationName,
+                organizationName: comName,
+                sectionId: that.ruleForm.sectionName,
+                year: that.ruleForm.year,
+                multiplier: that.ruleForm.multiplier,
+                remarks: that.ruleForm.remarks,
+                createOrgId: userMes.unitId,
+                createOrgName: userMes.unitName,
+                createBy: userMes.id,
+                createName: userMes.name
+            }
+            if (that.isSave) {
+                params.id = that.evalradio.id
+            }
+            apiPostpartybuildSave(params).then(datas =>{
+                if (!datas.success) {
+                    that.$message({
+                        message: datas.message,
+                        type: 'error'
+                    });
+                } else {
+                    if (!that.isSave) {
+                        that.$message({
+                            message: '党建考核系数新增成功',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message({
+                            message: '党建考核系数修改成功',
+                            type: 'success'
+                        });
+                    }
+                    that.dialogVisible = false
+                    that.changeDateSelect = []
+                    that.getevaluationWaringData()
+                }
+            })
+        },
+        //删除指标数据
+        handleDelete() {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                let paramsArr = []
+                that.changeDateSelect.forEach(it =>{
+                    paramsArr.push(it.id)
+                })
+                apiDeletepartyBuildRemove(paramsArr.join(',')).then(datas =>{
+                    if (datas) {
+                        that.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        that.changeDateSelect = []
+                        that.getevaluationWaringData()
+                    }
+                })
+            })
+        },        
+        rowClick(selection, row) {
+            this.changeDateSelect = selection
+        },
+        getSeachData() {
+            this.page.currentPage = 1
+            this.getevaluationWaringData()
+        },
+        resetSeach() {
+            this.page.currentPage = 1
+            this.sectionStr = ''
+            this.getevaluationWaringData()
+        },
+        handleSizeChange(val){
+            this.page.pagesize = val
+            this.getevaluationWaringData()
+        },
+        handleCurrentChange(val){
+            this.page.currentPage =val
+            this.getevaluationWaringData()
+        }
+    }
+}
+</script>
+
+<style lang="less">
+.evaluationWaring{
+    .evaluationWaringBtn{
+        .collectSeach{
+            display: flex;
+            padding: 24px 20px;
+            border-bottom: 1px solid#D6DBEA;
+                .exceed{
+                    display: flex;
+                    .exceedSpan{
+                        width: 80px;
+                        height: 12px;
+                        font-size: 14px;
+                        font-family: Microsoft YaHei;
+                        font-weight: 400;
+                        color: #8991B0;
+                        line-height: 12px;
+                        margin-top: 14px;
+                    }
+                    .el-input{
+                        margin-right:10px;
+                        .el-input__inner{
+                            height:30px;
+                        }
+                        .el-input__suffix{
+                            .el-select__caret{
+                                line-height:30px;
+                            }
+                        }
+                    }
+                }
+                .el-select{
+                    margin-right:10px;
+                    .el-input__inner{
+                        height:30px;
+                    }
+                    .el-input__suffix{
+                        .el-select__caret{
+                            line-height:30px;
+                        }
+                    }
+                }
+        }
+        span{
+            font-size:14px;
+        }
+        .PeriodBtn{
+            display: flex;
+            justify-content: end;
+            padding: 20px 0;
+        }
+        .el-button{
+            height: 30px;
+            // width:100px;
+            padding: 0 30px ;
+            // padding-top: 8px;
+            span{
+                margin:0;
+            }
+        }
+        .evaluationWaringTableData{
+            .el-table{
+                .el-table__body-wrapper{
+                    height: 60vh !important;
+                }
+                .el-input__inner{
+                    height: 30px !important;
+                }
+                .el-radio__label{
+                    display: none;
+                }
+                
+                .indicitem{
+                    color: #409EFF;
+                    font-size: 12px;
+                    margin-right: 20px;
+                    cursor:pointer;
+                    &:hover{
+                        text-decoration: underline;
+                    }
+                }
+            }
+            .el-pagination{
+                margin-top: 20px;
+                text-align: end;
+                position: relative;
+            }
+        }
+        .el-overlay{
+            .el-dialog{
+                .el-dialog__body{
+                    padding: 30px 60px 30px 20px !important;
+                    .periodFrom{
+                        .el-select, .el-input{
+                            width: 100%;
+                        }
+                        .el-input{
+                            height: 30px;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 5 - 8
src/components/evaluationSystem/partyBuildingKPage.vue

@@ -167,15 +167,12 @@ export default {
         this.getBinSectionS()
     },
     methods:{
-        // 查询人员配置数据
-        getpartyBuildingData(type) {
+        getpartyBuildingData() {
             let that = this
             let params = {
-                pageNum: this.page.currentPage,
-                pageSize: this.page.pagesize
-            }
-            if (type) {
-                params.sectionId = that.sectionStr
+                pageNum: that.page.currentPage,
+                pageSize: that.page.pagesize,
+                sectionId: that.sectionStr
             }
             apiGetpartybuildingList(params).then(datas =>{
                 if (datas && datas.data) {
@@ -316,7 +313,7 @@ export default {
         },
         getSeachData() {
             this.page.currentPage = 1
-            this.getpartyBuildingData('seach')
+            this.getpartyBuildingData()
         },
         resetSeach() {
             this.page.currentPage = 1

+ 349 - 221
src/components/evaluationknowledgePage/earlyWarningRulePage.vue

@@ -14,49 +14,53 @@
                     </el-select>
                 </div>
                 <div class="exceed">
-                    <span class="exceedSpan" style="width:100px">规则名称:</span>
-                    <el-input v-model="indicatorStr" placeholder="请输入规则名称"></el-input>
+                    <span class="exceedSpan" style="width:100px">预警名称:</span>
+                    <el-input v-model="indicatorStr" placeholder="请输入预警名称"></el-input>
                 </div>
                 <seachs @handleSeach="getSeachData" @handleRest="reset"></seachs>
             </div>
             <div class="PeriodBtn">
+                <!-- $utils.havePurview('earlyWarningRules:oneLevel:add') -->
                 <btns
                 :showImport="false"
                 :showExport="false"
-                :showAdd="$utils.havePurview('earlyWarningRules:oneLevel:add')"
-                :showSave="$utils.havePurview('earlyWarningRules:oneLevel:save')"
-                :showDelete="$utils.havePurview('earlyWarningRules:oneLevel:delete')"
-                :disSave="changeDateSelect.length === 0 || changeDateSelect.length>1"
-                :disDelete="changeDateSelect.length === 0"
-                :disImport="true"
-                :disExport="true"
+                :showAdd="true"
+                :showSave="false" :showDelete="false"
+                :disSave="true" :disDelete="true" :disImport="true" :disExport="true"
                 @handleAdd="handleAdd"
-                @handleEdit="handleEdit"
-                @handleDelete="handleDelete"
                 ></btns>
             </div>
             <div class="earlyWarningRulesTableData">
-                <el-table :data="earlyWarningRulesData" style="width: 100%" @select="rowClick" @select-all="allSelect" @row-dblclick="handleEdit">
-                    <el-table-column type="selection" label="操作" align="center" />
-                    <el-table-column label="规则名称" prop="scoreRuleName" />
-                    <el-table-column label="业务属性" prop="businessName"  width="200" />
-                    <el-table-column label="指标名称" width="300">
+                <el-table :data="earlyWarningRulesData" style="width: 100%" @row-dblclick="handleEdit">
+                    <el-table-column label="序号" type="index" align="center" />
+                    <el-table-column label="预警名称" prop="ruleName" />
+                    <el-table-column label="业务属性" prop="sectionName"  width="200" />
+                    <el-table-column label="指标名称" prop="indicatorName" />
+                    <el-table-column label="预警类型" prop="type">
                         <template #default="scope">
-                            <span>{{scope.row.indicatorNames.join(',')}}</span>
+                            <span v-if="scope.row.type === 'YDKP'" style="font-size: 12px;">月度考评</span>
+                            <span v-else-if="scope.row.type === 'JDKP'" style="font-size: 12px;">季度考评</span>
+                            <span v-else style="font-size: 12px;">年度考评</span>
                         </template>
                     </el-table-column>
+                    <el-table-column label="预警公式" prop="expression" />
                     <el-table-column label="描述">
                         <template #default="scope">
                             <el-tooltip
                                 class="box-item"
                                 effect="customized"
-                                :content="scope.row.describe"
+                                :content="scope.row.ruleDes"
                                 placement="top"
                             >
-                                <span class="tooltipCC">{{scope.row.describe}}</span>
+                                <span class="tooltipCC">{{scope.row.ruleDes}}</span>
                             </el-tooltip>
                         </template>
                     </el-table-column>
+                    <el-table-column label="操作" width="100">
+                        <template #default="scope">
+                            <p class="indicitem" @click="handleDelete(scope.row)">删除</p>
+                        </template>
+                    </el-table-column>
                 </el-table>
                 <el-pagination
                     @size-change="handleSizeChange"
@@ -70,155 +74,189 @@
             <el-dialog :title="title" v-model="dialogVisible" width="60vw" :close-on-click-modal="false">
                 <div class="periodFrom">
                     <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
-                        <el-form-item label="规则名称" prop="ruleName">
-                            <el-input v-model="ruleForm.ruleName" placeholder="请输入规则名称"></el-input>
+                        <el-form-item label="预警名称" prop="ruleName">
+                            <el-input v-model="ruleForm.ruleName" placeholder="请输入预警名称"></el-input>
                         </el-form-item>
-                        <el-form-item label="业务属性" prop="binSection">
-                            <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性" :disabled="isSave" @change="changeBinstation">
-                                <el-option
-                                v-for="item in binSectionoptions"
-                                :key="item.id"
-                                :label="item.sectionName"
-                                :value="item.id">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="指标名称" prop="indicatorId">
-                            <!-- multiple collapse-tags -->
-                            <el-select v-model="ruleForm.indicatorId" placeholder="请选择指标名称" :disabled="isSave">
-                                <el-option
-                                v-for="item in indicItemoptions"
-                                :key="item.indicatorCode"
-                                :label="item.indicatorName"
-                                :value="item.indicatorCode">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="规则配置">
-                            <div class="earlyWarningRight">
-                                <div class="earlyWarningFrom">
-                                    <div class="fromLeft">
-                                        <el-tabs type="border-card">
-                                            <el-tab-pane label="子指标">
-                                                <el-table
-                                                    size="mini"
-                                                    :show-header="false"
-                                                    :highlight-current-row="true"
-                                                    :stripe="false"
-                                                    :border="false"
-                                                    height="240"
-                                                    ref="multipleTable"
-                                                    :data="childerindicItemoptions"
-                                                    @select-all="onSelectAll"
-                                                    @selection-change="selectItem"
-                                                    @row-click="onSelectOp"
-                                                >
-                                                    <el-table-column type="selection" width="55" align="center" />
-                                                    <el-table-column prop="childName" />
-                                                    <el-table-column prop="childCode" />
-                                                </el-table>
-                                            </el-tab-pane>
-                                            <el-tab-pane label="指标项">
-                                                <el-table
-                                                    size="mini"
-                                                    :show-header="false"
-                                                    :highlight-current-row="true"
-                                                    :stripe="false"
-                                                    :border="false"
-                                                    height="240"
-                                                    @row-dblclick="rowDbclick"
-                                                    :data="multipleSelectionObj?multipleSelectionObj.list:[]"
-                                                >
-                                                    <el-table-column prop="optionName" />
-                                                    <el-table-column prop="optionCode" />
-                                                </el-table>
-                                            </el-tab-pane>
-                                            <el-tab-pane label="函数">
-                                                <el-table
-                                                    size="mini"
-                                                    fit
-                                                    :show-header="false"
-                                                    :highlight-current-row="true"
-                                                    :stripe="false"
-                                                    :border="false"
-                                                    height="240"
-                                                    @row-dblclick="tabFuncRowClickHandle"
-                                                    :data="funcMsg"
-                                                >
-                                                    <el-table-column min-width="40%">
-                                                        <template #default="scope">
-                                                            <el-popover trigger="hover" placement="bottom">
-                                                            <p>描述:{{ scope.row.formulaName }}</p>
-                                                            <!-- <p>参数:{{ scope.row.param }}</p> -->
-                                                            <template #reference>
-                                                                <span size="medium" transition="fade-in-linear">{{
-                                                                scope.row.formulaName
-                                                                }}</span>
-                                                            </template>
-                                                            </el-popover>
-                                                        </template>
-                                                    </el-table-column>
-                                                    <el-table-column min-width="60%">
-                                                        <template #default="scope">
-                                                            <el-popover trigger="hover" placement="bottom">
-                                                            <p>描述:{{ scope.row.description }}</p>
-                                                            <!-- <p>参数:{{ scope.row.param }}</p> -->
-                                                            <template #reference>
-                                                                <span size="medium" transition="fade-in-linear">{{
-                                                                scope.row.description
-                                                                }}</span>
-                                                            </template>
-                                                            </el-popover>
-                                                        </template>
-                                                    </el-table-column>
-                                                </el-table>
-                                            </el-tab-pane>
-                                            <el-tab-pane label="运算符">
-                                                <el-button-group>
-                                                    <el-button
-                                                    v-for="item in operator"
-                                                    :key="item"
-                                                    plain
-                                                    @click="scorRuleSplit(item)"
-                                                    style="width: 60px; margin: 7px 12px; height: 40px; border: 1px solid #409EFF;"
-                                                    >
-                                                    {{ item }}
-                                                    </el-button>
-                                                </el-button-group>
-                                            </el-tab-pane>
-                                        </el-tabs>
-                                    </div>
-                                    <div class="fromRight">
-                                        <div>
-                                            <div style="display:flex">
-                                                <!-- <el-checkbox style="margin-right: 10px" v-model="isrepresentation" @change="changeRep" /> -->
-                                                <!-- <el-tag style="margin-bottom: 5px">公式</el-tag> -->
-                                                <span style="font-size: 14px;color: #606266;font-weight:blod">公式</span>
-                                            </div>
-                                            <el-input
-                                            type="textarea"
-                                            rows="16"
-                                            v-model="itemForm.representation"
-                                            id="representation"
+                        <el-row>
+                            <el-col :span="12">
+                                <el-form-item label="业务属性" prop="binSection">
+                                    <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性" :disabled="isSave" @change="changeBinstation">
+                                        <el-option
+                                        v-for="item in binSectionoptions"
+                                        :key="item.id"
+                                        :label="item.sectionName"
+                                        :value="item.id">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-form-item label="指标名称" prop="indicatorId">
+                                    <!-- multiple collapse-tags -->
+                                    <el-select v-model="ruleForm.indicatorId" placeholder="请选择指标名称"
+                                    @change="changeIndication"
+                                     :disabled="isSave">
+                                        <el-option
+                                        v-for="item in indicItemoptions"
+                                        :key="item.id"
+                                        :label="item.indicatorName"
+                                        :value="item.id">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-form-item label="预警等级" prop="warningLevel">
+                                    <el-select v-model="ruleForm.warningLevel" placeholder="请选择预警等级">
+                                        <el-option
+                                        v-for="item in warningLeveloptions"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-form-item label="预警类型" prop="warningType">
+                                    <el-select v-model="ruleForm.warningType" placeholder="请选择预警类型">
+                                        <el-option
+                                        v-for="item in warningTypeoptions"
+                                        :key="item.value"
+                                        :label="item.label"
+                                        :value="item.value">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-form-item label="触发时间" prop="warningDate">
+                                    <el-row style="width:100%">
+                                        <el-col :span="22">
+                                            <el-date-picker
+                                                v-model="ruleForm.warningDate"
+                                                value-format="YYYY-MM-DD"
+                                                type="date"
+                                                placeholder="请选择触发时间"
                                             />
-                                        </div>
-                                        <!-- <div style="margin-top: 10px">
-                                            <div style="display:flex">
-                                                <el-checkbox style="margin-right: 10px" disabled v-model="isrange" @change="changeRank" />
-                                                <el-tag style="margin-bottom: 5px">子指标名称</el-tag>
+                                        </el-col>
+                                        <el-col :span="2" class="questionIcon">
+                                            <el-popover
+                                                placement="right-start"
+                                                title="提示"
+                                                :width="200"
+                                                trigger="hover"
+                                            >
+                                            <div>
+                                                <p>预警类型为年度:表示每年的今天执行;</p>
+                                                <p>预警类型为季度:1,4,7,10月份表示每个季度的第一个月执行,2,5,8,11月份表示每个季度的第二个月执行,3,6,9,12月份表示每个季度的第三个月执行;</p>
+                                                <p>预警类型为月度:表示每个月的今天执.</p>
                                             </div>
-                                            <el-input
-                                            type="textarea"
-                                            rows="4"
-                                            v-model="itemForm.range"
-                                            disabled
-                                            id="range"
-                                            />
-                                        </div> -->
+                                                <template #reference>
+                                                    <el-icon :size="20" color="#3B7AD1"><QuestionFilled /></el-icon>
+                                                </template>
+                                            </el-popover>
+                                        </el-col>
+                                    </el-row>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-form-item label="是否启用">
+                                    <el-switch v-model="ruleForm.isEnable" />
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                        <el-row>
+                            <el-col :span="12" class="earlyWarningRight">
+                                <el-form-item label="规则配置">
+                                    <el-tabs type="border-card">
+                                        <el-tab-pane label="指标项">
+                                            <el-table
+                                                size="mini"
+                                                :show-header="false"
+                                                :highlight-current-row="true"
+                                                :stripe="false"
+                                                :border="false"
+                                                height="240"
+                                                @row-dblclick="rowDbclick"
+                                                :data="multipleSelectionArr"
+                                            >
+                                                <el-table-column prop="optionName" />
+                                                <el-table-column prop="optionCode" />
+                                            </el-table>
+                                        </el-tab-pane>
+                                        <el-tab-pane label="函数">
+                                            <el-table
+                                                size="mini"
+                                                fit
+                                                :show-header="false"
+                                                :highlight-current-row="true"
+                                                :stripe="false"
+                                                :border="false"
+                                                height="240"
+                                                @row-dblclick="tabFuncRowClickHandle"
+                                                :data="funcMsg"
+                                            >
+                                                <el-table-column min-width="40%">
+                                                    <template #default="scope">
+                                                        <el-popover trigger="hover" placement="bottom">
+                                                        <p>描述:{{ scope.row.formulaName }}</p>
+                                                        <!-- <p>参数:{{ scope.row.param }}</p> -->
+                                                        <template #reference>
+                                                            <span size="medium" transition="fade-in-linear">{{
+                                                            scope.row.formulaName
+                                                            }}</span>
+                                                        </template>
+                                                        </el-popover>
+                                                    </template>
+                                                </el-table-column>
+                                                <el-table-column min-width="60%">
+                                                    <template #default="scope">
+                                                        <el-popover trigger="hover" placement="bottom">
+                                                        <p>描述:{{ scope.row.description }}</p>
+                                                        <!-- <p>参数:{{ scope.row.param }}</p> -->
+                                                        <template #reference>
+                                                            <span size="medium" transition="fade-in-linear">{{
+                                                            scope.row.description
+                                                            }}</span>
+                                                        </template>
+                                                        </el-popover>
+                                                    </template>
+                                                </el-table-column>
+                                            </el-table>
+                                        </el-tab-pane>
+                                        <el-tab-pane label="运算符">
+                                            <el-button-group>
+                                                <el-button
+                                                v-for="item in operator"
+                                                :key="item"
+                                                plain
+                                                @click="scorRuleSplit(item)"
+                                                style="width: 60px; margin: 7px 12px; height: 40px; border: 1px solid #409EFF;"
+                                                >
+                                                {{ item }}
+                                                </el-button>
+                                            </el-button-group>
+                                        </el-tab-pane>
+                                    </el-tabs>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="12">
+                                <el-form-item label="规则公式" prop="representation">
+                                    <div style="display:flex">
+                                        <span style="font-size: 14px;color: #F65177;font-weight:blod">
+                                            *可双击左侧规则配置辅助写公式,符合Excel规则
+                                        </span>
                                     </div>
-                                </div>
-                            </div>
-                        </el-form-item>
+                                    <el-input
+                                    type="textarea"
+                                    rows="16"
+                                    v-model="ruleForm.representation"
+                                    id="representation"
+                                    />
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
                         <el-form-item label="描述" prop="desc">
                             <el-input v-model="ruleForm.desc" :rows="5" type="textarea" placeholder="请输入描述"></el-input>
                         </el-form-item>
@@ -238,8 +276,8 @@
 <script>
 import btns from '../elbuttonS.vue'
 import seachs from '../seachGroup.vue'
-import {apiGetevaluationscoringruleList, apiGetindicatorListAll, apiGetfunctionList,
-apiGetbinsectionList, apiGetevaluationscoringSaveList, apiGetevaluationruleRemove} from '../../api/api'
+import {apiGetevaluationWarningruleList, apiGetindicatorListAll, apiGetfunctionList,apiGetIndidicList,
+apiGetbinsectionList, apiGetevaluationWarningSave, apiPostevaluationwarningruleDelete} from '../../api/api'
 export default {
   components: { btns,seachs },
     data() {
@@ -248,29 +286,30 @@ export default {
             title: '',
             indicItemoptions: [],
             childerindicItemoptions: [],
+            warningLeveloptions: [],
+            warningTypeoptions: [],
             binSectionoptions: [],
-            indicatorItems: [],
             indicatorStr: '',
             businessStr: '',
             rowdataMsg: {},
-            changeDateSelect: [],
             isSave: false,
             funcMsg: [],
             operator: [],
+            multipleSelectionArr: [],
             ruleForm: {
                 ruleName: '',
                 binSection: '',
                 indicatorId: '',
-                desc: ''
-            },
-            itemForm: {
+                warningLevel: '',
+                warningType: '',
+                warningDate: '',
+                isEnable: true,
                 representation: '',
-                range: '',
                 desc: ''
             },
             rules: {
                 ruleName: [
-                    { required: true, message: '请输入规则名称', trigger: 'blur' }
+                    { required: true, message: '请输入预警名称', trigger: 'blur' }
                 ],
                 binSection: [
                     { required: true, message: '请选择业务属性', trigger: 'change' }
@@ -278,6 +317,18 @@ export default {
                 indicatorId: [
                     { required: true, message: '请选择指标名称', trigger: 'change' }
                 ],
+                warningLevel: [
+                    { required: true, message: '请选择预警等级', trigger: 'change' }
+                ],
+                warningType: [
+                    { required: true, message: '请选择预警类型', trigger: 'change' }
+                ],
+                warningDate: [
+                    { required: true, message: '请选择触发时间', trigger: 'change' }
+                ],
+                representation: [
+                    { required: true, message: '请输入公式', trigger: 'blur' }
+                ],
                 desc: [
                     { required: true, message: '请输入描述', trigger: 'blur' }
                 ]
@@ -292,6 +343,34 @@ export default {
         }
     },
     created() {
+        this.warningLeveloptions = [
+            {
+                label: '高',
+                value: 3
+            },
+            {
+                label: '中',
+                value: 2
+            },
+            {
+                label: '低',
+                value: 1
+            }
+        ]
+        this.warningTypeoptions = [
+            {
+                label: '年度考评',
+                value: 'NDKP'
+            },
+            {
+                label: '季度考评',
+                value: 'JDKP'
+            },
+            {
+                label: '月度考评',
+                value: 'YDKP'
+            }
+        ]
         this.getEvalscoringData()
         this.getDataDictionary()
         this.getEvaluationData()
@@ -306,10 +385,10 @@ export default {
             let params = {
                 pageNum: that.page.currentPage,
                 pageSize: that.page.pagesize,
-                scoreRuleName: that.indicatorStr,
-                businessPhase: that.businessStr
+                ruleName: that.indicatorStr,
+                binSection: that.businessStr
             }
-            apiGetevaluationscoringruleList(params).then(datas =>{
+            apiGetevaluationWarningruleList(params).then(datas =>{
                 if (datas && datas.data) {
                     that.earlyWarningRulesData = datas.data.records
                     that.page.total = datas.data.total
@@ -334,7 +413,52 @@ export default {
                 }
             })
         },
+        changeIndication(val) {
+            let that = this
+            that.multipleSelectionArr = []
+            let params = {
+                indicatorId: val
+            }
+            apiGetIndidicList(params).then(datas =>{
+                if (datas) {
+                    that.multipleSelectionArr = datas
+                }
+            })
+        },
+        tabFuncRowClickHandle(row) {
+            let elInput = null
+            elInput = document.getElementById("representation");
+            let startPos = elInput.selectionStart; //第0个字符到选中的字符
+            let endPos = elInput.selectionEnd; //选中字符到末尾字符
+            if (startPos === undefined || endPos === undefined) return;
+            let txt = elInput.value;
+            let func = row.formulaExpresion
+            // 将插值添加到选中光标位置
+            let result = txt.substring(0, startPos) + func + txt.substring(endPos);
+            elInput.value = result;
+            elInput.focus();
+        },
+        rowDbclick(row) {
+            this.scorRuleSplit(row.optionCode);
+        },
+        scorRuleSplit(val) {
+            let elInput = null
+            elInput = document.getElementById("representation");
+            let startPos = elInput.selectionStart;
+            let endPos = elInput.selectionEnd;
+            if (startPos === undefined || endPos === undefined) return;
+            let txt = elInput.value;
+            let txtSplit = '['+val+']';
+            let result = txt.substring(0, startPos) + txtSplit + txt.substring(endPos);
+            elInput.value = result;
+            this.ruleForm.representation = result
+            elInput.focus();
+            elInput.selectionStart = startPos + txtSplit.length;
+            elInput.selectionEnd = startPos + txtSplit.length;
+        },
         changeBinstation(val) {
+            this.ruleForm.indicatorId = ''
+            this.indicItemoptions = []
             this.getEvaluationData(val)
         },
         // 查询指标数据
@@ -358,6 +482,11 @@ export default {
                     ruleName: '',
                     binSection: '',
                     indicatorId: '',
+                    warningLevel: '',
+                    warningType: '',
+                    warningDate: '',
+                    isEnable: isEnable,
+                    representation: '',
                     desc: ''
                 }
             })
@@ -366,19 +495,19 @@ export default {
             this.dialogVisible = true
             this.isSave = true
             this.title = '修改考评预警规则'
-            let evalradio = null
-            if (row) {
-                evalradio = row
-            } else {
-                evalradio = this.changeDateSelect[0]
-            }
+            this.rowdataMsg = row
             this.ruleForm = {
-                ruleName: evalradio.scoreRuleName,
-                binSection: evalradio.businessPhase,
-                indicatorId: evalradio.indicatorId,
-                desc: evalradio.describe
+                ruleName: row.ruleName,
+                binSection: row.binSection,
+                indicatorId: row.indicatorId,
+                warningLevel: row.grade,
+                warningType: row.type,
+                warningDate: row.cronTime,
+                isEnable: row.enable,
+                representation: row.expression,
+                desc: row.ruleDes
             }
-            this.getEvaluationData(evalradio.businessPhase)
+            this.getEvaluationData(row.binSection)
         },
         saveevaluscoringruleMsg(formName) {
             let that = this
@@ -392,16 +521,21 @@ export default {
         saveAndEditIndicatorData() {
             let that = this
             let params = {
-                scoreRuleName: that.ruleForm.ruleName,
-                businessPhase: that.ruleForm.binSection,
+                ruleName: that.ruleForm.ruleName,
+                binSection: that.ruleForm.binSection,
                 indicatorId: that.ruleForm.indicatorId,
-                describe: that.ruleForm.desc
+                grade: that.ruleForm.warningLevel,
+                type: that.ruleForm.warningType,
+                cronTime: that.ruleForm.warningDate+' 00:00:00',
+                enable: that.ruleForm.isEnable,
+                expression: that.ruleForm.representation,
+                ruleDes: that.ruleForm.desc
             }
             if (that.isSave) {
-                let evalradio = this.changeDateSelect[0]
+                let evalradio = that.rowdataMsg
                 params.id = evalradio.id
             }
-            apiGetevaluationscoringSaveList(params).then(datas =>{
+            apiGetevaluationWarningSave(params).then(datas =>{
                 if (!that.isSave) {
                     that.$message({
                         message: '考评预警规则新增成功',
@@ -414,29 +548,26 @@ export default {
                     });
                 }
                 that.dialogVisible = false
-                that.changeDateSelect = []
                 that.getEvalscoringData()
             })
         },
         //删除指标数据
-        handleDelete() {
+        handleDelete(row) {
             this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
             }).then(() => {
                 let that = this
-                let paramsArr = []
-                that.changeDateSelect.forEach(it =>{
-                    paramsArr.push(it.id)
-                })
-                apiGetevaluationruleRemove(paramsArr.join(',')).then(datas =>{
+                let params = {
+                    id: row.id
+                }
+                apiPostevaluationwarningruleDelete(params).then(datas =>{
                     if (datas) {
                         that.$message({
                             type: 'success',
                             message: '删除成功!'
                         });
-                        that.changeDateSelect = []
                         that.getEvalscoringData()
                     }
                 })
@@ -465,9 +596,6 @@ export default {
         handleCurrentChange(val){
             this.page.currentPage =val
             this.getEvalscoringData()
-        },
-        rowClick(selection, row) {
-            this.changeDateSelect = selection
         }
     }
 }
@@ -577,30 +705,30 @@ export default {
                     .el-select, .el-input{
                         width: 100%;
                     }
+                    .el-input{
+                        height: 30px;
+                    }
+                    .questionIcon{
+                        .el-icon{
+                            position: relative;
+                            top: 3px;
+                            left: 10px;
+                        }
+                    }
                     .earlyWarningRight {
                         width: 100%;
-                        // padding-left: 30px;
-                        .earlyWarningFrom{
-                            display: flex;
-                            .fromLeft{
-                                width: 55%;
-                                margin-right: 20px;
-                                .el-tabs{
-                                    height: 100%;
-                                    .el-tabs__content{
-                                        .el-table{
-                                            .el-table__body-wrapper{
-                                                .el-checkbox__inner{
-                                                    border-radius: 10px;
-                                                }
-                                            }
+                        .el-tabs{
+                            width: 100%;
+                            height: 100%;
+                            .el-tabs__content{
+                                .el-table{
+                                    .el-table__body-wrapper{
+                                        .el-checkbox__inner{
+                                            border-radius: 10px;
                                         }
                                     }
                                 }
                             }
-                            .fromRight{
-                                width: 43%;
-                            }
                         }
                     }
                 }

+ 11 - 0
src/router/index.js

@@ -163,6 +163,17 @@ const routes = [
                             ),
                     },
                     {
+                        path: '/assessment/evaluationWarning',
+                        name: 'evaluationWarning',
+                        meta: {
+                            title: '考评预警',
+                        },
+                        component: () =>
+                            import(
+                                '../components/assessment/evaluationWarningPage.vue'
+                            ),
+                    },
+                    {
                         path: '/assessment/evaluationReport',
                         name: 'evaluationReport',
                         meta: {

+ 1 - 1
src/utils/baseUrl.js

@@ -10,7 +10,7 @@ switch (process.env.NODE_ENV) {
     case 'development': 
         baseUrl.ROOT = "/api"  //开发环境url
         // baseUrl.URL = "http://10.65.59.67:28800"
-        baseUrl.URL = "http://192.168.2.14:28800"
+        baseUrl.URL = "http://192.168.2.13:28800"
         // baseUrl.URL = "http://10.65.78.23:28800"  //测试环境
         // baseUrl.URL = "http://10.65.78.81:28800"  // 正式环境
         break

+ 188 - 186
src/views/homePage.vue

@@ -78,192 +78,193 @@ export default {
         }
     },
     created(){
-        this.getMenuData()
-        // this.forecastDatas = [
-        //     {
-        //         index: '/home',
-        //         name: '考评首页',
-        //         img: homeImg
-        //     },
-        //     {
-        //         index: '/taskCenter',
-        //         name: '任务中心',
-        //         img: taskImg
-        //     },
-        //     {
-        //         index: '/notification',
-        //         name: '通告管理',
-        //         img: tonggaoImg
-        //     },
-        //     {
-        //         index: '1',
-        //         name: '考评体系配置',
-        //         img: tixiImg,
-        //         children: [
-        //             {
-        //                 index: '/evaluationSystem/evaluationIndex',
-        //                 name: '考评指标管理',
-        //             },
-        //             {
-        //                 index: '/evaluationSystem/evaluationRules',
-        //                 name: '考评规则配置',
-        //             },
-        //             {
-        //                 index: '/evaluationSystem/company',
-        //                 name: '单位权重配置',
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '单位季度营业收入',
-        //             },
-        //             {
-        //                 index: '/evaluationSystem/achievementK',
-        //                 name: '业绩考核系数配置',
-        //             },
-        //             {
-        //                 index: '/evaluationSystem/partyBuildingK',
-        //                 name: '党建考核系数配置',
-        //             },
-        //             {
-        //                 index: '/evaluationSystem/department',
-        //                 name: '部门考评配置',
-        //             },
-        //             {
-        //                 index: '/evaluationSystem/personnel',
-        //                 name: '人员考评配置',
-        //             },
-        //         ]
-        //     },
-        //     {
-        //         index: '2',
-        //         name: '单位考评业务',
-        //         img: yewuImg,
-        //         children: [
-        //             {
-        //                 index: '/assessment/evaluationStart',
-        //                 name: '单位考评目标启动',
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationAmendment',
-        //                 name: '单位考评目标修订',
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationMonth',
-        //                 name: '单位月度考评'
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationQuarter',
-        //                 name: '单位季度考评'
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationYear',
-        //                 name: '单位年度考评'
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationBenchmarkingIndic',
-        //                 name: '考评对标分析'
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '考评预警'
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '单位考评评级'
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '考评监督管理'
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationReport',
-        //                 name: '考评报告'
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '单位考核结果应用'
-        //             }
-        //         ]
-        //     },
-        //     {
-        //         index: '3',
-        //         name: '本部考评业务',
-        //         img: benbuImg,
-        //         children: [
-        //             {
-        //                 index: '/assessment/evaluationDeptStart',
-        //                 name: '业绩指标计划',
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationDeptBusiness',
-        //                 name: '业绩指标考评'
-        //             },
-        //             {
-        //                 index: '/assessment/evaluationDeptRating',
-        //                 name: '部门考评评级'
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '绩效结果考核申报'
-        //             }
-        //         ]
-        //     },
-        //     {
-        //         index: '4',
-        //         name: '本部人员考评',
-        //         img: renyuanImg,
-        //         children: [
-        //             {
-        //                 index: '',
-        //                 name: '人员考评结果',
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '任期考评结果'
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '人员考评评级'
-        //             }
-        //         ]
-        //     },
-        //     {
-        //         index: '5',
-        //         name: '基础信息配置',
-        //         img: quanxianImg,
-        //         children: [
-        //             {
-        //                 index: '',
-        //                 name: '人员权限配置',
-        //             },
-        //             {
-        //                 index: '',
-        //                 name: '工作流程配置',
-        //             },
-        //             {
-        //                 index: '/baseInfomation/moreBrand',
-        //                 name: '多牌配置',
-        //             }
-        //         ]
-        //     },
-        //     {
-        //         index: '6',
-        //         name: '对标考评知识库',
-        //         img: zhishikuImg,
-        //         children: [
-        //             {
-        //                 index: '/evaluationknowledge/scoringRules',
-        //                 name: '考评得分规则',
-        //             },
-        //             {
-        //                 name: '考评评级规则',
-        //             },
-        //             {
-        //                 name: '考评预警规则',
-        //             }
-        //         ]
-        //     },
-        // ]
+        // this.getMenuData()
+        this.forecastDatas = [
+            {
+                index: '/home',
+                name: '考评首页',
+                img: homeImg
+            },
+            {
+                index: '/taskCenter',
+                name: '任务中心',
+                img: taskImg
+            },
+            {
+                index: '/notification',
+                name: '通告管理',
+                img: tonggaoImg
+            },
+            {
+                index: '1',
+                name: '考评体系配置',
+                img: tixiImg,
+                children: [
+                    {
+                        index: '/evaluationSystem/evaluationIndex',
+                        name: '考评指标管理',
+                    },
+                    {
+                        index: '/evaluationSystem/evaluationRules',
+                        name: '考评规则配置',
+                    },
+                    {
+                        index: '/evaluationSystem/company',
+                        name: '单位权重配置',
+                    },
+                    {
+                        index: '',
+                        name: '单位季度营业收入',
+                    },
+                    {
+                        index: '/evaluationSystem/achievementK',
+                        name: '业绩考核系数配置',
+                    },
+                    {
+                        index: '/evaluationSystem/partyBuildingK',
+                        name: '党建考核系数配置',
+                    },
+                    {
+                        index: '/evaluationSystem/department',
+                        name: '部门考评配置',
+                    },
+                    {
+                        index: '/evaluationSystem/personnel',
+                        name: '人员考评配置',
+                    },
+                ]
+            },
+            {
+                index: '2',
+                name: '单位考评业务',
+                img: yewuImg,
+                children: [
+                    {
+                        index: '/assessment/evaluationStart',
+                        name: '单位考评目标启动',
+                    },
+                    {
+                        index: '/assessment/evaluationAmendment',
+                        name: '单位考评目标修订',
+                    },
+                    {
+                        index: '/assessment/evaluationMonth',
+                        name: '单位月度考评'
+                    },
+                    {
+                        index: '/assessment/evaluationQuarter',
+                        name: '单位季度考评'
+                    },
+                    {
+                        index: '/assessment/evaluationYear',
+                        name: '单位年度考评'
+                    },
+                    {
+                        index: '/assessment/evaluationBenchmarkingIndic',
+                        name: '考评对标分析'
+                    },
+                    {
+                        index: '/assessment/evaluationWarning',
+                        name: '考评预警'
+                    },
+                    {
+                        index: '',
+                        name: '单位考评评级'
+                    },
+                    {
+                        index: '',
+                        name: '考评监督管理'
+                    },
+                    {
+                        index: '/assessment/evaluationReport',
+                        name: '考评报告'
+                    },
+                    {
+                        index: '',
+                        name: '单位考核结果应用'
+                    }
+                ]
+            },
+            {
+                index: '3',
+                name: '本部考评业务',
+                img: benbuImg,
+                children: [
+                    {
+                        index: '/assessment/evaluationDeptStart',
+                        name: '业绩指标计划',
+                    },
+                    {
+                        index: '/assessment/evaluationDeptBusiness',
+                        name: '业绩指标考评'
+                    },
+                    {
+                        index: '/assessment/evaluationDeptRating',
+                        name: '部门考评评级'
+                    },
+                    {
+                        index: '',
+                        name: '绩效结果考核申报'
+                    }
+                ]
+            },
+            {
+                index: '4',
+                name: '本部人员考评',
+                img: renyuanImg,
+                children: [
+                    {
+                        index: '',
+                        name: '人员考评结果',
+                    },
+                    {
+                        index: '',
+                        name: '任期考评结果'
+                    },
+                    {
+                        index: '',
+                        name: '人员考评评级'
+                    }
+                ]
+            },
+            {
+                index: '5',
+                name: '基础信息配置',
+                img: quanxianImg,
+                children: [
+                    {
+                        index: '',
+                        name: '人员权限配置',
+                    },
+                    {
+                        index: '',
+                        name: '工作流程配置',
+                    },
+                    {
+                        index: '/baseInfomation/moreBrand',
+                        name: '多牌配置',
+                    }
+                ]
+            },
+            {
+                index: '6',
+                name: '对标考评知识库',
+                img: zhishikuImg,
+                children: [
+                    {
+                        index: '/evaluationknowledge/scoringRules',
+                        name: '考评得分规则',
+                    },
+                    {
+                        name: '考评评级规则',
+                    },
+                    {
+                        index: '/evaluationknowledge/earlyWarningRule',
+                        name: '考评预警规则',
+                    }
+                ]
+            },
+        ]
         if (window.sessionStorage.getItem('routeTags')) {
             this.routeTags = JSON.parse(window.sessionStorage.getItem('routeTags'))
             if (this.$route?.path === '/') {
@@ -439,6 +440,7 @@ export default {
         handleClose(tag) {
             if (this.routeTags.length > 1) {
                 this.routeTags.splice(this.routeTags.indexOf(tag), 1)
+                this.$router.push({ path: this.routeTags[this.routeTags.length-1].index})
                 window.sessionStorage.setItem('routeTags', JSON.stringify(this.routeTags))
             }
         },