Преглед на файлове

本部部门配置与业绩指标计划页面根据需求修改相应逻辑,服务联调;业绩指标计划页面根据需求修改相应功能;移动端增加菜单页面;

SunZehao преди 1 година
родител
ревизия
605fc704d8

+ 17 - 2
src/api/api.js

@@ -23,8 +23,8 @@ export function apiGetModel(url, params) {
 //获取菜单数据
 export function apiGetMenuData() {
     return httpRequest({
-        url: 'menu/menuList?parentId=10105', // 测试
-        // url: 'menu/menuList?parentId=6802', // 生产
+        // url: 'menu/menuList?parentId=10105', // 测试
+        url: 'menu/menuList?parentId=6802', // 生产
         method: 'post'
     })
 }
@@ -946,6 +946,15 @@ export function apiGetEvaluationDeptList(params) {
         params: params
     })
 }
+export function apiGetEvaluationDeptListAll(params) {
+    return httpRequest({
+        // url: 'evaluation-dept/list',
+        url: 'evaluation-dept-allocation/listAll',
+        method: 'get',
+        params: params
+    })
+}
+
 //----"单位考评配置-保存/修改"
 export function apiGetorganizationSaveList(params) {
     return httpRequest.post('organization-evaluation-rule/save', params)
@@ -1007,6 +1016,12 @@ export function apiGetDepartmentLeader(params) {
         method: 'get'
     })
 }
+export function apiGetDepartmentallocationLeader(params) {
+    return httpRequest({
+        url: `evaluation-dept-allocation/getDepartmentLeader/${params}`,
+        method: 'get'
+    })
+}
 
 
 

+ 20 - 15
src/components/assessment/assessmentApplicationPage.vue

@@ -87,9 +87,9 @@
                             <el-select v-model="ruleForm.deptName" placeholder="请选择部门名称" @change="changeDeptLead">
                                 <el-option
                                 v-for="item in departData"
-                                :key="item.id"
-                                :label="item.name"
-                                :value="item.id">
+                                :key="item.deptId"
+                                :label="item.deptName"
+                                :value="item.deptId">
                                 </el-option>
                             </el-select>
                         </el-form-item>
@@ -163,7 +163,7 @@ import btns from '../elbuttonS.vue'
 import seachs from '../seachGroup.vue'
 import { saveAs } from 'file-saver'
 import {apiGetevaluatiodeptadList, apiPostevaluationdeptadSave,apiGetdoAction,apiGetDepartmentLeader,
-apiGetworkflowgetOpinion,apiGetevaluationdeptadReport,
+apiGetworkflowgetOpinion,apiGetevaluationdeptadReport,apiGetEvaluationDeptListAll,
 apideptAdState, apiGetorganizationstructureFromTree, apiPostevaluationdeptadDelete} from '../../api/api'
 export default {
     components: {
@@ -260,13 +260,18 @@ export default {
         // 查询部门
         getDepartmentFromTreeData() {
             let that = this
-            let params = {
-                id: '23031001',
-                num: 1
-            }
-            apiGetorganizationstructureFromTree(params).then(datas =>{
+            // let params = {
+            //     id: '23031001',
+            //     num: 1
+            // }
+            // apiGetorganizationstructureFromTree(params).then(datas =>{
+            //     if (datas && datas.data) {
+            //         that.departData = datas.data[0].children
+            //     }
+            // })
+            apiGetEvaluationDeptListAll().then(datas =>{
                 if (datas && datas.data) {
-                    that.departData = datas.data[0].children
+                    that.departData = datas.data
                 }
             })
         },
@@ -276,7 +281,7 @@ export default {
             apiGetDepartmentLeader(val).then(datas =>{
                 if (datas && datas.data) {
                     that.DepartmentLeaderObj = datas.data
-                    that.ruleForm.deptLeaderName = datas.data.id
+                    that.ruleForm.deptLeaderName = datas.data.chargePersonName
                 }
             })
         },
@@ -294,15 +299,15 @@ export default {
             let userMes = JSON.parse(window.sessionStorage.getItem('user'))
             let deptName = ''
             that.departData.forEach(itv =>{
-                if (itv.id === that.ruleForm.deptName) {
-                    deptName = itv.name
+                if (itv.deptId === that.ruleForm.deptName) {
+                    deptName = itv.deptName
                 }
             })
             let params = {
                 deptId: that.ruleForm.deptName,
                 deptName: deptName,
-                deptLeaderId: that.ruleForm.deptLeaderName,
-                deptLeaderName: that.DepartmentLeaderObj.name,
+                deptLeaderId: that.DepartmentLeaderObj.chargePersonId,
+                deptLeaderName: that.ruleForm.deptLeaderName,
                 declarationLevel: that.ruleForm.declarationLevel,
                 annual: that.ruleForm.annual,
                 declarationMonth: that.ruleForm.declarationMonth,

+ 41 - 14
src/components/evaluationSystem/evaluationDepartmentPage.vue

@@ -74,11 +74,19 @@
                                 <el-option
                                 v-for="item in deptLeaderOption"
                                 :key="item.id"
-                                :label="item.name"
+                                :label="item.userName"
                                 :value="item.id">
+                                <span style="float: left">{{ item.userName }}</span>
+                                <span style="float: right;color: #909399;font-size: 13px;" >{{ item.posName }}</span>
                                 </el-option>
                             </el-select>
                         </el-form-item>
+                        <el-form-item label="部门应用" prop="departmentIn">
+                            <el-checkbox-group v-model="ruleForm.departmentIn">
+                                <el-checkbox label="业绩指标计划" name="type" />
+                                <el-checkbox label="绩效考核申报" name="type" />
+                            </el-checkbox-group>
+                        </el-form-item>
                     </el-form>
                 </div>
                 <template #footer>
@@ -99,7 +107,7 @@ import seachs from '../seachGroup.vue'
 import addW from '../../assets/btnIcon/addW.png'
 import addIcon from '../../assets/btnIcon/add.png'
 import {apiGetEvaluationDeptList, apiGetevaluationdeptSave, apiGetevaluationdeptremoveAll, apiGetorganizationstructureFromTree,
-apiGetuserPageList, apiGetevaluationdeptremoveItem} from '../../api/api'
+apiGetDepartmentallocationLeader, apiGetevaluationdeptremoveItem} from '../../api/api'
 export default {
   components: { importDailog, btns, seachs },
     data() {
@@ -117,7 +125,8 @@ export default {
             addIcon: addIcon,
             ruleForm: {
                 department: '',
-                departmentLeader: ''
+                departmentLeader: '',
+                departmentIn: []
             },
             rules: {
                 department: [
@@ -125,6 +134,14 @@ export default {
                 ],
                 departmentLeader: [
                     { required: true, message: '请选择部门领导', trigger: 'change' }
+                ],
+                departmentIn: [
+                    {
+                    type: 'array',
+                    required: true,
+                    message: '请选择部门应用',
+                    trigger: 'change',
+                    },
                 ]
             },
             page:{
@@ -184,14 +201,10 @@ export default {
         // 根据部门查询人员
         changeDeptLead(val) {
             let that = this
-            let params = {
-                current: 1,
-                size: 500,
-                orgId: val
-            }
-            apiGetuserPageList(params).then(datas =>{
+            apiGetDepartmentallocationLeader(val).then(datas =>{
                 if (datas && datas.data) {
-                    that.deptLeaderOption = datas.data.records
+                    that.deptLeaderOption = datas.data
+                    that.ruleForm.departmentLeader = datas.data[0].id
                 }
             })
         },
@@ -202,7 +215,8 @@ export default {
             this.$nextTick(() =>{
                 this.ruleForm = {
                     department: '',
-                    departmentLeader: ''
+                    departmentLeader: '',
+                    departmentIn: []
                 }
             })
         },
@@ -211,13 +225,23 @@ export default {
             this.isSave = true
             this.title = '修改考评部门'
             this.evalradio = this.changeDateSelect[0]
+            let departmentInStr = []
+            if (this.evalradio.yjzbjhType === '1') {
+                departmentInStr.push('业绩指标计划')
+            }
+            if (this.evalradio.jxjgkhsbType === '1') {
+                departmentInStr.push('绩效考核申报')
+            }
+            this.evalradio.yjzbjhType
             this.ruleForm = {
                 department: this.evalradio.deptId,
-                departmentLeader: this.evalradio.chargePersonId
+                departmentLeader: this.evalradio.chargePersonId,
+                departmentIn: departmentInStr
             }
         },
         saveevaluationDepartmentMsg(formName) {
             let that = this
+            debugger
             that.$refs[formName].validate((valid) => {
                 if (valid) {
                     that.saveAndEditIndicatorData()
@@ -236,14 +260,17 @@ export default {
             })
             that.deptLeaderOption.forEach(item =>{
                 if (item.id === that.ruleForm.departmentLeader) {
-                    deptLeaderNameS = item.name
+                    deptLeaderNameS = item.userName
                 }
             })
+            let depaIn = that.ruleForm.departmentIn.split(',')
             let params = {
                 deptId: that.ruleForm.department,
                 deptName: deptNameS,
                 chargePersonId: that.ruleForm.departmentLeader,
-                chargePersonName: deptLeaderNameS
+                chargePersonName: deptLeaderNameS,
+                yjzbjhType: depaIn.indexOf('业绩指标计划') > 0 ? '1' : '0',
+                jxjgkhsbType: depaIn.indexOf('绩效考核申报') > 0 ? '1' : '0'
             }
             if (that.isSave) {
                 params.id = that.evalradio.id

+ 2 - 2
src/components/gateWay/gatewayNewSeasonFrom.vue

@@ -151,10 +151,10 @@
                                     :title="item.company +' '+ item.score"
                                     :width="200"
                                     trigger="hover"
-                                    :content="item.manage_low_note"
+                                    :content="item.matter_low_note"
                                 >
                                     <template #reference>
-                                        <img :src="item.manage_low === 0 ? cenImg : item.manage_low === 1 ? topImg : botImg" alt="">
+                                        <img :src="item.matter_low === 0 ? cenImg : item.matter_low === 1 ? topImg : botImg" alt="">
                                     </template>
                                 </el-popover>
                                 <el-popover

Файловите разлики са ограничени, защото са твърде много
+ 829 - 771
src/components/gatewaynNewPage.vue


+ 7 - 3
src/mobeilComponent/menuMobeilPage.vue

@@ -9,11 +9,15 @@
                 <p>全业务域考评系统</p>
             </div>
             <div class="menuMainBot">
-                <p @click="enterPage('mobeil')">年度单位评级</p>
-                <p @click="enterPage('quarterConpany')">季度单位评级</p>
+                <!-- <p @click="enterPage('quarterConpany')">季度单位评级</p>
                 <p @click="enterPage('report')">单位考评报告</p>
                 <p @click="enterPage('earlyWarning')">单位考评预警</p>
-                <p @click="enterPage('notification')">对标考评公告</p>
+                <p @click="enterPage('notification')">对标考评公告</p> -->
+                <p @click="enterPage('mobeil')">年度单位评级</p>
+                <p>季度单位评级</p>
+                <p>单位考评报告</p>
+                <p>单位考评预警</p>
+                <p>对标考评公告</p>
                 <img :src="closeMenu" alt="" @click="goBack">
             </div>
         </div>

+ 355 - 0
src/mobeilComponent/reportConpanyPage.vue

@@ -0,0 +1,355 @@
+<template>
+    <div :class="showDatePicker || showSelect? 'homeMobeilMask': ''">
+    </div>
+    <div class="reportConpanyPage">
+        <van-nav-bar title="单位考评报告" />
+        <div class="mobeilVant">
+            <div class="mobeilTop">
+                <div class="topLeft">
+                    <!-- <van-icon name="star" size="20" /> -->
+                    <img :src="logoImg" alt="">
+                    <span>全业务域考评系统</span>
+                </div>
+                <div class="topRight">
+                    <span>系统导航</span>
+                    <!-- <van-icon name="wap-nav"  size="23" /> -->
+                    <img :src="daohangImg" alt="" @click="chooseMenu">
+                </div>
+            </div>
+            <div class="reportConpanyMain">
+                <div class="mainSeach">
+                    <div class="rankingList">
+                        <span>{{showDate}}年度</span>
+                        <img :src="dateImg" @click="changePickerDate" alt="">
+                    </div>
+                    <div class="sectionModel">
+                        <span @click="changeSelect">{{binSectionName}}板块</span>
+                    </div>
+                    <div class="mainSeachImg">
+                        <img :src="sortImg" alt="">
+                        <img :src="seachImg" alt="" @click="getYearData(binSection, showDate)">
+                    </div>
+                </div>
+                <van-date-picker
+                    v-model="currentDate"
+                    title="选择年季"
+                    :columns-type="['year', 'month']"
+                    :filter="filterPicker"
+                    @confirm="confirmFn"
+                    @cancel="cancelpickerFn"
+                    v-if="showDatePicker"
+                    />
+                <van-picker
+                    title="选择板块"
+                    :columns="columnSection"
+                    @confirm="selectConfirm"
+                    @cancel="cancelSelect"
+                    v-if="showSelect"
+                    />
+                <div class="mainModel">
+                    <el-table :data="mobeilReportData" style="width: 100%">
+                    <el-table-column type="index" label="序号" align="center"></el-table-column>
+                    <el-table-column label="报告名称" prop="evaluateReportName" width="330" />
+                    <el-table-column label="业务属性" prop="binSectionName" />
+                    <el-table-column label="考评周期">
+                        <template #default="scope">
+                            <span v-if="scope.row.checkCycle === 'YDKP'" style="font-size: 12px;">月度考评</span>
+                            <span v-else-if="scope.row.checkCycle === 'JDKP'" style="font-size: 12px;">季度考评</span>
+                            <span v-else style="font-size: 12px;">年度考评</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="年度" prop="year" />
+                    <el-table-column label="月度/季度" prop="month" align="center" />
+                    <el-table-column label="业务简述" prop="des" />
+                </el-table>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import logoImg from '../assets/mobeilImg/logo.png'
+import daohangImg from '../assets/mobeilImg/daohang.png'
+import dateImg from '../assets/mobeilImg/date.png'
+import sortImg from '../assets/mobeilImg/sort.png'
+import seachImg from '../assets/mobeilImg/seach.png'
+import cup1 from '../assets/getwayImg/cup1.png'
+import cup2 from '../assets/getwayImg/cup2.png'
+import cup3 from '../assets/getwayImg/cup3.png'
+import topImg from '../assets/getwayImg/topNew.png'
+import botImg from '../assets/getwayImg/botNew.png'
+import cenImg from '../assets/getwayImg/cenNew.png'
+
+import {apiGetEvalReportList} from '../api/api'
+export default {
+    data() {
+        return {
+            logoImg: logoImg,
+            daohangImg: daohangImg,
+            dateImg: dateImg,
+            sortImg: sortImg,
+            seachImg: seachImg,
+            topImg: topImg,
+            botImg: botImg,
+            cenImg: cenImg,
+            showDatePicker: false,
+            showSelect: false,
+            currentDate: [],
+            showDate: '',
+            binSection: 'HD',
+            binSectionName: '火电',
+            mobeilReportData: [],
+            columnSection: []
+        }
+    },
+    created() {
+        this.showDate = new Date().getFullYear()-1
+        this.getReportData(this.binSection, this.showDate)
+        this.columnSection = [
+            { text: '火电', value: 'HD' },
+            { text: '水电', value: 'SD' },
+            { text: '新能源', value: 'XNYFG' },
+            { text: '海外业务', value: 'GJYW' },
+            { text: '煤电一体化', value: 'MDYTH' }
+        ]
+        
+    },
+    methods: {
+        // 获取年度评级详情
+        getReportData(name, year) {
+            let that = this
+            that.mobeilReportData = []
+            let params = {
+                pageNum: 1,
+                pageSize: 500,
+                binSection: '',
+                checkCycle: '',
+                year: '',
+                month: ''
+            }
+            apiGetEvalReportList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.mobeilReportData = datas.data.records
+                }
+            })
+        },
+        filterPicker(type, options) {
+            if (type === 'month') {
+                return options.filter((option) => Number(option.value) < 5);
+            }
+            return options;
+        },
+        chooseMenu() {
+            this.$router.push({ path: "/menu"})
+        },
+        changePickerDate() {
+            this.showDatePicker = true
+        },
+        changeSelect() {
+            this.showSelect = true
+        },
+        confirmFn(val) {
+            this.showDate = val.selectedValues[0]
+            this.cancelpickerFn()
+        },
+        selectConfirm(val) {
+            this.binSection = val.selectedValues[0]
+            if (this.binSection === 'HD') {
+                this.binSectionName = '火电'
+            } else if (this.binSection === 'SD') {
+                this.binSectionName = '水电'
+            } else if (this.binSection === 'XNYFG') {
+                this.binSectionName = '新能源'
+            } else if (this.binSection === 'GJYW') {
+                this.binSectionName = '海外业务'
+            } else if (this.binSection === 'MDYTH') {
+                this.binSectionName = '煤电一体化'
+            }
+            this.cancelSelect()
+        },
+        cancelpickerFn() {
+            this.showDatePicker = false
+        },
+        cancelSelect() {
+            this.showSelect = false
+        }
+    }
+}
+</script>
+
+<style lang="less">
+.homeMobeilMask{
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background-color: rgba(0,0,0,0.5);
+    z-index: 111;
+}
+.reportConpanyPage {
+    background-color: #184FB4;
+    .van-nav-bar{
+        width: 100%;
+        background-color: #184FB4;
+        color: #fff;
+        position: fixed;
+        top: 0;
+        z-index: 111111;
+        .van-nav-bar__content{
+            .van-nav-bar__left{
+                .van-nav-bar__text{
+                    color: #fff;
+                }
+            }
+        }
+    }
+    .mobeilVant{
+        height: 100%;
+        margin-top: 45px;
+        border-radius: 10px 10px 0 0;
+        background-color: #fff;
+        .mobeilTop{
+            height: 60px;
+            display: flex;
+            justify-content: space-around;
+            .topLeft{
+                display: flex;
+                img{
+                    width: 24px;
+                    height: 28px;
+                    position: relative;
+                    top: 18px;
+                    left: -10px;
+                }
+                span{
+                    font-family: MicrosoftYaHei;
+                    font-weight: 600;
+                    font-size: 16px;
+                    color: #444950;
+                    line-height: 60px;
+                }
+            }
+            .topRight{
+                display: flex;
+                img{
+                    width: 22px;
+                    height: 18px;
+                    position: relative;
+                    top: 21px;
+                    left: 5px;
+                }
+                span{
+                    font-family: MicrosoftYaHei;
+                    font-weight: 400;
+                    font-size: 14px;
+                    color: #545960;
+                    line-height: 60px;
+                    margin-right: 5px;
+                }
+            }
+        }
+        .reportConpanyMain{
+            // height: 50px;
+            background-color: #ededf5;
+            padding: 17px 20px;
+            width: calc(100% - 40px);
+            .mainSeach{
+                display: flex;
+                // justify-content: space-between;
+                .rankingList{
+                    width: 37%;
+                    height: 40px;
+                    background: #184FB4;
+                    border-radius: 5px;
+                    margin-bottom: 15px;
+                    margin-right: 10px;
+                    span{
+                        display: inline-block;
+                        width: 85%;
+                        font-family: MicrosoftYaHei;
+                        font-weight: 400;
+                        font-size: 16px;
+                        color: #fff;
+                        margin-right: 5px;
+                        position: relative;
+                        left: 20px;
+                        top: 10px;
+                    }
+                    img{
+                        width: 22px;
+                        height: 18px;
+                        position: relative;
+                        top: -10px;
+                        left: 90px;
+                    }
+                }
+                .sectionModel{
+                    width: 37%;
+                    height: 40px;
+                    background: #838DAB;
+                    border-radius: 5px;
+                    margin-bottom: 15px;
+                    margin-right: 15px;
+                    span{
+                        display: inline-block;
+                        width: 100%;
+                        line-height: 40px;
+                        text-align: center;
+                        color: #fff;
+                    }
+                }
+                .mainSeachImg{
+                    width: 17%;
+                    display: flex;
+                    justify-content: space-between;
+                    position: relative;
+                    top: 10px;
+                    img:nth-child(1){
+                        width: 25px;
+                        height: 15px;
+                        position: relative;
+                        top: 2px;
+                    }
+                    img:nth-child(2){
+                        width: 22px;
+                        height: 22px;
+                    }
+                }
+            }
+            .van-picker{
+                z-index: 222222
+            }
+            .mainModel{
+                background: #fff;
+                border-radius: 5px;
+                padding: 5px 0;
+                .el-table{
+                    .el-table__header-wrapper{
+                        .el-table__header{
+                            tr{
+                                .cell{
+                                    line-height: 18px !important;
+                                }
+                            }
+                        }
+                    }
+                    .el-table__body-wrapper{
+                        .el-table__body{
+                            tr{
+                                .cell{
+                                    img{
+                                        width: 20px;
+                                        height: 20px;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 383 - 0
src/mobeilComponent/seasonConpanyPage.vue

@@ -0,0 +1,383 @@
+<template>
+    <div :class="showDatePicker || showSelect? 'homeMobeilMask': ''">
+    </div>
+    <div class="seasonConpanyPage">
+        <van-nav-bar title="季度单位评级"/>
+        <div class="mobeilVant">
+            <div class="mobeilTop">
+                <div class="topLeft">
+                    <!-- <van-icon name="star" size="20" /> -->
+                    <img :src="logoImg" alt="">
+                    <span>全业务域考评系统</span>
+                </div>
+                <div class="topRight">
+                    <span>系统导航</span>
+                    <!-- <van-icon name="wap-nav"  size="23" /> -->
+                    <img :src="daohangImg" alt="" @click="chooseMenu">
+                </div>
+            </div>
+            <div class="seasonConpanyMain">
+                <div class="mainSeach">
+                    <div class="rankingList">
+                        <span>{{showDate}}年度</span>
+                        <img :src="dateImg" @click="changePickerDate" alt="">
+                    </div>
+                    <div class="sectionModel">
+                        <span @click="changeSelect">{{binSectionName}}板块</span>
+                    </div>
+                    <div class="mainSeachImg">
+                        <img :src="sortImg" alt="">
+                        <img :src="seachImg" alt="" @click="getYearData(binSection, showDate)">
+                    </div>
+                </div>
+                <van-date-picker
+                    v-model="currentDate"
+                    title="选择年份"
+                    :columns-type="['year']"
+                    @confirm="confirmFn"
+                    @cancel="cancelpickerFn"
+                    v-if="showDatePicker"
+                    />
+                <van-picker
+                    title="选择板块"
+                    :columns="columnSection"
+                    @confirm="selectConfirm"
+                    @cancel="cancelSelect"
+                    v-if="showSelect"
+                    />
+                <div class="mainModel">
+                    <el-table :data="seasonConpanyData" style="width: 100%">
+                        <el-table-column label="排名" align="center">
+                            <template #default="scope">
+                                <img :src="scope.row.img" alt="" v-if="scope.row.img">
+                                <span v-else>{{scope.row.rank}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="单位名称" prop="company" />
+                        <el-table-column label="得分" prop="score" align="center"/>
+                        <el-table-column label="加分事项" align="center">
+                            <template #default="scope">
+                                <img :src="scope.row.matter_heigh === 0 ? cenImg : scope.row.matter_heigh === 1 ? topImg : botImg" alt="">
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="扣分事项" align="center">
+                            <template #default="scope">
+                                <img :src="scope.row.matter_low === 0 ? cenImg : scope.row.matter_low === 1 ? topImg : botImg" alt="">
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="管理加分" align="center">
+                            <template #default="scope">
+                                <img :src="scope.row.manage_height === 0 ? cenImg : scope.row.manage_height === 1 ? topImg : botImg" alt="">
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="管理扣分" align="center" >
+                            <template #default="scope">
+                                <img :src="scope.row.manage_low === 0 ? cenImg : scope.row.manage_low === 1 ? topImg : botImg" alt="">
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="高于基准" align="center" >
+                            <template #default="scope">
+                                <img :src="scope.row.standard_heigh === 0 ? cenImg : scope.row.standard_heigh === 1 ? topImg : botImg" alt="">
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="低于基准" align="center" >
+                            <template #default="scope">
+                                <img :src="scope.row.standard_low === 0 ? cenImg : scope.row.standard_low === 1 ? topImg : botImg" alt="">
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import logoImg from '../assets/mobeilImg/logo.png'
+import daohangImg from '../assets/mobeilImg/daohang.png'
+import dateImg from '../assets/mobeilImg/date.png'
+import sortImg from '../assets/mobeilImg/sort.png'
+import seachImg from '../assets/mobeilImg/seach.png'
+import cup1 from '../assets/getwayImg/cup1.png'
+import cup2 from '../assets/getwayImg/cup2.png'
+import cup3 from '../assets/getwayImg/cup3.png'
+import topImg from '../assets/getwayImg/topNew.png'
+import botImg from '../assets/getwayImg/botNew.png'
+import cenImg from '../assets/getwayImg/cenNew.png'
+
+import {apiGetevaluationportallist} from '../api/api'
+export default {
+    data() {
+        return {
+            logoImg: logoImg,
+            daohangImg: daohangImg,
+            dateImg: dateImg,
+            sortImg: sortImg,
+            seachImg: seachImg,
+            topImg: topImg,
+            botImg: botImg,
+            cenImg: cenImg,
+            showDatePicker: false,
+            showSelect: false,
+            currentDate: [],
+            showDate: '',
+            binSection: 'HD',
+            binSectionName: '火电',
+            seasonConpanyData: [],
+            columnSection: []
+        }
+    },
+    created() {
+        this.showDate = new Date().getFullYear()-1
+        this.getYearData(this.binSection, this.showDate)
+        this.columnSection = [
+            { text: '火电', value: 'HD' },
+            { text: '水电', value: 'SD' },
+            { text: '新能源', value: 'XNYFG' },
+            { text: '海外业务', value: 'GJYW' },
+            { text: '煤电一体化', value: 'MDYTH' }
+        ]
+    },
+    methods: {
+        // 获取年度评级详情
+        getYearData(name, year) {
+            let that = this
+            that.seasonConpanyData = []
+            let params = {
+                binSection: name,
+                year: year,
+                season: ''
+            }
+            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 (index < 3) {
+                                if (index === 0) {
+                                    item.img = cup1
+                                } else if (index === 1) {
+                                    item.img = cup2
+                                } else if (index === 2) {
+                                    item.img = cup3
+                                }
+                            }
+                        })
+                        that.seasonConpanyData = datas.data.season[name]
+                    }
+                }
+            })
+        },
+        chooseMenu() {
+            this.$router.push({ path: "/menu"})
+        },
+        changePickerDate() {
+            this.showDatePicker = true
+        },
+        changeSelect() {
+            this.showSelect = true
+        },
+        confirmFn(val) {
+            this.showDate = val.selectedValues[0]
+            this.cancelpickerFn()
+        },
+        selectConfirm(val) {
+            this.binSection = val.selectedValues[0]
+            if (this.binSection === 'HD') {
+                this.binSectionName = '火电'
+            } else if (this.binSection === 'SD') {
+                this.binSectionName = '水电'
+            } else if (this.binSection === 'XNYFG') {
+                this.binSectionName = '新能源'
+            } else if (this.binSection === 'GJYW') {
+                this.binSectionName = '海外业务'
+            } else if (this.binSection === 'MDYTH') {
+                this.binSectionName = '煤电一体化'
+            }
+            this.cancelSelect()
+        },
+        cancelpickerFn() {
+            this.showDatePicker = false
+        },
+        cancelSelect() {
+            this.showSelect = false
+        }
+    }
+}
+</script>
+
+<style lang="less">
+.homeMobeilMask{
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background-color: rgba(0,0,0,0.5);
+    z-index: 111;
+}
+.seasonConpanyPage {
+    background-color: #184FB4;
+    .van-nav-bar{
+        width: 100%;
+        background-color: #184FB4;
+        color: #fff;
+        position: fixed;
+        top: 0;
+        z-index: 111111;
+        .van-nav-bar__content{
+            .van-nav-bar__left{
+                .van-nav-bar__text{
+                    color: #fff;
+                }
+            }
+        }
+    }
+    .mobeilVant{
+        height: 100%;
+        margin-top: 45px;
+        border-radius: 10px 10px 0 0;
+        background-color: #fff;
+        .mobeilTop{
+            height: 60px;
+            display: flex;
+            justify-content: space-around;
+            .topLeft{
+                display: flex;
+                img{
+                    width: 24px;
+                    height: 28px;
+                    position: relative;
+                    top: 18px;
+                    left: -10px;
+                }
+                span{
+                    font-family: MicrosoftYaHei;
+                    font-weight: 600;
+                    font-size: 16px;
+                    color: #444950;
+                    line-height: 60px;
+                }
+            }
+            .topRight{
+                display: flex;
+                img{
+                    width: 22px;
+                    height: 18px;
+                    position: relative;
+                    top: 21px;
+                    left: 5px;
+                }
+                span{
+                    font-family: MicrosoftYaHei;
+                    font-weight: 400;
+                    font-size: 14px;
+                    color: #545960;
+                    line-height: 60px;
+                    margin-right: 5px;
+                }
+            }
+        }
+        .seasonConpanyMain{
+            // height: 50px;
+            background-color: #ededf5;
+            padding: 17px 20px;
+            width: calc(100% - 40px);
+            .mainSeach{
+                display: flex;
+                // justify-content: space-between;
+                .rankingList{
+                    width: 37%;
+                    height: 40px;
+                    background: #184FB4;
+                    border-radius: 5px;
+                    margin-bottom: 15px;
+                    margin-right: 10px;
+                    span{
+                        display: inline-block;
+                        width: 85%;
+                        font-family: MicrosoftYaHei;
+                        font-weight: 400;
+                        font-size: 16px;
+                        color: #fff;
+                        margin-right: 5px;
+                        position: relative;
+                        left: 20px;
+                        top: 10px;
+                    }
+                    img{
+                        width: 22px;
+                        height: 18px;
+                        position: relative;
+                        top: -10px;
+                        left: 90px;
+                    }
+                }
+                .sectionModel{
+                    width: 37%;
+                    height: 40px;
+                    background: #838DAB;
+                    border-radius: 5px;
+                    margin-bottom: 15px;
+                    margin-right: 15px;
+                    span{
+                        display: inline-block;
+                        width: 100%;
+                        line-height: 40px;
+                        text-align: center;
+                        color: #fff;
+                    }
+                }
+                .mainSeachImg{
+                    width: 17%;
+                    display: flex;
+                    justify-content: space-between;
+                    position: relative;
+                    top: 10px;
+                    img:nth-child(1){
+                        width: 25px;
+                        height: 15px;
+                        position: relative;
+                        top: 2px;
+                    }
+                    img:nth-child(2){
+                        width: 22px;
+                        height: 22px;
+                    }
+                }
+            }
+            .van-picker{
+                z-index: 222222
+            }
+            .mainModel{
+                background: #fff;
+                border-radius: 5px;
+                padding: 5px 0;
+                .el-table{
+                    .el-table__header-wrapper{
+                        .el-table__header{
+                            tr{
+                                .cell{
+                                    line-height: 18px !important;
+                                }
+                            }
+                        }
+                    }
+                    .el-table__body-wrapper{
+                        .el-table__body{
+                            tr{
+                                .cell{
+                                    img{
+                                        width: 20px;
+                                        height: 20px;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 40 - 4
src/mobeilComponent/yearConpanyPage.vue

@@ -46,7 +46,7 @@
                     v-if="showSelect"
                     />
                 <div class="mainModel">
-                    <div class="yearFromHeader">
+                    <!-- <div class="yearFromHeader">
                         <div class="headerNameTit">
                             <div class="headerNameTit_left">
                                 <span>排名</span>
@@ -68,7 +68,18 @@
                                 <span>{{item.score}}</span>
                             </div>
                         </div>
-                    </div>
+                    </div> -->
+                    <el-table :data="evaluationYearData" style="width: 100%">
+                        <el-table-column label="排名" align="center">
+                            <template #default="scope">
+                                <img :src="scope.row.img" alt="" v-if="scope.row.img">
+                                <span v-else>{{scope.row.rank}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="单位名称" prop="company" width="100" />
+                        <el-table-column label="得分" prop="grade" align="center"/>
+                        <el-table-column label="得分" prop="score" align="center"/>
+                    </el-table>
                 </div>
             </div>
         </div>
@@ -220,7 +231,8 @@ export default {
         background-color: #184FB4;
         color: #fff;
         position: fixed;
-        top: 0;
+        top: 0;        
+        z-index: 111111;
         .van-nav-bar__content{
             .van-nav-bar__left{
                 .van-nav-bar__text{
@@ -343,11 +355,12 @@ export default {
                 }
             }
             .van-picker{
-                z-index: 222;
+                z-index: 222222;
             }
             .mainModel{
                 background: #fff;
                 border-radius: 5px;
+                padding: 5px 0;
                 .yearFromHeader{
                     width: 100%;
                     border-bottom: 1px solid #E1E3EA;
@@ -415,6 +428,29 @@ export default {
                         }
                     }
                 }
+                .el-table{
+                    .el-table__header-wrapper{
+                        .el-table__header{
+                            tr{
+                                .cell{
+                                    line-height: 18px !important;
+                                }
+                            }
+                        }
+                    }
+                    .el-table__body-wrapper{
+                        .el-table__body{
+                            tr{
+                                .cell{
+                                    img{
+                                        width: 20px;
+                                        height: 20px;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
             }
         }
     }

+ 22 - 0
src/router/index.js

@@ -402,6 +402,28 @@ const routes = [
             import(
                 '../mobeilComponent/yearConpanyPage.vue'
             ),
+    },
+    {
+        path: '/quarterConpany',
+        name: 'quarterConpany',
+        meta: {
+            title: '季度单位评级详情',
+        },
+        component: () =>
+            import(
+                '../mobeilComponent/seasonConpanyPage.vue'
+            ),
+    },
+    {
+        path: '/report',
+        name: 'reportConpany',
+        meta: {
+            title: '单位考评报告',
+        },
+        component: () =>
+            import(
+                '../mobeilComponent/reportConpanyPage.vue'
+            ),
     }
 ]