dict.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { reactive } from 'vue'
  2. import { getDict } from '@/hooks/web/useDictionaries'
  3. const dictObj = reactive({})
  4. const dictList = [
  5. {
  6. type: 'positionData',
  7. apiType: 'positionData',
  8. key: 'positionId',
  9. label: 'position',
  10. value: 'positionTypeData',
  11. itemKey: 'id',
  12. itemText: 'nameCn'
  13. },
  14. {
  15. type: 'industryList',
  16. apiType: 'industryList',
  17. key: 'industryIdList',
  18. label: 'industry',
  19. isArray: true,
  20. value: 'industryTypeData',
  21. itemKey: 'id',
  22. itemText: 'nameCn'
  23. },
  24. {
  25. type: 'menduner_area_type',
  26. apiType: 'areaList',
  27. key: 'workAreaId',
  28. label: 'workArea',
  29. value: 'areaTypeData',
  30. itemKey: 'id',
  31. itemText: 'name'
  32. },
  33. {
  34. type: 'menduner_job_type',
  35. key: 'jobType',
  36. label: 'jobTypeName',
  37. value: 'jobTypeData',
  38. itemKey: 'value',
  39. itemText: 'label'
  40. }
  41. ]
  42. // 字典
  43. const getDictList = async () => {
  44. dictList.forEach(async (val) => {
  45. const { data } = await getDict(val.type, val.params, val.apiType)
  46. dictObj[val.value] = data
  47. })
  48. }
  49. const getData = async () => {
  50. await getDictList()
  51. }
  52. getData()
  53. export const dealJobData = (list) => {
  54. let res = {}
  55. dictList.forEach(item => {
  56. res = list.map(e => {
  57. let obj = {}
  58. if (item.isArray) {
  59. e[item.label] = e[item.key].map(val => {
  60. return obj = dictObj[item.value].find(i => i[item.itemKey] === val)
  61. })
  62. } else {
  63. obj = dictObj[item.value].find(k => Number(k[item.itemKey]) === Number(e[item.key]))
  64. e[item.label] = obj[item.itemText]
  65. }
  66. return e
  67. })
  68. })
  69. return res
  70. }