فهرست منبع

修改考评体系配置的业务属性和业务阶段服务联调;考评启动的新增,与启动的服务联调;

SunZehao 2 سال پیش
والد
کامیت
d65475f30c

+ 52 - 1
src/api/api.js

@@ -45,8 +45,43 @@ export function apiGetWeather(params) {
     })
 }
 
-//----------------------------------------对标业务------------------------------------------------
 //----------------------------------------考评业务------------------------------------------------
+//部门目标责任表
+export function apiGetdeptresponsibilityList(params) {
+    return httpRequest({
+        url: 'dept-responsibility/list',
+        method: 'get',
+        params: params
+    })
+}
+//----"部门目标责任表-保存or修改"
+export function apiGetdeptresponsibilitySave(params) {
+    return httpRequest.post('dept-responsibility/save', params)
+}
+//------考评启动-生成
+export function apiGetdeptresponsibilitygenerate(params) {
+    return httpRequest({
+        url: 'dept-responsibility/generate',
+        method: 'post',
+        params: params
+    })
+}
+//----单位/部门考评配置所有数据
+export function apiGetOrganizationListAll(params) {
+    return httpRequest({
+        url: 'organization-evaluation-rule/listAll',
+        method: 'get',
+        params: params
+    })
+}
+//月/季度考评列表查询
+export function apiGetAssessmentList(params) {
+    return httpRequest({
+        url: 'assessment/list',
+        method: 'get',
+        params: params
+    })
+}
 //----------------------------------------考评体系配置------------------------------------------------
 //----考评指标管理
 //----"指标-查询"
@@ -131,6 +166,22 @@ export function apiGetdatadictionaryList(params) {
         params: params
     })
 }
+//阶段
+export function apiGetbinstageList(params) {
+    return httpRequest({
+        url: 'bin-stage/list',
+        method: 'get',
+        params: params
+    })
+}
+//属性
+export function apiGetbinsectionList(params) {
+    return httpRequest({
+        url: 'bin-section/list',
+        method: 'get',
+        params: params
+    })
+}
 //---------"指标项条目-查询"
 export function apiGetdataZBXList() {
     return httpRequest({

+ 231 - 206
src/components/assessment/evaluationStartFrom.vue

@@ -1,166 +1,176 @@
 <template>
     <div class="startFrom">
-        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm" :validate-on-rule-change="false">
-            <p class="starttitleSty">单据信息:</p>
-            <el-row class="danjuMsg">
-                <el-col :span="6">
-                    <div class="danjuMsg_data">
-                        <span class="data_tit">业务编号:</span>
-                        <span>VB131315</span>
-                    </div>
-                    <div class="danjuMsg_data">
-                        <span class="data_tit">流程状态:</span>
-                        <span>进行中</span>
-                    </div>
-                </el-col>
-                <el-col :span="6">
-                    <div class="danjuMsg_data">
-                        <span class="data_tit">填报日期:</span>
-                        <span>2023-02-23</span>
-                    </div>
-                    <div class="danjuMsg_data">
-                        <span class="data_tit">制单人员:</span>
-                        <span>XXX</span>
-                    </div>
-                </el-col>
-                <el-col :span="6">
-                    <div class="danjuMsg_data">
-                        <span class="data_tit">业务简述:</span>
-                        <span>国电电力2023年关键业绩指标</span>
-                    </div>
-                    <div class="danjuMsg_data">
-                        <span class="data_tit">填报单位:</span>
-                        <span>XXX</span>
-                    </div>
-                </el-col>
-            </el-row>
-            <p class="starttitleSty">基本信息:</p>
-            <el-row class="danjuMsg">
-                <el-col :span="6">
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit">单位名称:</span>
-                        <el-form-item prop="">
-                            <el-input v-model="input" placeholder="Please input" />
-                        </el-form-item>
-                    </div>
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit" style="display:inline-block;width:60px">年度:</span>
-                        <el-form-item prop="">
-                            <el-input v-model="input" placeholder="Please input" />
-                        </el-form-item>
-                    </div>
-                </el-col>
-                <el-col :span="6">
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit data_tit_wd">业务类别:</span>
-                        <el-form-item prop="">
-                            <el-input v-model="input" placeholder="Please input" />
-                        </el-form-item>
-                    </div>
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit data_tit_wd">年度考评得分:</span>
-                        <el-form-item prop="">
-                            <el-input-number
-                                v-model="num"
-                                :min="1"
-                                :max="10"
-                                size="small"
-                                controls-position="right"
-                                @change="handleChange"
+        <el-dialog title="考评启动详情" v-model="dialogVisible" width="1400px" :close-on-click-modal="false">
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm" :validate-on-rule-change="false">
+                <p class="starttitleSty">单据信息:</p>
+                <el-row class="danjuMsg">
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务编号:</span>
+                            <span>VB131315</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">流程状态:</span>
+                            <span>进行中</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">填报日期:</span>
+                            <span>2023-02-23</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">制单人员:</span>
+                            <span>XXX</span>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">业务简述:</span>
+                            <span>国电电力2023年关键业绩指标</span>
+                        </div>
+                        <div class="danjuMsg_data">
+                            <span class="data_tit">填报单位:</span>
+                            <span>XXX</span>
+                        </div>
+                    </el-col>
+                </el-row>
+                <p class="starttitleSty">基本信息:</p>
+                <el-row class="danjuMsg">
+                    <el-col :span="6">
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit">单位名称:</span>
+                            <el-form-item prop="">
+                                <el-input v-model="input" placeholder="Please input" />
+                            </el-form-item>
+                        </div>
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit" style="display:inline-block;width:60px">年度:</span>
+                            <el-form-item prop="">
+                                <el-input v-model="input" placeholder="Please input" />
+                            </el-form-item>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit data_tit_wd">业务类别:</span>
+                            <el-form-item prop="">
+                                <el-input v-model="input" placeholder="Please input" />
+                            </el-form-item>
+                        </div>
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit data_tit_wd">年度考评得分:</span>
+                            <el-form-item prop="">
+                                <el-input-number
+                                    v-model="num"
+                                    :min="1"
+                                    :max="10"
+                                    size="small"
+                                    controls-position="right"
+                                    @change="handleChange"
+                                />
+                            </el-form-item>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit data_tit_wd">考评总分:</span>
+                            <el-form-item prop="">
+                                <el-input-number
+                                    v-model="num"
+                                    :min="1"
+                                    :max="10"
+                                    size="small"
+                                    controls-position="right"
+                                    @change="handleChange"
+                                />
+                            </el-form-item>
+                        </div>
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit data_tit_wd">年度考评级别:</span>
+                            <el-form-item prop="">
+                                <el-input v-model="input" placeholder="Please input" />
+                            </el-form-item>
+                        </div>
+                    </el-col>
+                    <el-col :span="6">
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit data_tit_wd">任务进度:</span>
+                            <el-form-item prop="">
+                                <el-input v-model="input" placeholder="Please input" />
+                            </el-form-item>
+                        </div>
+                        <div class="danjuMsg_data" style="display:flex;">
+                            <span class="data_tit data_tit_wd">年度考评排名:</span>
+                            <el-form-item prop="">
+                                <el-input v-model="input" placeholder="Please input" />
+                            </el-form-item>
+                        </div>
+                    </el-col>
+                </el-row>
+                <p class="starttitleSty">考评目标:</p>
+                <el-table :data="tableData" border style="width: 100%">
+                    <el-table-column type="index" label="序号" width="80" />
+                    <el-table-column label="指标项" prop="targetindex" width="300" />
+                    <el-table-column label="业务分类" prop="type" width="100" />
+                    <el-table-column label="填报部门">
+                        <template #default="scope">
+                            <!-- <span>{{scope.row.dept}}</span> -->
+                            <el-input v-model="scope.row.dept" placeholder="Please input" />
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="填报人">
+                        <template #default="scope">
+                            <!-- <span>{{scope.row.eidtor}}</span> -->
+                            <el-input v-model="scope.row.eidtor" placeholder="Please input" />
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="填报日期">
+                        <template #default="scope">
+                            <!-- <span>{{scope.row.eidDate}}</span> -->
+                            <el-date-picker
+                                v-model="scope.row.eidDate"
+                                type="date"
+                                placeholder="Pick a day"
+                                :size="size"
                             />
-                        </el-form-item>
-                    </div>
-                </el-col>
-                <el-col :span="6">
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit data_tit_wd">考评总分:</span>
-                        <el-form-item prop="">
-                            <el-input-number
-                                v-model="num"
-                                :min="1"
-                                :max="10"
-                                size="small"
-                                controls-position="right"
-                                @change="handleChange"
-                            />
-                        </el-form-item>
-                    </div>
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit data_tit_wd">年度考评级别:</span>
-                        <el-form-item prop="">
-                            <el-input v-model="input" placeholder="Please input" />
-                        </el-form-item>
-                    </div>
-                </el-col>
-                <el-col :span="6">
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit data_tit_wd">任务进度:</span>
-                        <el-form-item prop="">
-                            <el-input v-model="input" placeholder="Please input" />
-                        </el-form-item>
-                    </div>
-                    <div class="danjuMsg_data" style="display:flex;">
-                        <span class="data_tit data_tit_wd">年度考评排名:</span>
-                        <el-form-item prop="">
-                            <el-input v-model="input" placeholder="Please input" />
-                        </el-form-item>
-                    </div>
-                </el-col>
-            </el-row>
-            <p class="starttitleSty">考评目标:</p>
-            <el-table :data="tableData" border style="width: 100%">
-                <el-table-column type="index" label="序号" width="80" />
-                <el-table-column label="指标项" prop="targetindex" width="300" />
-                <el-table-column label="业务分类" prop="type" width="100" />
-                <el-table-column label="填报部门">
-                    <template #default="scope">
-                        <!-- <span>{{scope.row.dept}}</span> -->
-                        <el-input v-model="scope.row.dept" placeholder="Please input" />
-                    </template>
-                </el-table-column>
-                <el-table-column label="填报人">
-                    <template #default="scope">
-                        <!-- <span>{{scope.row.eidtor}}</span> -->
-                        <el-input v-model="scope.row.eidtor" placeholder="Please input" />
-                    </template>
-                </el-table-column>
-                <el-table-column label="填报日期">
-                    <template #default="scope">
-                        <!-- <span>{{scope.row.eidDate}}</span> -->
-                        <el-date-picker
-                            v-model="scope.row.eidDate"
-                            type="date"
-                            placeholder="Pick a day"
-                            :size="size"
-                        />
-                    </template>
-                </el-table-column>
-                <el-table-column label="审批人">
-                    <template #default="scope">
-                        <!-- <span>{{scope.row.approvalor}}</span> -->
-                        <el-input v-model="scope.row.approvalor" placeholder="Please input" />
-                    </template>
-                </el-table-column>
-                <el-table-column label="计划分值">
-                    <template #default="scope">
-                        <!-- <span>{{scope.row.plan}}</span> -->
-                        <el-input v-model="scope.row.plan" placeholder="Please input" />
-                    </template>
-                </el-table-column>
-                <el-table-column label="进度分值">
-                    <template #default="scope">
-                        <!-- <span>{{scope.row.progress}}</span> -->
-                        <el-input v-model="scope.row.progress" placeholder="Please input" />
-                    </template>
-                </el-table-column>
-                <el-table-column label="综合得分">
-                    <template #default="scope">
-                        <!-- <span>{{scope.row.synthesize}}</span> -->
-                        <el-input v-model="scope.row.synthesize" placeholder="Please input" />
-                    </template>
-                </el-table-column>
-            </el-table>
-        </el-form>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="审批人">
+                        <template #default="scope">
+                            <!-- <span>{{scope.row.approvalor}}</span> -->
+                            <el-input v-model="scope.row.approvalor" placeholder="Please input" />
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="计划分值">
+                        <template #default="scope">
+                            <!-- <span>{{scope.row.plan}}</span> -->
+                            <el-input v-model="scope.row.plan" placeholder="Please input" />
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="进度分值">
+                        <template #default="scope">
+                            <!-- <span>{{scope.row.progress}}</span> -->
+                            <el-input v-model="scope.row.progress" placeholder="Please input" />
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="综合得分">
+                        <template #default="scope">
+                            <!-- <span>{{scope.row.synthesize}}</span> -->
+                            <el-input v-model="scope.row.synthesize" placeholder="Please input" />
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </el-form>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" plain>发 布</el-button>
+                    <el-button type="warning" plain>保 存</el-button>
+                    <el-button >流 程</el-button>
+                    <el-button type="success" plain>导 出</el-button>
+                </span>
+            </template>
+        </el-dialog>
     </div>
 </template>
 
@@ -168,6 +178,7 @@
 export default {
     data() {
         return {
+            dialogVisible: false,
             tableData: [],
             ruleForm: {
 
@@ -291,58 +302,72 @@ export default {
 
 <style lang="less">
 .startFrom{
-    .starttitleSty{
-        border-left: 4px solid #007aab;
-        padding-left: 5px;
-        font-size: 14px;
-        font-weight: bold;
-        font-family: '微软雅黑';
-        margin: 20px 0;
-    }
-    .el-table{
-        .el-table__body-wrapper{
-            height: 29vh;
-        }
-        .el-table__row{
-            .cell{
-                .el-input{
-                    height: 24px;
-                    .el-input__inner{
-                        height: 24px;
-                    }
+    .el-overlay{
+        .el-dialog{
+            margin-top: 10vh;
+            .el-dialog__body{
+                padding: 0px 60px 20px 20px !important;
+                .starttitleSty{
+                    border-left: 4px solid #007aab;
+                    padding-left: 5px;
+                    font-size: 14px;
+                    font-weight: bold;
+                    font-family: '微软雅黑';
+                    margin: 20px 0;
                 }
-            }
-        }
-    }
-    .danjuMsg{
-        margin-top: 10px;
-        .danjuMsg_data{
-            margin: 0 0 10px 0;
-            .data_tit{
-                margin-right: 10px;
-                font-weight: bold;
-            }
-            .data_tit_wd{
-                display: inline-block;
-                width: 90px;
-            }
-            .el-form-item--small{
-                .el-input{
-                    height: 25px;
-                    width: 160px;
+                .el-table{
+                    .el-table__body-wrapper{
+                        height: 29vh;
+                    }
+                    .el-table__row{
+                        .cell{
+                            .el-input{
+                                height: 24px;
+                                .el-input__inner{
+                                    height: 24px;
+                                }
+                            }
+                        }
+                    }
                 }
-                margin-bottom: 0;
-                .el-input-number{
-                    height: 25px;
-                    .el-input-number__decrease, .el-input-number__increase{
-                        right: -39px;
+                .danjuMsg{
+                    margin-top: 10px;
+                    .danjuMsg_data{
+                        margin: 0 0 10px 0;
+                        .data_tit{
+                            margin-right: 10px;
+                            font-weight: bold;
+                        }
+                        .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%;
+                }
+            }
+            .el-dialog__footer{
+                .dialog-footer{
+                    text-align: center;
+                }
             }
         }
     }
-    .el-select, .el-input{
-        width: 100%;
-    }
+    
 }
 </style>

+ 250 - 65
src/components/assessment/evaluationStartPage.vue

@@ -61,54 +61,24 @@
             <div class="evaluationStartTableData">
                 <el-table :data="evaluationStartData" border style="width: 100%" @select="rowClick" @select-all="allSelect">
                     <el-table-column type="selection" label="操作" align="center"></el-table-column>
-                    <el-table-column label="业务编号">
-                        <template #default="scope">
-                            <span>{{scope.row.create_time}}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column label="考评单位">
-                        <template #default="scope">
-                            <span>{{scope.row.create_by}}</span>
-                        </template>
-                    </el-table-column>
+                    <el-table-column label="业务编号" prop="id" />
+                    <el-table-column label="考评单位" prop="organizationName" />
                     <el-table-column label="业务类别">
                         <template #default="scope">
-                            <span>{{scope.row.indicator_id}}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column label="年度">
-                        <template #default="scope">
-                            <span>{{scope.row.total_score}}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column label="流程状态">
-                        <template #default="scope">
-                            <span>{{scope.row.desc}}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column label="业务简述">
-                        <template #default="scope">
-                            <span>{{scope.row.update_time}}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column label="任务进度">
-                        <template #default="scope">
-                            <span>{{scope.row.update_by}}</span>
-                        </template>
-                    </el-table-column>
-                    <el-table-column label="综合得分">
-                        <template #default="scope">
-                            <span>{{scope.row.evaluate_formula}}</span>
-                        </template> 
-                    </el-table-column>
-                    <el-table-column label="考评排名">
-                        <template #default="scope">
-                            <span>{{scope.row.evaluate_method}}</span>
+                            <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="考评评级">
+                    <el-table-column label="年度" prop="year" />
+                    <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="操作">
                         <template #default="scope">
-                            <span>{{scope.row.mapping_function}}</span>
+                            <p class="indicitem" @click="apiGetdeptresponsibilitygenerateFn(scope.row)">启动</p>
                         </template>
                     </el-table-column>
                 </el-table>
@@ -121,24 +91,69 @@
                     :total="page.total">
                 </el-pagination>
             </div>
-            <el-dialog :title="title" v-model="dialogVisible" width="1400px" :close-on-click-modal="false">
-                <start-from-list></start-from-list>
-                <template #footer>
-                    <span class="dialog-footer">
-                        <el-button type="primary" plain>发 布</el-button>
-                        <el-button type="warning" plain>保 存</el-button>
-                        <el-button >流 程</el-button>
-                        <el-button type="success" plain>导 出</el-button>
-                    </span>
-                </template>
-            </el-dialog>
+            <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="请选择考评类别" @change="(val)=>chooseRule(val,'类别')">
+                                    <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="请选择考评周期" @change="(val)=>chooseRule(val,'周期')">
+                                    <el-option
+                                    v-for="item in periodData"
+                                    :key="item.keyValue"
+                                    :label="item.keyName"
+                                    :value="item.keyValue">
+                                    </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" v-if="isShowYear">
+                                <el-date-picker
+                                    v-model="ruleForm.year"
+                                    type="year"
+                                    value-format="YYYY"
+                                    placeholder="请选择年份"
+                                    />
+                            </el-form-item>
+                            <el-form-item label="月份" v-else>
+                                <el-input-number v-model="ruleForm.month" :min="1" :max="12" />
+                            </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>
     </div>
 </template>
 
 <script>
 import startFromList from './evaluationStartFrom.vue'
-import {apiGetgetStandardPointManagementList, apiGetdeleteStandardPointManagement} from '../../api/api'
+import {apiGetdeptresponsibilityList, apiGetdeptresponsibilitySave,apiGetdeptresponsibilitygenerate, apiGetOrganizationListAll, apiGetdatadictionaryList} from '../../api/api'
 export default {
     components: {
         startFromList
@@ -147,7 +162,6 @@ export default {
         return {
             dialogVisible: false,
             title: '',
-
             windframradio: {},
             deleteSelect: [],
             changeDateSelect: [],
@@ -156,13 +170,173 @@ export default {
                 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: [],
+            isShowYear: true
         }
     },
-    mounted() {
-
+    created() {
+        this.organizationType = [
+            {
+                label: '单位考评',
+                code: 'DWKP'
+            },
+            {
+                label: '部门考评',
+                code: 'BMKP'
+            }
+        ]
+        this.getevaluStartList()
+        this.getPeriodData()
     },
     methods:{
+        // 查询列表页面
+        getevaluStartList() {
+            let that = this
+            let params = {
+                pageNum: that.page.currentPage,
+                pageSize: that.page.pagesize
+            }
+            apiGetdeptresponsibilityList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.evaluationStartData = datas.data.records
+                    that.page.total = datas.data.total
+                }
+            })
+        },
+        //查询所有考评规则
+        getRuleAllList() {
+            let that = this
+            let params = {
+                organizationType: that.ruleForm.organizationType,
+                evaluationCycle: that.ruleForm.evaluationCycle
+            }
+            apiGetOrganizationListAll(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.ruleDataAll = datas.data
+                }
+            })            
+        },
+        //考评周期
+        getPeriodData() {
+            let that = this
+            let params = {
+                superKey: 'KPZQ0001'
+            }
+            apiGetdatadictionaryList(params).then(datas =>{
+                if (datas && datas.data) {
+                    that.periodData = datas.data
+                }
+            })
+        },
+        chooseRule(val, type) {
+            this.getRuleAllList()
+            if (type === '周期') {
+                if (val === 'YDKP' || val === 'JDKP') {
+                    this.isShowYear = false
+                } else {
+                    this.isShowYear = true
+                }
+            }
+        },
+        saveevaluaStart(formName) {
+            let that = this
+            that.$refs[formName].validate((valid) => {
+                if (valid) {
+                    that.saveAndEditIndicatorData()
+                }
+            });
+        },
+        //新增/修改考评启动数据
+        saveAndEditIndicatorData() {
+            let that = this
+            let params = {
+                // organizationType: that.ruleForm.organizationType,
+                // evaluationCycle: that.ruleForm.evaluationCycle,
+                organizationEvaluationRuleId: that.ruleForm.evaluateRule,
+                des: that.ruleForm.desc
+            }
+            if (that.isSave) {
+                params.id = this.evalradio.id
+            }
+            if (that.isShowYear) {
+                params.year = that.ruleForm.year
+            } else {
+                params.month = that.ruleForm.month
+            }
+            apiGetdeptresponsibilitySave(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()
+                }
+            })
+        },
+        apiGetdeptresponsibilitygenerateFn(row) {
+            let that = this
+            let params = {
+                responsibilityIds: row.id
+            }
+            apiGetdeptresponsibilitygenerate(params).then(datas =>{
+                if (datas && datas.data) {
+                    if (!datas.success) {
+                        that.$message({
+                            message: datas.message,
+                            type: 'error'
+                        });
+                    } else {
+                        that.$message({
+                            message: '考评规则已启动',
+                            type: 'success'
+                        });
+                        
+                    }
+                }
+            })
+        },
         getSeachData() {
             this.page.currentPage = 1
         },
@@ -283,6 +457,15 @@ export default {
         .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;
@@ -292,13 +475,15 @@ export default {
     }
     .el-overlay{
         .el-dialog{
-            margin-top: 10vh;
             .el-dialog__body{
-                padding: 0px 60px 20px 20px !important;
-            }
-            .el-dialog__footer{
-                .dialog-footer{
-                    text-align: center;
+                padding: 30px 60px 30px 20px !important;
+                .periodFrom{
+                    .el-select, .el-input{
+                        width: 100%;
+                    }
+                    .el-input{
+                        height: 30px;
+                    }
                 }
             }
         }

+ 13 - 3
src/components/assessment/monthQuarterPage.vue

@@ -90,7 +90,7 @@
 
 <script>
 // import startFromList from './monthQuarterFrom.vue'
-import {apiGetgetStandardPointManagementList, apiGetdeleteStandardPointManagement} from '../../api/api'
+import {apiGetAssessmentList, apiGetdeleteStandardPointManagement} from '../../api/api'
 export default {
     components: {
         // startFromList
@@ -111,10 +111,20 @@ export default {
             }
         }
     },
-    mounted() {
-
+    created() {
+        this.getmonthQuarterData()
     },
     methods:{
+        //获取月/季度考评列表
+        getmonthQuarterData() {
+            let that = this
+            let params = {}
+            apiGetAssessmentList(params).then(datas =>{
+                if (datas) {
+                    that.monthQuarterData = datas
+                }
+            })
+        },
         getSeachData() {
             this.page.currentPage = 1
         },

+ 16 - 19
src/components/evaluationSystem/evaluationCompanyPage.vue

@@ -109,9 +109,9 @@
                                 <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性" @change="changeBinsection">
                                     <el-option
                                     v-for="item in moduleData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.sectionName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -129,9 +129,9 @@
                                 <el-select v-model="ruleForm.binStage" multiple placeholder="请选择业务阶段" disabled>
                                     <el-option
                                     v-for="item in stageData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.stageName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -193,7 +193,7 @@
 <script>
 import importDailog from '../importPage/importDailog.vue'
 import {apiGetOrganizationList, apiGetorganizationSaveList, apiGetorganizationdeleteList,apiGetorganizationgetTree,
- apiGetdatadictionaryList, apiGetevaluateListAll} from '../../api/api'
+ apiGetdatadictionaryList, apiGetbinstageList,apiGetbinsectionList, apiGetevaluateListAll} from '../../api/api'
 export default {
   components: { importDailog },
     data() {
@@ -253,8 +253,7 @@ export default {
     created() {
         this.getEvalCompanyData()
         this.getRuleallData()
-        this.getDataDictionary('MK0001') //模块
-        this.getDataDictionary('JD0001') //阶段
+        this.getDataDictionary() //模块 阶段
         this.getPeriodData()
         this.getOrganizetionData(23031000, 2)
     },
@@ -291,18 +290,16 @@ export default {
             })
         },
         // 查询规则模块和阶段数据
-        getDataDictionary(val) {
+        getDataDictionary() {
             let that = this
-            let params = {
-                superKey: val
-            }
-            apiGetdatadictionaryList(params).then(datas =>{
+            apiGetbinsectionList().then(datas =>{
                 if (datas && datas.data) {
-                    if (val === 'MK0001') {
-                        that.moduleData = datas.data
-                    } else {
-                        that.stageData = datas.data
-                    }
+                    that.moduleData = datas.data
+                }
+            })
+            apiGetbinstageList().then(datas =>{
+                if (datas && datas.data) {
+                    that.stageData = datas.data
                 }
             })
         },

+ 16 - 19
src/components/evaluationSystem/evaluationDepartmentPage.vue

@@ -112,9 +112,9 @@
                                 <el-select v-model="ruleForm.binStage" placeholder="请选择业务阶段" disabled>
                                     <el-option
                                     v-for="item in stageData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.stageName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -122,9 +122,9 @@
                                 <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性" disabled>
                                     <el-option
                                     v-for="item in moduleData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.sectionName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -160,7 +160,7 @@
 <script>
 import importDailog from '../importPage/importDailog.vue'
 import {apiGetOrganizationList, apiGetorganizationSaveList, apiGetorganizationdeleteList, 
-apiGetdatadictionaryList, apiGetevaluateListAll, apiGetorganizationstructureFromTree} from '../../api/api'
+apiGetdatadictionaryList,apiGetbinstageList,apiGetbinsectionList, apiGetevaluateListAll, apiGetorganizationstructureFromTree} from '../../api/api'
 export default {
   components: { importDailog },
     data() {
@@ -217,8 +217,7 @@ export default {
     created() {
         this.getEvalCompanyData()
         this.getRuleallData()
-        this.getDataDictionary('MK0001') //模块
-        this.getDataDictionary('JD0001') //阶段
+        this.getDataDictionary() //模块//阶段
         this.getPeriodData()
         this.getDepartmentFromTreeData()
     },
@@ -255,18 +254,16 @@ export default {
             })
         },
         // 查询规则模块和阶段数据
-        getDataDictionary(val) {
+        getDataDictionary() {
             let that = this
-            let params = {
-                superKey: val
-            }
-            apiGetdatadictionaryList(params).then(datas =>{
+            apiGetbinsectionList().then(datas =>{
                 if (datas && datas.data) {
-                    if (val === 'MK0001') {
-                        that.moduleData = datas.data
-                    } else {
-                        that.stageData = datas.data
-                    }
+                    that.moduleData = datas.data
+                }
+            })
+            apiGetbinstageList().then(datas =>{
+                if (datas && datas.data) {
+                    that.stageData = datas.data
                 }
             })
         },

+ 21 - 19
src/components/evaluationSystem/evaluationIndexPage.vue

@@ -111,7 +111,7 @@
                                 <el-input v-model="ruleForm.indicatorCode" placeholder="请输入指标编码" :disabled="isSave"></el-input>
                             </el-form-item>
                             <el-form-item label="指标类别" prop="indicatorType">
-                                <el-select v-model="ruleForm.indicatorType" placeholder="请选择所属部门">
+                                <el-select v-model="ruleForm.indicatorType" placeholder="请选择指标类别">
                                     <el-option
                                     v-for="item in indicatorTypeData"
                                     :key="item.id"
@@ -137,9 +137,9 @@
                                 <el-select v-model="ruleForm.binStage" placeholder="请选择业务阶段">
                                     <el-option
                                     v-for="item in stageData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.stageName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -147,9 +147,9 @@
                                 <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性">
                                     <el-option
                                     v-for="item in moduleData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.sectionName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -196,8 +196,8 @@
 <script>
 import importDailog from '../importPage/importDailog.vue'
 import indicatorItem from './IndicatorItemPage.vue'
-import {apiGetIndicatorList, apiGetIndicatorSave, apiGetIndicatorDelete,
- apiGetIndicatorTypeList, apiGetdatadictionaryList} from '../../api/api'
+import {apiGetIndicatorList, apiGetIndicatorSave, apiGetIndicatorDelete,apiGetbinsectionList,
+ apiGetIndicatorTypeList, apiGetdatadictionaryList, apiGetbinstageList} from '../../api/api'
 export default {
   components: { importDailog, indicatorItem },
     data() {
@@ -266,9 +266,7 @@ export default {
     },
     created() {
         this.getEvaluationData()
-        this.getDataDictionary('MK0001') //模块
-        this.getDataDictionary('JD0001') //阶段
-        this.getDataDictionary('BM0001') //部门
+        this.getDataDictionary('BM0001') //部门//模块//阶段
         this.getindicatorTypeData()
     },
     methods:{
@@ -307,13 +305,17 @@ export default {
             }
             apiGetdatadictionaryList(params).then(datas =>{
                 if (datas && datas.data) {
-                    if (val === 'MK0001') {
-                        that.moduleData = datas.data
-                    } else if(val === 'JD0001') {
-                        that.stageData = datas.data
-                    } else {
-                        that.departData = datas.data
-                    }
+                    that.departData = datas.data
+                }
+            })
+            apiGetbinsectionList().then(datas =>{
+                if (datas && datas.data) {
+                    that.moduleData = datas.data
+                }
+            })
+            apiGetbinstageList().then(datas =>{
+                if (datas && datas.data) {
+                    that.stageData = datas.data
                 }
             })
         },

+ 16 - 19
src/components/evaluationSystem/evaluationRulesPage.vue

@@ -101,9 +101,9 @@
                                 <el-select v-model="ruleForm.binStage" placeholder="请选择业务阶段" :disabled="isSave">
                                     <el-option
                                     v-for="item in stageData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.stageName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -111,9 +111,9 @@
                                 <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性" :disabled="isSave">
                                     <el-option
                                     v-for="item in moduleData"
-                                    :key="item.keyValue"
-                                    :label="item.keyName"
-                                    :value="item.keyValue">
+                                    :key="item.id"
+                                    :label="item.sectionName"
+                                    :value="item.id">
                                     </el-option>
                                 </el-select>
                             </el-form-item>
@@ -139,7 +139,7 @@
 <script>
 import importDailog from '../importPage/importDailog.vue'
 import ruleDetailPage from './ruleDetailPage.vue'
-import {apiGetevaluateRuleList, apiGetevaluateRuleSaveList, apiGetevaluateRuledeleteList, apiGetdatadictionaryList} from '../../api/api'
+import {apiGetevaluateRuleList, apiGetevaluateRuleSaveList, apiGetevaluateRuledeleteList, apiGetbinsectionList, apiGetbinstageList} from '../../api/api'
 export default {
     components: { importDailog, ruleDetailPage },
     data() {
@@ -183,8 +183,7 @@ export default {
     },
     created() {
         this.getEvalRuleData()
-        this.getDataDictionary('MK0001') //模块
-        this.getDataDictionary('JD0001') //阶段
+        this.getDataDictionary() //模块//阶段
     },
     methods:{
         // 查询指标数据
@@ -205,18 +204,16 @@ export default {
             })
         },
         // 查询规则模块和阶段数据
-        getDataDictionary(val) {
+        getDataDictionary() {
             let that = this
-            let params = {
-                superKey: val
-            }
-            apiGetdatadictionaryList(params).then(datas =>{
+            apiGetbinsectionList().then(datas =>{
                 if (datas && datas.data) {
-                    if (val === 'MK0001') {
-                        that.moduleData = datas.data
-                    } else {
-                        that.stageData = datas.data
-                    }
+                    that.moduleData = datas.data
+                }
+            })
+            apiGetbinstageList().then(datas =>{
+                if (datas && datas.data) {
+                    that.stageData = datas.data
                 }
             })
         },

+ 2 - 2
src/components/evaluationSystem/ruleDetailPage.vue

@@ -74,9 +74,9 @@
                                         <el-select v-model="itemForm.indicator" placeholder="请选择指标名称">
                                             <el-option
                                             v-for="item in indicItemoptions"
-                                            :key="item.indicatorCode"
+                                            :key="item.id"
                                             :label="item.indicatorName"
-                                            :value="item.indicatorCode">
+                                            :value="item.id">
                                             </el-option>
                                         </el-select>
                                     </el-form-item>

+ 6 - 9
src/components/knowledgePage/scoringRulesPage.vue

@@ -105,9 +105,9 @@
                             <el-select v-model="ruleForm.binSection" placeholder="请选择业务属性" :disabled="isSave" @change="changeBinstation">
                                 <el-option
                                 v-for="item in binSectionoptions"
-                                :key="item.keyValue"
-                                :label="item.keyName"
-                                :value="item.keyValue">
+                                :key="item.id"
+                                :label="item.sectionName"
+                                :value="item.id">
                                 </el-option>
                             </el-select>
                         </el-form-item>
@@ -143,7 +143,7 @@
 <script>
 import importDailog from '../importPage/importDailog.vue'
 import scoringRulesDetailPage from './scoringRulesDetailPage.vue'
-import {apiGetevaluationscoringruleList, apiGetindicatorListAll, apiGetdatadictionaryList, apiGetevaluationscoringSaveList, apiGetevaluationruleRemove} from '../../api/api'
+import {apiGetevaluationscoringruleList, apiGetindicatorListAll, apiGetbinsectionList, apiGetevaluationscoringSaveList, apiGetevaluationruleRemove} from '../../api/api'
 export default {
   components: { importDailog, scoringRulesDetailPage },
     data() {
@@ -208,13 +208,10 @@ export default {
                 }
             })
         },
-        // 查询规则模块和阶段数据
+        // 查询模块
         getDataDictionary() {
             let that = this
-            let params = {
-                superKey: 'MK0001'
-            }
-            apiGetdatadictionaryList(params).then(datas =>{
+            apiGetbinsectionList().then(datas =>{
                 if (datas && datas.data) {
                     that.binSectionoptions = datas.data
                 }