educationExp.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <template>
  2. <div>
  3. <div
  4. v-for="(item, index) in dataList" :key="'educationExp' + index"
  5. :class="[' mx-n2', {'mt-5': index }]"
  6. >
  7. <div class="educExpItem">
  8. <div class="level1 d-flex align-center justify-space-between">
  9. <div>
  10. <span style="font-size: 16px;">{{ item.schoolName }}</span>
  11. <span class="color6 font15 ml-5">
  12. <span>{{ timesTampChange(item.startTime, 'Y-M-D') }}</span>
  13. <span class="mx-1">至</span>
  14. <span>{{ timesTampChange(item.endTime, 'Y-M-D') }}</span>
  15. </span>
  16. </div>
  17. <div v-if="item.active">
  18. <v-btn variant="text" color="primary" prepend-icon="mdi-square-edit-outline" @click="handle(item)">{{ $t('common.edit') }}</v-btn>
  19. <v-btn variant="text" color="primary" prepend-icon="mdi-trash-can-outline" @click="handleDelete(item)">{{ $t('common.delete') }}</v-btn>
  20. </div>
  21. </div>
  22. <div class="level2 my-2">
  23. <span class="color6 font15">{{ item.major }}</span>
  24. <span class="septal-line" v-if="item.educationSystemType"></span>
  25. <span class="color6 font15">{{ getText(item.educationSystemType, dictItemsObj.educationSystemType) }}</span>
  26. </div>
  27. <div class="level3">
  28. <span class="color6 font15">在校经历:{{ item.content }}</span>
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. </template>
  34. <script setup>
  35. defineOptions({name: 'enterprise-talentPool-details-educationExp'})
  36. import { reactive, ref } from 'vue'
  37. import { timesTampChange } from '@/utils/date'
  38. import { getText } from '@/utils/getText'
  39. import { getDict } from '@/hooks/web/useDictionaries'
  40. const props = defineProps({
  41. data: Array
  42. })
  43. const dataList = ref([])
  44. if (props.data?.length) dataList.value = props.data
  45. // 获取字典内容
  46. const dictList = [
  47. { type: 'menduner_education_system_type', key: 'educationSystemType' }
  48. ]
  49. const dictItemsObj = reactive({})
  50. const getDictData = async (obj) => {
  51. const { data } = await getDict(obj.type)
  52. dictItemsObj[obj.key] = data || []
  53. }
  54. const getOptions = () => {
  55. dictList.forEach(obj => getDictData(obj))
  56. }
  57. getOptions()
  58. </script>
  59. <style lang="scss" scoped>
  60. </style>