GuLiMmo
2024-01-09 5832e4ce53d30bc282bb2c0add421d5f0a6b091d
src/views/evaluate/components/candidateResult.vue
@@ -1,16 +1,26 @@
<template>
    <el-dialog v-model="params.visible" title="第一轮评优结果">
        <avue-crud v-model:page="page" :option="option" :table-loading="loading" :data="data" @current-change="currentChange"
            @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
            <template #menu="{row}">
                <el-button type="primary" icon="el-icon-plus" text>添加至第二轮</el-button>
        <avue-crud v-model:page="page" :option="option" :table-loading="loading" :data="data"
            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
            <template #menu="{ row }">
                <el-button type="primary" icon="el-icon-plus" text @click="addEvaluateTypeHandler(row)">添加至第二轮</el-button>
            </template>
        </avue-crud>
        <el-dialog v-model="addEvaluateTypeVisible" width="400px" title="请选择添加至评优类别" append-to-body
            @open="evaluateTypeOpen">
            <el-select v-model="selectEvaluateType" placeholder="请选择要添加至的评优类别" style="width: 100%;">
                <el-option v-for="item in evaluateTypeList" :key="item.id" :label="item.categoryName" :value="item.id" />
            </el-select>
            <template #footer>
                <el-button @click="addEvaluateTypeVisible = false">取消</el-button>
                <el-button type="primary" @click="addSecondRoundHandler">确定</el-button>
            </template>
        </el-dialog>
    </el-dialog>
</template>
<script>
import { getCandidateResult } from '@/api/evaluate/evaluateTask'
import { getCandidateResult, getEcList, addEtaskCc } from '@/api/evaluate/evaluateTask'
export default {
    props: {
@@ -68,11 +78,18 @@
                    {
                        label: '票数',
                        prop: 'voteNum',
                        type: 'input'
                        type: 'input',
                        formatter: (_row, value) => {
                            return value + '票'
                        }
                    },
                ]
            },
            data: []
            data: [],
            currentRow: {},
            selectEvaluateType: '',
            evaluateTypeList: [],
            addEvaluateTypeVisible: false,
        }
    },
    methods: {
@@ -102,9 +119,42 @@
                this.page.total = data.total;
                this.data = data.records;
                this.loading = false;
                this.selectionClear();
            });
        },
        initEvalutateType() {
            const { id } = this.params.data
            getEcList(1, 10, id).then(ecResult => {
                const { code, data: { records } } = ecResult.data
                if (code !== 200) return this.$message.error('评优类别加载失败')
                this.evaluateTypeList = records
            })
        },
        evaluateTypeOpen() {
            this.initEvalutateType()
        },
        addEvaluateTypeHandler(row) {
            this.addEvaluateTypeVisible = true;
            this.currentRow = row
        },
        addSecondRoundHandler() {
            if (!this.selectEvaluateType) return this.$message.warning('请选择当前候选人要填至的评优类别')
            const { user_id, user_name, dept_id, dept_name, post_name } = this.currentRow
            const requestParams = {
                evaluateTaskCategoryId: this.selectEvaluateType,
                userId: user_id,
                userName: user_name,
                deptId: dept_id,
                deptName: dept_name,
                postName: post_name,
            }
            addEtaskCc(requestParams).then(res => {
                this.$message.success('添加成功')
                this.addEvaluateTypeVisible = false
                this.selectEvaluateType = ''
            }, error => {
                this.$message.error(error)
            })
        }
    }
}
</script>