Browse Source

新增年度目标考评列表,启动,详情页面,服务联调;配合后台修改问题

SunZehao 2 years ago
parent
commit
95aa7ee21b

+ 56 - 0
src/api/api.js

@@ -78,6 +78,14 @@ export function apiGetdeptresponDetail(params) {
 export function apiGetindicatorsaveBatchDto(params) {
     return httpRequest.post('responsibility-indicator-info/saveBatchDto', params)
 }
+//----"考评启动-删除"
+export function apiPostresponsiDelete(params) {
+    return httpRequest({
+        url: `dept-responsibility/remove/${params}`,
+        method: 'post'
+    })
+}
+
 //----单位/部门考评配置所有数据
 export function apiGetOrganizationListAll(params) {
     return httpRequest({
@@ -94,6 +102,54 @@ export function apiGetAssessmentList(params) {
         params: params
     })
 }
+//月度目标考评页面和年度目标考评页面list
+export function apiGetOrgEvaluationList(params) {
+    return httpRequest({
+        url: 'organization-evaluation/list',
+        method: 'get',
+        params: params
+    })
+}
+//单位月度考评记录-生成
+export function apiGetgenerateUnitMonthEvaluation(params) {
+    return httpRequest({
+        url: 'organization-evaluation/generateUnitMonthEvaluation',
+        method: 'post',
+        params: params
+    })
+}
+//单位年度考评记录-生成
+export function apiGetgenerateUnitYearEvaluation(params) {
+    return httpRequest({
+        url: 'organization-evaluation/generateUnitEvaluation',
+        method: 'post',
+        params: params
+    })
+}
+//单位/部门(月 、年)考评记录-保存or修改 
+export function apiPostOrgEvaSave(params) {
+    return httpRequest.post('organization-evaluation/save', params)
+}
+//月/年考评指标明细
+export function apiGetOrgEvalInfoList(params) {
+    return httpRequest({
+        url: 'organization-evaluation-info/finishValueList',
+        method: 'get',
+        params: params
+    })
+}
+//------月/年考评-详情-修改
+export function apiGetOrgEvaInfoBatchDto(params) {
+    return httpRequest.post('organization-evaluation-info/saveBatchDto', params)
+}
+//----"月/年考评-删除"
+export function apiPostOrgevaluationDelete(params) {
+    return httpRequest({
+        url: `organization-evaluation/remove/${params}`,
+        method: 'post'
+    })
+}
+
 //----------------------------------------考评体系配置------------------------------------------------
 //----考评指标管理
 //----"指标-查询"

+ 27 - 25
src/components/assessment/evaluationStartPage.vue

@@ -17,7 +17,7 @@
                 <btns
                 :showImport="false"
                 :showSave="false"
-                :disDelete="deleteSelect.length === 0"
+                :disDelete="changeDateSelect.length === 0"
                 :disExport="true"
                 @handleAdd="handleAdd"
                 @handleDelete="handleDelete"
@@ -25,7 +25,7 @@
                 ></btns>
             </div>
             <div class="evaluationStartTableData">
-                <el-table :data="evaluationStartData" style="width: 100%" @select="rowClick" @select-all="allSelect">
+                <el-table :data="evaluationStartData" style="width: 100%" @select="rowClick" @select-all="rowClick">
                     <el-table-column type="selection" label="操作" align="center"></el-table-column>
                     <el-table-column label="业务编号" prop="responsibilityCode" width="300" />
                     <el-table-column label="考评单位" prop="organizationName" width="330" />
@@ -126,7 +126,8 @@
 <script>
 import startFromList from './evaluationStartFrom.vue'
 import btns from '../elbuttonS.vue'
-import {apiGetdeptresponsibilityList, apiGetdeptresponsibilitySave,apiGetdeptresponsibilitygenerate, apiGetdatadictionaryList} from '../../api/api'
+import {apiGetdeptresponsibilityList, apiGetdeptresponsibilitySave,
+apiGetdeptresponsibilitygenerate, apiGetdatadictionaryList, apiPostresponsiDelete} from '../../api/api'
 export default {
     components: {
         startFromList,
@@ -326,33 +327,34 @@ export default {
             this.getevaluStartList()
         },
         rowClick(selection, row) {
-            this.windframradio = {}
-            this.deleteSelect = []
-            this.changeDateSelect = []
-            if (selection.length === 1) { 
-                this.windframradio = selection[0]
-            }
-            if (selection.length > 0) {
-                selection.forEach(item =>{
-                    this.deleteSelect.push(item.itemNo)
-                    this.changeDateSelect.push(item.itemNo)
-                })
-            }
-        },
-        allSelect(selection) {
-            this.deleteSelect = []
-            this.changeDateSelect = []
-            if (selection.length > 0) {
-                selection.forEach(item =>{
-                    this.deleteSelect.push(item.itemNo)
-                    this.changeDateSelect.push(item.itemNo)
-                })
-            }
+            this.changeDateSelect = selection
         },
         handleAdd() {
             this.dialogVisible = true
             this.title = '新建表单填报'
         },
+        //删除
+        handleDelete() {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                let paramsArr = []
+                that.changeDateSelect.forEach(it =>{
+                    paramsArr.push(it.id)
+                })
+                apiPostresponsiDelete(paramsArr.join(',')).then(datas =>{
+                    that.$message({
+                        type: 'success',
+                        message: '删除成功!'
+                    });
+                    that.getevaluStartList()
+                    that.changeDateSelect = []
+                })
+            })
+        },  
     }
 }
 </script>

+ 361 - 0
src/components/assessment/evaluationYearFrom.vue

@@ -0,0 +1,361 @@
+<template>
+    <div class="startFrom">
+        <el-dialog title="月/季度考评详情" v-model="dialogVisible" width="80vw" :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.creator}}</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">单据状态:</span>
+                            <span>{{receiptMsg.recStage}}</span>
+                        </div>
+                    </el-col>
+                </el-row>
+                <div class="detaTableBtns">
+                    <div class="tableBtn add">
+                        <img :src="addIcon" alt="">
+                        <span>新增</span>
+                    </div>
+                    <div class="tableBtn save" @click="saveDetail">
+                        <img :src="saveIcon" alt="">
+                        <span>保存</span>
+                    </div>
+                    <!-- <div class="tableBtn edit">
+                        <img :src="editIcon" alt="">
+                        <span>新增</span>
+                    </div> -->
+                    <div class="tableBtn delete">
+                        <img :src="deleteIcon" alt="">
+                        <span>删除</span>
+                    </div>
+                </div>
+                <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+                    <el-tab-pane label="考评指标项内容" name="first">
+                        <el-table :data="quantifiedList" style="width: 100%" @select="rowClick" @select-all="rowClick">
+                            <el-table-column type="selection" label="操作" align="center"></el-table-column>
+                            <el-table-column type="index" label="序号" width="80" />
+                            <el-table-column label="业务类别" prop="stageName" />
+                            <el-table-column label="所属板块" prop="sectionName" />
+                            <el-table-column label="单位名称" prop="organizationName" width="300" />
+                            <el-table-column label="填报部门"  prop="deptName" width="260" />
+                            <el-table-column label="指标分类" prop="typeName" />
+                            <!-- <el-table-column label="指标项" prop="optionName" /> -->
+                            <el-table-column label="计划值">
+                                <template #default="scope">
+                                    <el-input-number v-model="scope.row.quantifiedValue" :precision="2" :step="0.1" :min="1" />
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="单位" prop="unit" />
+                        </el-table>
+                    </el-tab-pane>
+                    <el-tab-pane label="考评评测性指标内容" name="second">
+                        <el-table :data="nonQuantifiedList" style="width: 100%">
+                            <el-table-column type="index" label="序号" width="80" />
+                            <el-table-column label="业务类别" prop="stageName" />
+                            <el-table-column label="所属板块" prop="sectionName" />
+                            <el-table-column label="单位名称" prop="organizationName" width="300" />
+                            <el-table-column label="填报部门" prop="deptName" width="260" />                                
+                            <el-table-column label="指标分类" prop="typeName" />
+                            <!-- <el-table-column label="指标项" prop="optionName" /> -->
+                            <el-table-column label="计划值">
+                                <template #default="scope">
+                                    <el-input v-model="scope.row.nonQuantifiedValue" />
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                    </el-tab-pane>
+                </el-tabs>
+                
+            </div>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" @click="dialogVisible = false">取 消</el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import {apiGetOrgEvalInfoList,apiGetOrgEvaInfoBatchDto} from '../../api/api'
+import addIcon from '../../assets/btnIcon/add.png'
+import saveIcon from '../../assets/btnIcon/save.png'
+import editIcon from '../../assets/btnIcon/edit.png'
+import deleteIcon from '../../assets/btnIcon/delete.png'
+export default {
+    data() {
+        return {
+            dialogVisible: false,
+            activeName: 'first',
+            quantifiedList: [],
+            nonQuantifiedList: [],
+            changeDateSelect: [],
+            receiptMsg: {
+                code: '',
+                des: '',
+                stage: '',
+                creator: '',
+                createDate: '',
+                type: '',
+                year: '',
+                recStage: ''
+            },
+            addIcon: addIcon,
+            saveIcon: saveIcon,
+            editIcon: editIcon,
+            deleteIcon: deleteIcon,
+            rowMsg: {}
+        }
+    },
+    created() {
+    },
+    methods: {
+        init(row) {
+            this.dialogVisible = true
+            this.activeName = 'first'
+            this.receiptMsg = {
+                code: row.organizationEvaluationCode,
+                des: row.des,
+                stage: row.stage,
+                creator: row.createBy,
+                createDate: row.createTime,
+                type: row.organizationType,
+                year: row.year,
+                recStage: '有效'
+            }
+            this.getDetails(row.id)
+            this.rowMsg = row
+        },
+        handleClick() {
+            this.changeDateSelect = []
+        },
+        rowClick(selection, row) {
+            this.changeDateSelect = selection
+        },
+        //获取详情
+        getDetails(id) {
+            let that = this
+            let params = {
+                organizationEvaluationId: id
+            }
+            apiGetOrgEvalInfoList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.quantifiedList = datas.data.quantifiedList
+                    that.nonQuantifiedList = datas.data.nonQuantifiedList
+                }
+            })
+        },
+        saveDetail() {
+            let that = this
+            let params = []
+            if (that.activeName === 'first') {
+                that.quantifiedList.forEach(item =>{
+                    let obj = {
+                        id: item.id,
+                        isQuantified: '是',
+                        quantifiedValue: item.quantifiedValue
+                    }
+                    params.push(obj)
+                })
+            } else {
+                that.nonQuantifiedList.forEach(item =>{
+                    let obj = {
+                        id: item.id,
+                        isQuantified: '否',
+                        nonQuantifiedValue: item.nonQuantifiedValue
+                    }
+                    params.push(obj)
+                })
+            }
+            apiGetOrgEvaInfoBatchDto(params).then(datas =>{
+                if (datas && datas.success) {
+                    that.$message({
+                        message: '保存成功',
+                        type: 'success'
+                    });
+                    that.getDetails(that.rowMsg.id)
+                }
+            })
+        }
+    }
+}
+</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%;
+                    }
+                    .detaTableBtns{
+                        display: flex;
+                        width: 500px;
+                        position: relative;
+                        top: 32px;
+                        left: 66vw;
+                        z-index: 11111;
+                        .tableBtn {
+                            display: flex;
+                            margin-right: 30px;
+                            img{
+                                margin-right: 5px;
+                                margin-top: 1px;
+                            }
+                            span{
+                                font-size: 14px;
+                                font-family: Microsoft YaHei;
+                                font-weight: 400;
+                            }
+                        }
+                        .add{
+                            cursor: no-drop;
+                            span{
+                                color: #3B7AD1;
+                            }
+                        }
+                        .save{
+                            cursor: pointer;
+                            span{
+                                color: #50C14E;
+                            }
+                        }
+                        .edit{
+                            span{
+                                color: #F5A623;
+                            }
+                        }
+                        .delete{
+                            cursor: no-drop;
+                            span{
+                                color: #F65177;
+                            }
+                        }
+                    }
+                    .el-tabs{
+                        .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;
+                                }
+                            }
+                        }
+                        
+                        .el-table{
+                            .el-table__body-wrapper{
+                                height: 40vh;
+                            }
+                            .el-table__row{
+                                .cell{
+                                    .el-input{
+                                        height: 24px;
+                                        .el-input__inner{
+                                            height: 24px;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            .el-dialog__footer{
+                .dialog-footer{
+                    text-align: center;
+                }
+            }
+        }
+    }
+    
+}
+</style>

+ 450 - 0
src/components/assessment/evaluationYearPage.vue

@@ -0,0 +1,450 @@
+<template>
+    <div class="evaluationYear">
+        <div class="evaluationYearBtn">
+            <div class="collectSeach">
+                <div class="exceed">
+                    <span class="exceedSpan">业务编号:</span>
+                    <el-input v-model="rescode" placeholder="请输入业务编号"></el-input>
+                </div>
+                <div class="exceed">
+                    <span class="exceedSpan">业务简述:</span>
+                    <el-input v-model="resDes" placeholder="请输入业务简述"></el-input>
+                </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"
+                :showSave="false"
+                :disDelete="changeDateSelect.length === 0"
+                :disExport="true"
+                @handleAdd="handleAdd"
+                @handleDelete="handleDelete"
+                @handleExport="handleExport"
+                ></btns>
+            </div>
+            <div class="evaluationYearTableData">
+                <el-table :data="evaluationYearData" style="width: 100%" @select="rowClick" @select-all="rowClick">
+                    <el-table-column type="selection" label="操作" align="center"></el-table-column>
+                    <el-table-column label="业务编号" prop="organizationEvaluationCode" width="300" />
+                    <el-table-column label="考评单位" prop="organizationName" width="330" />
+                    <el-table-column label="业务类别">
+                        <template #default="scope">
+                            <span v-if="scope.row.checkCycle === 'YDKP'" style="font-size: 12px;">月度考评</span>
+                            <span v-else-if="scope.row.checkCycle === 'JDKP'" style="font-size: 12px;">季度考评</span>
+                            <span v-else style="font-size: 12px;">年度考评</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="年度" prop="year" />
+                    <el-table-column label="月度/季度" prop="month" />
+                    <el-table-column label="流程状态" prop="stage" />
+                    <el-table-column label="业务简述" prop="des" />
+                    <!-- <el-table-column label="综合得分" prop="checkCycle" /> -->
+                    <el-table-column label="考核开始时间" prop="beginDate" />
+                    <el-table-column label="考核截止时间" prop="endDate" />
+                    <!-- <el-table-column label="考评排名" prop="beginDate" />
+                    <el-table-column label="考评评级" prop="endDate" /> -->
+                    <el-table-column label="操作">
+                        <template #default="scope">
+                            <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>
+                <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 :title="title" v-model="dialogVisible" width="600px" :close-on-click-modal="false">
+                <div class="periodFrom">
+                    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
+                        <el-form-item label="考评类别" prop="organizationType">
+                            <el-select v-model="ruleForm.organizationType" placeholder="请选择考评类别">
+                                <el-option
+                                v-for="item in organizationType"
+                                :key="item.code"
+                                :label="item.label"
+                                :value="item.code">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>                            
+                        <el-form-item label="考评周期" prop="evaluationCycle">
+                            <el-select v-model="ruleForm.evaluationCycle" placeholder="请选择考评周期">
+                                <el-option
+                                v-for="item in periodData"
+                                :key="item.keyValue"
+                                :label="item.keyName"
+                                :value="item.keyValue"
+                                :disabled="item.keyValue === 'JDKP' || item.keyValue === 'YDKP'">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <!-- <el-form-item label="考评规则" prop="evaluateRule">
+                            <el-select v-model="ruleForm.evaluateRule"  placeholder="请选择考评规则">
+                                <el-option
+                                v-for="item in ruleDataAll"
+                                :key="item.id"
+                                :label="item.evaluateRuleName"
+                                :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item> -->
+                        <el-form-item label="年份" prop="year">
+                            <el-date-picker
+                                v-model="ruleForm.year"
+                                type="year"
+                                value-format="YYYY"
+                                placeholder="请选择年份"
+                                />
+                        </el-form-item>
+                        <el-form-item label="描述" prop="desc">
+                            <el-input v-model="ruleForm.desc" :rows="5" type="textarea" placeholder="请输入描述"></el-input>
+                        </el-form-item>
+                    </el-form>
+                </div>
+                <template #footer>
+                    <span class="dialog-footer">
+                        <el-button @click="dialogVisible = false">取 消</el-button>
+                        <el-button type="primary" @click="saveevaluaStart('ruleForm')">确 定</el-button>
+                    </span>
+                </template>
+            </el-dialog>
+        </div>
+        <start-from-list ref="startFromDetail"></start-from-list>
+    </div>
+</template>
+
+<script>
+import startFromList from './evaluationYearFrom.vue'
+import btns from '../elbuttonS.vue'
+import {apiGetOrgEvaluationList, apiPostOrgEvaSave,apiPostOrgevaluationDelete,
+apiGetgenerateUnitYearEvaluation, apiGetdatadictionaryList} from '../../api/api'
+export default {
+    components: {
+        startFromList,
+        btns
+    },
+    data() {
+        return {
+            dialogVisible: false,
+            title: '',
+            windframradio: {},
+            deleteSelect: [],
+            changeDateSelect: [],
+            evaluationYearData:[],
+            page:{
+                pagesize: 12,
+                currentPage: 1,
+                total: 0
+            },
+            ruleForm: {
+                organizationType: '',
+                evaluationCycle: '',
+                evaluateRule: '',
+                year: '',
+                month: 0,
+                desc: ''
+            },
+            rules: {
+                organizationType: [
+                    { required: true, message: '请选择考评类别', trigger: 'change' }
+                ],
+                evaluationCycle: [
+                    { required: true, message: '请选择考评周期', trigger: 'blur' }
+                ],
+                evaluateRule: [
+                    { required: true, message: '请选择考评规则', trigger: 'change' }
+                ],
+                year: [
+                    { required: true, message: '请选择年份', trigger: 'change' }
+                ],
+                desc: [
+                    { required: true, message: '请输入描述', trigger: 'blur' }
+                ]
+            },
+            organizationType: [],
+            periodData: [],
+            ruleDataAll: [],
+            rescode: '',
+            resDes: ''
+        }
+    },
+    created() {
+        this.organizationType = [
+            {
+                label: '单位考评',
+                code: 'DWKP'
+            },
+            {
+                label: '部门考评',
+                code: 'BMKP'
+            }
+        ]
+        this.getevaluStartList()
+        this.getPeriodData()
+    },
+    methods:{
+        // 查询列表页面
+        getevaluStartList(type) {
+            let that = this
+            let params = {
+                pageNum: that.page.currentPage,
+                pageSize: that.page.pagesize,
+                checkCycle: 'NDKP'
+            }
+            if (type) {
+                params.organizationEvaluationCode = that.rescode
+                params.des = that.resDes
+            }
+            apiGetOrgEvaluationList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.evaluationYearData = datas.data.records
+                    that.page.total = datas.data.total
+                }
+            })
+        },
+        //考评周期
+        getPeriodData() {
+            let that = this
+            let params = {
+                superKey: 'KPZQ0001'
+            }
+            apiGetdatadictionaryList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.periodData = datas.data
+                }
+            })
+        },
+        saveevaluaStart(formName) {
+            let that = this
+            that.$refs[formName].validate((valid) => {
+                if (valid) {
+                    that.saveAndEditIndicatorData()
+                }
+            });
+        },
+        //新增/修改考评启动数据
+        saveAndEditIndicatorData() {
+            let that = this
+            let params = {
+                organizationType: that.ruleForm.organizationType,
+                checkCycle: that.ruleForm.evaluationCycle,
+                year: that.ruleForm.year,
+                des: that.ruleForm.desc
+            }
+            if (that.isSave) {
+                params.id = this.evalradio.id
+            }
+            apiPostOrgEvaSave(params).then(datas =>{
+                if (!datas.success) {
+                    that.$message({
+                        message: datas.message,
+                        type: 'error'
+                    });
+                } else {
+                    if (!that.isSave) {
+                        that.$message({
+                            message: '考评规则新增成功',
+                            type: 'success'
+                        });
+                    } else {
+                        that.$message({
+                            message: '考评规则修改成功',
+                            type: 'success'
+                        });
+                    }
+                    that.dialogVisible = false
+                    that.changeDateSelect = []
+                    that.getevaluStartList()
+                }
+            })
+        },
+        agetdeptresponsibility(row) {
+            let that = this
+            let params = {
+                evaluationIds: row.id
+            }
+            apiGetgenerateUnitYearEvaluation(params).then(datas =>{
+                if (datas && datas.data) {
+                    if (!datas.success) {
+                        that.$message({
+                            message: datas.message,
+                            type: 'error'
+                        });
+                    } else {
+                        that.$message({
+                            message: '考评规则已启动',
+                            type: 'success'
+                        });
+                        
+                    }
+                }
+            })
+        },
+        //明细
+        getDetail(row) {
+            this.$refs.startFromDetail.init(row)
+        },
+        getSeachData() {
+            this.page.currentPage = 1
+            this.getevaluStartList('seach')
+        },
+        resetSeach() {
+            this.page.currentPage = 1
+            this.rescode = ''
+            this.resDes = ''
+            this.getevaluStartList()
+        },
+        handleSizeChange(val){
+            this.page.pagesize = val
+            this.getevaluStartList()
+        },
+        handleCurrentChange(val){
+            this.page.currentPage =val
+            this.getevaluStartList()
+        },
+        rowClick(selection, row) {
+            this.changeDateSelect = selection
+        },
+        handleAdd() {
+            this.dialogVisible = true
+            this.title = '新建表单填报'
+        },
+        //删除
+        handleDelete() {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                let paramsArr = []
+                that.changeDateSelect.forEach(it =>{
+                    paramsArr.push(it.id)
+                })
+                apiPostOrgevaluationDelete(paramsArr.join(',')).then(datas =>{
+                    that.$message({
+                        type: 'success',
+                        message: '删除成功!'
+                    });
+                    that.getevaluStartList()
+                    that.changeDateSelect = []
+                })
+            })
+        }, 
+    }
+}
+</script>
+
+<style lang="less">
+.evaluationYear{
+    .evaluationYearBtn{
+        .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: 10px;
+                    }
+                    .el-input{
+                        margin-right:10px;
+                        height: 40px;
+                        .el-input__inner{
+                            height:40px;
+                        }
+                        .el-input__suffix{
+                            .el-select__caret{
+                                line-height:30px;
+                            }
+                        }
+                    }
+                }
+                .el-select{
+                    margin-right:10px;
+                    .el-input__inner{
+                        height:30px;
+                    }
+                    .el-input__suffix{
+                        .el-select__caret{
+                            line-height:30px;
+                        }
+                    }
+                }
+        }
+        span{
+            font-size:14px;
+        }
+        .PeriodBtn{
+            display: flex;
+                justify-content: end;
+                padding: 20px 0;
+        }
+        .el-button{
+            height: 30px;
+            // width:100px;
+            padding: 0 20px ;
+            // padding-top: 8px;
+            span{
+                margin:0;
+            }
+        }
+        .evaluationYearTableData{
+            .el-table{
+                .el-table__body-wrapper{
+                    height: 64vh !important;
+                }
+                .el-input__inner{
+                    height: 30px !important;
+                }
+                .el-radio__label{
+                    display: none;
+                }
+                .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;
+            }
+        }
+        .el-overlay{
+            .el-dialog{
+                .el-dialog__body{
+                    padding: 30px 60px 30px 20px !important;
+                    .periodFrom{
+                        .el-select, .el-input{
+                            width: 100%;
+                        }
+                        .el-input{
+                            height: 30px;
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

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

@@ -111,7 +111,7 @@
 </template>
 
 <script>
-import {apiGetdeptresponDetail,apiGetindicatorsaveBatchDto} from '../../api/api'
+import {apiGetOrgEvalInfoList,apiGetOrgEvaInfoBatchDto} from '../../api/api'
 import addIcon from '../../assets/btnIcon/add.png'
 import saveIcon from '../../assets/btnIcon/save.png'
 import editIcon from '../../assets/btnIcon/edit.png'
@@ -148,7 +148,7 @@ export default {
             this.dialogVisible = true
             this.activeName = 'first'
             this.receiptMsg = {
-                code: row.responsibilityCode,
+                code: row.organizationEvaluationCode,
                 des: row.des,
                 stage: row.stage,
                 creator: row.createBy,
@@ -170,9 +170,9 @@ export default {
         getDetails(id) {
             let that = this
             let params = {
-                deptResponsibilityIds: id
+                organizationEvaluationId: id
             }
-            apiGetdeptresponDetail(params).then(datas =>{
+            apiGetOrgEvalInfoList(params).then(datas =>{
                 if (datas && datas.data) {
                     that.quantifiedList = datas.data.quantifiedList
                     that.nonQuantifiedList = datas.data.nonQuantifiedList
@@ -201,7 +201,7 @@ export default {
                     params.push(obj)
                 })
             }
-            apiGetindicatorsaveBatchDto(params).then(datas =>{
+            apiGetOrgEvaInfoBatchDto(params).then(datas =>{
                 if (datas && datas.success) {
                     that.$message({
                         message: '保存成功',

+ 38 - 48
src/components/assessment/monthQuarterPage.vue

@@ -17,7 +17,7 @@
                 <btns
                 :showImport="false"
                 :showSave="false"
-                :disDelete="deleteSelect.length === 0"
+                :disDelete="changeDateSelect.length === 0"
                 :disExport="true"
                 @handleAdd="handleAdd"
                 @handleDelete="handleDelete"
@@ -25,9 +25,9 @@
                 ></btns>
             </div>
             <div class="monthQuarterTableData">
-                <el-table :data="monthQuarterData" style="width: 100%" @select="rowClick" @select-all="allSelect">
+                <el-table :data="monthQuarterData" style="width: 100%" @select="rowClick" @select-all="rowClick">
                     <el-table-column type="selection" label="操作" align="center"></el-table-column>
-                    <el-table-column label="业务编号" prop="responsibilityCode" width="300" />
+                    <el-table-column label="业务编号" prop="organizationEvaluationCode" width="300" />
                     <el-table-column label="考评单位" prop="organizationName" width="330" />
                     <el-table-column label="业务类别">
                         <template #default="scope">
@@ -65,7 +65,7 @@
                 <div class="periodFrom">
                     <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
                         <el-form-item label="考评类别" prop="organizationType">
-                            <el-select v-model="ruleForm.organizationType" placeholder="请选择考评类别" @change="(val)=>chooseRule(val,'类别')">
+                            <el-select v-model="ruleForm.organizationType" placeholder="请选择考评类别">
                                 <el-option
                                 v-for="item in organizationType"
                                 :key="item.code"
@@ -75,7 +75,7 @@
                             </el-select>
                         </el-form-item>                            
                         <el-form-item label="考评周期" prop="evaluationCycle">
-                            <el-select v-model="ruleForm.evaluationCycle" placeholder="请选择考评周期" @change="(val)=>chooseRule(val,'周期')">
+                            <el-select v-model="ruleForm.evaluationCycle" placeholder="请选择考评周期">
                                 <el-option
                                 v-for="item in periodData"
                                 :key="item.keyValue"
@@ -103,7 +103,7 @@
                                 placeholder="请选择年份"
                                 />
                         </el-form-item>
-                        <el-form-item label="月份" v-if="!isShowYear">
+                        <el-form-item label="月份">
                             <el-input-number v-model="ruleForm.month" :min="1" :max="12" />
                         </el-form-item>
                         <el-form-item label="描述" prop="desc">
@@ -126,7 +126,8 @@
 <script>
 import startFromList from './monthQuarterFrom.vue'
 import btns from '../elbuttonS.vue'
-import {apiGetdeptresponsibilityList, apiGetdeptresponsibilitySave,apiGetdeptresponsibilitygenerate, apiGetdatadictionaryList} from '../../api/api'
+import {apiGetOrgEvaluationList, apiPostOrgEvaSave,apiPostOrgevaluationDelete,
+apiGetgenerateUnitMonthEvaluation, apiGetdatadictionaryList} from '../../api/api'
 export default {
     components: {
         startFromList,
@@ -173,7 +174,6 @@ export default {
             organizationType: [],
             periodData: [],
             ruleDataAll: [],
-            isShowYear: true,
             rescode: '',
             resDes: ''
         }
@@ -199,13 +199,13 @@ export default {
             let params = {
                 pageNum: that.page.currentPage,
                 pageSize: that.page.pagesize,
-                chechCycle: 'YDKP,JDKP'
+                checkCycle: 'YDKP,JDKP'
             }
             if (type) {
-                params.responsibilityCode = that.rescode
+                params.organizationEvaluationCode = that.rescode
                 params.des = that.resDes
             }
-            apiGetdeptresponsibilityList(params).then(datas =>{
+            apiGetOrgEvaluationList(params).then(datas =>{
                 if (datas && datas.data) {
                     that.monthQuarterData = datas.data.records
                     that.page.total = datas.data.total
@@ -224,15 +224,6 @@ export default {
                 }
             })
         },
-        chooseRule(val, type) {
-            if (type === '周期') {
-                if (val === 'YDKP' || val === 'JDKP') {
-                    this.isShowYear = false
-                } else {
-                    this.isShowYear = true
-                }
-            }
-        },
         saveevaluaStart(formName) {
             let that = this
             that.$refs[formName].validate((valid) => {
@@ -249,15 +240,13 @@ export default {
                 checkCycle: that.ruleForm.evaluationCycle,
                 // organizationEvaluationRuleId: that.ruleForm.evaluateRule,
                 year: that.ruleForm.year,
+                month: that.ruleForm.month,
                 des: that.ruleForm.desc
             }
             if (that.isSave) {
                 params.id = this.evalradio.id
             }
-            if (!that.isShowYear) {
-                params.month = that.ruleForm.month
-            }
-            apiGetdeptresponsibilitySave(params).then(datas =>{
+            apiPostOrgEvaSave(params).then(datas =>{
                 if (!datas.success) {
                     that.$message({
                         message: datas.message,
@@ -284,9 +273,9 @@ export default {
         agetdeptresponsibility(row) {
             let that = this
             let params = {
-                responsibilityIds: row.id
+                evaluationIds: row.id
             }
-            apiGetdeptresponsibilitygenerate(params).then(datas =>{
+            apiGetgenerateUnitMonthEvaluation(params).then(datas =>{
                 if (datas && datas.data) {
                     if (!datas.success) {
                         that.$message({
@@ -326,33 +315,34 @@ export default {
             this.getevaluStartList()
         },
         rowClick(selection, row) {
-            this.windframradio = {}
-            this.deleteSelect = []
-            this.changeDateSelect = []
-            if (selection.length === 1) { 
-                this.windframradio = selection[0]
-            }
-            if (selection.length > 0) {
-                selection.forEach(item =>{
-                    this.deleteSelect.push(item.itemNo)
-                    this.changeDateSelect.push(item.itemNo)
-                })
-            }
-        },
-        allSelect(selection) {
-            this.deleteSelect = []
-            this.changeDateSelect = []
-            if (selection.length > 0) {
-                selection.forEach(item =>{
-                    this.deleteSelect.push(item.itemNo)
-                    this.changeDateSelect.push(item.itemNo)
-                })
-            }
+            this.changeDateSelect = selection
         },
         handleAdd() {
             this.dialogVisible = true
             this.title = '新建表单填报'
         },
+        //删除
+        handleDelete() {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                let paramsArr = []
+                that.changeDateSelect.forEach(it =>{
+                    paramsArr.push(it.id)
+                })
+                apiPostOrgevaluationDelete(paramsArr.join(',')).then(datas =>{
+                    that.$message({
+                        type: 'success',
+                        message: '删除成功!'
+                    });
+                    that.getevaluStartList()
+                    that.changeDateSelect = []
+                })
+            })
+        }, 
     }
 }
 </script>

+ 13 - 2
src/router/index.js

@@ -44,7 +44,7 @@ const routes = [
                         path: '/assessment/evaluationStart',
                         name: 'evaluationStart',
                         meta: {
-                            title: '考评启动',
+                            title: '考评目标启动',
                         },
                         component: () =>
                             import(
@@ -55,13 +55,24 @@ const routes = [
                         path: '/assessment/monthQuarter',
                         name: 'monthQuarter',
                         meta: {
-                            title: '月/季度考评',
+                            title: '月/季度目标考评',
                         },
                         component: () =>
                             import(
                                 '../components/assessment/monthQuarterPage.vue'
                             ),
                     },
+                    {
+                        path: '/assessment/evaluationYear',
+                        name: 'evaluationYear',
+                        meta: {
+                            title: '年度目标考评',
+                        },
+                        component: () =>
+                            import(
+                                '../components/assessment/evaluationYearPage.vue'
+                            ),
+                    },
                 ]
             },
             {

+ 1 - 1
src/views/homePage.vue

@@ -81,7 +81,7 @@ export default {
                         name: '月/季度目标考评'
                     },
                     {
-                        index: '',
+                        index: '/assessment/evaluationYear',
                         name: '年度目标考评'
                     },
                     {