| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | 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 =			`<div style="font-size: 14px;color: #333;line-height: 1.5;">		    ${name.replace(namestr, "<span style='color:#66ccff;'>" + val + '</span>')}		    </div>`			.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 += `<div style=\'${style}\'>${elm}</div>`;		});		return `<div style="display:flex;flex-wrap: wrap;">${dt}</div>`;	},	/**	 * 数据处理	 */	dataHandle(item, val) {		// 改变字体颜色		if (val) {			item.nameNodes = util.serachNmme(val, item.name);		} else {			item.nameNodes = `<div style="font-size: 14px;color: #333;line-height: 1.5;">${item.name}</div>`;		}		// 地址解析 地铁		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 = `<span>${item.district}${				item.address.length > 0 ? '·' + item.address : ''			}</span>`.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;
 |