Browse Source

单位年度考评页面新增指标考核打分页面,前端增加导出功能;指标考核打分页面功能修改与完善;首页通告栏样式修改,并增加通告所有数据展示页面,并且可以查看详情;

SunZehao 1 year ago
parent
commit
afe335e4de

+ 1 - 1
src/api/api.js

@@ -181,7 +181,7 @@ export function apiGetevaluationdeptnoticeFilePreview(params) {
     return httpRequest({
         url: 'evaluation-dept-notice/filePreview',
         // header: { 'responseType': 'blob' },
-        responseType: 'blob',
+        // responseType: 'blob',
         method: 'get',
         params: params
     })

+ 9 - 2
src/components/assessment/evaluationYearPage.vue

@@ -68,7 +68,7 @@
                             </el-tooltip>
                         </template>
                     </el-table-column>
-                    <el-table-column label="操作" width="200">
+                    <el-table-column label="操作" width="300">
                         <template #default="scope">
                             <div style="display:flex;justify-content: left;">
                                 <div>
@@ -77,6 +77,7 @@
                                 </div>
                                 <p class="indicitem" @click="calculateScore(scope.row)">计算得分</p>
                                 <p class="indicitem" @click="generateReport(scope.row)">生成报表</p>
+                                <p class="indicitem" @click="handleReport(scope.row)">指标考核打分</p>
                             </div>
                             
                         </template>
@@ -147,11 +148,13 @@
             </el-dialog>
         </div>
         <start-from-list ref="startFromDetail"></start-from-list>
+        <month-quarter-year-report ref="reportDia"></month-quarter-year-report>
     </div>
 </template>
 
 <script>
 import startFromList from './evaluationYearFrom.vue'
+import monthQuarterYearReport from './monthQuarterYearReport.vue'
 import btns from '../elbuttonS.vue'
 import seachs from '../seachGroup.vue'
 import {apiGetOrgEvaluationList, apiPostOrgEvaSave,apiPostOrgevaluationDelete,apiGetgenerateEvaluateReport,
@@ -159,6 +162,7 @@ apiGetgenerateUnitYearEvaluation, apiGetdatadictionaryList, apiGetcalculatorcron
 export default {
     components: {
         startFromList,
+        monthQuarterYearReport,
         btns,
         seachs
     },
@@ -467,7 +471,10 @@ export default {
                     that.changeDateSelect = []
                 })
             })
-        }, 
+        },
+        handleReport(row) {
+            this.$refs.reportDia.init(row)
+        }
     }
 }
 </script>

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

@@ -520,7 +520,7 @@ export default {
                 showInput: true,
                 stageName: '',
                 sectionName: '',
-                organizationName: '',
+                organizationShortName: '',
                 deptName: '',
                 typeName: '',
                 optionName: '',
@@ -552,7 +552,7 @@ export default {
                         organizationEvaluationId: that.rowMsg.id
                     }
                     if (item.showInput) {
-                        obj.organizationEvaluationRuleId = item.organizationName //单位id
+                        obj.organizationEvaluationRuleId = item.organizationShortName //单位id
                         obj.indicatorId = item.childName //指标id
                         
                     } else {

+ 13 - 7
src/components/assessment/monthQuarterYearReport.vue

@@ -19,9 +19,9 @@
             <div class="monthQuarterYearTableData">
                 <div class="tableMain">
                     <el-table :data="monthQuarterYearTableData" style="width: 100%" ref="benchmark">
-                        <el-table-column :label="tableoneLevelName" align="center">
-                            <el-table-column type="index" label="序号" align="center"></el-table-column>
-                            <el-table-column label="单位名称" width="200">
+                        <!-- <el-table-column :label="tableoneLevelName" align="center"> -->
+                            <el-table-column type="index" label="序号" align="center" fixed></el-table-column>
+                            <el-table-column label="单位名称" width="200" fixed>
                                 <template #default="scope">
                                     <el-tooltip class="box-item" effect="customized" :content="scope.row.organizationShortName"
                                         placement="right">
@@ -31,7 +31,7 @@
                             </el-table-column>
                             <el-table-column :label="tabletwoLevelName" align="center">
                                 <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.name" width="120">
+                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.name" width="120" align="center">
                                         <template #default="scope">
                                             <span >{{scope.row[iv.key]}}</span>
                                         </template>
@@ -39,7 +39,7 @@
                                 </el-table-column>
                             </el-table-column>
                             <el-table-column label="综合得分" prop="zhdf" width="100" v-if="isShowZHDF" />
-                        </el-table-column>
+                        <!-- </el-table-column> -->
                     </el-table>
                 </div>
             </div>
@@ -66,12 +66,14 @@ export default {
             tabletwoLevelName: '',
             isShowZHDF: false,
             monthQuarterYearTableData: [],
-            monthQuarterYearHeader: []
+            monthQuarterYearHeader: [],
+            rowData: {}
         }
     },
     methods: {
         init(data) {
             this.dialogVisible = true
+            this.rowData = data
             this.getBinSectionS(data)
         },
         // 查询业务属性
@@ -88,6 +90,8 @@ export default {
         // 获取得分汇总数据
         getmonthQuarterYearData(row) {
             let that = this
+            that.monthQuarterYearTableData = []
+            that.monthQuarterYearHeader = []
             let params = {
                 id: row.id,
                 binSection: that.binstationStr
@@ -115,6 +119,8 @@ export default {
                             }
                         });
                         that.monthQuarterYearHeader = headerFin
+                    } else {
+                        that.tableoneLevelName = '考核打分表'
                     }
                     if (datas.data.values.length>0) {
                         that.monthQuarterYearTableData = datas.data.values
@@ -123,7 +129,7 @@ export default {
             })
         },
         getSeachData() {
-            this.getmonthQuarterYearData()
+            this.getmonthQuarterYearData(this.rowData)
         },
         handleExport() {
             let $e = this.$refs.benchmark.$el

+ 202 - 0
src/components/gateWay/gateWayNotificationAllData.vue

@@ -0,0 +1,202 @@
+<template>
+    <div class="notificationAll">
+        <el-dialog title="通告数据" custom-class="notificationAllOver" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
+            <div style="display: flex;">
+                <div class="exceed">
+                    <span class="exceedSpan">通告标题:</span>
+                    <el-input v-model="noticeTitle" placeholder="请输入通告标题"></el-input>
+                </div>
+                <seachs :showRest="false" @handleSeach="getSeachData" @handleRest="resetSeach"></seachs>
+            </div>
+            <div class="notificationTableData">
+                <el-table :data="notificationData" style="width: 100%">
+                    <el-table-column label="发布状态" prop="releaseState" width="100" align="center">
+                        <template #default="scope">
+                            <span class="statusSty"
+                             :style="scope.row.releaseState === '已发布'?'background:#61C760':scope.row.releaseState === '未发布'?'background:#5093E1':'background:#9DA5BE'">
+                             {{scope.row.releaseState}}
+                             </span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="通告标题" width="200">
+                        <template #default="scope">
+                            <el-tooltip
+                                class="box-item"
+                                effect="customized"
+                                :content="scope.row.noticeTitle"
+                                placement="right"
+                            >
+                                <span class="tooltipCCDes">{{scope.row.noticeTitle}}</span>
+                            </el-tooltip>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="通告内容" width="400">
+                        <template #default="scope">
+                            <el-tooltip
+                                class="box-item"
+                                effect="customized"
+                                :content="scope.row.noticeContent"
+                                placement="right"
+                            >
+                                <span class="tooltipCC">{{scope.row.noticeContent}}</span>
+                            </el-tooltip>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="发布部门" prop="releaseDeptName" width="200" />
+                    <el-table-column label="发布至" prop="sendTo" />
+                    <el-table-column label="发布人" prop="releasePeopleName" />
+                    <el-table-column label="发布时间" prop="createTime" />
+                    <el-table-column label="操作" width="80">
+                        <template #default="scope">
+                            <p class="indicitem" @click="watchDetail(scope.row)">详情</p>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-pagination
+                    @size-change="handleSizeChange"
+                    @current-change="handleCurrentChange"
+                    :current-page="page.currentPage"
+                    :page-size="page.pagesize"
+                    layout="total, prev, pager, next, jumper"
+                    :total="page.total">
+                </el-pagination>
+            </div>
+        </el-dialog>
+        <notification-detail ref="notificationDetail"></notification-detail>
+    </div>
+</template>
+
+<script>
+import seachs from '../seachGroup.vue'
+import notificationDetail from './gateWayNotificationDetail.vue'
+import {apiGetevaluationdeptnoticeList} from '../../api/api'
+export default {
+    components: {
+        seachs,
+        notificationDetail
+    },
+    data() {
+        return {
+            dialogVisible: false,
+            noticeTitle: '',
+            notificationData: [],
+            page:{
+                pagesize: 12,
+                currentPage: 1,
+                total: 0
+            },
+        }
+    },
+    methods: {
+        init() {
+            this.dialogVisible = true
+            this.getevalunotificationList()
+        },
+        // 查询列表页面
+        getevalunotificationList() {
+            let that = this
+            let params = {
+                pageNum: that.page.currentPage,
+                pageSize: that.page.pagesize,
+                noticeTitle: that.noticeTitle
+            }
+            apiGetevaluationdeptnoticeList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.notificationData = datas.data.records
+                    that.page.total = datas.data.total
+                }
+            })
+        },
+        watchDetail(row) {
+            this.$refs.notificationDetail.init(row)
+        },
+    }
+}
+</script>
+
+<style lang="less">
+.notificationAll{
+    .el-overlay{
+        .notificationAllOver{
+            .el-dialog__body{
+                padding: 30px 20px !important;
+                .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;
+                        height: 40px;
+                        .el-input__inner{
+                            height:40px;
+                        }
+                        .el-input__suffix{
+                            .el-select__caret{
+                                line-height:30px;
+                            }
+                        }
+                    }
+                }
+                .notificationTableData{
+                    margin-top: 20px;
+                    .el-table{
+                        .el-table__body-wrapper{
+                            height: 65vh !important;
+                        }
+                        .el-input__inner{
+                            height: 30px !important;
+                        }
+                        .el-radio__label{
+                            display: none;
+                        }
+                        .statusSty{
+                            width: 52px;
+                            height: 21px;
+                            line-height: 21px;
+                            display: inline-block;
+                            border-radius: 3px;
+                            color: #fff;
+                        }
+                        .tooltipCC{
+                            width: 300px !important;
+                            display: inline-block;
+                            overflow: hidden;
+                            text-overflow: ellipsis;
+                            white-space: nowrap;
+                        }
+                        .tooltipCCDes{
+                            width: 200px;
+                            display: inline-block;
+                            overflow: hidden;
+                            text-overflow: ellipsis;
+                            white-space: nowrap;
+                        }
+                        .indicitem{
+                            color: #409EFF;
+                            font-size: 12px;
+                            margin-right: 20px;
+                            cursor:pointer;
+                            &:hover{
+                                text-decoration: underline;
+                            }
+                        }
+                    }
+                    .el-pagination{
+                        margin-top: 20px;
+                        text-align: end;
+                        position: relative;
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 18 - 2
src/components/gatewaynNewPage.vue

@@ -268,6 +268,7 @@
                 <div class="gateway_report">
                     <div class="reportTit">
                         <p>通告栏</p>
+                        <el-icon :size="20" color="#3B7AD1" @click="watchAllNotification"><Plus /></el-icon>
                     </div>
                     <div class="reportMain">
                         <div class="reportMain_msg" v-for="it in noticeData" :key="it.id">
@@ -287,6 +288,7 @@
         <year-from ref="yearFrom"></year-from>
         <season-from ref="seasonFrom"></season-from>
         <notification-detail ref="notificationDetail"></notification-detail>
+        <notification-all-data ref="notificationAllData"></notification-all-data>
     </div>
 </template>
 
@@ -304,8 +306,9 @@ import {apiGetevaluationportallist, apiGetevaluationCircularDisplaylist} from '.
 import yearFrom from './gateWay/gatewayNewYearFrom.vue'
 import seasonFrom from './gateWay/gatewayNewSeasonFrom.vue'
 import notificationDetail from './gateWay/gateWayNotificationDetail.vue'
+import NotificationAllData from './gateWay/gateWayNotificationAllData.vue'
 export default {
-    components: {yearFrom, seasonFrom, notificationDetail},
+    components: {yearFrom, seasonFrom, notificationDetail, NotificationAllData},
     data() {
         return {
             noticeData: [],
@@ -376,6 +379,9 @@ export default {
         watchDetail(row) {
             this.$refs.notificationDetail.init(row)
         },
+        watchAllNotification() {
+            this.$refs.notificationAllData.init()
+        },
         arrowLeft() {
             if (this.seasonStr === '第一季度') {
                 this.seasonStr = '第三季度'
@@ -975,14 +981,24 @@ export default {
             border: 1px solid #D6DBEA;
             .reportTit{
                 padding: 21px 25px 10px 25px;
-                background: #E3EFFF;
+                // background: #E3EFFF;
+                border-bottom: 1px solid #D6DBEA;
                 border-radius: 10px 10px 0px 0px;
+                text-align: center;
+                display: flex;
+                justify-content: center;
                 p{
                     font-size: 18px;
                     font-family: Microsoft YaHei;
                     font-weight: bold;
                     color: #3B7AD1;
                 }
+                .el-icon{
+                    position: relative;
+                    left: 120px;
+                    top: 3px;
+                    cursor: pointer;
+                }
             }
             .reportMain{
                 height: 79vh !important;

+ 1 - 1
src/utils/baseUrl.js

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