interviewInvite.vue 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <ContentWrap>
  3. <el-table v-loading="loading" :data="list" :stripe="true" height="calc(100vh - 310px)">
  4. <el-table-column label="投递岗位" align="center" prop="job.name">
  5. <template #default="scope">{{ formatName(scope.row.job.name) }}</template>
  6. </el-table-column>
  7. <el-table-column label="岗位薪资" align="center" prop="job.payFrom">
  8. <template #default="{ row }">
  9. {{ !row.job.payFrom && !row.job.payTo ? '面议' : `${row.job.payFrom}-${row.job.payTo}/${payUnit.find(e => e.value === Number(row.job.payUnit))?.label}` }}
  10. </template>
  11. </el-table-column>
  12. <el-table-column label="发布企业" align="center" prop="enterprise.name">
  13. <template #default="{ row }">{{ formatName(row.enterprise.anotherName || row.enterprise.name) }}</template>
  14. </el-table-column>
  15. <el-table-column label="面试时间" align="center" prop="time">
  16. <template #default="{ row }">{{ timesTampChange(row.time, 'Y-M-D h:m') }}</template>
  17. </el-table-column>
  18. <el-table-column label="面试地点" align="center" prop="address" />
  19. <el-table-column label="联系人" align="center" prop="contact.name" />
  20. <el-table-column label="联系电话" align="center" prop="phone" />
  21. <el-table-column label="状态" align="center" prop="status">
  22. <template #default="{ row }">
  23. <dict-tag :type="DICT_TYPE.MENDUNER_INTERVIEW_INVITE_STATUS" :value="row.status" />
  24. </template>
  25. </el-table-column>
  26. </el-table>
  27. <!-- 分页 -->
  28. <Pagination
  29. :total="total"
  30. v-model:page="queryParams.pageNo"
  31. v-model:limit="queryParams.pageSize"
  32. @pagination="getList"
  33. />
  34. </ContentWrap>
  35. </template>
  36. <script lang="ts" setup>
  37. import { timesTampChange } from '@/utils/transform/date'
  38. import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
  39. import { PersonInfoApi } from '@/api/menduner/system/person'
  40. import { formatName } from '@/utils'
  41. defineOptions({ name: 'PersonInterviewInvite' })
  42. const props = defineProps({
  43. userId: String
  44. })
  45. const loading = ref(true) // 列表的加载中
  46. const total = ref(0) // 列表的总页数
  47. const queryParams = reactive({
  48. pageNo: 1,
  49. pageSize: 10,
  50. userId: props.userId
  51. })
  52. const payUnit = getIntDictOptions(DICT_TYPE.MENDUNER_PAY_UNIT)
  53. const list = ref([]) // 列表的数据
  54. const getList = async () => {
  55. loading.value = true
  56. try {
  57. const data = await PersonInfoApi.getInterviewInvitePage(queryParams)
  58. list.value = data.list
  59. total.value = data.total
  60. } finally {
  61. loading.value = false
  62. }
  63. }
  64. /** 初始化 **/
  65. onMounted(() => {
  66. getList()
  67. })
  68. </script>