zhouwx
2024-06-14 137910cf4fc73a3a2787a3a02718f1e1f637c368
src/views/safetyReview/projectManage/components/signConfirm.vue
@@ -1,22 +1,20 @@
<template>
  <div class="riskBox">
    <el-table v-loading="loading" ref="tableRef" :data="tableData" :border="true">
      <el-table-column type="index" width="55" />
      <el-table-column label="人员姓名" prop="person.name" align="center"/>
      <el-table-column label="联系电话" prop="person.phone" align="center"/>
      <el-table-column label="职位" prop="person.post" align="center"/>
      <el-table-column label="项目担任角色" prop="username" align="center">
    <el-table v-loading="loading" ref="tableRef" :data="tableData" :border="true" style="margin-top: 20px">
      <el-table-column label="序号" type="index" width="55" />
      <el-table-column label="人员姓名" prop="planPerson.person.name" align="center"/>
      <el-table-column label="联系电话" prop="planPerson.person.phone" align="center"/>
      <el-table-column label="职位" prop="planPerson.person.post" align="center"/>
      <el-table-column label="项目担任角色" prop="username" align="center" width="180">
        <template #default="scope">
          <span>{{ scope.row.planPerson.playRole === 1?'项目负责人': scope.row.planPerson.playRole === 2?
              '项目组成员':scope.row.planPerson.playRole === 3?
                  '过程控制负责人':scope.row.planPerson.playRole === 4?
                      '机构评价负责人':scope.row.planPerson.playRole === 5?'技术负责人':''}}
          </span>
          <div v-for="(item,index) in scope.row.playRolesName" :key="index">
            <span>{{item.roleName}}</span><span v-if="index!==scope.row.playRolesName.length-1">,</span>
          </div>
        </template>
      </el-table-column>
      <el-table-column label="评价师等级" prop="person.level" align="center"/>
      <el-table-column label="专业能力" prop="username" align="center"/>
      <el-table-column label="人员类型" prop="username" align="center">
      <el-table-column label="评价师等级" prop="planPerson.person.level" align="center"/>
      <el-table-column label="专业能力" prop="planPerson.person.majorNames" align="center"/>
      <el-table-column label="工作类型"  align="center">
        <template #default="scope">
          <span>{{scope.row.planPerson.jobType === 1 ? '普通人员' : scope.row.planPerson.jobType === 2?'组长': ''}}</span>
        </template>
@@ -24,11 +22,11 @@
      <el-table-column label="扫脸时间" prop="faceRecord.updateTime" align="center" width="120"/>
      <el-table-column label="是否扫脸" prop="username" align="center">
        <template #default="scope">
          <span v-if="scope.row.facePic">是</span>
          <span v-if="scope.row.facePic.length>0">是</span>
          <span v-else>否</span>
        </template>
      </el-table-column>
      <el-table-column label="是否变更" prop="username" align="center"/>
<!--      <el-table-column label="是否变更" prop="username" align="center"/>-->
      <el-table-column label="人脸照片" prop="socialSecurity" align="center" width="120">
        <template #default="scope">
          <div class="demo-image__preview" v-if="scope.row.facePic && scope.row.facePic.length>0">
@@ -41,7 +39,7 @@
                :preview-src-list="scope.row.facePic"
                :initial-index="0"
                fit="cover"
                preview-teleported="true"
                :preview-teleported=true
            />
          </div>
        </template>
@@ -58,30 +56,34 @@
                :preview-src-list="scope.row.signPic"
                :initial-index="0"
                fit="cover"
                preview-teleported="true"
                :preview-teleported=true
            />
          </div>
        </template>
      </el-table-column>
      <el-table-column label="承诺书" prop="socialSecurity" align="center" width="120">
        <template #default="scope">
<!--          <el-button link>承诺书</el-button>-->
          <div class="demo-image__preview" v-if="scope.row.commitPic && scope.row.commitPic.length>0">
            <el-image
                style="width: 100px; height: 100px"
                :src= "scope.row.commitPic[0]"
                :zoom-rate="1.2"
                :max-scale="7"
                :min-scale="0.2"
                :preview-src-list="scope.row.commitPic"
                :initial-index="0"
                fit="cover"
                :preview-teleported=true
            />
          </div>
        </template>
      </el-table-column>
    </el-table>
    <pagination
        v-show="total > 0"
        :total="total"
        v-model:page="queryParams.pageNum"
        v-model:limit="queryParams.pageSize"
        @pagination="getList"
    />
  </div>
</template>
<script setup>
import {defineEmits, onMounted, reactive, ref, toRefs} from "vue";
import {defineEmits, defineProps, onMounted, reactive, ref, toRefs} from "vue";
import {ElMessage} from "element-plus";
import {Search} from '@element-plus/icons-vue'
import {
@@ -96,7 +98,7 @@
import Cookies from "js-cookie"
import {getDetail} from "@/api/projectManage/contractMng";
const emit = defineEmits(["getNextStatus"]);
const props = defineProps(['projectId'])
const state = reactive({
  loading: false,
  queryParams: {
@@ -116,8 +118,8 @@
  if(userInfo.identity === 0){
    isAmin.value = true;
  }
  if(Cookies.get('projectId')){
    getRecognition(Cookies.get('projectId'));
  if(props.projectId){
    getRecognition(props.projectId);
  }
})
const getRecognition = async (val) =>{
@@ -126,15 +128,18 @@
    state.tableData = res.data.map(item => {
      return {
        ...item,
        facePic: item.faceRecord ? [import.meta.env.VITE_APP_BASE_API + '/' + item.faceRecord.facePath ] : [],
        facePic: item.faceRecord.facePath ? [import.meta.env.VITE_APP_BASE_API + '/' + item.faceRecord.facePath ] : [],
        signPic: item.signPath ? [import.meta.env.VITE_APP_BASE_API + '/' + item.signPath] : [],
        planPerson: {
          playRole: item.planPerson ? item.planPerson.playRole : '',
          jobType: item.planPerson ? item.planPerson.jobType : '',
        }
        commitPic: item.insurancePath ? [import.meta.env.VITE_APP_BASE_API + '/' + item.insurancePath] : [],
        playRolesName: item.planPerson.playRoles.map(role => {
          const roleName =  role === 1?'项目负责人':role === 2? '项目组成员':role === 3? '过程控制负责人':role === 4? '机构评价负责人':role === 5? '技术负责人':role === 6?'内部审核员':''
          return{
            roleName
          }
        })
      }
    })
   console.log("res",res)
   console.log("res", state.tableData)
  }else {
    ElMessage.warning(res.message)
  }
@@ -143,39 +148,23 @@
const riskOpen = async (type,val) => {
  if((type === 'detail' || type === 'edit') && !Cookies.get('projectId')){
    getRecognition(val);
  }
  // if((type === 'detail' || type === 'edit') && !props.projectId){
  //   getRecognition(val);
  // }
  if(type === 'add' || type === 'clickEdit') {
      if (isAmin.value) {
        ElMessage.warning("当前用户暂无权限");
        return;
    if (isAmin.value) {
      ElMessage.warning("当前用户暂无权限");
      return;
    }
    if(type === 'add'){
      const res = await addFaceRecognition({projectId: val});
      if (res.code == 200) {
        ElMessage.success('保存成功')
        emit('getNextStatus', val);
      } else {
        ElMessage.warning(res.message)
      }
      if(type === 'add'){
        const resCheck = await checkAll({projectId: val});
        if (resCheck.code == 200) {
          const res = await addFaceRecognition({projectId: val});
          if (res.code == 200) {
            ElMessage.success('保存成功')
            formRef.value.clearValidate();
            emit('getNextStatus', val);
          } else {
            ElMessage.warning(res.message)
          }
        } else {
          ElMessage.warning(res.message)
        }
      }else if(type === 'clickEdit'){
        // const { ...data} = JSON.parse(JSON.stringify(state.formData))
        // const res = await editRisk(data);
        // if (res.code == 200) {
        //   ElMessage.success('变更成功')
        //   formRef.value.clearValidate();
        //   // emit('getNextStatus', data.project.id);
        // } else {
        //   ElMessage.warning(res.message)
        // }
      }
    }
  }
}