examiner_ji.vue 6.45 KB
<template>
  <el-row>
    <el-col :lg="18" :sm="24">
      <div class="wPanel">
        <img class="forWei poimg" src="@/assets/h5/cx@2x.png">

        <h2>级位考官查询</h2>
        <el-form ref="queryRef" :model="queryParams" :rules="rules" label-width="120">
          <el-form-item label="姓 名" prop="name">
            <el-input
              v-model.trim="queryParams.name"
              placeholder="请输入姓名"
              size="large"
              clearable
              prefix-icon="User"
              @keyup.enter="handleQuery"
            />
          </el-form-item>
          <el-form-item label="证件号码" prop="queryCode">
            <el-input
              v-model.trim="queryParams.queryCode"
              placeholder="请输入证件号码"
              size="large"
              clearable
              prefix-icon="Postcard"
              @keyup.enter="handleQuery"
            />
          </el-form-item>
          <el-form-item label="图形验证码" prop="code">
            <captcha ref="codeRef" v-model="queryParams.code" v-model:uuid="queryParams.uuid" :auto-load="false" @keyup.enter="handleQuery" />
          </el-form-item>
          <el-form-item>
            <el-button class="search-btn" round type="default" plain @click="handleQuery">
              <el-icon class="el-icon--left"><Search /></el-icon>查询
            </el-button>
          </el-form-item>
        </el-form>
      </div>
      <el-divider class="forPc" />
      <div class="wPanel mt20">
        <img class="forWei poimg" src="@/assets/h5/jg@2x.png">

        <h2>级位考官查询结果</h2>
        <el-form label-width="120">
          <el-form-item label="名 称">
            <el-input v-model="resultForm.name" readonly />
          </el-form-item>
          <el-form-item label="证件号码">
            <el-input v-model="resultForm.idcCode" readonly />
          </el-form-item>
          <el-form-item label="证书编号">
            <el-input v-model="resultForm.code" readonly />
          </el-form-item>
          <!--        <el-form-item label="性 别">-->
          <!--          <el-input v-model="resultForm.sex" readonly />-->
          <!--        </el-form-item>-->
          <el-form-item label="出生日期">
            <el-input v-model="resultForm.birth" readonly />
          </el-form-item>
        <!--        <el-form-item label="有效期开始">-->
        <!--          <el-input v-model="resultForm.passTime" readonly />-->
        <!--        </el-form-item>-->
        <!--        <el-form-item label="有效期结束">-->
        <!--          <el-input v-model="resultForm.endTime" readonly />-->
        <!--        </el-form-item>-->
        </el-form>
      </div>
    </el-col>
  </el-row>
  <div v-if="showCert" class="cert">
    <div class="bg_certificate bg_c6">
      <img v-if="resultForm.status=='过期'" style="position: absolute;left: 50px; top: 50px" alt="" src="@/assets/images/gq.png"/>
      <button type="button" class="close" @click="showCert=false"><span aria-hidden="true">×</span></button>
      <input readonly :value="resultForm.name" type="text" class="input_certificate c5_01">
      <input readonly :value="resultForm.birth" type="text" class="input_certificate c5_02">
      <input readonly :value="resultForm.idcCode" type="text" class="input_certificate c5_03">
      <input readonly :value="resultForm.code" type="text" class="input_certificate c5_04">
      <input readonly :value="resultForm.endTime" type="text" class="input_certificate c5_05">
    </div>
  </div>
</template>

<script setup>
import { getCurrentInstance, reactive } from '@vue/runtime-core'
import { toRefs } from 'vue'
import Captcha from '@/views/login/components/captcha'
import * as authentic from '@/apiPc/authentic'
import { customMessageBox } from '@/utils/ruoyi'

const { proxy } = getCurrentInstance()

const data = reactive({
  queryParams: {
    type: '3',
    name: undefined,
    queryCode: undefined,
    code: undefined,
    uuid: undefined
  },
  rules: {
    name: [{ required: true, trigger: 'blur', message: '请输入姓名' }],
    queryCode: [{ required: true, trigger: 'blur', message: '请输入证件号码' }],
    code: [{ required: true, trigger: 'blur', message: '请输入图形验证码' }]
  },
  resultForm: {},
  showCert: false
})
const { queryParams, rules, resultForm, showCert } = toRefs(data)

function handleQuery() {
  proxy.$refs['queryRef'].validate((valid) => {
    if (valid) {
      resultForm.value = {}
      authentic.accurateQuery(queryParams.value).then(res => {
        if (res.data) {
          resultForm.value = res.data
          showCert.value = true
        } else {
          customMessageBox('没有查询到相应的数据')
        }
      }).finally(getCode)
    }
  })
}

function getCode() {
  proxy.$refs['codeRef'].getCode()
}

function init() {
  getCode()
}
defineExpose({
  init
})
</script>

<style scoped lang="scss">
h2{color:var(--el-color-primary);font-size: 18px;text-align: center;margin:0 0 30px;}
:deep(.el-input__wrapper){background: #FBFCFD;}


.bg_c6 {
  background: url("@/assets/v1/cert/bg_certificate_examier_grade.png") no-repeat;
}
.bg_certificate {
  position: relative;
  padding: 10px;
  width: 800px;
  height: 565px;
  .close{    -webkit-appearance: none;
    padding: 0;    float: right;
    cursor: pointer;
    border: 0;
    margin-top: 10px;
    margin-right: 10px;
    width: 24px;
    height: 24px;
    border-radius: 8px;
    background-color: #900;
    color: #fff;
    font-size: 16px;
    opacity: 1;
  }
  .input_certificate {
    position: absolute;
    font-size: 16px;
    font-weight: bold;
    font-family: "宋体";
    border: none;
    background: none;
  }
  .c5_01, .c6_01 {
    top: 220px;
    left: 340px;
  }
  .c5_02, .c6_02 {
    top: 280px;
    left: 340px;
  }
  .c5_03, .c6_03 {
    top: 340px;
    left: 340px;
  }
  .c5_05, .c6_05 {
    top: 280px;
    left: 630px;
  }
  .c5_06, .c6_06 {
    top: 340px;
    left: 630px
  }
  .c5_04, .c6_04 {
    top: 220px;
    left: 630px;
  }
}
.cert{position: fixed;height: 100vh;width: 100vw;overflow: auto;z-index: 2;
  display: flex;align-items: center;justify-content: center;
  top: 0;left: 0;background: rgba(0,0,0,0.6);
}
@media (max-width: 500px) {
  h2{ color: #000; }
  .forWei {display: block;}
  .forPc{display: none}
  .wPanel{position: relative;}
  .poimg{width: 110px;position: absolute;right: 10px;top:0;}
  .search-btn{background: var(--el-color-primary);color: #fff;border: none;
    display: block;width: calc(100vw - 260px);}
}
</style>