import amap from '@/components/amap-wx/lib/amap-wx.js'; // 地铁颜色图 const line = { '1号线': '#C43B33', '2号线': '#016299', '4号线/大兴线': '#008E9C', '5号线': '#A42380', '6号线': '#D09900', '7号线': '#F2C172', '8号线': '#009D6A', '9号线': '#8FC41E', '10号线': '#009DBE', '13号线': '#F9E701', '14号线东段': '#D4A7A2', '14号线西段': '#D4A7A2', '15号线': '#5D2D69', '八通线': '#C33A32', '昌平线': '#DE82B1', '亦庄线': '#E40177', '房山线': '#E66021', '机场线': '#A29BBC', } // 150500:地铁站 ,150700:公交站 , 190700:地名地址 const typecode = [{ id: '150500', icon: 'icon-ditie' }, { id: '150700', icon: 'icon-gongjiao' }, { id: '190700', icon: 'icon-gonglu' }]; const util = { key:'b526b09b86cd2996e7732be8ab8c4430', /** * 初始化高德地图api */ mapInit() { return new amap.AMapWX({ key: this.key }); }, // 服务状态吗 typecode, /** * 获取地图颜色 */ lineColor(name) { if (line[name]) { return line[name]; } else { return '#ccc'; } }, /** * 关键字颜色变化 */ serachNmme(val, name) { let namestr = new RegExp(val); let nameresult = `
${name.replace(namestr, "" + val + '')}
` .trim(); return nameresult; }, /** * 地址转地铁线路 */ addressToLine(address, type) { let addr = address.split(';'); let dt = ''; addr.forEach(elm => { let color = '#cccccc'; if (type === typecode[0].id) { color = this.lineColor(elm) } else if (type === typecode[1].id) { color = '#4075cb' } let style = 'margin:5px 0;margin-right:5px;padding:0 5px;background:' + color + ';font-size:12px;color:#fff;border-radius:3px;'; dt += `
${elm}
`; }); return `
${dt}
`; }, /** * 数据处理 */ dataHandle(item, val) { // 改变字体颜色 if (val) { item.nameNodes = util.serachNmme(val, item.name); } else { item.nameNodes = `
${item.name}
`; } // 地址解析 地铁 if ( item.typecode === util.typecode[0].id || item.typecode === util.typecode[1].id ) { item.addressNodes = util.addressToLine(item.address, item.typecode); if (item.typecode === util.typecode[0].id) { item.icon = util.typecode[0].icon; } else if (item.typecode === util.typecode[1].id) { item.icon = util.typecode[1].icon; } } else { item.addressNodes = `${item.district}${ item.address.length > 0 ? '·' + item.address : '' }`.trim(); item.icon = 'icon-weizhi'; } if (item.location && item.location.length === 0) { item.icon = 'icon-sousuo'; } return item; }, /** * 存储历史数据 * val [string | object]需要存储的内容 */ setHistory(val) { let searchHistory = uni.getStorageSync('search:history'); if (!searchHistory) searchHistory = []; let serachData = {}; if (typeof(val) === 'string') { serachData = { adcode: [], address: [], city: [], district: [], id: [], location: [], name: val, typecode: [] }; } else { serachData = val } // 判断数组是否存在,如果存在,那么将放到最前面 for (var i = 0; i < searchHistory.length; i++) { if (searchHistory[i].name === serachData.name) { searchHistory.splice(i, 1); break; } } searchHistory.unshift(util.dataHandle(serachData)); uni.setStorage({ key: 'search:history', data: searchHistory, success: function() { // console.log('success'); } }); }, getHistory() { }, removeHistory() { uni.removeStorage({ key: 'search:history', success: function(res) { console.log('success'); } }); return [] } } export default util;