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;
|