index.vue 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div class="resume-box" style="position: relative; height: 100%;">
  3. <div class="resume-header">
  4. <div class="resume-title">屏蔽企业设置</div>
  5. </div>
  6. <div class="mt-5">
  7. <!-- 选择 -->
  8. <div class="d-flex align-center pb-5" style="border-bottom: 1px solid #dddddd;">
  9. <div style="color: #777;">选择企业: </div>
  10. <Autocomplete v-model="item.value" :item="item"></Autocomplete>
  11. <v-btn class="ml-3" color="primary" @click="null">确认屏蔽</v-btn>
  12. </div>
  13. <!-- 展示 -->
  14. <v-chip v-for="k in dataList" class="mt-3 mr-3" :key="k.id">
  15. <span class="cursor-pointer">{{ getText(k.skillId, skillList, 'nameCn', 'id') }}</span>
  16. <template v-slot:append>
  17. <v-icon class="ml-2" @click="handleDelete(k)">mdi-close-circle</v-icon>
  18. </template>
  19. </v-chip>
  20. </div>
  21. </div>
  22. </template>
  23. <script setup>
  24. import {
  25. savePersonResumeCv,
  26. getResumePersonSkill,
  27. enterpriseSearchByName,
  28. } from '@/api/recruit/personal/resume'
  29. import { getText } from '@/utils/getText'
  30. import Snackbar from '@/plugins/snackbar'
  31. import Confirm from '@/plugins/confirm'
  32. import { ref } from 'vue'
  33. defineOptions({name: 'resume-blockEnt'})
  34. // 获取数据
  35. const dataList = ref([])
  36. const getData = async () => {
  37. const data = await getResumePersonSkill()
  38. dataList.value = data
  39. }
  40. getData()
  41. // 删除
  42. const handleDelete = ({ id }) => {
  43. Confirm('系统提示', '是否确认删除此职业技能?').then(async () => {
  44. await savePersonResumeCv(id)
  45. getData()
  46. Snackbar.success('删除成功!')
  47. })
  48. }
  49. // 企业名称下拉列表
  50. const enterpriseNameInput = ref('')
  51. const getEnterpriseData = async (name) => {
  52. // const item = formItems.value.options.find(e => e.key === 'enterpriseId')
  53. // if (!item) return
  54. if (item.items?.length && (enterpriseNameInput.value === name)) return // 防抖
  55. item[item.itemTextName] = enterpriseNameInput.value = name
  56. if (name === null || name === '') { item.items = [] }
  57. else {
  58. const data = await enterpriseSearchByName({ name })
  59. item.items = data
  60. }
  61. }
  62. const item = {
  63. type: 'autocomplete',
  64. key: 'enterpriseId',
  65. value: null,
  66. default: null,
  67. label: '请输入企业名称搜索',
  68. outlined: true,
  69. clearable: true,
  70. hireDetails: true,
  71. itemTextName: 'enterpriseName',
  72. itemText: 'value',
  73. itemValue: 'key',
  74. width: '400',
  75. search: getEnterpriseData,
  76. items: []
  77. }
  78. </script>
  79. <style lang="scss" scoped>
  80. </style>