import dayjs from 'dayjs' import { validateIdCard } from './commonReg.js' // sessionStorage 保存 获取 export function setSessionStorage(key, data) { if (!key || !data) { return } if (typeof data === 'object') { sessionStorage.setItem(key, JSON.stringify(data)) return } sessionStorage.setItem(key, data) } export function getSessionStorage(key) { if (!key) { return '' } let result = sessionStorage.getItem(key) || '' try { return JSON.parse(result) } catch { return result } } /** * 请求参数处理 * @param {Object} source 原数据 * @param {Object} obj 处理规则 */ export function fetchDataHandle(source = {}, obj = {}) { const data = source || {} const result = {} Reflect.ownKeys(obj).forEach(key => { // 数组 <=> 字符串 if (obj[key] === 'arrToStr') { result[key] = data[key] ? data[key].join(',') : '' } else if (obj[key] === 'strToArr') { result[key] = data[key] ? data[key].split(',') : [] } else if (obj[key] === 'strToArrNum') { result[key] = data[key] ? data[key].split(',').map(e => +e) : [] } else if (obj[key] === 'arrToAdd') { // 地址数组 => 最后一级地址 result[key] = data[key] ? data[key][data[key].length - 1] : '' } else if (obj[key] === 'addToArr') { if (!data[key]) return [] // 最后一级地址 => 地址数组 if (data[key].length === 2) { result[key] = [data[key]] return } let temp = [ data[key].substring(0, 2), data[key].substring(2, 4), data[key].substring(4, 6), data[key].substring(6, 9), data[key].substring(9, 12), ] temp = temp.filter(e => e !== '00' || e !== '000') const suffix = {1: '00000000', 2: '000000', 3: '000', 4: ''} for (let i = 1; i < temp.length; i++) { temp[i] = temp[i - 1] + temp[i] } for (let i = 1; i < temp.length; i++) { temp[i] = temp[i] + suffix[i] } result[key] = temp } }) return { ...data, ...result } } // 从身份证号获取基础信息 export function getInfoByIdCard(idCard) { if (!validateIdCard(idCard)) return {} const dataBirth = `${idCard.substring(6, 10)}-${idCard.substring(10, 12)}-${idCard.substring(12, 14)}` const gender = idCard.substring(16, 17) % 2 || 2 const age = dayjs().diff(dayjs(dataBirth), 'years') return { dataBirth, gender, age } }