affix-invitation-view.vue 3.93 KB
<template>
  <el-dialog
      v-model="show" title="Visa Invitation Letter" append-to-body close-icon="CircleClose" center
      close-on-click-modal destroy-on-close width="1100"
  >
    <el-descriptions border>
      <el-descriptions-item label="No.">{{ form.id }}</el-descriptions-item>
      <el-descriptions-item label="Applicant Type">{{ form.remarks || form.applicatTypeName }}</el-descriptions-item>
      <el-descriptions-item label="Invitation Type">{{ form.invitationTypeName }}</el-descriptions-item>
      <el-descriptions-item label="Do you need a Chinese invitation?">{{
          form.chinese == '1' ? 'YES' : 'No'
        }}
      </el-descriptions-item>
      <el-descriptions-item label="MNA/Team Name">{{ form.nameEn }}</el-descriptions-item>
      <el-descriptions-item label="MNA/Team Address">{{ form.associationAddress }}</el-descriptions-item>
      <el-descriptions-item label="Contact Email">{{ form.email }}</el-descriptions-item>
      <el-descriptions-item label="Full Name">{{ form.fullName }}</el-descriptions-item>
      <el-descriptions-item label="Position">{{ form.remarks1 || form.positionName }}</el-descriptions-item>
      <el-descriptions-item label="Phone">{{ form.phone }}</el-descriptions-item>
      <el-descriptions-item label="Chinese Embassy Visas Office">{{ form.embassy }}</el-descriptions-item>
      <el-descriptions-item label="Chinese Embassy Email">{{ form.embassyEmail }}</el-descriptions-item>
      <el-descriptions-item label="Additional Documents">
        <el-link v-if="form.files" :href="fillImgUrl(form.files)" target="_blank" type="primary">
          additional documents
        </el-link>
      </el-descriptions-item>
      <el-descriptions-item label="Proof of Employment">
        <el-link v-if="form.invitationFile" target="_blank" :href="fillImgUrl(form.invitationFile)" type="primary">
          proof of employment
        </el-link>
      </el-descriptions-item>
    </el-descriptions>
    <!--    <el-divider></el-divider>-->
    <br/>
    <el-table :data="visaList" border stripe>
      <el-table-column prop="passportCopy" label="Passport Copy">
        <template #default="{row}">
          <el-image
              :src="fillImgUrl(row.passportCopy)"
              :preview-src-list="[fillImgUrl(row.passportCopy)]"
              :preview-teleported="true"
              style="width: 50px;height: 70px"
          />
        </template>
      </el-table-column>
      <el-table-column label="position" align="center" prop="position"/>
      <el-table-column label="lastName" align="center" prop="lastName"/>
      <el-table-column label="firstName" align="center" prop="fristName"/>
      <el-table-column prop="sex" label="Gender" align="center">
        <template #default="{row}">
          {{ row.sex == '0' ? 'M' : 'F' }}
        </template>
      </el-table-column>
      <el-table-column label="nationality" align="center" prop="nationality"/>
      <el-table-column label="birthday" align="center" prop="birthday"/>
      <el-table-column label="Passport No." align="center" prop="passportNo"/>
      <el-table-column label="DATE OF ISSUE" align="center" prop="issueDate"/>
      <el-table-column label="DATE OF EXPIRY" align="center" prop="expiryDate"/>
    </el-table>
  </el-dialog>

</template>

<script setup>
import {useStorage} from "@vueuse/core/index";
import {getCurrentInstance, ref} from "vue";
import {listVisaInfo} from "@/apiPc/match";
import useUserStore from "@/store/modules/user";
import {fillImgUrl} from "/@/utils/ruoyi";

const user = useUserStore().user
const {proxy} = getCurrentInstance()
const language = useStorage('language', 0)
const form = ref({
  gender: '0',
  cptVisaInfoBos: [],
  email: user?.email,
})
const show = ref(false)
const visaList = ref([])

const open = (params) => {
  show.value = true
  form.value = params

  listVisaInfo({visaId: params.id})
      .then((res) => {
        visaList.value = res.rows
      })

}
defineExpose({open})

</script>

<style scoped lang="scss">

</style>