You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
3.8 KiB
182 lines
3.8 KiB
12 months ago
|
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;
|