| | |
| | | <div class="notice"> |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | title="专家评估" |
| | | :title="title" |
| | | width="75%" |
| | | @close="closeEvaluate" |
| | | > |
| | | <el-table :data="tableData" border style="width: 100%"> |
| | | <el-table-column type="index" width="55" align="center" /> |
| | | <el-table-column label="姓名" align="center" prop="name" /> |
| | | <el-table-column label="性别" align="center" prop="birthday" /> |
| | | <el-table-column label="身份证号" align="center" prop="birthday" /> |
| | | <el-table-column label="等级" align="center" prop="degree" /> |
| | | <el-table-column label="专业领域" align="center"> |
| | | <el-table-column label="性别" align="center" prop="sex"> |
| | | <template #default="scope"> |
| | | {{findNodeById(expertTypes,scope.row.bigClassify)}}/{{findNodeById(expertTypes,scope.row.smallClassify)}} |
| | | {{scope.row.sex == 0?'男':scope.row.sex == 1?'女':'未知'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="选用方式" align="center" prop="birthday" /> |
| | | <el-table-column label="是否为组长" align="center" prop="degree" /> |
| | | <el-table-column label="评估状态" align="center" prop="state"> |
| | | <el-table-column label="身份证号" align="center" prop="idCard" /> |
| | | <el-table-column label="等级" align="center" prop="ratingLevel"> |
| | | <template #default="scope"> |
| | | <el-tag :type="scope.row.state==0?'info':scope.row.state==1?'':scope.row.state==2?'success':scope.row.state==3?'danger':'warning'"> |
| | | {{scope.row.state==0?'暂存':scope.row.state==1?'审核中':scope.row.state==2?'审核通过':scope.row.state==3?'审核驳回':scope.row.state==4?'已作废':'--'}} |
| | | {{scope.row.ratingLevel == 1?'一级':scope.row.ratingLevel == 2?'二级':scope.row.ratingLevel == 3?'三级':'暂无'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="专业领域" align="center" prop="domain"/> |
| | | <el-table-column label="选用方式" align="center" prop="selectionMode"> |
| | | <template #default="scope"> |
| | | {{scope.row.selectionMode == 1?'固定':scope.row.selectionMode == 2?'随机':'其他'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否为组长" align="center" prop="teamLeader"> |
| | | <template #default="scope"> |
| | | {{scope.row.teamLeader == 0?'否':scope.row.teamLeader == 1?'是':'未知'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="评估状态" align="center" prop="evaluationState"> |
| | | <template #default="scope"> |
| | | <el-tag :type="scope.row.evaluationState == 0?'info':scope.row.evaluationState==1?'success':''"> |
| | | {{scope.row.evaluationState ==0?'未评估':scope.row.evaluationState==1?'已评估':'--'}} |
| | | </el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="考评总分" align="center" prop="degree" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column label="考评总分" align="center" prop="score" /> |
| | | <el-table-column v-if="title == '专家评估'" label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button type="primary" link @click="openEvaluate()">评分</el-button> |
| | | <el-button type="primary" link @click="openEvaluate(scope.row)">评分</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | v-model:page="queryParams.pageNum" |
| | | v-model:limit="queryParams.pageSize" |
| | | @pagination="getEvaluationList" |
| | | /> |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button type="primary" @click="dialogVisible = false" size="default" v-preReClick>确认</el-button> |
| | | <el-button type="primary" @click="closeEvaluate" size="default" v-preReClick>确认</el-button> |
| | | </span> |
| | | </template> |
| | | <evaluate ref="evaluateRef"></evaluate> |
| | | <evaluate ref="evaluateRef" @getList="getEvaluationList()"></evaluate> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | import {reactive, ref, toRefs} from 'vue' |
| | | import {ElMessage} from "element-plus"; |
| | | import Evaluate from "./evaluate"; |
| | | import {addDict, editDict, getDictDetail} from "@/api/backManage/evaluate"; |
| | | import { |
| | | getProjectExpertEvaluationList, |
| | | } from "@/api/backManage/evaluate"; |
| | | const dialogVisible = ref(false); |
| | | const evaluateRef = ref() |
| | | const title = ref(""); |
| | | const emit = defineEmits(["getList"]); |
| | | const state = reactive({ |
| | | |
| | | |
| | | tableData: [], |
| | | total: null, |
| | | queryParams: { |
| | | id: null, |
| | | pageNum: 1, |
| | | pageSize: 10 |
| | | }, |
| | | projectName: '', |
| | | projectCheckTime: '', |
| | | title: '' |
| | | }) |
| | | |
| | | const {tableData,total,queryParams,projectName,title,projectCheckTime} = toRefs(state) |
| | | const openDialog = async (type, value) => { |
| | | if(type === 'edit') { |
| | | state.form = value; |
| | | const param = { |
| | | dictId: value.id |
| | | } |
| | | const res = await getDictDetail(param); |
| | | if(res.code === 200){ |
| | | state.form = res.data |
| | | if(type == 'view'){ |
| | | state.title = '专家列表' |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | state.title = '专家评估' |
| | | } |
| | | } |
| | | state.queryParams.id = value.id |
| | | state.projectName = value.projectName |
| | | state.projectCheckTime = value.projectCheckTime |
| | | await getEvaluationList() |
| | | dialogVisible.value = true; |
| | | } |
| | | |
| | | const openEvaluate = ()=>{ |
| | | // evaluateRef.value.openDialog() |
| | | const getEvaluationList = async () => { |
| | | const res = await getProjectExpertEvaluationList(state.queryParams) |
| | | if(res.code == 200){ |
| | | state.tableData = res.rows |
| | | state.total = res.total |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | } |
| | | |
| | | const reset = () => { |
| | | state.form = { |
| | | id: '', |
| | | label: '', |
| | | value: '', |
| | | dictType: "sys_assess_type", |
| | | const openEvaluate = (value)=>{ |
| | | evaluateRef.value.openDialog(value,state.projectName,state.projectCheckTime) |
| | | } |
| | | |
| | | const closeEvaluate = ()=>{ |
| | | dialogVisible.value = false |
| | | emit('getList') |
| | | } |
| | | |
| | | defineExpose({ |