Browse Source

绩效结果考核申报页面新增统计汇总功能,并且服务联调;绩效结果考核申报详情页面头部增加申报月份(包含任务中心页面),内容增加批量删除功能;部门考评配置功能问题修改;

SunZehao 1 year ago
parent
commit
2252591f52

+ 8 - 0
src/api/api.js

@@ -527,6 +527,14 @@ export function apiGetevaluationdeptadDelete(params) {
     })
 }
 
+//--------绩效结果考核申报统计汇总表
+export function apiGetstatisticalSummaryList(params) {
+    return httpRequest({
+        url: `evaluation-dept-ad/statisticalSummary/${params.year}/${params.month}`,
+        method: 'get'
+    })
+}
+
 
 
 //----单位/部门考评配置所有数据

+ 50 - 9
src/components/assessment/assessmentApplicationFrom.vue

@@ -31,7 +31,7 @@
                         </div>
                         <div class="danjuMsg_data">
                             <span class="data_tit">申报年度:</span>
-                            <span>{{receiptMsg.year}}</span>
+                            <span>{{receiptMsg.year}}</span>
                         </div>
                     </el-col>
                     <el-col :span="6">
@@ -40,11 +40,17 @@
                             <span>{{receiptMsg.createDate}}</span>
                         </div>
                         <div class="danjuMsg_data">
+                            <span class="data_tit">申报月份:</span>
+                            <span>{{receiptMsg.month}}月</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
                             <span class="data_tit">申报级别:</span>
                             <span>{{receiptMsg.declarationLevel}}级</span>
                         </div>
                     </el-col>
-                    <el-col :span="24">
+                    <el-col :span="18">
                         <div class="danjuMsg_data">
                             <span class="data_tit">申报理由:</span>
                             <span>{{receiptMsg.des}}</span>
@@ -61,6 +67,11 @@
                             <img :src="saveIcon" alt="">
                             <span>保存</span>
                         </div>
+                        <div class="tableBtn delete" @click="handleDelete">
+                            <img :src="deleteIcon" alt="">
+                            <span>删除</span>
+                        </div>
+                        
                         <div class="tableBtn import" @click="handleImport">
                             <img :src="importIcon" alt="">
                             <span>导入</span>
@@ -71,10 +82,11 @@
                         </div>
                     </div>
                 </div>
-                <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+                <el-tabs v-model="activeName" class="demo-tabs">
                     <el-tab-pane label="考评指标项内容" name="first">
                         <el-table :data="quantifiedList.slice((pageLeft.currentPage-1)*pageLeft.pagesize, pageLeft.currentPage*pageLeft.pagesize)"
-                         style="width: 100%">
+                         style="width: 100%" @select="rowClick" @select-all="rowClick">
+                            <el-table-column type="selection" label="操作" align="center"></el-table-column>
                             <el-table-column label="序号" type="index" width="80" />
                             <el-table-column label="人员编号">
                                 <template #default="scope">
@@ -89,6 +101,8 @@
                                         :key="item.id"
                                         :label="item.name"
                                         :value="item.id">
+                                        <!-- <span style="float: left;display:inline-block;width:100px">{{ item.name }}</span>
+                                        <span style="float: right;color: #909399;font-size: 13px;" >{{ item.no }}</span> -->
                                         </el-option>
                                     </el-select>
                                 </template>
@@ -160,6 +174,7 @@ export default {
                 createDate: '',
                 type: '',
                 year: '',
+                month: '',
                 recStage: ''
             },
             addIcon: addIcon,
@@ -206,6 +221,7 @@ export default {
                     deptName: row.deptName,
                     createDate: row.createTime,
                     year: row.annual,
+                    month: row.declarationMonth,
                     declarationLevel: row.declarationLevel
                 }
             })
@@ -215,7 +231,7 @@ export default {
             let that = this
             let params = {
                 current: 1,
-                size: 500,
+                size: 2000,
                 // orgId: val
             }
             apiGetuserPageList(params).then(datas =>{
@@ -224,8 +240,32 @@ export default {
                 }
             })
         },
-        handleClick() {
-            this.changeDateSelect = []
+        rowClick(selection, row) {
+            this.changeDateSelect = selection
+        },
+        //删除指标数据
+        handleDelete() {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                let paramsArr = []
+                that.changeDateSelect.forEach(it =>{
+                    paramsArr.push(it.id)
+                })
+                apiGetevaluationdeptadDelete(paramsArr.join(',')).then(datas =>{
+                    if (datas) {
+                        that.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        that.changeDateSelect = []
+                        that.getDetails(that.rowMsg.id)
+                    }
+                })
+            })
         },
         handleCurrentChangeLeft(val) {
             this.pageLeft.currentPage = val
@@ -244,6 +284,7 @@ export default {
                         createDate: row.createTime,
                         type: row.checkCycle === 'YDKP'?'月度考评':row.checkCycle === 'JDKP'?'季度考评':'年度考评',
                         year: row.appraisalYear,
+                        month: row.declarationMonth,
                         recStage: '有效'
                     }
                 }
@@ -446,7 +487,7 @@ export default {
                         width: 50%;
                         .detaTableBtns{
                             display: flex;
-                            width: 300px;
+                            width: 400px;
                             margin-top: 5px;
                             .tableBtn {
                                 display: flex;
@@ -481,7 +522,7 @@ export default {
                                 }
                             }
                             .delete{
-                                cursor: no-drop;
+                                cursor: pointer;
                                 span{
                                     color: #F65177;
                                 }

+ 32 - 1
src/components/assessment/assessmentApplicationPage.vue

@@ -6,7 +6,24 @@
                     <span class="exceedSpan">申报单号:</span>
                     <el-input v-model="orderNumber" placeholder="请输入申报单号"></el-input>
                 </div>
+                <div class="exceed">
+                    <span class="exceedSpan">填报部门:</span>
+                    <el-input v-model="departNameS" placeholder="请输入填报部门"></el-input>
+                </div>
+                <div class="exceed">
+                    <span class="exceedSpan" style="margin-left: 10px;width: 80px">选择时间:</span>
+                    <el-date-picker
+                        v-model="timeIds"
+                        type="month"
+                        :clearable="false"
+                        value-format="YYYY-MM"
+                        placeholder="选择时间"
+                    />
+                </div>
                 <seachs @handleSeach="getSeachData" @handleRest="resetSeach"></seachs>
+                <el-button size="mini" color="#3B7AD1" icon="Operation" @click="applicationTableFn" style="margin-left: 10px">
+                    <span>统计汇总</span>
+                </el-button>
             </div>
             <div class="PeriodBtn" :style="$utils.PeriodBtnSty()">
                 <btns
@@ -160,11 +177,14 @@
         </div>
         <!-- @approveMsg="approveMsg" -->
         <start-from-list ref="assessmentApplicationDetail" ></start-from-list>
+        <application-table ref="applicationTable"></application-table>
     </div>
 </template>
 
 <script>
 import startFromList from './assessmentApplicationFrom.vue'
+import applicationTable from './evaluationApplicationTab.vue'
+
 import btns from '../elbuttonS.vue'
 import seachs from '../seachGroup.vue'
 import { saveAs } from 'file-saver'
@@ -174,6 +194,7 @@ apideptAdState, apiGetparticipantsNumber, apiPostevaluationdeptadDelete} from '.
 export default {
     components: {
         startFromList,
+        applicationTable,
         btns,
         seachs
     },
@@ -220,6 +241,8 @@ export default {
             declarationLevelOption: [],
             ruleDataAll: [],
             orderNumber: '',
+            departNameS: '',
+            timeIds: '',
             stageArr: [],
             departData: [],
             DepartmentLeaderObj: {},
@@ -255,7 +278,10 @@ export default {
             let params = {
                 pageNum: that.page.currentPage,
                 pageSize: that.page.pagesize,
-                orderNumber: that.orderNumber
+                orderNumber: that.orderNumber,
+                deptName: that.departNameS,
+                annual: that.timeIds ? this.timeIds.substring(0, this.timeIds.indexOf('-')) : '',
+                declarationMonth: that.timeIds ? this.timeIds.substring(this.timeIds.indexOf('-')+1, this.timeIds.length)*1 : ''
             }
             apiGetevaluatiodeptadList(params).then(datas =>{
                 if (datas && datas.data) {
@@ -292,6 +318,9 @@ export default {
                 }
             })
         },
+        applicationTableFn() {
+            this.$refs.applicationTable.init()
+        },
         saveevaluaStart(formName) {
             let that = this
             that.$refs[formName].validate((valid) => {
@@ -459,6 +488,8 @@ export default {
         resetSeach() {
             this.page.currentPage = 1
             this.orderNumber = ''
+            this.departNameS = ''
+            this.timeIds = ''
             this.getassessmentApplicationList()
         },
         handleSizeChange(val){

+ 216 - 0
src/components/assessment/evaluationApplicationTab.vue

@@ -0,0 +1,216 @@
+<template>
+    <div class="applicationTable">
+        <el-dialog title="统计汇总详情" v-model="editEvaluaVisible" :fullscreen="true" :close-on-click-modal="false">
+            <div class="reportTAll">
+                <div class="reportTBtn">
+                    <div class="collectSeach">
+                        <div class="exceed">
+                            <span class="exceedSpan" style="margin-left: 10px;width: 100px">选择时间:</span>
+                            <el-date-picker
+                                v-model="timeIds"
+                                type="month"
+                                :clearable="false"
+                                value-format="YYYY-MM"
+                                placeholder="选择时间"
+                            />
+                        </div>
+                        <seachs @handleSeach="getreportTableData" :showRest="false"></seachs>
+                        <el-button type="info" icon="Download" size="mini" @click="handleExport" style="margin-left:10px">导出</el-button>
+                    </div>
+                    <div class="reportTTableData">
+                        <el-table :data="reportTableData" ref="report-table" style="width: 100%">
+                            <el-table-column label="序号" type="index" width="50" align="center" />
+                            <el-table-column label="人员编码" prop="employeeNo" align="center" />
+                            <el-table-column label="人员姓名" prop="employeeName" align="center" />
+                            <el-table-column label="推荐系数" prop="suggestedValue" align="center" />
+                            <el-table-column label="申报次数" prop="declarationsNumber" align="center" />
+                            <el-table-column label="申报部门" prop="reportingDepartment" align="center" />
+                            <el-table-column label="申报级别" prop="declarationLevel" align="center" />
+                        </el-table>
+                    </div>
+                </div>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import seachs from '../seachGroup.vue'
+import ExcelJS from 'exceljs'
+import fileSave from 'file-saver'
+import {apiGetstatisticalSummaryList} from '../../api/api'
+export default {
+    components: {seachs},
+    data() {
+        return {
+            editEvaluaVisible: false,
+            reportTableData: [],
+            timeIds: ''
+        }
+    },
+    methods: {
+        init() {
+            this.editEvaluaVisible = true
+            let year = new Date().getFullYear()
+            let month = new Date().getMonth()+1
+            let months = ''
+            if (month < 10) {
+                months = '0'+month.toString()
+            } else {
+                months = month.toString()
+            }
+            this.timeIds = year+'-'+months
+            this.reportTableData = []
+            this.getreportTableData()
+        },
+        sortMethods(a, b, it) {
+            if (a[it] < b[it]) {
+                return -1
+            }
+        },
+        // 查询规则详情数据
+        getreportTableData() {
+            let that = this
+            let params = {
+                year: this.timeIds.substring(0, this.timeIds.indexOf('-')),
+                month: this.timeIds.substring(this.timeIds.indexOf('-')+1, this.timeIds.length)*1
+            }
+            apiGetstatisticalSummaryList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.reportTableData = datas.data
+                }
+            })
+        },
+        handleExport() {
+            let year = this.timeIds.substring(0, this.timeIds.indexOf('-'))
+            let month = this.timeIds.substring(this.timeIds.indexOf('-')+1, this.timeIds.length)*1
+            this.$utils.downloadPer(`evaluation-dept-ad/generateStatisticalSummaryReports/${year}/${month}`, '统计汇总信息数据.xlsx')
+        }
+    }
+}
+</script>
+
+<style lang="less">
+.applicationTable{
+    .el-overlay{
+        .el-dialog{
+            // margin-top: 5vh !important;
+            .el-dialog__body{
+                padding: 0 20px 30px 20px !important;
+                .reportTAll{
+                    .el-select, .el-input{
+                        width: 100%;
+                    }
+                    .reportTBtn{
+                        padding: 10px 20px 0 20px;
+                        .collectSeach {
+                            display: flex;
+                            padding: 24px 20px;
+                            border-bottom: 1px solid#D6DBEA;
+
+                            .exceed {
+                                display: flex;
+
+                                .exceedSpan {
+                                    width: 100px;
+                                    height: 12px;
+                                    font-size: 14px;
+                                    font-family: Microsoft YaHei;
+                                    font-weight: 400;
+                                    color: #8991B0;
+                                    line-height: 12px;
+                                    margin-top: 14px;
+                                }
+
+                                .el-input {
+                                    margin-right: 10px;
+
+                                    .el-input__inner {
+                                        height: 30px;
+                                    }
+
+                                    .el-input__suffix {
+                                        .el-select__caret {
+                                            line-height: 30px;
+                                        }
+                                    }
+                                }
+                                .el-select{
+                                    line-height: 40px !important;
+                                    .el-input__inner, .is-disabled{
+                                        height:40px !important;
+                                    }
+                                    .el-input__suffix{
+                                        .el-select__caret{
+                                            line-height:40px;
+                                        }
+                                    }
+                                }
+                                .el-date-editor--month{
+                                    height: 40px;
+                                }
+                            }
+
+                            span {
+                                font-size: 14px;
+                            }
+
+                            .PeriodBtn {
+                                display: flex;
+                                justify-content: end;
+                                padding: 20px 0;
+                            }
+
+                            .el-button {
+                                height: 30px;
+                                // width:100px;
+                                padding: 0 30px;
+
+                                // padding-top: 8px;
+                                span {
+                                    margin: 0;
+                                }
+                            }
+                        }
+                    }
+                    .reportTTableData{
+                        .el-table{
+                            .el-table__body-wrapper{
+                                height: 65vh !important;
+                            }
+                            .el-input__inner{
+                                height: 30px !important;
+                            }
+                            .el-radio__label{
+                                display: none;
+                            }
+                        }
+                        .el-pagination{
+                            margin-top: 20px;
+                            text-align: end;
+                            position: relative;
+                        }
+                    }
+                    .onlyDialog{
+                        .el-overlay{
+                            .el-dialog{
+                                margin-top: 10vh !important;
+                            }
+                        }
+                    }
+                }
+            }
+            .el-dialog__footer{
+                .dialog-footer{
+                    display: flex;
+                    justify-content: center;
+                    .el-button{
+                        width: 180px !important;
+                        height: 40px !important;
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 7 - 3
src/components/evaluationSystem/evaluationCompanyPage.vue

@@ -54,12 +54,12 @@
                     :showSave="$utils.havePurview('evalCompany:oneLevel:save')"
                     :showDelete="$utils.havePurview('evalCompany:oneLevel:delete')"
                     :disSave="changeDateSelect.length === 0 || changeDateSelect.length>1"
-                    :disDelete="changeDateSelect.length === 0" :disImport="true" :disExport="true"
+                    :disDelete="changeDateSelect.length === 0"
                     @handleAdd="handleAdd" @handleEdit="handleEdit" @handleDelete="handleDelete"
                     @handleImport="handleImport" @handleExport="handleExport"></btns>
             </div>
             <div class="evaluationCompanyTableData">
-                <el-table :data="evaluationCompanyData" style="width: 100%" :class="evaluationCompanyTableSty()"
+                <el-table :data="evaluationCompanyData" style="width: 100%" ref="companytable" :class="evaluationCompanyTableSty()"
                  @select="rowClick" @select-all="rowClick">
                     <el-table-column type="selection" label="操作" align="center"></el-table-column>
                     <el-table-column label="单位名称" prop="organizationShortName" width="300">
@@ -580,8 +580,12 @@
                 this.getEvalCompanyData()
             },
             handleImport() {
-                this.$refs.importPage.upload.title = "考评指标管理信息导入"
+                this.$refs.importPage.upload.title = "单位权重信息导入"
                 this.$refs.importPage.upload.open = true
+                this.$refs.importPage.upload.url = '/party-building-multiplier/import'
+            },
+            handleExport() {
+                this.$utils.downloadPer('party-building-multiplier/export1', '单位权重信息数据.xlsx')
             },
             evaluationCompanyTableSty() {
                 if (this.winPix === 1.25) {

+ 6 - 18
src/components/evaluationSystem/evaluationDepartmentPage.vue

@@ -13,9 +13,6 @@
                 <seachs @handleSeach="getSeachData" @handleRest="resetSeach"></seachs>
             </div>
             <div class="PeriodBtn" :style="$utils.PeriodBtnSty()">
-                <!-- $utils.havePurview('evalDepartment:oneLevel:add')
-                $utils.havePurview('evalDepartment:oneLevel:save')
-                $utils.havePurview('evalDepartment:oneLevel:delete') -->
                 <btns
                 :showImport="false"
                 :showExport="false"
@@ -35,24 +32,15 @@
                 <el-table :data="evaluationDepartmentData" style="width: 100%" :class="departmentTableSty()"
                  @select="rowClick" @select-all="rowClick">
                     <el-table-column type="selection" label="操作" align="center"></el-table-column>
-                    <!-- <el-table-column label="部门编码" prop="shortDeptName" /> -->
                     <el-table-column label="部门名称" prop="deptName" />
                     <el-table-column label="部门领导名称" prop="chargePersonName" />
                     <el-table-column label="部门应用">
                         <template #default="scope">
-                            <span>{{scope.row.yjzbjhType === '1'?'业绩指标计划':''}}</span>
-                            <span>, {{scope.row.jxjgkhsbType === '1'?'绩效考核申报':''}}</span>
+                            <span v-if="scope.row.yjzbjhType === '1'">业绩指标计划</span>
+                            <span v-if="scope.row.yjzbjhType === '1' && scope.row.jxjgkhsbType === '1'">,</span>
+                            <span v-if="scope.row.jxjgkhsbType === '1'">绩效考核申报</span>
                         </template>
                     </el-table-column>
-                    <!-- <el-table-column label="考评类型" >
-                        <template #default="scope">
-                                <span>{{scope.row.evaluationCategory === 'BMKP'?'部门考评':''}}</span>
-                            </template>
-                        </el-table-column>
-                    <el-table-column label="指标名称" prop="indicatorDatasAll" width="400" />
-                    <el-table-column label="年" prop="annual" />
-                    <el-table-column label="描述" prop="des" />
-                    <el-table-column label="创建时间" prop="createTime" /> -->
                 </el-table>
                 <el-pagination
                     @size-change="handleSizeChange"
@@ -93,7 +81,7 @@
                                 :key="item.id"
                                 :label="item.name"
                                 :value="item.id">
-                                <span style="float: left;display:inline-block;width:100px">{{ item.userName }}</span>
+                                <span style="float: left;display:inline-block;width:100px">{{ item.name }}</span>
                                 <span style="float: right;color: #909399;font-size: 13px;" >{{ item.no }}</span>
                                 </el-option>
                             </el-select>
@@ -269,7 +257,7 @@ export default {
                 departmentLeader: this.evalradio.chargePersonId,
                 departmentIn: departmentInStr
             }
-            this.changeDeptLead(this.evalradio.deptId)
+            this.getuserPageList(this.evalradio.deptId)
         },
         saveevaluationDepartmentMsg(formName) {
             let that = this
@@ -297,7 +285,7 @@ export default {
             })
             that.deptLeaderOption.forEach(item =>{
                 if (item.id === that.ruleForm.departmentLeader) {
-                    deptLeaderNameS = item.userName
+                    deptLeaderNameS = item.name
                 }
             })
             let yjzbjhTypeIn = '0'

+ 1 - 1
src/components/evaluationSystem/partyBuildingKPage.vue

@@ -21,7 +21,7 @@
             </div>
             <div class="PeriodBtn" :style="$utils.PeriodBtnSty()">
                 <btns
-                :showImport="true"
+                :showImport="$utils.havePurview('partBuildK:oneLevel:import')"
                 :showExport="true"
                 :showAdd="$utils.havePurview('partBuildK:oneLevel:add')"
                 :showSave="$utils.havePurview('partBuildK:oneLevel:save')"

+ 10 - 2
src/components/taskCenter/taskApplicationFrom.vue

@@ -39,7 +39,7 @@
                         </div>
                         <div class="danjuMsg_data">
                             <span class="data_tit">申报年度:</span>
-                            <span>{{receiptMsg.year}}</span>
+                            <span>{{receiptMsg.year}}</span>
                         </div>
                     </el-col>
                     <el-col :span="6">
@@ -48,11 +48,17 @@
                             <span>{{receiptMsg.createDate}}</span>
                         </div>
                         <div class="danjuMsg_data">
+                            <span class="data_tit">申报月份:</span>
+                            <span>{{receiptMsg.month}}月</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
                             <span class="data_tit">申报级别:</span>
                             <span>{{receiptMsg.declarationLevel}}级</span>
                         </div>
                     </el-col>
-                    <el-col :span="24">
+                    <el-col :span="18">
                         <div class="danjuMsgSelect">
                             <span class="data_tit">申报简述:</span>
                             <span v-if="userMes.deptId !== '23031009'">{{receiptMsg.des}}</span>
@@ -175,6 +181,7 @@ export default {
                 createDate: '',
                 type: '',
                 year: '',
+                month: '',
                 recStage: ''
             },
             addIcon: addIcon,
@@ -303,6 +310,7 @@ export default {
                         createDate: row.createTime,
                         type: row.checkCycle === 'YDKP'?'月度考评':row.checkCycle === 'JDKP'?'季度考评':'年度考评',
                         year: row.appraisalYear,
+                        month: row.declarationMonth,
                         recStage: '有效'
                     }
                 }