Procházet zdrojové kódy

本部部门绩效指标考核内容修改及其服务联调;新增考评指标对标页面(无服务联调)

SunZehao před 2 roky
rodič
revize
e226a4d3a7

+ 2 - 2
src/api/api.js

@@ -23,8 +23,8 @@ export function apiGetModel(url, params) {
 //获取菜单数据
 export function apiGetMenuData() {
     return httpRequest({
-        url: 'menu/menuList?parentId=10105', // 测试
-        // url: 'menu/menuList?parentId=6802', // 生产
+        // url: 'menu/menuList?parentId=10105', // 测试
+        url: 'menu/menuList?parentId=6802', // 生产
         method: 'post'
     })
 }

binární
src/assets/benchmarkImg/guoCha.png


binární
src/assets/benchmarkImg/guoDef.png


binární
src/assets/benchmarkImg/huoCha.png


binární
src/assets/benchmarkImg/huoDef.png


binární
src/assets/benchmarkImg/meiCha.png


binární
src/assets/benchmarkImg/meiDef.png


binární
src/assets/benchmarkImg/shuiCha.png


binární
src/assets/benchmarkImg/shuiDef.png


binární
src/assets/benchmarkImg/xinCha.png


binární
src/assets/benchmarkImg/xinDef.png


binární
src/assets/benchmarkImg/zongCha.png


binární
src/assets/benchmarkImg/zongDef.png


+ 33 - 10
src/assets/css/main.css

@@ -64,10 +64,6 @@ a {
     height: 30px;
 }
 
-.el-dialog .el-dialog__body{
-    padding: 20px 0;
-}
-
 .pagination {
     margin: 20px 0;
     text-align: right;
@@ -176,6 +172,7 @@ a {
     border-radius: 6px;
 }
 
+/* 按钮 */
 .el-button{
     width: 100px !important;
     height: 40px !important;
@@ -207,6 +204,7 @@ a {
     background-color: #F5A623 !important;
 }
 
+/* 表格 */
 .el-table th {
     /* background-color: #f5f7fa !important; */
     height: 50px;
@@ -228,12 +226,8 @@ a {
     color: #666666;
     /* line-height: 12px; */
 }
-.el-overlay .el-dialog__header .el-dialog__title{
-    font-size: 18px;
-    font-family: Microsoft YaHei;
-    font-weight: bold;
-    color: #3B7AD1; 
-}
+
+/* 文字提示 */
 .el-popper{
     width: 325px;
 }
@@ -254,4 +248,33 @@ font-size: 14px;
 /* background: linear-gradient(45deg, #b2e68d, #bce689); */
 background: #3B7AD1;
 right: 0;
+}
+
+
+/* 弹窗 */
+.el-overlay {
+    font-size: 18px;
+    font-family: Microsoft YaHei;
+    font-weight: bold;
+    color: #3B7AD1; 
+}
+.el-dialog{   
+    border-radius: 10px;
+}
+.el-dialog .el-dialog__body{
+    padding: 20px 0;
+}
+.el-dialog__header {
+    margin: 0 !important;
+    border-radius: 10px 10px 0 0;
+    background: linear-gradient(90deg, #184FB4, #5473E8)
+}
+.el-dialog__header .el-dialog__headerbtn .el-dialog__close{
+    color: #fff !important;
+}
+.el-dialog__header .el-dialog__title{
+    font-size: 18px;
+    font-family: Microsoft YaHei;
+    font-weight: bold;
+    color: #fff; 
 }

+ 427 - 0
src/components/assessment/evaluationBenchmarkingIndicPage.vue

@@ -0,0 +1,427 @@
+<template>
+    <div class="benchmarkingIndicator">
+        <div class="benchmarkingIndicatorBtn">
+            <div class="collectSeach">
+                <div class="exceed">
+                    <span class="exceedSpan" style="margin-left: 10px;width: 80px">业务阶段:</span>
+                    <el-select v-model="stageIds" placeholder="请选择业务阶段">
+                        <el-option
+                        v-for="item in stageData"
+                        :key="item.id"
+                        :label="item.stageName"
+                        :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="exceed">
+                    <span class="exceedSpan" style="margin-left: 10px;width: 80px">指标类型:</span>
+                    <el-select v-model="indicatorIds" placeholder="请选择指标类型">
+                        <el-option
+                        v-for="item in indicatorData"
+                        :key="item.id"
+                        :label="item.sectionName"
+                        :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="exceed">
+                    <span class="exceedSpan" style="margin-left: 10px;width: 80px">选择时间:</span>
+                    <el-date-picker
+                        v-model="timeIds"
+                        type="month"
+                        placeholder="选择时间"
+                    />
+                </div>
+                <el-button type="primary" style="margin-left: 10px;" @click="getSeachData">搜索</el-button>
+                <el-button style="margin-left: 10px;" @click="resetSeach">重置</el-button>
+            </div>
+            <div class="PeriodBtn">
+                <btns 
+                    :showImport="false" :showExport="true" 
+                    :showAdd="false"
+                    :showSave="false"
+                    :showDelete="false"
+                    :disSave="true"
+                    :disDelete="true" :disImport="true" :disExport="true"
+                    @handleAdd="handleAdd" @handleEdit="handleEdit" @handleDelete="handleDelete"
+                    @handleImport="handleImport" @handleExport="handleExport"></btns>
+            </div>
+            <div class="benchmarkingIndicatorTableData">
+                <div class="tableMain">
+                    <el-table :data="benchmarkingIndicatorData" style="width: 100%">
+                        <el-table-column type="index" label="序号" align="center"></el-table-column>
+                        <el-table-column label="考评单位" prop="organizationShortName" width="200">
+                            <template #default="scope">
+                                <el-tooltip class="box-item" effect="customized" :content="scope.row.organizationShortName"
+                                    placement="top">
+                                    <span class="tooltipCC">{{scope.row.organizationShortName}}</span>
+                                </el-tooltip>
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="排名" prop="organizationType" />
+                        <el-table-column label="综合得分" prop="evaluationCycle" />
+                        <el-table-column label="经营回报" align="center">
+                            <el-table-column label="净利润" prop="zzc" />
+                            <el-table-column label="EBITDA" prop="k1" />
+                            <el-table-column label="售电成本" prop="k1" />
+                        </el-table-column>
+                        <el-table-column label="生产运营及协同指标" align="center">
+                            <el-table-column label="财务'一集中三加强'" prop="zzc" />
+                            <el-table-column label="发电量" prop="k1" />
+                            <el-table-column label="市场占有率" prop="k1" />
+                            <el-table-column label="电力营销" prop="k1" />
+                            <el-table-column label="供电煤耗" prop="k1" />
+                            <el-table-column prop="k1">
+                                <template #header>
+                                    <div>综合厂</div>
+                                    <div>用电率</div>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="非计划停运和出力受阻" prop="k1" />
+                            <el-table-column prop="k1">
+                                <template #header>
+                                    <div>内部煤炭</div>
+                                    <div>接卸量</div>
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="k1">
+                                <template #header>
+                                    <div>外部煤炭</div>
+                                    <div>采购量</div>
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="k1">
+                                <template #header>
+                                    <div>入厂入炉</div>
+                                    <div>标单差</div>
+                                </template>
+                            </el-table-column>
+                        </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>
+                <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>{{item.isName}}</p>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import btns from '../elbuttonS.vue'
+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 {apiGetOrganizationList} from '../../api/api'
+export default {
+    components: {btns},
+    data() {
+        return {
+            benchmarkingIndicatorData: [],
+            indicatorData: [],
+            stageData: [],
+            companyDatas: [],
+            periodId: '',
+            stageIds: '',
+            indicatorIds: '',
+            timeIds: '',
+            page: {
+                pagesize: 12,
+                currentPage: 1,
+                total: 0
+            },
+            titleMsgArr: []
+        }
+    },
+    created() {
+        this.titleMsgArr = [
+            {
+                isClass: 'huoDef',
+                isClassC: 'huoCha',
+                isName: '火电',
+                img: huoDef,
+                clickImg: huoCha,
+                showClick: true
+            },
+            {
+                isClass: 'shuiDef',
+                isClassC: 'shuiCha',
+                isName: '水电',
+                img: shuiDef,
+                clickImg: shuiCha,
+                showClick: false
+            },
+            {
+                isClass: 'xinDef',
+                isClassC: 'xinCha',
+                isName: '新能源',
+                img: xinDef,
+                clickImg: xinCha,
+                showClick: false
+            },
+            {
+                isClass: 'meiDef',
+                isClassC: 'meiCha',
+                isName: '煤电一体化',
+                img: meiDef,
+                clickImg: meiCha,
+                showClick: false
+            },
+            {
+                isClass: 'guoDef',
+                isClassC: 'guoCha',
+                isName: '国际业务',
+                img: guoDef,
+                clickImg: guoCha,
+                showClick: false
+            },
+            {
+                isClass: 'zongDef',
+                isClassC: 'zongCha',
+                isName: '综合支持',
+                img: zongDef,
+                clickImg: zongCha,
+                showClick: false
+            }
+        ]
+        this.getEvalCompanyData()
+    },
+    methods: {
+        // 查询单位数据
+        getEvalCompanyData() {
+            let that = this
+            let params = {
+                pageNum: that.page.currentPage,
+                pageSize: that.page.pagesize,
+                organizationType: 'DWKP',
+                organizationName: that.companyS,
+                binSection: that.binSectionIds,
+                binStage: that.stageIds,
+                evaluationCycle: that.periodId
+            }
+            apiGetOrganizationList(params).then(datas => {
+                if (datas && datas.data) {
+                    that.benchmarkingIndicatorData = datas.data.records
+                    that.page.total = datas.data.total
+                }
+            })
+        },
+        changType(data) {
+            this.titleMsgArr.forEach(it =>{
+                it.showClick = false
+                if (it.isName === data.isName) {
+                    it.showClick = true
+                }
+            })
+        },
+        getSeachData() {
+            this.page.currentPage = 1
+            this.getEvalCompanyData()
+        },
+        resetSeach() {
+            this.page.currentPage = 1
+            this.companyS = ''
+            this.periodId = ''
+            this.stageIds = ''
+            this.binSectionIds = ''
+            this.getEvalCompanyData()
+        },
+        handleSizeChange(val) {
+            this.page.pagesize = val
+            this.getEvalCompanyData()
+        },
+        handleCurrentChange(val) {
+            this.page.currentPage = val
+            this.getEvalCompanyData()
+        }
+    }
+}
+</script>
+
+<style lang="less">
+    .benchmarkingIndicator {
+        .benchmarkingIndicatorBtn {
+            .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;
+                }
+            }
+
+            .indexdialog {
+                .el-overlay {
+                    .el-dialog {
+                        .el-dialog__body {
+                            padding: 30px 60px 30px 20px !important;
+
+                            .periodFrom {
+
+                                .el-select,
+                                .el-input {
+                                    width: 100%;
+                                }
+
+                                .el-input {
+                                    height: 30px;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        .benchmarkingIndicatorTableData {
+            display: flex;
+            .tableMain{
+                width: 95%;
+                .el-table {
+                    .el-table__body-wrapper {
+                        height: 55vh !important;
+                    }
+    
+                    .el-input__inner {
+                        height: 30px !important;
+                    }
+    
+                    .el-radio__label {
+                        display: none;
+                    }
+    
+                    .tooltipCC {
+                        width: 300px;
+                        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;
+                }
+            }
+            .tableSeach{
+                height: 100%;
+                margin-left: 10px;
+                border: 1px solid #D6DBEA;
+                padding: 5px 0;
+                border-radius: 5px;
+                .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;
+                    border-left: 3px solid #3B7AD1;
+                }
+            }
+        }
+
+    }
+</style>

+ 129 - 50
src/components/assessment/evaluationDeptBusinessFrom.vue

@@ -1,6 +1,6 @@
 <template>
-    <div class="deptbusinessFrom">
-        <el-dialog title="部门经营业绩考评详情" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
+    <div class="deptstartFrom">
+        <el-dialog title="考评启动详情" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
             <div class="startDetail">
                 <p class="starttitleSty">单据信息:</p>
                 <el-row class="danjuMsg">
@@ -10,8 +10,8 @@
                             <span>{{receiptMsg.code}}</span>
                         </div>
                         <div class="danjuMsg_data">
-                            <span class="data_tit">年度:</span>
-                            <span>{{receiptMsg.year}}</span>
+                            <span class="data_tit">创建日期:</span>
+                            <span>{{receiptMsg.createDate}}</span>
                         </div>
                     </el-col>
                     <el-col :span="6">
@@ -20,8 +20,8 @@
                             <span>{{receiptMsg.des}}</span>
                         </div>
                         <div class="danjuMsg_data">
-                            <span class="data_tit">单据状态:</span>
-                            <span>{{receiptMsg.recStage}}</span>
+                            <span class="data_tit">考评周期:</span>
+                            <span>{{receiptMsg.type}}</span>
                         </div>
                     </el-col>
                     <el-col :span="6">
@@ -29,11 +29,19 @@
                             <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.type}}</span>
+                            <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>
@@ -55,22 +63,39 @@
                 </div>
                 <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
                     <el-tab-pane label="考评指标项内容" name="first">
-                        <el-table :data="quantifiedList.slice((pageLeft.currentPage-1)*pageLeft.pagesize, pageLeft.currentPage*pageLeft.pagesize)" style="width: 100%">
-                            <!-- <el-table-column type="selection" label="操作" align="center"></el-table-column> -->
-                            <el-table-column type="index" label="序号" width="80" />
-                            <el-table-column label="部门名称" prop="deptName" width="300" />
-                            <el-table-column label="指标名称" prop="indicatorName" />
-                            <el-table-column label="指标项名称" prop="indicatorItemName" />
-                            <el-table-column label="值">
+                        <el-table :data="quantifiedList.slice((pageLeft.currentPage-1)*pageLeft.pagesize, pageLeft.currentPage*pageLeft.pagesize)"
+                         style="width: 100%" @select="rowClick" @select-all="rowClick">
+                            <el-table-column label="序号" type="index" width="80" />
+                            <el-table-column label="部门名称" prop="deptName" width="260">
+                                <template #default="scope">
+                                    <el-select v-model="scope.row.deptName" placeholder="请选择所属部门" v-if="scope.row.showInput">
+                                        <el-option
+                                        v-for="item in departData"
+                                        :key="item.id"
+                                        :label="item.keyName"
+                                        :value="item.id">
+                                        </el-option>
+                                    </el-select>
+                                    <span v-else>{{scope.row.deptName}}</span>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="排序" width="100" prop="serialNumber" />
+                            <el-table-column label="指标名称" prop="targetName" />
+                            <el-table-column label="目标值" prop="targetValue" />
+                            <el-table-column label="基础分" width="150" prop="baseScore" />
+                            <el-table-column label="完成情况" width="300">
+                                <template #default="scope">
+                                    <el-input v-model="scope.row.completionStatus"
+                                     type="textarea" :rows="2" placeholder="请输入完成情况" :disabled="!scope.row.updateMark"></el-input>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="评价标准" prop="evaluationCriteria" />
+                            <el-table-column label="自评得分" width="150">
                                 <template #default="scope">
-                                    <el-input v-model="scope.row.targetValue"
-                                     type="textarea" :rows="1" placeholder="请输入值" :disabled="!scope.row.updateMark"></el-input>
-                                    <!-- <el-input-number v-model="scope.row.targetValue"
-                                     :precision="2" :step="0.1" :min="0" /> -->
-                                     <!-- :disabled="!scope.row.updateMark"  -->
+                                    <el-input-number v-model="scope.row.evaluationScore" :precision="2" :step="0.1" :min="0" />
                                 </template>
                             </el-table-column>
-                            <el-table-column label="审核状态" width="260" >
+                            <el-table-column label="审核状态" width="200" >
                                 <template #default="scope">
                                      <!-- :disabled="!scope.row.updateMark" -->
                                     <el-select v-model="scope.row.auditStatus" :disabled="!scope.row.updateMark" placeholder="请选择审核状态">
@@ -107,7 +132,7 @@
 
 <script>
 import importDailog from '../importPage/importDailog.vue'
-import {apiGetevaluationdeptassessmentdetails,apiGetevaluationdeptplanUpdate} from '../../api/api'
+import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiPostIsdoAction} from '../../api/api'
 import ExcelJS from 'exceljs'
 import fileSave from 'file-saver'
 import addIcon from '../../assets/btnIcon/add.png'
@@ -144,8 +169,6 @@ export default {
             importIcon: importIcon,
             rowMsg: {},
             orgruleData: [],
-            indicatorTypeData: [],
-            stageData: [],
             indicItemoptions: [],
             sectionNameArr: [],
             deptNameArr: [],
@@ -160,6 +183,7 @@ export default {
                 currentPage: 1,
                 total: 0
             },
+            departData: []
         }
     },
     created() {
@@ -179,23 +203,29 @@ export default {
         ]
     },
     methods: {
-        init(row) {
+        init(row, deptData) {
             this.dialogVisible = true
             this.activeName = 'first'
             this.receiptMsg = {
                 code: row.responsibilityCode,
                 des: row.des,
-                stage: row.assessmentStage,
+                stage: row.stage,
+                createName: row.createName,
+                createDate: row.createTime,
                 type: row.checkCycle === 'YDKP'?'月度考评':row.checkCycle === 'JDKP'?'季度考评':'年度考评',
                 year: row.appraisalYear,
                 recStage: '有效'
             }
             this.getDetails(row.id)
             this.rowMsg = row
+
         },
         handleClick() {
             this.changeDateSelect = []
         },
+        rowClick(selection, row) {
+            this.changeDateSelect = selection
+        },
         handleCurrentChangeLeft(val) {
             this.pageLeft.currentPage = val
         },
@@ -206,7 +236,7 @@ export default {
         getDetails(id) {
             let that = this
             that.quantifiedList = []
-            apiGetevaluationdeptassessmentdetails(id).then(datas =>{
+            apiGetevaluationdeptplanDetail(id).then(datas =>{
                 if (datas && datas.data) {
                     that.quantifiedList = datas.data
                     that.pageLeft.total = datas.data.length
@@ -219,8 +249,14 @@ export default {
             that.quantifiedList.forEach(item =>{
                 let obj = {
                     id: item.id,
+                    targetName: item.targetName,
                     targetValue: item.targetValue,
-                    auditStatus: item.auditStatus
+                    baseScore: item.baseScore.toString(),
+                    evaluationCriteria: item.evaluationCriteria,
+                    auditStatus: item.auditStatus,
+                    serialNumber: item.serialNumber,
+                    completionStatus: item.completionStatus,
+                    evaluationScore: item.evaluationScore
                 }
                 params.push(obj)
             })
@@ -241,10 +277,55 @@ export default {
                 }
             })
         },
+        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'
+                        })
+                    }
+                }
+            })
+        },
         handleImport() {
-            this.$refs.importPage.upload.title = "考评目标信息导入"
+            this.$refs.importPage.upload.title = "本部部门业绩指标计划信息导入"
             this.$refs.importPage.upload.open = true
-            this.$refs.importPage.upload.url = '/responsibility-indicator-info/import'
+            this.$refs.importPage.upload.url = '/evaluation-dept-plan/import'
         },
         successImport(val) {
             this.getDetails(this.rowMsg.id)
@@ -257,25 +338,23 @@ export default {
             let colums = []
             colums = [
                 { header: 'ID', key: 'id', width: 26 },
-                { header: '单位名称', key: 'organizationShortName', width: 26 },
-                { header: '指标分类', key: 'typeName', width: 18 },
-                { header: '业务阶段', key: 'stageName', width: 18 },
-                { header: '业务属性', key: 'sectionName', width: 18 },
-                { header: '指标名称', key: 'childName', width: 18 },
-                { header: '填报部门', key: 'deptName', width: 26 },
+                { header: '业务ID', key: 'businessPlanId', width: 26 },
+                { header: '部门ID', key: 'deptId', width: 26 },
+                { header: '部门名称', key: 'deptName', width: 26 },
+                { header: '部门编码', key: 'deptCode', width: 26 },
+                { header: '排序', key: 'serialNumber', width: 26 },
+                { header: '指标名称', key: 'targetName', width: 18 },
+                { header: '目标值', key: 'targetValue', width: 18 },
+                { header: '基础分', key: 'baseScore', width: 18 },
+                { header: '完成情况', key: 'completionStatus', width: 18 },
+                { header: '评价标准', key: 'evaluationCriteria', width: 18 },
+                { header: '自评得分', key: 'evaluationScore', width: 18 }
             ]
-            if (this.activeName === 'first') {
-                colums.push(
-                    { header: '目标值', key: 'quantifiedValue', width: 18 },
-                    { header: '单位', key: 'unit', width: 18 },
-                    { header: '审核状态', key: 'state', width: 18 }
-                )
-                this.quantifiedList.forEach(item =>{
-                    if (item.updateMark) {
-                        data.push(item)
-                    }
-                })
-            }
+            this.quantifiedList.forEach(item =>{
+                if (item.updateMark) {
+                    data.push(item)
+                }
+            })
             worksheet.columns = colums
             worksheet.getRow(1).font = {
                 size: 12,
@@ -286,7 +365,7 @@ export default {
             workbook.xlsx.writeBuffer().then(buffer => {
                 //这里为type
                 const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' })
-                fileSave(blob, `数据导出.xlsx`)
+                fileSave(blob, `本部部门业绩指标考核数据导出.xlsx`)
             })
         },
     }
@@ -294,7 +373,7 @@ export default {
 </script>
 
 <style lang="less">
-.deptbusinessFrom{
+.deptstartFrom{
     .el-overlay{
         .el-dialog{
             // margin-top: 7vh;

+ 35 - 24
src/components/assessment/evaluationDeptBusinessPage.vue

@@ -16,23 +16,11 @@
             <div class="evaluationStartTableData">
                 <el-table :data="evaluationBusinessData" style="width: 100%"  @row-dblclick="getDetail">
                     <el-table-column type="selection" label="操作" align="center"></el-table-column>
-                    <el-table-column label="业务编号" prop="responsibilityCode" />
-                    <el-table-column label="考评部门" width="400">
+                    <el-table-column label="业务编号" prop="responsibilityCode" width="300"  />
+                    <el-table-column label="考评年度" prop="appraisalYear" width="200" />
+                    <el-table-column label="业务简述" prop="des">
                         <template #default="scope">
-                            <el-tooltip
-                                class="box-item"
-                                effect="customized"
-                                :content="scope.row.deptName"
-                                placement="top"
-                            >
-                                <span class="tooltipCC">{{scope.row.deptName}}</span>
-                            </el-tooltip>
-                        </template>
-                    </el-table-column>
-                    <el-table-column label="考评年度" prop="appraisalYear" width="120" />
-                    <el-table-column label="业务简述" prop="des" width="400">
-                        <template #default="scope">
-                            <div>
+                            <div v-if="!scope.row.chngeDes">
                                 <el-tooltip
                                     class="box-item"
                                     effect="customized"
@@ -42,18 +30,21 @@
                                     <span class="tooltipCC">{{scope.row.des}}</span>
                                 </el-tooltip>
                             </div>
+                            <div v-else>
+                                <el-input v-model="scope.row.des" :rows="1" 
+                                type="textarea" placeholder="请输入描述" @blur="modifyDesFn(scope.row)"></el-input>
+                            </div>
                         </template>
                     </el-table-column>
-                    <el-table-column label="流程状态" prop="assessmentStage" width="200">
-                        <!-- <template #default="scope">
-                            <p class="indicitem">{{scope.row.assessmentStage}}</p>
-                        </template> -->
+                    <el-table-column label="流程状态" prop="stage" width="200">
+                        <template #default="scope">
+                            <p class="indicitem" @click="seeStates(scope.row)">{{scope.row.stage}}</p>
+                        </template>
                     </el-table-column>
                     <el-table-column label="操作" width="100">
                         <template #default="scope">
-                            <!-- <p class="indicitem" v-if="scope.row.assessmentStage === '流程未启动'" @click="agetdeptresponsibility(scope.row)">启动</p>
-                            <p class="indicitem" v-else @click="getDetail(scope.row)">详情</p> -->
-                            <p class="indicitem" @click="getDetail(scope.row)">详情</p>
+                            <p class="indicitem" v-if="scope.row.stage === '流程未启动'" @click="agetdeptresponsibility(scope.row)">启动</p>
+                            <p class="indicitem" v-else @click="getDetail(scope.row)">详情</p>
                         </template>
                     </el-table-column>
                 </el-table>
@@ -74,7 +65,7 @@
 <script>
 import businessFromList from './evaluationDeptBusinessFrom.vue'
 import btns from '../elbuttonS.vue'
-import {apiGetevaluationdeptassessmentlist} from '../../api/api'
+import {apiGetevaluationdeptassessmentlist, apiGetdoAction} from '../../api/api'
 export default {
     components: {
         businessFromList,
@@ -112,6 +103,26 @@ export default {
                 }
             })
         },
+        agetdeptresponsibility(row) {
+            let that = this
+            let par = {
+                defKey: "bbbmyjzbkh",
+                businessKey: row.id,
+                action: "start",
+                opinion: "本部部门业绩指标考核",
+                iamCode: window.localStorage.getItem('code')
+            }
+            apiGetdoAction(par).then(datas =>{
+                if (datas && datas.data) {
+                    if (!datas.data.isOk) {
+                        that.$message({
+                            message: datas.data.msg,
+                            type: 'error'
+                        });
+                    }
+                }
+            })
+        },
         //明细
         getDetail(row) {
             this.$refs.businessFromDetail.init(row)

+ 1 - 2
src/components/assessment/evaluationDeptStartFrom.vue

@@ -152,8 +152,7 @@
 
 <script>
 import importDailog from '../importPage/importDailog.vue'
-import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiGetOrganizationRule, apiPostIsdoAction,
-apiGetindicatorListAll, apiGetbinstageList, apiGetIndicatorTypeList} from '../../api/api'
+import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiPostIsdoAction} from '../../api/api'
 import ExcelJS from 'exceljs'
 import fileSave from 'file-saver'
 import addIcon from '../../assets/btnIcon/add.png'

+ 3 - 32
src/components/assessment/evaluationDeptStartPage.vue

@@ -363,43 +363,14 @@ export default {
                 opinion: "本部部门业绩指标计划启动",
                 iamCode: window.localStorage.getItem('code')
             }
-            if (row.instId === null || row.instId === '') {
-                apiGetdoAction(par).then(datas =>{
-                    if (datas && datas.data) {
-                        if (datas.data.isOk) {
-                            that.getDeptresponsibility(row)
-                        } else {
-                            that.$message({
-                                message: datas.data.msg,
-                                type: 'error'
-                            });
-                        }
-                    }
-                })
-            } else {
-                that.getDeptresponsibility(row)
-            }
-        },
-        // 生成目标责任书
-        getDeptresponsibility(row) {
-            let that = this
-            let params = {
-                responsibilityIds: row.id
-            }
-            apiGetdeptresponsibilitygenerate(params).then(datas =>{
+            apiGetdoAction(par).then(datas =>{
                 if (datas && datas.data) {
-                    if (!datas.success) {
+                    if (!datas.data.isOk) {
                         that.$message({
-                            message: datas.message,
+                            message: datas.data.msg,
                             type: 'error'
                         });
-                    } else {
-                        that.$message({
-                            message: '考评目标已启动',
-                            type: 'success'
-                        });
                     }
-                    that.getevaluStartList()
                 }
             })
         },

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

@@ -590,7 +590,7 @@ export default {
             let colums = []
             colums = [
                 { header: 'ID', key: 'id', width: 26 },
-                { header: '单位名称', key: 'organizationName', width: 26 },
+                { header: '单位名称', key: 'organizationShortName', width: 26 },
                 { header: '指标分类', key: 'typeName', width: 18 },
                 { header: '业务阶段', key: 'stageName', width: 18 },
                 { header: '业务属性', key: 'sectionName', width: 18 },

+ 13 - 2
src/router/index.js

@@ -30,8 +30,8 @@ const routes = [
                 },
                 component: () =>
                     import(
-                        // '../components/gatewayPage.vue'
-                        '../components/gatewaynNewPage.vue'
+                        '../components/gatewayPage.vue'
+                        // '../components/gatewaynNewPage.vue'
                     ),
             },
             {
@@ -141,6 +141,17 @@ const routes = [
                             ),
                     },
                     {
+                        path: '/assessment/evaluationBenchmarkingIndic',
+                        name: 'evaluationBenchmarkingIndic',
+                        meta: {
+                            title: '考评指标对标',
+                        },
+                        component: () =>
+                            import(
+                                '../components/assessment/evaluationBenchmarkingIndicPage.vue'
+                            ),
+                    },
+                    {
                         path: '/assessment/evaluationReport',
                         name: 'evaluationReport',
                         meta: {

+ 2 - 2
src/utils/baseUrl.js

@@ -17,8 +17,8 @@ switch (process.env.NODE_ENV) {
  
     case 'production': 
         // baseUrl.ROOT = "http://123.60.219.66:28800/" 
-        baseUrl.ROOT = "http://10.65.78.23:28800/" //测试环境
-        // baseUrl.ROOT = "http://10.65.78.81:28800/"  // 正式环境
+        // baseUrl.ROOT = "http://10.65.78.23:28800/" //测试环境
+        baseUrl.ROOT = "http://10.65.78.81:28800/"  // 正式环境
         break 
 }