马宇豪
2024-11-21 cc3e08bda13360c88b7189e8f8d043b60783c7fb
src/views/safetyReview/expertManage/evaluateRecord/index.vue
@@ -2,29 +2,29 @@
    <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>
@@ -33,28 +33,24 @@
        </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>
@@ -78,6 +74,7 @@
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({
@@ -88,24 +85,21 @@
  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(()=>{
@@ -117,22 +111,8 @@
  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)=> {
@@ -152,23 +132,17 @@
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)
  }
@@ -176,7 +150,6 @@
}
const openDialog = async (type, value) => {
  console.log(evaluateFormRef.value,666)
  evaluateFormRef.value.openDialog(type, value)
}
@@ -203,16 +176,13 @@
  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()
}