| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | import {  getDictData,  getIndustryListData,  getSkillList,  getIndustryTreeData,  getAreaListData,  getAreaMapData,  getPositionTreeData,  getAreaTreeData,  getPositionData} from '@/api/common'import { getSecondNodes } from '@/utils/dealData'// const setDict = (type, val, cacheTime = 7200) => {const setDict = (type, val) => {  if (!val) {    return  }  if (type === 'areaTreeData') {    const obj = val.data.find(e => e.name === '中国')    val.data = obj?.children ? obj.children.map(e =>{      // 市辖区直接显示区      const municipality = e.children && e.children.length && e.children[0].name === '市辖区'      if (municipality && e.children[0].children?.length) e.children = e.children[0].children      return e    }) : []  }  if (type === 'areaTreeDataExtend') { // 前排加上不限    const obj = val.data.find(e => e.name === '中国')    if (obj?.children?.length) {      // const province =       obj.children.forEach(e=> {        // 市辖区直接显示区        const municipality = e.children && e.children.length && e.children[0].name === '市辖区'        if (municipality && e.children[0].children?.length) e.children = e.children[0].children        // 不限        extendFun(e)      })      val.data = obj.children    } else val.data = []    function extendFun (e) {      const idType = Number.isInteger(e.id) ? 'int' : 'str'      if(e.children?.length) {        e.children.unshift({ name: '不限', id: e.id+'unlimited', idType })        e.children.forEach(i => extendFun(i))      }    }  }  // 一小时过期  const currentTime = new Date()  currentTime.setTime(currentTime.getTime() + 3600 * 1000)    uni.setStorageSync(type, JSON.stringify({    data: val,    // expire: Date.now() + cacheTime * 1000    expire: currentTime.getTime()  }))}export const getDict = (type, params, apiType = 'dict') => {    if (!type) {      return []    }    return new Promise((resolve) => {      const item = uni.getStorageSync(type)      const catchData = item ? JSON.parse(item) : null      if (catchData && catchData.expire && (Date.now() <= catchData.expire) && catchData.data && catchData.data?.data?.length) {        return resolve({ data: catchData.data })      }      // 传参按照规范参数传      const query = params ? params : { type }      const apiFn = {        dict: getDictData,        positionTreeData: getPositionTreeData, // 职位tree        areaTreeData: getAreaTreeData, // 区域tree        areaTreeDataExtend: getAreaTreeData, // 区域tree(二级以后含不限)        industryTreeData: getIndustryTreeData, // 行业tree        industryList: getIndustryListData,        skillList: getSkillList,        areaList: getAreaListData,        areaMap: getAreaMapData,        positionSecondData: getPositionTreeData,        positionData: getPositionData      }      apiFn[apiType](query).then(data => {        // setDict(type, data, Date.now())        if (type === 'positionSecondData') {          data.data = getSecondNodes(data.data)        }        setDict(type, data)        resolve({ data })      })    })}
 |