|
@@ -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>
|