瀏覽代碼

修改单位目标考核修订详情页面;任务中心月季年详情页面;增加移动端页面;

SunZehao 1 年之前
父節點
當前提交
8511d8e0ad

+ 739 - 0
src/components/assessment/evaluationAmendmentNewFrom.vue

@@ -0,0 +1,739 @@
+<template>
+    <div class="startFrom">
+        <el-dialog title="考评详情" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
+            <div class="startDetail">
+                <p class="starttitleSty">单据信息:</p>
+                <el-row class="danjuMsg">
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务编号:</span>
+                            <span>{{receiptMsg.code}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">创建日期:</span>
+                            <span>{{receiptMsg.createDate}}</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务简述:</span>
+                            <span>{{receiptMsg.des}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务类别:</span>
+                            <span>{{receiptMsg.type}}</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">流程状态:</span>
+                            <span>{{receiptMsg.stage}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">年度:</span>
+                            <span>{{receiptMsg.year}}</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">创建人:</span>
+                            <span>{{receiptMsg.createName}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">单据状态:</span>
+                            <span>{{receiptMsg.recStage}}</span>
+                        </div>
+                    </el-col>
+                </el-row>
+                <div class="monthQuarterYear">
+                    <el-tabs v-model="activeName" class="tableMain" @tab-click="handleClick">
+                        <el-tab-pane v-for="it in stageData" :key="it.id" :label="it.stageName" :name="it.stageCode">
+                            <div class="detailsHeader">
+                                <div class="headerLeft">
+                                    <el-tag v-for="tag in indicatorList" :key="tag.id" size="large" class="tagArr"
+                                        effect="dark" :type="tag.id === isClickTagId ? '': 'info'" @click="handleShowPage(tag)">
+                                        <span>{{ tag.indicator_name }}</span>
+                                    </el-tag>
+                                </div>
+                                <div class="headerRight">
+                                    <div class="tableBtn add" @click="addTableDetail"
+                                     v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
+                                        <img :src="addIcon" alt="">
+                                        <span>新增</span>
+                                    </div>
+                                    <div class="tableBtn save" @click="saveAddDetail"
+                                    v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
+                                        <img :src="saveIcon" alt="">
+                                        <span>保存</span>
+                                    </div>
+                                    <div class="tableBtn save" @click="saveDetail" v-else>
+                                        <img :src="saveIcon" alt="">
+                                        <span>保存</span>
+                                    </div>
+                                    <div class="tableBtn import" @click="handleImport">
+                                        <img :src="importIcon" alt="">
+                                        <span>导入</span>
+                                    </div>
+                                    <div class="tableBtn export" @click="handleExport">
+                                        <img :src="exportIcon" alt="">
+                                        <span>导出</span>
+                                    </div>
+                                </div>
+                            </div>
+                            <el-table :data="monthQuarterYearData" style="width: 100%" ref="monthQuarterYearTT" :border="true" >
+                                <el-table-column type="index" label="排名" align="center"></el-table-column>
+                                <el-table-column label="考评单位" prop="organizationShortName" width="300" />
+                                <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index" :label="it.name" align="center">
+                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key" align="center">
+                                        <template #default="scope">
+                                            <el-input v-model="scope.row[iv.code]" v-if="!scope.row['IS_LH_'+iv.code]"></el-input>
+                                            <el-input-number v-model="scope.row[iv.code]" v-else />
+                                        </template>
+                                    </el-table-column>
+                                </el-table-column>
+                            </el-table>
+                        </el-tab-pane>
+                    </el-tabs>
+                    <div class="tableSeach">
+                        <div class="seachType" v-for="item in titleMsgArr" :key="item.isName"
+                        :class="item.showClick? 'seachTypeCha':''" @click="changType(item)">
+                            <img :src="item.img" alt="" v-if="!item.showClick">
+                            <img :src="item.clickImg" alt="" v-else>
+                            <p :style="item.showClick? 'color: #3B7AD1' : ''">{{item.isName}}</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" @click="dialogVisible = false">取 消</el-button>
+                </span>
+            </template>
+        </el-dialog>
+        <import-dailog ref="importPage" @successImport="successImport"></import-dailog>
+    </div>
+</template>
+
+<script>
+import importDailog from '../importPage/importDailog.vue'
+import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,
+apiPostorganizationUpdateEvaluationInfo, apiPostorganizationUpdateAddEvaluationInfo} from '../../api/api'
+import * as XLSX from 'xlsx'
+import { saveAs } from 'file-saver'
+import  * as XLSXD from 'xlsx-js-style'
+
+import huoDef from '../../assets/benchmarkImg/huoDef.png'
+import shuiDef from '../../assets/benchmarkImg/shuiDef.png'
+import xinDef from '../../assets/benchmarkImg/xinDef.png'
+import meiDef from '../../assets/benchmarkImg/meiDef.png'
+import guoDef from '../../assets/benchmarkImg/guoDef.png'
+import zongDef from '../../assets/benchmarkImg/zongDef.png'
+
+import huoCha from '../../assets/benchmarkImg/huoCha.png'
+import shuiCha from '../../assets/benchmarkImg/shuiCha.png'
+import xinCha from '../../assets/benchmarkImg/xinCha.png'
+import meiCha from '../../assets/benchmarkImg/meiCha.png'
+import guoCha from '../../assets/benchmarkImg/guoCha.png'
+import zongCha from '../../assets/benchmarkImg/zongCha.png'
+
+import addIcon from '../../assets/btnIcon/add.png'
+import saveIcon from '../../assets/btnIcon/save.png'
+import exportIcon from '../../assets/btnIcon/export.png'
+import importIcon from '../../assets/btnIcon/import.png'
+
+export default {
+    components: {
+        importDailog
+    },
+    data() {
+        return {
+            dialogVisible: false,
+            activeName: '',
+            monthQuarterYearData: [],
+            monthQuarterYearHeader: [],
+            indicatorList: [],
+            isClickTagId: '',
+            receiptMsg: {
+                code: '',
+                des: '',
+                stage: '',
+                createName: '',
+                createDate: '',
+                type: '',
+                year: '',
+                recStage: ''
+            },
+            rowMsg: {},
+            moduleData: [],
+            stageData: [],
+            titleMsgArr: [],
+            binSectionStr: '',
+            addIcon: addIcon,
+            saveIcon: saveIcon,
+            exportIcon: exportIcon,
+            importIcon: importIcon,
+            addstageId: '',
+            userMes: {}
+        }
+    },
+    created() {
+    },
+    methods: {
+        init(row, type) {
+            this.dialogVisible = true
+            this.receiptMsg = {
+                code: row.organizationEvaluationCode,
+                des: row.des,
+                stage: row.stage,
+                createName: row.createName,
+                createDate: row.createTime,
+                type: row.checkCycle === 'YDKP'?'月度考评':row.checkCycle === 'JDKP'?'季度考评':'年度考评',
+                year: row.year,
+                recStage: '有效'
+            }
+            
+            this.userMes = JSON.parse(window.sessionStorage.getItem('user'))
+            this.getModelData(type)
+            this.rowMsg = row
+        },
+        // 获取业务属性
+        getModelData(type) {
+            let that = this
+            that.titleMsgArr = []
+            let params = {
+                type: type === '年度' ? '3' : '2'
+            }
+            apiGetbinsectionList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.moduleData = datas.data
+                    that.moduleData.forEach(item =>{
+                        let obj = {
+                            id: item.id,
+                            isName: item.sectionName === '新能源(光电)' ? '新能源光电' : item.sectionName === '新能源(风电)' ? '新能源风电' : item.sectionName,
+                            isNameEn: item.sectionCode,
+                            showClick: false
+                        }
+                        if (item.sectionName === '火电') {
+                            obj.isClass = 'huoDef'
+                            obj.img = huoDef
+                            obj.isClassC = 'huoCha'
+                            obj.clickImg = huoCha
+                        } else if (item.sectionName === '水电') {
+                            obj.isClass = 'shuiDef'
+                            obj.img = shuiDef
+                            obj.isClassC = 'shuiCha'
+                            obj.clickImg = shuiCha
+                        } else if (item.sectionName.indexOf('新能源') >-1) {
+                            obj.isClass = 'xinDef'
+                            obj.img = xinDef
+                            obj.isClassC = 'xinCha'
+                            obj.clickImg = xinCha
+                        } else if (item.sectionName === '煤电一体化') {
+                            obj.isClass = 'meiDef'
+                            obj.img = meiDef
+                            obj.isClassC = 'meiCha'
+                            obj.clickImg = meiCha
+                        } else if (item.sectionName === '国际业务') {
+                            obj.isClass = 'guoDef'
+                            obj.img = guoDef
+                            obj.isClassC = 'guoCha'
+                            obj.clickImg = guoCha
+                        } else if (item.sectionName === '综合支持') {
+                            obj.isClass = 'zongDef'
+                            obj.img = zongDef
+                            obj.isClassC = 'zongCha'
+                            obj.clickImg = zongCha
+                        } else {
+                            obj.isClass = 'guoDef'
+                            obj.img = guoDef
+                            obj.isClassC = 'guoCha'
+                            obj.clickImg = guoCha
+                        }
+                        that.titleMsgArr.push(obj)
+                    })
+                    that.titleMsgArr[0].showClick = true
+                    that.binSectionStr = that.titleMsgArr[0].id
+                    that.getStageData()
+                }
+            })
+        },
+        //根据业务属性获取业务阶段
+        getStageData() {
+            let that = this
+            apiGetbinstageList().then(datas =>{
+                if (datas && datas.data) {
+                    that.stageData = datas.data
+                    that.activeName = datas.data[0].stageCode
+                    that.getTableHeaderData(datas.data[0].id)
+                }
+            })
+        },
+        //获取指标数据
+        getTableHeaderData(id) {
+            let that = this
+            that.monthQuarterYearHeader = []
+            that.monthQuarterYearData = []
+            that.isClickTagId = ''
+            let params = {
+                organizationEvaluationId: that.rowMsg.id,
+                binSection: that.binSectionStr,
+                binStage: id
+            }
+            apiGetEvaluationIndicatorList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.indicatorList = datas.data
+                    if (datas.data.length>0) {
+                        that.isClickTagId = datas.data[0].id
+                        that.getTableData(that.isClickTagId)
+                    }
+                }
+            })
+        },
+        handleClick(val) {
+            let stageId = ''
+            this.stageData.forEach(it =>{
+                if (it.stageCode === val.props.name) {
+                    stageId = it.id
+                }
+            })
+            this.getTableHeaderData(stageId)
+        },
+        //获取表格数据
+        getTableData(id) {
+            let that = this
+            let params = {
+                organizationEvaluationId: that.rowMsg.id,
+                indicatorId: id
+            }
+            apiGetgetEvaluationInfoDataList(params).then(datas =>{
+                if (datas && datas.data) {
+                    if (datas.data.title) {
+                        let header = []
+                        for(let i in datas.data.title) {
+                            let obj = {
+                                name: i,
+                                children: datas.data.title[i]
+                            }
+                            header.push(obj)
+                        }
+                        that.monthQuarterYearHeader = header
+                    }
+                    that.monthQuarterYearData = datas.data.value
+                }
+            })
+        },
+        handleShowPage(tag) {
+            this.isClickTagId = tag.id
+            this.monthQuarterYearHeader = []
+            this.monthQuarterYearData = []
+            this.getTableData(tag.id)
+        },
+        changType(data) {
+            this.titleMsgArr.forEach(it =>{
+                it.showClick = false
+                if (it.isName === data.isName) {
+                    it.showClick = true
+                    this.binSectionStr = it.id
+                }
+            })
+            let stageId = ''
+            this.stageData.forEach(it =>{
+                if (it.stageCode === this.activeName) {
+                    stageId = it.id
+                }
+            })
+            this.getTableHeaderData(stageId)
+        },
+        addTableDetail() {
+            console.log('表头数据11====>>>>>>>', this.monthQuarterYearHeader)
+            if (this.monthQuarterYearHeader.length>0) {
+                let headerArr = []
+                this.monthQuarterYearHeader.forEach(item =>{
+                    headerArr = headerArr.concat(item.children)
+                })
+
+                console.log('表头数据22====>>>>>>>', headerArr)
+                this.addstageId = ''
+                this.stageData.forEach(it =>{
+                    if (it.stageCode === this.activeName) {
+                        this.addstageId = it.id
+                    }
+                })
+
+                let obj = {
+                    isAdd: true,
+                    
+                }
+                headerArr.forEach(it =>{
+                    obj[it.code] = ''
+                    obj['IS_LH_'+it.code] = it.flag
+                })
+                this.monthQuarterYearData.unshift(obj)
+            }
+            console.log('表格数据====>>>>>>>', this.monthQuarterYearData)
+        },
+        saveAddDetail() {
+            let that = this
+            let addParams = []
+            let saveParams = []
+            let addObj = {
+                organizationId: that.userMes.unitId,
+                // organizationId: "23079300",
+                organizationEvaluationId: that.rowMsg.id,
+                indicatorId: that.isClickTagId,
+                binSection: that.binSectionStr,
+                binStage: that.addstageId,
+                optionMap: {}
+            }
+            that.monthQuarterYearData.forEach(it =>{
+                if (it.isAdd) {
+                    addObj.optionMap = it
+                    addParams.push(addObj)
+                } else {
+                    saveParams.push(it)
+                }
+            })
+            apiPostorganizationUpdateAddEvaluationInfo(addParams).then(datas =>{
+                if (datas) {
+                    that.responseData(datas)
+                }
+            })
+            if (saveParams.length > 0) {
+                apiPostorganizationUpdateEvaluationInfo(saveParams).then(datas =>{
+                    if (datas) {
+                        that.responseData(datas)
+                    }
+                })
+            }
+        },
+        // 返回数据
+        responseData(datas) {
+            if (datas.message === '成功') {
+                this.$message({
+                    message: '考评详情信息保存成功',
+                    type: 'success'
+                });
+            } else {
+                this.$message({
+                    message: datas.message,
+                    type: 'error'
+                });
+            }
+            this.getTableData(this.isClickTagId)
+        },
+        saveDetail() {
+            let that = this
+            apiPostorganizationUpdateEvaluationInfo(that.monthQuarterYearData).then(datas =>{
+                if (datas) {
+                    if (datas.message === '成功') {
+                        that.$message({
+                            message: '考评详情信息保存成功',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message({
+                            message: datas.message,
+                            type: 'error'
+                        });
+                    }
+                    that.getTableData(that.isClickTagId)
+                }
+            })
+        },
+        handleImport() {
+            this.$refs.importPage.upload.title = "考评详情信息导入"
+            this.$refs.importPage.upload.open = true
+            this.$refs.importPage.upload.url = '/organization-evaluation-info/import-excel'
+        },
+        successImport(val) {
+            that.getTableData(that.isClickTagId)
+        },
+        handleExport() {
+            let indexvs = 0
+            this.stageData.forEach((it, index) =>{
+                if (it.stageCode === this.activeName) {
+                    indexvs = index
+                }
+            })
+            let $e = this.$refs.monthQuarterYearTT[indexvs].$el
+            try {
+                let $table = $e.querySelector('.el-table__fixed')
+                if(!$table) {
+                    $table = $e
+                }
+                const wb = XLSX.utils.table_to_book($table, {raw:true})
+
+                const wbout = XLSXD.write(wb, {bookType: 'xlsx', bookSST:true, type: 'array'})
+                saveAs(
+                    new Blob([wbout],{type: 'application/octet-stream'}),
+                    `考评详情数据导出.xlsx`,
+                )
+            } catch (e) {
+                if (typeof console !== 'undefined') console.error(e)
+            }
+        },
+    }
+}
+</script>
+
+<style lang="less">
+.startFrom{
+    .el-overlay{
+        .el-dialog{
+            // margin-top: 7vh;
+            .el-dialog__body{
+                padding: 0 20px !important;
+                .startDetail{
+                    .starttitleSty{
+                        font-size: 18px;
+                        font-family: Microsoft YaHei;
+                        font-weight: bold;
+                        color: #3B7AD1;
+                        // line-height: 12px;
+                        margin: 20px 0 20px 10px;
+                    }
+                    .danjuMsg{
+                        border: 1px solid #D6DBEA;
+                        padding: 10px 20px;
+                        border-radius: 10px;
+                        // margin-bottom: 20px;
+                        .danjuMsg_data{
+                            padding: 5px 0 10px 0;
+                            .data_tit{
+                                margin-right: 10px;
+                                font-weight: bold;
+                                font-size: 14px;
+                                font-family: Microsoft YaHei;
+                                color: #8991B0;
+                            }
+                            .data_tit_wd{
+                                display: inline-block;
+                                width: 90px;
+                            }
+                            .el-form-item--small{
+                                .el-input{
+                                    height: 25px;
+                                    width: 160px;
+                                }
+                                margin-bottom: 0;
+                                .el-input-number{
+                                    height: 25px;
+                                    .el-input-number__decrease, .el-input-number__increase{
+                                        right: -39px;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    .el-select, .el-input{
+                        width: 100%;
+                    }
+                    .monthQuarterYear{
+                        display: flex;
+                        width: 100%;
+                        margin-top: 20px;
+                        .tableMain{
+                            width: calc(100% - 100px);
+                            .el-tabs__header{
+                                .el-tabs__nav{
+                                    .el-tabs__item{
+                                        font-size: 18px;
+                                        font-family: Microsoft YaHei;
+                                        font-weight: bold;
+                                        margin: 0 10px;                                    
+                                        color: #8991B0;
+                                    }
+                                    .is-active{
+                                        font-size: 18px;
+                                        font-family: Microsoft YaHei;
+                                        font-weight: bold;
+                                        color: #3B7AD1;
+                                        margin: 0 10px;
+                                    }
+                                }
+                            }
+                            .detailsHeader{
+                                width: 100%;
+                                display: flex;
+                                justify-content: space-between;
+                                .headerLeft{
+                                    display: flex;
+                                    width: 80%;
+                                    .tagArr {
+                                        height: 33px;
+                                        margin-right: 10px;
+                                        cursor: pointer;
+                                        margin-bottom: 10px;
+                                    }
+
+                                    .el-tag--dark {
+                                        background-color: #184FB4;
+                                        border: 1px solid #184FB4;
+                                    }
+
+                                    .el-tag--info {
+                                        background-color: #E6EBF5;
+                                        border: 1px solid #E6EBF5;
+                                        color: #9DA5BE;
+
+                                        .el-tag__close {
+                                            color: #9DA5BE;
+                                        }
+                                    }
+                                }
+                                .headerRight{
+                                    display: flex;
+                                    justify-content: end;
+                                    width: 20%;
+                                    margin-bottom: 5px;
+                                    .tableBtn {
+                                        display: flex;
+                                        height: 20px;
+                                        margin: 0 10px;
+                                        img{
+                                            margin-right: 5px;
+                                            margin-top: 1px;
+                                        }
+                                        span{
+                                            font-size: 14px;
+                                            font-family: Microsoft YaHei;
+                                            font-weight: 400;
+                                        }
+                                    }
+                                    .add{
+                                        cursor: pointer;
+                                        span{
+                                            color: #3B7AD1;
+                                        }
+                                    }
+                                    .save{
+                                        cursor: pointer;
+                                        span{
+                                            color: #50C14E;
+                                        }
+                                    }
+                                    .import{
+                                        cursor: pointer;
+                                        span{
+                                            color: #ce1e78;
+                                        }
+                                    }
+                                    .export{
+                                        cursor: pointer;
+                                        span{
+                                            color: #2baa8a;
+                                        }
+                                    }
+                                }
+                            }
+                            .el-table {
+                                .el-table__header-wrapper{
+                                    .el-table__header{
+                                        .el-table__cell {
+                                            border-bottom: none !important;
+                                        }
+                                        thead{
+                                            tr{
+                                                th{
+                                                    .cell{
+                                                        line-height: 16px;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                                .el-table__body-wrapper {
+                                    height: 47vh !important;
+                                    .el-scrollbar{
+                                        .is-horizontal{
+                                            .el-scrollbar__thumb{
+                                                width: 100% !important;
+                                            }
+                                        }
+                                        .el-table__body{
+                                            tr{
+                                                td{
+                                                    padding: 0;
+                                                    .cell{
+                                                        background: #F6F7FA;
+                                                        line-height: 47px;
+                                                        height: 47px;
+                                                    }
+                                                }
+                                                td:hover {
+                                                    line-height: 45px;
+                                                    height: 45px;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                                .el-table--border .el-table__cell{
+                                    border: none;
+                                }
+                                .el-table thead.is-group th.el-table__cell{
+                                    background: transparent;
+                                }
+                
+                                .tooltipCC {
+                                    width: 180px;
+                                    display: inline-block;
+                                    overflow: hidden;
+                                    text-overflow: ellipsis;
+                                    white-space: nowrap;
+                                }
+                            }
+                            .el-pagination {
+                                margin-top: 20px;
+                                text-align: end;
+                                position: relative;
+                            }
+                        }
+                        .tableSeach{
+                            width: 88px;
+                            height: 63vh;
+                            margin-left: 10px;
+                            margin-top: 37px;
+                            border: 1px solid #D6DBEA;
+                            padding: 5px 0;
+                            border-radius: 5px;
+                            overflow-y: auto;
+                            .seachType{
+                                width: 78px;
+                                height: 78px;
+                                cursor: pointer;
+                                border-left: 3px solid transparent;
+                                img{
+                                    margin-top: 17px;
+                                    margin-left: 27px;
+                                }
+                                p{
+                                    text-align: center;
+                                    font-size: 14px;
+                                }
+                            }
+                            .seachTypeCha{
+                                background: #E6EBF5;
+                                cursor: pointer;
+                                border-left: 3px solid #3B7AD1;
+                            }
+                        }
+                    }
+                }
+            }
+            .el-dialog__footer{
+                .dialog-footer{
+                    display: flex;
+                    justify-content: center;
+                    .el-button{
+                        width: 180px !important;
+                        height: 40px !important;
+                    }
+                }
+            }
+        }
+    }
+    
+}
+</style>

File diff suppressed because it is too large
+ 1050 - 0
src/components/gatewaynMobeil.vue


+ 813 - 0
src/components/taskCenter/taskCenterEvlNewFrom.vue

@@ -0,0 +1,813 @@
+<template>
+    <div class="startFrom">
+        <el-dialog title="考评详情" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
+            <div class="startDetail">
+                <p class="starttitleSty">单据信息:</p>
+                <el-row class="danjuMsg">
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务编号:</span>
+                            <span>{{receiptMsg.code}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">创建日期:</span>
+                            <span>{{receiptMsg.createDate}}</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务简述:</span>
+                            <span>{{receiptMsg.des}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务类别:</span>
+                            <span>{{receiptMsg.type}}</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">流程状态:</span>
+                            <span>{{receiptMsg.stage}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">年度:</span>
+                            <span>{{receiptMsg.year}}</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">创建人:</span>
+                            <span>{{receiptMsg.createName}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">单据状态:</span>
+                            <span>{{receiptMsg.recStage}}</span>
+                        </div>
+                    </el-col>
+                </el-row>
+                <div class="monthQuarterYear">
+                    <el-tabs v-model="activeName" class="tableMain" @tab-click="handleClick">
+                        <el-tab-pane v-for="it in stageData" :key="it.id" :label="it.stageName" :name="it.stageCode">
+                            <div class="detailsHeader">
+                                <div class="headerLeft">
+                                    <el-tag v-for="tag in indicatorList" :key="tag.id" size="large" class="tagArr"
+                                        effect="dark" :type="tag.id === isClickTagId ? '': 'info'" @click="handleShowPage(tag)">
+                                        <span>{{ tag.indicator_name }}</span>
+                                    </el-tag>
+                                </div>
+                                <div class="headerRight">
+                                    <div class="tableBtn add" @click="addTableDetail"
+                                     v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
+                                        <img :src="addIcon" alt="">
+                                        <span>新增</span>
+                                    </div>
+                                    <div class="tableBtn save" @click="saveAddDetail"
+                                    v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
+                                        <img :src="saveIcon" alt="">
+                                        <span>保存</span>
+                                    </div>
+                                    <div class="tableBtn save" @click="saveDetail" v-else>
+                                        <img :src="saveIcon" alt="">
+                                        <span>保存</span>
+                                    </div>
+                                    <div class="tableBtn import" @click="handleImport">
+                                        <img :src="importIcon" alt="">
+                                        <span>导入</span>
+                                    </div>
+                                    <div class="tableBtn export" @click="handleExport">
+                                        <img :src="exportIcon" alt="">
+                                        <span>导出</span>
+                                    </div>
+                                </div>
+                            </div>
+                            <el-table :data="monthQuarterYearData" style="width: 100%" ref="monthQuarterYearTT" :border="true" >
+                                <el-table-column type="index" label="排名" align="center"></el-table-column>
+                                <el-table-column label="考评单位" prop="organizationShortName" width="300" />
+                                <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index" :label="it.name" align="center">
+                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key" align="center">
+                                        <template #default="scope">
+                                            <el-input v-model="scope.row[iv.code]" v-if="!scope.row['IS_LH_'+iv.code]"></el-input>
+                                            <el-input-number v-model="scope.row[iv.code]" v-else />
+                                        </template>
+                                    </el-table-column>
+                                </el-table-column>
+                            </el-table>
+                        </el-tab-pane>
+                    </el-tabs>
+                    <div class="tableSeach">
+                        <div class="seachType" v-for="item in titleMsgArr" :key="item.isName"
+                        :class="item.showClick? 'seachTypeCha':''" @click="changType(item)">
+                            <img :src="item.img" alt="" v-if="!item.showClick">
+                            <img :src="item.clickImg" alt="" v-else>
+                            <p :style="item.showClick? 'color: #3B7AD1' : ''">{{item.isName}}</p>
+                        </div>
+                    </div>
+                </div>
+                <div>
+                    <p class="starttitleSty">审批意见:</p>
+                    <el-input v-model="descMsg" :rows="3" type="textarea" placeholder="请输入审批意见"></el-input>
+                </div>
+            </div>
+            <!-- <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" @click="dialogVisible = false">取 消</el-button>
+                </span>
+            </template> -->
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" @click="examineAndApprove('agree')">同 意</el-button>
+                    <el-button @click="examineAndApprove('reject')">拒 绝</el-button>
+                </span>
+            </template>
+        </el-dialog>
+        <import-dailog ref="importPage" @successImport="successImport"></import-dailog>
+    </div>
+</template>
+
+<script>
+import importDailog from '../importPage/importDailog.vue'
+import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,
+apiPostorganizationUpdateEvaluationInfo, apiPostorganizationUpdateAddEvaluationInfo} from '../../api/api'
+import * as XLSX from 'xlsx'
+import { saveAs } from 'file-saver'
+import  * as XLSXD from 'xlsx-js-style'
+
+import huoDef from '../../assets/benchmarkImg/huoDef.png'
+import shuiDef from '../../assets/benchmarkImg/shuiDef.png'
+import xinDef from '../../assets/benchmarkImg/xinDef.png'
+import meiDef from '../../assets/benchmarkImg/meiDef.png'
+import guoDef from '../../assets/benchmarkImg/guoDef.png'
+import zongDef from '../../assets/benchmarkImg/zongDef.png'
+
+import huoCha from '../../assets/benchmarkImg/huoCha.png'
+import shuiCha from '../../assets/benchmarkImg/shuiCha.png'
+import xinCha from '../../assets/benchmarkImg/xinCha.png'
+import meiCha from '../../assets/benchmarkImg/meiCha.png'
+import guoCha from '../../assets/benchmarkImg/guoCha.png'
+import zongCha from '../../assets/benchmarkImg/zongCha.png'
+
+import addIcon from '../../assets/btnIcon/add.png'
+import saveIcon from '../../assets/btnIcon/save.png'
+import exportIcon from '../../assets/btnIcon/export.png'
+import importIcon from '../../assets/btnIcon/import.png'
+
+export default {
+    components: {
+        importDailog
+    },
+    data() {
+        return {
+            dialogVisible: false,
+            activeName: '',
+            monthQuarterYearData: [],
+            monthQuarterYearHeader: [],
+            indicatorList: [],
+            isClickTagId: '',
+            receiptMsg: {
+                code: '',
+                des: '',
+                stage: '',
+                createName: '',
+                createDate: '',
+                type: '',
+                year: '',
+                recStage: ''
+            },
+            rowMsg: {},
+            moduleData: [],
+            stageData: [],
+            titleMsgArr: [],
+            binSectionStr: '',
+            addIcon: addIcon,
+            saveIcon: saveIcon,
+            exportIcon: exportIcon,
+            importIcon: importIcon,
+            addstageId: '',
+            userMes: {},
+            instanceChild: {}
+        }
+    },
+    created() {
+    },
+    methods: {
+        init(row, type) {
+            this.dialogVisible = true
+            this.receiptMsg = {
+                code: row.organizationEvaluationCode,
+                des: row.des,
+                stage: row.stage,
+                createName: row.createName,
+                createDate: row.createTime,
+                type: row.checkCycle === 'YDKP'?'月度考评':row.checkCycle === 'JDKP'?'季度考评':'年度考评',
+                year: row.year,
+                recStage: '有效'
+            }
+            
+            this.userMes = JSON.parse(window.sessionStorage.getItem('user'))
+            this.getModelData(type)
+            this.rowMsg = row
+        },
+        // 获取业务属性
+        getModelData(type) {
+            let that = this
+            that.titleMsgArr = []
+            let params = {
+                type: type === '年度' ? '3' : '2'
+            }
+            apiGetbinsectionList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.moduleData = datas.data
+                    that.moduleData.forEach(item =>{
+                        let obj = {
+                            id: item.id,
+                            isName: item.sectionName === '新能源(光电)' ? '新能源光电' : item.sectionName === '新能源(风电)' ? '新能源风电' : item.sectionName,
+                            isNameEn: item.sectionCode,
+                            showClick: false
+                        }
+                        if (item.sectionName === '火电') {
+                            obj.isClass = 'huoDef'
+                            obj.img = huoDef
+                            obj.isClassC = 'huoCha'
+                            obj.clickImg = huoCha
+                        } else if (item.sectionName === '水电') {
+                            obj.isClass = 'shuiDef'
+                            obj.img = shuiDef
+                            obj.isClassC = 'shuiCha'
+                            obj.clickImg = shuiCha
+                        } else if (item.sectionName.indexOf('新能源') >-1) {
+                            obj.isClass = 'xinDef'
+                            obj.img = xinDef
+                            obj.isClassC = 'xinCha'
+                            obj.clickImg = xinCha
+                        } else if (item.sectionName === '煤电一体化') {
+                            obj.isClass = 'meiDef'
+                            obj.img = meiDef
+                            obj.isClassC = 'meiCha'
+                            obj.clickImg = meiCha
+                        } else if (item.sectionName === '国际业务') {
+                            obj.isClass = 'guoDef'
+                            obj.img = guoDef
+                            obj.isClassC = 'guoCha'
+                            obj.clickImg = guoCha
+                        } else if (item.sectionName === '综合支持') {
+                            obj.isClass = 'zongDef'
+                            obj.img = zongDef
+                            obj.isClassC = 'zongCha'
+                            obj.clickImg = zongCha
+                        } else {
+                            obj.isClass = 'guoDef'
+                            obj.img = guoDef
+                            obj.isClassC = 'guoCha'
+                            obj.clickImg = guoCha
+                        }
+                        that.titleMsgArr.push(obj)
+                    })
+                    that.titleMsgArr[0].showClick = true
+                    that.binSectionStr = that.titleMsgArr[0].id
+                    that.getStageData()
+                }
+            })
+        },
+        //根据业务属性获取业务阶段
+        getStageData() {
+            let that = this
+            apiGetbinstageList().then(datas =>{
+                if (datas && datas.data) {
+                    that.stageData = datas.data
+                    that.activeName = datas.data[0].stageCode
+                    that.getTableHeaderData(datas.data[0].id)
+                }
+            })
+        },
+        //获取指标数据
+        getTableHeaderData(id) {
+            let that = this
+            that.monthQuarterYearHeader = []
+            that.monthQuarterYearData = []
+            that.isClickTagId = ''
+            let params = {
+                organizationEvaluationId: that.rowMsg.id,
+                binSection: that.binSectionStr,
+                binStage: id
+            }
+            apiGetEvaluationIndicatorList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.indicatorList = datas.data
+                    if (datas.data.length>0) {
+                        that.isClickTagId = datas.data[0].id
+                        that.getTableData(that.isClickTagId)
+                    }
+                }
+            })
+        },
+        // 根据流程ID获取业务ID
+        // getTaskId(row) {
+        //     let that = this
+        //     let params = {
+        //         id: row.instId,
+        //         iamCode: window.localStorage.getItem('code')
+        //     }
+        //     apiPostgetInstanceAndChildren(params).then(datas =>{
+        //         if (datas && datas.data) {
+        //             that.instanceChild = datas.data.data.bpmInstance
+        //             let keyId = datas.data.data.bpmInstance.bizKey  
+        //             that.tastbizKey = datas.data.data.bpmInstance.bizKey
+        //             that.taskDefKey = datas.data.data.bpmInstance.defKey
+        //             that.getevalStartDetails(keyId, that.instanceChild.defKey)
+        //             that.getOrgRule(keyId, that.instanceChild.defKey)
+        //         }
+        //     })
+        // },
+        handleClick(val) {
+            let stageId = ''
+            this.stageData.forEach(it =>{
+                if (it.stageCode === val.props.name) {
+                    stageId = it.id
+                }
+            })
+            this.getTableHeaderData(stageId)
+        },
+        //获取表格数据
+        getTableData(id) {
+            let that = this
+            let params = {
+                organizationEvaluationId: that.rowMsg.id,
+                indicatorId: id
+            }
+            apiGetgetEvaluationInfoDataList(params).then(datas =>{
+                if (datas && datas.data) {
+                    if (datas.data.title) {
+                        let header = []
+                        for(let i in datas.data.title) {
+                            let obj = {
+                                name: i,
+                                children: datas.data.title[i]
+                            }
+                            header.push(obj)
+                        }
+                        that.monthQuarterYearHeader = header
+                    }
+                    that.monthQuarterYearData = datas.data.value
+                }
+            })
+        },
+        handleShowPage(tag) {
+            this.isClickTagId = tag.id
+            this.monthQuarterYearHeader = []
+            this.monthQuarterYearData = []
+            this.getTableData(tag.id)
+        },
+        changType(data) {
+            this.titleMsgArr.forEach(it =>{
+                it.showClick = false
+                if (it.isName === data.isName) {
+                    it.showClick = true
+                    this.binSectionStr = it.id
+                }
+            })
+            let stageId = ''
+            this.stageData.forEach(it =>{
+                if (it.stageCode === this.activeName) {
+                    stageId = it.id
+                }
+            })
+            this.getTableHeaderData(stageId)
+        },
+        addTableDetail() {
+            console.log('表头数据11====>>>>>>>', this.monthQuarterYearHeader)
+            if (this.monthQuarterYearHeader.length>0) {
+                let headerArr = []
+                this.monthQuarterYearHeader.forEach(item =>{
+                    headerArr = headerArr.concat(item.children)
+                })
+
+                console.log('表头数据22====>>>>>>>', headerArr)
+                this.addstageId = ''
+                this.stageData.forEach(it =>{
+                    if (it.stageCode === this.activeName) {
+                        this.addstageId = it.id
+                    }
+                })
+
+                let obj = {
+                    isAdd: true,
+                    
+                }
+                headerArr.forEach(it =>{
+                    obj[it.code] = ''
+                    obj['IS_LH_'+it.code] = it.flag
+                })
+                this.monthQuarterYearData.unshift(obj)
+            }
+            console.log('表格数据====>>>>>>>', this.monthQuarterYearData)
+        },
+        saveAddDetail() {
+            let that = this
+            let addParams = []
+            let saveParams = []
+            let addObj = {
+                organizationId: that.userMes.unitId,
+                // organizationId: "23079300",
+                organizationEvaluationId: that.rowMsg.id,
+                indicatorId: that.isClickTagId,
+                binSection: that.binSectionStr,
+                binStage: that.addstageId,
+                optionMap: {}
+            }
+            that.monthQuarterYearData.forEach(it =>{
+                if (it.isAdd) {
+                    addObj.optionMap = it
+                    addParams.push(addObj)
+                } else {
+                    saveParams.push(it)
+                }
+            })
+            apiPostorganizationUpdateAddEvaluationInfo(addParams).then(datas =>{
+                if (datas) {
+                    that.responseData(datas)
+                }
+            })
+            if (saveParams.length > 0) {
+                apiPostorganizationUpdateEvaluationInfo(saveParams).then(datas =>{
+                    if (datas) {
+                        that.responseData(datas)
+                    }
+                })
+            }
+        },
+        // 返回数据
+        responseData(datas) {
+            if (datas.message === '成功') {
+                this.$message({
+                    message: '考评详情信息保存成功',
+                    type: 'success'
+                });
+            } else {
+                this.$message({
+                    message: datas.message,
+                    type: 'error'
+                });
+            }
+            this.getTableData(this.isClickTagId)
+        },
+        saveDetail() {
+            let that = this
+            apiPostorganizationUpdateEvaluationInfo(that.monthQuarterYearData).then(datas =>{
+                if (datas) {
+                    if (datas.message === '成功') {
+                        that.$message({
+                            message: '考评详情信息保存成功',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message({
+                            message: datas.message,
+                            type: 'error'
+                        });
+                    }
+                    that.getTableData(that.isClickTagId)
+                }
+            })
+        },
+        handleImport() {
+            this.$refs.importPage.upload.title = "考评详情信息导入"
+            this.$refs.importPage.upload.open = true
+            this.$refs.importPage.upload.url = '/organization-evaluation-info/import-excel'
+        },
+        successImport(val) {
+            that.getTableData(that.isClickTagId)
+        },
+        handleExport() {
+            let indexvs = 0
+            this.stageData.forEach((it, index) =>{
+                if (it.stageCode === this.activeName) {
+                    indexvs = index
+                }
+            })
+            let $e = this.$refs.monthQuarterYearTT[indexvs].$el
+            try {
+                let $table = $e.querySelector('.el-table__fixed')
+                if(!$table) {
+                    $table = $e
+                }
+                const wb = XLSX.utils.table_to_book($table, {raw:true})
+
+                const wbout = XLSXD.write(wb, {bookType: 'xlsx', bookSST:true, type: 'array'})
+                saveAs(
+                    new Blob([wbout],{type: 'application/octet-stream'}),
+                    `考评详情数据导出.xlsx`,
+                )
+            } catch (e) {
+                if (typeof console !== 'undefined') console.error(e)
+            }
+        },
+        examineAndApprove(type) {
+            let that = this
+            let actionCS = ''
+            if (type === 'agree') {
+                if (that.rowMsg.taskType === 'SIGN') {
+                    actionCS = 'signAgree'
+                } else if (that.rowMsg.taskType === 'NORMAL') {
+                    actionCS = 'agree'
+                }
+            } else {
+                if (that.rowMsg.taskType === 'SIGN') {
+                    actionCS = 'signReject'
+                } else if (that.rowMsg.taskType === 'NORMAL') {
+                    actionCS = 'reject'
+                }
+            }
+            let params = {
+                taskId: that.rowMsg.id, //任务ID
+                nodeId: that.rowMsg.nodeId, //节点ID
+                action: actionCS, //固定值
+                instanceId: that.rowMsg.instId, //流程实例ID
+                opinion: that.descMsg, //审批意见
+                iamCode: window.localStorage.getItem('code'), //认证后code值
+                taskName: that.rowMsg.name,
+                defKey: that.instanceChild.defKey,
+                bizKey: that.instanceChild.bizKey
+            }
+            apiPostIsdoAction(params).then(datas =>{
+                if (datas && datas.data) {
+                    if (datas.data.isOk) {
+                        that.$message({
+                            message: datas.data.data,
+                            type: 'success'
+                        })
+                        that.dialogVisible = false
+                        that.$emit('approveMsg', datas.data.isOk)
+                    } else {
+                        that.$message({
+                            message: datas.data.msg,
+                            type: 'error'
+                        })
+                    }
+                }
+            })
+        },
+    }
+}
+</script>
+
+<style lang="less">
+.startFrom{
+    .el-overlay{
+        .el-dialog{
+            // margin-top: 7vh;
+            .el-dialog__body{
+                padding: 0 20px !important;
+                .startDetail{
+                    .starttitleSty{
+                        font-size: 18px;
+                        font-family: Microsoft YaHei;
+                        font-weight: bold;
+                        color: #3B7AD1;
+                        // line-height: 12px;
+                        margin: 20px 0 20px 10px;
+                    }
+                    .danjuMsg{
+                        border: 1px solid #D6DBEA;
+                        padding: 10px 20px;
+                        border-radius: 10px;
+                        // margin-bottom: 20px;
+                        .danjuMsg_data{
+                            padding: 5px 0 10px 0;
+                            .data_tit{
+                                margin-right: 10px;
+                                font-weight: bold;
+                                font-size: 14px;
+                                font-family: Microsoft YaHei;
+                                color: #8991B0;
+                            }
+                            .data_tit_wd{
+                                display: inline-block;
+                                width: 90px;
+                            }
+                            .el-form-item--small{
+                                .el-input{
+                                    height: 25px;
+                                    width: 160px;
+                                }
+                                margin-bottom: 0;
+                                .el-input-number{
+                                    height: 25px;
+                                    .el-input-number__decrease, .el-input-number__increase{
+                                        right: -39px;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    .el-select, .el-input{
+                        width: 100%;
+                    }
+                    .monthQuarterYear{
+                        display: flex;
+                        width: 100%;
+                        margin-top: 20px;
+                        .tableMain{
+                            width: calc(100% - 100px);
+                            .el-tabs__header{
+                                .el-tabs__nav{
+                                    .el-tabs__item{
+                                        font-size: 18px;
+                                        font-family: Microsoft YaHei;
+                                        font-weight: bold;
+                                        margin: 0 10px;                                    
+                                        color: #8991B0;
+                                    }
+                                    .is-active{
+                                        font-size: 18px;
+                                        font-family: Microsoft YaHei;
+                                        font-weight: bold;
+                                        color: #3B7AD1;
+                                        margin: 0 10px;
+                                    }
+                                }
+                            }
+                            .detailsHeader{
+                                width: 100%;
+                                display: flex;
+                                justify-content: space-between;
+                                .headerLeft{
+                                    display: flex;
+                                    width: 80%;
+                                    .tagArr {
+                                        height: 33px;
+                                        margin-right: 10px;
+                                        cursor: pointer;
+                                        margin-bottom: 10px;
+                                    }
+
+                                    .el-tag--dark {
+                                        background-color: #184FB4;
+                                        border: 1px solid #184FB4;
+                                    }
+
+                                    .el-tag--info {
+                                        background-color: #E6EBF5;
+                                        border: 1px solid #E6EBF5;
+                                        color: #9DA5BE;
+
+                                        .el-tag__close {
+                                            color: #9DA5BE;
+                                        }
+                                    }
+                                }
+                                .headerRight{
+                                    display: flex;
+                                    justify-content: end;
+                                    width: 20%;
+                                    margin-bottom: 5px;
+                                    .tableBtn {
+                                        display: flex;
+                                        height: 20px;
+                                        margin: 0 10px;
+                                        img{
+                                            margin-right: 5px;
+                                            margin-top: 1px;
+                                        }
+                                        span{
+                                            font-size: 14px;
+                                            font-family: Microsoft YaHei;
+                                            font-weight: 400;
+                                        }
+                                    }
+                                    .add{
+                                        cursor: pointer;
+                                        span{
+                                            color: #3B7AD1;
+                                        }
+                                    }
+                                    .save{
+                                        cursor: pointer;
+                                        span{
+                                            color: #50C14E;
+                                        }
+                                    }
+                                    .import{
+                                        cursor: pointer;
+                                        span{
+                                            color: #ce1e78;
+                                        }
+                                    }
+                                    .export{
+                                        cursor: pointer;
+                                        span{
+                                            color: #2baa8a;
+                                        }
+                                    }
+                                }
+                            }
+                            .el-table {
+                                .el-table__header-wrapper{
+                                    .el-table__header{
+                                        .el-table__cell {
+                                            border-bottom: none !important;
+                                        }
+                                        thead{
+                                            tr{
+                                                th{
+                                                    .cell{
+                                                        line-height: 16px;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                                .el-table__body-wrapper {
+                                    height: 35vh !important;
+                                    .el-scrollbar{
+                                        .is-horizontal{
+                                            .el-scrollbar__thumb{
+                                                width: 100% !important;
+                                            }
+                                        }
+                                        .el-table__body{
+                                            tr{
+                                                td{
+                                                    padding: 0;
+                                                    .cell{
+                                                        background: #F6F7FA;
+                                                        line-height: 47px;
+                                                        height: 47px;
+                                                    }
+                                                }
+                                                td:hover {
+                                                    line-height: 45px;
+                                                    height: 45px;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                                .el-table--border .el-table__cell{
+                                    border: none;
+                                }
+                                .el-table thead.is-group th.el-table__cell{
+                                    background: transparent;
+                                }
+                
+                                .tooltipCC {
+                                    width: 180px;
+                                    display: inline-block;
+                                    overflow: hidden;
+                                    text-overflow: ellipsis;
+                                    white-space: nowrap;
+                                }
+                            }
+                            .el-pagination {
+                                margin-top: 20px;
+                                text-align: end;
+                                position: relative;
+                            }
+                        }
+                        .tableSeach{
+                            width: 88px;
+                            height: 50vh;
+                            margin-left: 10px;
+                            margin-top: 37px;
+                            border: 1px solid #D6DBEA;
+                            padding: 5px 0;
+                            border-radius: 5px;
+                            overflow-y: auto;
+                            .seachType{
+                                width: 78px;
+                                height: 78px;
+                                cursor: pointer;
+                                border-left: 3px solid transparent;
+                                img{
+                                    margin-top: 17px;
+                                    margin-left: 27px;
+                                }
+                                p{
+                                    text-align: center;
+                                    font-size: 14px;
+                                }
+                            }
+                            .seachTypeCha{
+                                background: #E6EBF5;
+                                cursor: pointer;
+                                border-left: 3px solid #3B7AD1;
+                            }
+                        }
+                    }
+                }
+            }
+            .el-dialog__footer{
+                .dialog-footer{
+                    display: flex;
+                    justify-content: center;
+                    .el-button{
+                        width: 180px !important;
+                        height: 40px !important;
+                    }
+                }
+            }
+        }
+    }
+    
+}
+</style>

+ 91 - 0
src/mobeilComponent/homeMobeilPage.vue

@@ -0,0 +1,91 @@
+<template>
+    <div class="homeMobeilPage">
+        <van-nav-bar title="首页" />
+        <div class="mobeilVant">
+            <div class="mobeilTop">
+                <div class="topLeft">
+                    <van-icon name="star" size="20" />
+                    <span>全业务域考评系统</span>
+                </div>
+                <div class="topRight">
+                    <span>系统导航</span>
+                    <van-icon name="wap-nav"  size="23" />
+                </div>
+            </div>
+            <div class="mobeilMain">
+
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            forecastDatas: [],
+            expendData: ['0'],
+            openeds: [],
+            routeTags: [],
+            userName: ''
+        }
+    },
+    created() {
+    },
+    methods: {
+    }
+}
+</script>
+
+<style lang="less">
+.homeMobeilPage {
+    background-color: #184FB4;
+    .van-nav-bar{
+        width: 100%;
+        background-color: #184FB4;
+        color: #fff;
+    }
+    .mobeilVant{
+        height: 100%;
+        border-radius: 10px 10px 0 0;
+        background-color: #fff;
+        .mobeilTop{
+            height: 60px;
+            display: flex;
+            justify-content: space-around;
+            .topLeft{
+                display: flex;
+                .van-icon{
+                    line-height: 60px;
+                }
+                span{
+                    font-family: Microsoft YaHei;
+                    font-weight: 600;
+                    font-size: 16px;
+                    color: #333333;
+                    line-height: 60px;
+                }
+            }
+            .topRight{
+                display: flex;
+                .van-icon{
+                    line-height: 60px;
+                    color: #d9d9d9;
+                }
+                span{
+                    font-family: Microsoft YaHei;
+                    font-weight: 400;
+                    font-size: 14px;
+                    color: #d9d9d9;
+                    line-height: 60px;
+                    margin-right: 5px;
+                }
+            }
+        }
+        .mobeilMain{
+            height: 50px;
+            background-color: #ededf5;
+        }
+    }
+}
+</style>