Prechádzať zdrojové kódy

首页中增加火电板块,水电板块,新能源和海外业务二级页面并且服务联调;根据后端需求修改考评功能;

SunZehao 2 rokov pred
rodič
commit
c04fe0d7b7

+ 2 - 1
src/assets/css/main.css

@@ -229,7 +229,8 @@ a {
 
 /* 文字提示 */
 .el-popper{
-    width: 325px;
+    min-width: 120px !important;
+    max-width: 325px;
 }
 .el-popper .el-select-dropdown {
     min-width: 0 !important;

+ 1 - 1
src/components/assessment/evaluationAmendmentPage.vue

@@ -38,7 +38,7 @@
                                 class="box-item"
                                 effect="customized"
                                 :content="scope.row.createOrgName"
-                                placement="top"
+                                placement="right"
                             >
                                 <span class="tooltipCC">{{scope.row.createOrgName}}</span>
                             </el-tooltip>

+ 31 - 2
src/components/assessment/evaluationBenchmarkingIndicPage.vue

@@ -25,10 +25,22 @@
                     </el-select>
                 </div>
                 <div class="exceed">
+                    <span class="exceedSpan" style="margin-left: 10px;width: 80px">时间类型:</span>
+                    <el-select v-model="timeStr" placeholder="请选择时间类型">
+                        <el-option
+                        v-for="item in timerData"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="exceed">
                     <span class="exceedSpan" style="margin-left: 10px;width: 80px">选择时间:</span>
                     <el-date-picker
                         v-model="timeIds"
                         type="month"
+                        value-format="YYYY-MM"
                         placeholder="选择时间"
                     />
                 </div>
@@ -53,7 +65,7 @@
                         <el-table-column label="考评单位" prop="organizationShortName" width="200">
                             <template #default="scope">
                                 <el-tooltip class="box-item" effect="customized" :content="scope.row.organizationShortName"
-                                    placement="top">
+                                    placement="right">
                                     <span class="tooltipCC">{{scope.row.organizationShortName}}</span>
                                 </el-tooltip>
                             </template>
@@ -149,10 +161,25 @@ export default {
                 currentPage: 1,
                 total: 0
             },
-            titleMsgArr: []
+            titleMsgArr: [],
+            timerData: []
         }
     },
     created() {
+        this.timerData = [
+            {
+                label: '年度',
+                value: '1'
+            },
+            {
+                label: '季度',
+                value: '2'
+            },
+            {
+                label: '月度',
+                value: '3'
+            }
+        ]
         this.titleMsgArr = [
             {
                 isClass: 'huoDef',
@@ -209,6 +236,7 @@ export default {
         // 查询单位数据
         getEvalCompanyData() {
             let that = this
+            debugger
             let params = {
                 pageNum: that.page.currentPage,
                 pageSize: that.page.pagesize,
@@ -418,6 +446,7 @@ export default {
                 }
                 .seachTypeCha{
                     background: #E6EBF5;
+                    cursor: pointer;
                     border-left: 3px solid #3B7AD1;
                 }
             }

+ 1 - 1
src/components/assessment/evaluationDeptBusinessPage.vue

@@ -24,7 +24,7 @@
                                 class="box-item"
                                 effect="customized"
                                 :content="scope.row.des"
-                                placement="top"
+                                placement="right"
                             >
                                 <span class="tooltipCC">{{scope.row.des}}</span>
                             </el-tooltip>

+ 2 - 2
src/components/assessment/evaluationDeptRatingPage.vue

@@ -39,7 +39,7 @@
                                 class="box-item"
                                 effect="customized"
                                 :content="scope.row.deptName"
-                                placement="top"
+                                placement="right"
                             >
                                 <span class="tooltipCC">{{scope.row.deptName}}</span>
                             </el-tooltip>
@@ -52,7 +52,7 @@
                                 class="box-item"
                                 effect="customized"
                                 :content="scope.row[it.value+'Content']"
-                                placement="top"
+                                placement="right"
                             >
                                 <span class="tooltipCCDes">{{scope.row[it.value]}}</span>
                             </el-tooltip>

+ 1 - 1
src/components/assessment/evaluationMonthPage.vue

@@ -38,7 +38,7 @@
                                 class="tooltipName"
                                 effect="customized"
                                 :content="scope.row.createOrgName"
-                                placement="top"
+                                placement="right"
                             >
                                 <span class="tooltipCC">{{scope.row.createOrgName}}</span>
                             </el-tooltip>

+ 1 - 1
src/components/assessment/evaluationStartPage.vue

@@ -38,7 +38,7 @@
                                 class="box-item"
                                 effect="customized"
                                 :content="scope.row.createOrgName"
-                                placement="top"
+                                placement="right"
                             >
                                 <span class="tooltipCC">{{scope.row.createOrgName}}</span>
                             </el-tooltip>

+ 1 - 1
src/components/assessment/evaluationYearPage.vue

@@ -37,7 +37,7 @@
                                 class="box-item"
                                 effect="customized"
                                 :content="scope.row.organizationName"
-                                placement="top"
+                                placement="right"
                             >
                                 <span class="tooltipCC">{{scope.row.organizationName}}</span>
                             </el-tooltip>

+ 2 - 2
src/components/evaluationSystem/evaluationCompanyPage.vue

@@ -59,7 +59,7 @@
                     <el-table-column label="单位名称" prop="organizationShortName" width="300">
                         <template #default="scope">
                             <el-tooltip class="box-item" effect="customized" :content="scope.row.organizationShortName"
-                                placement="top">
+                                placement="right">
                                 <span class="tooltipCC">{{scope.row.organizationShortName}}</span>
                             </el-tooltip>
                         </template>
@@ -74,7 +74,7 @@
                     <el-table-column label="考评规则" prop="evaluateRuleName" width="300">
                         <template #default="scope">
                             <el-tooltip class="box-item" effect="customized" :content="scope.row.evaluateRuleName"
-                                placement="top">
+                                placement="right">
                                 <span class="tooltipCC">{{scope.row.evaluateRuleName}}</span>
                             </el-tooltip>
                         </template>

+ 397 - 0
src/components/gateWay/gatewayNewSeasonFrom.vue

@@ -0,0 +1,397 @@
+<template>
+    <div class="seasonLeagueTable">
+        <el-dialog v-model="dialogVisible" width="80vw" :close-on-click-modal="false">
+            <template #header>
+                <div class="seasonHeader">
+                    <span style="font-size:14px;color:#fff">考核排行榜</span>
+                    <el-select v-model="optionName" placeholder="请选择板块" @change="changeOption">
+                        <el-option
+                            v-for="item in optionArr"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value">
+                        </el-option>
+                    </el-select>
+                </div>
+            </template>
+            <el-row class="seasonFrom">
+                <el-col :span="12" style="border-right: 1px solid #E1E3EA;">
+                    <div class="seasonFromHeader">
+                        <div class="headerNameTit">
+                            <div class="headerNameTit_left">
+                                <span>排名</span>
+                                <span style="margin-left: 20px">单位名称</span>
+                            </div>
+                            <div class="headerNameTit_right">
+                                <span>得分</span>
+                                <span style="margin-left: 20px">加分事项</span>
+                                <span style="margin-left: 20px">扣分事项</span>
+                                <span style="margin-left: 20px">管理加分</span>
+                                <span style="margin-left: 20px">管理扣分</span>
+                                <span style="margin-left: 20px">高于基准</span>
+                                <span style="margin-left: 20px">低于基准</span>
+                            </div>
+                        </div>
+                    </div>
+                    <div style="margin-top:10px">
+                        <div style="display: flex;" v-for="(item, index) in evaluationSeasonDataLeft" :key="index">
+                            <div class="mainFourMsg">
+                                <span>{{item.rank}}</span>
+                                <span>{{item.company}}</span>
+                                <span>{{item.score}}</span>
+                                <div class="mainFourImg">
+                                    <el-popover
+                                        placement="right-start"
+                                        :title="item.company +' '+ item.score"
+                                        :width="200"
+                                        trigger="hover"
+                                        :content="item.matter_heigh_note"
+                                    >
+                                        <template #reference>
+                                            <img :src="item.matter_heigh === 0 ? cenImg : item.matter_heigh === 1 ? topImg : botImg" alt="">
+                                        </template>
+                                    </el-popover>
+                                    <el-popover
+                                        placement="right-start"
+                                        :title="item.company +' '+ item.score"
+                                        :width="200"
+                                        trigger="hover"
+                                        :content="item.manage_low_note"
+                                    >
+                                        <template #reference>
+                                            <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" alt="">
+                                        </template>
+                                    </el-popover>
+                                    <el-popover
+                                        placement="right-start"
+                                        :title="item.company +' '+ item.score"
+                                        :width="200"
+                                        trigger="hover"
+                                        :content="item.manage_height_note"
+                                    >
+                                        <template #reference>
+                                            <img :src="item.manage_height === 0 ? cenImg : item.manage_height === 1 ? topImg : botImg" alt="">
+                                        </template>
+                                    </el-popover>
+                                    <el-popover
+                                        placement="right-start"
+                                        :title="item.company +' '+ item.score"
+                                        :width="200"
+                                        trigger="hover"
+                                        :content="item.manage_low_note"
+                                    >
+                                        <template #reference>
+                                            <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" alt="">
+                                        </template>
+                                    </el-popover>
+                                    <el-popover
+                                        placement="right-start"
+                                        :title="item.company +' '+ item.score"
+                                        :width="200"
+                                        trigger="hover"
+                                        :content="item.standard_heigh_note"
+                                    >
+                                        <template #reference>
+                                            <img :src="item.standard_heigh === 0 ? cenImg : item.standard_heigh === 1 ? topImg : botImg" alt="">
+                                        </template>
+                                    </el-popover>
+                                    <el-popover
+                                        placement="right-start"
+                                        :title="item.company +' '+ item.score"
+                                        :width="200"
+                                        trigger="hover"
+                                        :content="item.standard_low_note"
+                                    >
+                                        <template #reference>
+                                            <img :src="item.standard_low === 0 ? cenImg : item.standard_low === 1 ? topImg : botImg" alt="">
+                                        </template>
+                                    </el-popover>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </el-col>
+                <el-col :span="12">
+                    <div class="seasonFromHeader">
+                        <div class="headerNameTit">
+                            <div class="headerNameTit_left">
+                                <span>排名</span>
+                                <span style="margin-left: 20px">单位名称</span>
+                            </div>
+                            <div class="headerNameTit_right">
+                                <span>得分</span>
+                                <span style="margin-left: 20px">加分事项</span>
+                                <span style="margin-left: 20px">扣分事项</span>
+                                <span style="margin-left: 20px">管理加分</span>
+                                <span style="margin-left: 20px">管理扣分</span>
+                                <span style="margin-left: 20px">高于基准</span>
+                                <span style="margin-left: 20px">低于基准</span>
+                            </div>
+                        </div>
+                    </div>
+                    <div style="display: flex" v-for="(item, index) in evaluationSeasonDataRight" :key="index">
+                        <div class="mainFourMsg">
+                            <span>{{item.rank}}</span>
+                            <span>{{item.company}}</span>
+                            <span>{{item.score}}</span>
+                            <div class="mainFourImg">
+                                <el-popover
+                                    placement="right-start"
+                                    :title="item.company +' '+ item.score"
+                                    :width="200"
+                                    trigger="hover"
+                                    :content="item.matter_heigh_note"
+                                >
+                                    <template #reference>
+                                        <img :src="item.matter_heigh === 0 ? cenImg : item.matter_heigh === 1 ? topImg : botImg" alt="">
+                                    </template>
+                                </el-popover>
+                                <el-popover
+                                    placement="right-start"
+                                    :title="item.company +' '+ item.score"
+                                    :width="200"
+                                    trigger="hover"
+                                    :content="item.manage_low_note"
+                                >
+                                    <template #reference>
+                                        <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" alt="">
+                                    </template>
+                                </el-popover>
+                                <el-popover
+                                    placement="right-start"
+                                    :title="item.company +' '+ item.score"
+                                    :width="200"
+                                    trigger="hover"
+                                    :content="item.manage_height_note"
+                                >
+                                    <template #reference>
+                                        <img :src="item.manage_height === 0 ? cenImg : item.manage_height === 1 ? topImg : botImg" alt="">
+                                    </template>
+                                </el-popover>
+                                <el-popover
+                                    placement="right-start"
+                                    :title="item.company +' '+ item.score"
+                                    :width="200"
+                                    trigger="hover"
+                                    :content="item.manage_low_note"
+                                >
+                                    <template #reference>
+                                        <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" alt="">
+                                    </template>
+                                </el-popover>
+                                <el-popover
+                                    placement="right-start"
+                                    :title="item.company +' '+ item.score"
+                                    :width="200"
+                                    trigger="hover"
+                                    :content="item.standard_heigh_note"
+                                >
+                                    <template #reference>
+                                        <img :src="item.standard_heigh === 0 ? cenImg : item.standard_heigh === 1 ? topImg : botImg" alt="">
+                                    </template>
+                                </el-popover>
+                                <el-popover
+                                    placement="right-start"
+                                    :title="item.company +' '+ item.score"
+                                    :width="200"
+                                    trigger="hover"
+                                    :content="item.standard_low_note"
+                                >
+                                    <template #reference>
+                                        <img :src="item.standard_low === 0 ? cenImg : item.standard_low === 1 ? topImg : botImg" alt="">
+                                    </template>
+                                </el-popover>
+                            </div>
+                        </div>
+                    </div>
+                </el-col>
+            </el-row>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import {apiGetevaluationportallist} from '../../api/api'
+import topImg from '../../assets/getwayImg/topNew.png'
+import botImg from '../../assets/getwayImg/botNew.png'
+import cenImg from '../../assets/getwayImg/cenNew.png'
+export default {
+    data() {
+        return {
+            dialogVisible: false,
+            evaluationSeasonDataLeft: [],
+            evaluationSeasonDataRight: [],
+            optionArr: [],
+            optionName: '',
+            yearData: '',
+            seasonData: '',
+            topImg: topImg,
+            botImg: botImg,
+            cenImg: cenImg,
+        }
+    },
+    created() {
+        this.optionArr = [
+            {
+                label: '火电板块',
+                value: 'HD'
+            },
+            {
+                label: '水电板块',
+                value: 'SD'
+            },
+            {
+                label: '新能源',
+                value: 'XNYFG'
+            },
+            {
+                label: '海外业务',
+                value: 'GJYE'
+            },
+            {
+                label: '煤电一体化',
+                value: 'MDYTH'
+            }
+        ]
+    },
+    methods: {
+        init(name, year, season) {
+            this.dialogVisible = true
+            this.optionName = name
+            this.yearData = year
+            this.seasonData = season
+            this.evaluationSeasonDataLeft = []
+            this.evaluationSeasonDataRight = []
+            this.getYearData(name, year, season)
+        },
+        changeOption(val) {
+            this.evaluationSeasonDataLeft = []
+            this.evaluationSeasonDataRight = []
+            this.getYearData(val, this.yearData, this.seasonData)
+        },
+        getYearData(name, year, season) {
+            let that = this
+            let params = {
+                binSection: name,
+                year: year,
+                season: season === '第一季度' ? '1' : season === '第二季度' ? '2' : '3'
+            }
+            apiGetevaluationportallist(params).then(datas =>{
+                if (datas && datas.data && datas.data.season) {
+                    if (datas.data.season[name].length>0) {
+                        datas.data.season[name].forEach((item, index) =>{
+                            item.rank = index+1
+                        })
+                        if (datas.data.season[name].length>10) {
+                            that.evaluationSeasonDataLeft = datas.data.season[name].splice(0, 10)
+                            that.evaluationSeasonDataRight = datas.data.season[name]
+                            
+                        } else {
+                            that.evaluationSeasonDataLeft = datas.data.season[name]
+                        }
+                    }
+                }
+            })
+        }
+    }
+}
+</script>
+
+<style lang="less">
+.seasonLeagueTable{
+    .el-overlay{
+        .el-dialog{
+            margin-top: 5vh !important;
+            .el-dialog__header{
+                .seasonHeader{
+                    width: 97%;
+                    display: flex;
+                    justify-content: space-between;
+                    .el-select{
+                        width: 120px;
+                        .el-input__inner{
+                            height:28px;
+                        }
+                        .el-input__suffix{
+                            .el-select__caret{
+                                line-height:28px;
+                            }
+                        }
+                    }
+                }
+            }
+            .seasonFrom{
+                padding: 0 20px;
+                .seasonFromHeader{
+                    width: 100%;
+                    border-bottom: 1px solid #E1E3EA;
+                    .headerNameTit{
+                        display: flex;
+                        justify-content: space-between;
+                        padding: 8px 20px;
+                        font-size: 14px;
+                        color: #414141;
+                    }
+                    .headerTit{
+                        position: relative;
+                        top: 10px;
+                        left: 150px;
+                    }
+                }
+                .mainFourMsg{
+                    display: flex;
+                    margin: 0 10px;
+                    width: 100%;
+                    height: 33px;
+                    background: #F6F7FA;
+                    margin-bottom: 8px;
+                    padding-left: 10px;
+                    padding-top: 2px;
+                    border-radius: 5px;
+                    .mainFourImg{
+                        display: flex;
+                        justify-content: space-around;
+                        width: 65%;
+                        img{
+                            width: 20px;
+                            height: 20px;
+                            position: relative;
+                            top: 5px;
+                            margin-right: 33px;
+                            margin-left: 22px;
+                        }
+                    }
+                    span{
+                        font-size: 14px;
+                        font-family: Microsoft YaHei;
+                        position: relative;
+                        top: 6px;
+                    }
+                    span:nth-child(1){
+                        display: inline-block;
+                        width: 5%;
+                        font-weight: 600;
+                        color: #666;
+                        margin-left: 10px;
+                        margin-right: 13px;
+                    }
+                    span:nth-child(2){
+                        display: inline-block;
+                        width: 33%;
+                        font-weight: 400;
+                        color: #666;
+                        margin-right: 17px;
+                    }
+                    span:nth-child(3){
+                        display: inline-block;
+                        width: 5%;
+                        font-weight: 600;
+                        margin-right: 15px;
+                        color: #666;
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 7 - 3
src/components/gatewaynNewPage.vue

@@ -92,7 +92,7 @@
                         </div>
                     </div>
                     <div class="mainFour">
-                        <div class="mainMore"></div>
+                        <div class="mainMore" @click="yearSeeMore(it.nameEn, 'season')"></div>
                         <div style="display: flex" v-for="(item, index) in it.section" :key="index">
                             <div class="mainFourMsg">
                                 <span>{{item.company}}</span>
@@ -187,7 +187,7 @@
                         </div>
                     </div>
                     <div class="footerThree">
-                        <div class="mainMore"></div>
+                        <div class="mainMore" @click="yearSeeMore(it.nameEn, 'season')"></div>
                         <div style="display: flex" v-for="(item, index) in cupDataSeasonArr.integration" :key="index">
                             <div class="footerThreeMsg" v-for="it in matterMsg" :key="it">
                                 <div class="footerImg">
@@ -285,6 +285,7 @@
             </el-col>
         </el-row>
         <year-from ref="yearFrom"></year-from>
+        <season-from ref="seasonFrom"></season-from>
     </div>
 </template>
 
@@ -300,8 +301,9 @@ import cenImg from '../assets/getwayImg/cenNew.png'
 import {apiGetevaluationportallist} from '../api/api'
 
 import yearFrom from './gateWay/gatewayNewYearFrom.vue'
+import seasonFrom from './gateWay/gatewayNewSeasonFrom.vue'
 export default {
-    components: {yearFrom},
+    components: {yearFrom, seasonFrom},
     data() {
         return {
             cupDataYearArr: {
@@ -542,6 +544,8 @@ export default {
         yearSeeMore(name, type) {
             if (type === 'year') {
                 this.$refs.yearFrom.init(name, this.changeYear, this.seasonStr)
+            } else {
+                this.$refs.seasonFrom.init(name, this.changeYear, this.seasonStr)
             }
         }
     }