| | |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="项目名称"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入项目名称" /> |
| | | <el-input v-model="queryParams.projectName" placeholder="请输入项目名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="姓名"> |
| | | <el-form-item label="专家姓名"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入姓名" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入身份证号" /> |
| | | <el-input v-model="queryParams.idCard" placeholder="请输入身份证号" /> |
| | | </el-form-item> |
| | | <el-form-item label="领域" prop="dutyStatus"> |
| | | <el-select v-model="queryParams.dutyStatus" placeholder="岗位状态" clearable> |
| | | <el-option :key="0" label="已评估" :value="0"/> |
| | | <el-option :key="1" label="未评估" :value="1"/> |
| | | </el-select> |
| | | <el-form-item label="专家领域"> |
| | | <el-cascader |
| | | clearable |
| | | v-model="queryParams.domain" |
| | | :options="expertTypes" |
| | | :props="{ expandTrigger: 'hover', value: 'classifyName',label: 'classifyName',emitPath: false}"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="时间范围" prop="searchTime"> |
| | | <el-date-picker |
| | | v-model="searchTime" |
| | | type="daterange" |
| | | @change="changeTime" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | value-format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" plain :icon="Plus" @click="openDialog('add',{})">新增</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-row :gutter="10" class="mb8">--> |
| | | <!-- <el-col :span="1.5">--> |
| | | <!-- <el-button type="primary" plain :icon="Plus" @click="openDialog('add',{})">新增</el-button>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | <el-table v-loading="loading" :data="expertList" :border="true"> |
| | | <el-table-column type="index" width="55" align="center" /> |
| | | <el-table-column label="考评时间" align="center" prop="birthday" /> |
| | | <el-table-column label="姓名" align="center" prop="birthday" /> |
| | | <el-table-column label="身份证号" align="center" prop="birthday" /> |
| | | <el-table-column label="考评应用领域" align="center" prop="birthday" /> |
| | | <el-table-column label="项目名称" align="center" prop="name" /> |
| | | <el-table-column label="是否为专家组" align="center"> |
| | | <el-table-column label="考评时间" align="center" prop="updateTime" /> |
| | | <el-table-column label="姓名" align="center" prop="name" /> |
| | | <el-table-column label="身份证号" align="center" prop="idCard" /> |
| | | <el-table-column label="考评应用领域" align="center" prop="domain" /> |
| | | <el-table-column label="项目名称" align="center" prop="projectName" /> |
| | | <el-table-column label="是否为专家组组长" align="center" prop="teamLeader"> |
| | | <template #default="scope"> |
| | | {{findNodeById(expertTypes,scope.row.bigClassify)}}/{{findNodeById(expertTypes,scope.row.smallClassify)}} |
| | | {{scope.row.teamLeader == 1?'是':'否'}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="考评分数" align="center"> |
| | | <template #default="scope"> |
| | | {{findNodeById(expertTypes,scope.row.bigClassify)}}/{{findNodeById(expertTypes,scope.row.smallClassify)}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="考评分数" align="center" prop="score"/> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button type="primary" link @click="openDialog('view',scope.row)">查看明细</el-button> |
| | |
| | | import EvaluateDetail from "./components/evaluateDetail"; |
| | | import {delExpert, getExpertsList, getExpertTypes} from "../../../../api/form"; |
| | | import { Plus } from '@element-plus/icons-vue' |
| | | import {getExpertEvaList, getProjectExpertList} from "@/api/backManage/evaluate"; |
| | | |
| | | const loading = ref(false); |
| | | const data = reactive({ |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | bigClassify: null, |
| | | smallClassify: null, |
| | | dutyStatus: null, |
| | | projectName: '', |
| | | name: '', |
| | | params: { |
| | | startTime: '', |
| | | endTime: '' |
| | | } |
| | | idCard: '', |
| | | domain: '', |
| | | startTime: '', |
| | | endTime: '' |
| | | }, |
| | | classiFy: [], |
| | | searchTime: [] |
| | | }); |
| | | |
| | | const { showSearch,total, expertTypes,expertList,queryParams,classiFy,searchTime} = toRefs(data); |
| | | const evaluateFormRef = ref() |
| | | onMounted(()=>{ |
| | | // getList() |
| | | // getTypes() |
| | | getList() |
| | | getTypes() |
| | | }) |
| | | |
| | | onUnmounted(()=>{ |
| | |
| | | if(res.code == 200){ |
| | | data.expertTypes = res.data |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | |
| | | const handleChange=(value)=> { |
| | | if(!value){ |
| | | data.classiFy = [] |
| | | data.queryParams.bigClassify = "" |
| | | data.queryParams.smallClassify = "" |
| | | } |
| | | } |
| | | const changeTime=(value)=>{ |
| | | if(!value){ |
| | | data.queryParams.params.endTime = "" |
| | | data.queryParams.params.startTime = "" |
| | | } |
| | | } |
| | | |
| | | const findNodeById = (data,value)=> { |
| | |
| | | |
| | | const handleQuery=()=> { |
| | | data.queryParams.pageNum = 1 |
| | | if(data.classiFy && data.classiFy.length>0){ |
| | | data.queryParams.bigClassify = data.classiFy[0] |
| | | data.queryParams.smallClassify = data.classiFy[1] |
| | | } |
| | | if(data.searchTime && data.searchTime.length>0){ |
| | | data.queryParams.params.startTime = data.searchTime[0] |
| | | data.queryParams.params.endTime = data.searchTime[1] |
| | | } |
| | | getList() |
| | | } |
| | | |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | const res = await getExpertsList(data.queryParams) |
| | | loading.value = true |
| | | data.queryParams.startTime = data.searchTime[0] || '' |
| | | data.queryParams.endTime = data.searchTime[1] || '' |
| | | const res = await getExpertEvaList(data.queryParams) |
| | | if(res.code == 200){ |
| | | data.expertList = res.data.list |
| | | data.total = res.data.total |
| | | data.expertList = res.rows |
| | | data.total = res.total |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | } |
| | |
| | | } |
| | | |
| | | const openDialog = async (type, value) => { |
| | | console.log(evaluateFormRef.value,666) |
| | | evaluateFormRef.value.openDialog(type, value) |
| | | } |
| | | |
| | |
| | | data.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | bigClassify: null, |
| | | smallClassify: null, |
| | | dutyStatus: null, |
| | | projectName: '', |
| | | name: '', |
| | | params: { |
| | | startTime: '', |
| | | endTime: '' |
| | | } |
| | | }; |
| | | data.classiFy = [] |
| | | idCard: '', |
| | | domain: '', |
| | | startTime: '', |
| | | endTime: '' |
| | | } |
| | | data.searchTime = [] |
| | | handleQuery() |
| | | } |