| | |
| | | <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="评估情况" 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-form-item label="评估情况"> |
| | | <el-select v-model="queryParams.evaluationState" placeholder="评估情况" clearable> |
| | | <el-option :key="0" label="未评估" :value="0"/> |
| | | <el-option :key="1" label="已评估" :value="1"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="审批时间" prop="searchTime"> |
| | | <el-form-item label="审批时间"> |
| | | <el-date-picker |
| | | v-model="searchTime" |
| | | type="date" |
| | | v-model="queryParams.projectCheckTime" |
| | | type="datetime" |
| | | @change="changeTime" |
| | | value-format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | <!-- </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="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="projectName"/> |
| | | <el-table-column label="审批单时间" align="center" prop="projectCheckTime"/> |
| | | <el-table-column label="结束时间" align="center" prop="projectEndTime" /> |
| | | <el-table-column label="部门" align="center" prop="deptName"/> |
| | | <el-table-column label="专家人数" align="center" prop="expertNum"> |
| | | <template #default="scope"> |
| | | {{findNodeById(expertTypes,scope.row.bigClassify)}}/{{findNodeById(expertTypes,scope.row.smallClassify)}} |
| | | <el-button type="primary" link @click="openDialog('view',scope.row)">{{scope.row.expertNum}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="评估状态" align="center" prop="state"> |
| | | <el-table-column label="评估状态" align="center" prop="evaluationState"> |
| | | <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?'已作废':'--'}} |
| | | <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" class-name="small-padding fixed-width"> |
| | | <template #default="scope"> |
| | | <el-button type="primary" link @click="openDialog('edit',scope.row)">开始评估</el-button> |
| | | <el-button type="primary" link @click="openDialog('edit',scope.row)">修改评估</el-button> |
| | | <el-button type="primary" v-if="scope.row.evaluationState == 0" link @click="openDialog('edit',scope.row)">开始评估</el-button> |
| | | <el-button type="primary" v-if="scope.row.evaluationState == 1" link @click="openDialog('edit',scope.row)">修改评估</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | import ExpertDialog from "./components/expertList"; |
| | | import {delExpert, getExpertsList, getExpertTypes} from "../../../../api/form"; |
| | | import { Plus } from '@element-plus/icons-vue' |
| | | import {getProjectExpertList} from "@/api/backManage/evaluate"; |
| | | |
| | | const loading = ref(false) |
| | | const data = reactive({ |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | bigClassify: null, |
| | | smallClassify: null, |
| | | dutyStatus: null, |
| | | name: '', |
| | | params: { |
| | | startTime: '', |
| | | endTime: '' |
| | | } |
| | | projectName: '', |
| | | evaluationState: null, |
| | | projectCheckTime: '' |
| | | }, |
| | | classiFy: [], |
| | | searchTime: [] |
| | |
| | | const expertListRef = ref() |
| | | |
| | | onMounted(()=>{ |
| | | // getList() |
| | | getList() |
| | | // getTypes() |
| | | }) |
| | | |
| | |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | } |
| | | |
| | | 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) |
| | | const res = await getProjectExpertList(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) |
| | | } |
| | | loading.value = false; |
| | | } |
| | | |
| | | const openDialog = async (type, value) => { |
| | | expertListRef.value.openDialog(type, value) |
| | | const openDialog = async (type,value) => { |
| | | expertListRef.value.openDialog(type,value) |
| | | } |
| | | |
| | | const handleDelete = (val) => { |
| | |
| | | data.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | bigClassify: null, |
| | | smallClassify: null, |
| | | dutyStatus: null, |
| | | name: '', |
| | | params: { |
| | | startTime: '', |
| | | endTime: '' |
| | | } |
| | | }; |
| | | data.classiFy = [] |
| | | data.searchTime = [] |
| | | projectName: '', |
| | | evaluationState: null, |
| | | projectCheckTime: '' |
| | | } |
| | | handleQuery() |
| | | } |
| | | |