From 55799a2edbfc4bc6fce4f4c2350e5b9bb7214ed7 Mon Sep 17 00:00:00 2001 From: YANGDL <114714267@qq.com> Date: 星期二, 09 三月 2021 14:51:35 +0800 Subject: [PATCH] 修复ie下不能显示的问题 --- src/router/routes.js | 7 +++ .eslintrc.js | 3 + src/api/index.js | 4 +- src/main.js | 5 +- package.json | 7 ++- src/utils/AjaxUtils.js | 61 ++++++++++++++++++------------ src/api/mapUrl.js | 12 +++--- src/components/helpers/ServiceLayerHelper.js | 19 ++++++--- 8 files changed, 72 insertions(+), 46 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 654134e..60ec4b5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,8 @@ module.exports = { root: true, env: { - node: true + node: true, + amd: true }, extends: [ 'plugin:vue/essential', diff --git a/package.json b/package.json index e098be7..5360251 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "element-ui": "^2.14.1", "jquery": "^3.5.1", "js-cookie": "^2.2.0", - "leaflet": "^1.6.0", + "leaflet": "^1.7.1", "leaflet-canvas-markers": "^1.0.6", "leaflet.markercluster": "^1.4.1", "lodash": "^4.17.10", @@ -40,17 +40,18 @@ "@vue/eslint-config-standard": "^5.1.2", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.2", + "babel-polyfill": "^6.26.0", "cache-loader": "^4.1.0", "css-loader": "^5.0.1", "eslint": "^6.7.2", - "eslint-plugin-vue": "^6.2.2", "eslint-plugin-import": "^2.20.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^4.0.0", - "mockjs": "^1.1.0", + "eslint-plugin-vue": "^6.2.2", "less": "^3.13.0", "less-loader": "^7.1.0", + "mockjs": "^1.1.0", "vue-loader": "^15.9.5", "vue-template-compiler": "^2.6.11" }, diff --git a/src/api/index.js b/src/api/index.js index 5654a60..1df9919 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -2,6 +2,6 @@ import * as mapUrl from './mapUrl' export default { - mapApi, - mapUrl + mapApi, + mapUrl } diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js index c337552..bc905e4 100644 --- a/src/api/mapUrl.js +++ b/src/api/mapUrl.js @@ -1,10 +1,10 @@ /** - * 璇ユ枃浠堕厤缃帴鍙g殑URL鍦板潃 - */ -class ApiURLs{ - constructor(){ - this.APIURL_HELLOWORLD = 'http://www.baidu.com' - } + * 璇ユ枃浠堕厤缃帴鍙g殑URL鍦板潃 + */ +class ApiURLs { + constructor () { + this.APIURL_HELLOWORLD = 'http://www.baidu.com' + } } export default new ApiURLs() diff --git a/src/components/helpers/ServiceLayerHelper.js b/src/components/helpers/ServiceLayerHelper.js index a38ef6c..96da67f 100644 --- a/src/components/helpers/ServiceLayerHelper.js +++ b/src/components/helpers/ServiceLayerHelper.js @@ -116,18 +116,21 @@ * @param url * @param item */ - loadGeojsonLayer (url, item) { + async loadGeojsonLayer (url, item) { var matches = this.regex.exec(url) var matchValue = item[matches[1]] var code = item.code var newUrl = url.replace(this.regex, matchValue) var that = this if (!that.layerArray[code]) { - AjaxUtils.GetDataAsynByUrl(newUrl, {}, function (res) { - store.commit('addSewersDatas', res) - var layer = that.loadGeojson(res, item) - that.layerArray[code] = layer - }) + const res = await AjaxUtils.GetDataAsynByUrl(newUrl, {}) + if (res.data instanceof Object && Object.prototype.hasOwnProperty.call(res.data, 'features')) { + store.commit('addSewersDatas', res.data) + if (newUrl.indexOf('绠$綉') !== -1 || newUrl.indexOf('鍥涢��') !== -1) { + var layer = that.loadGeojson(res.data, item) + that.layerArray[code] = layer + } + } } else { that.layerArray[code].addTo(that.map) } @@ -140,6 +143,7 @@ loadGeojson (res, opt) { var that = this var icon = opt.icon + const layergroup = that.L.featureGroup().addTo(that.map) const geojson = that.L.geoJSON(res.features, { style: function (feature) { return { @@ -215,7 +219,8 @@ } }) } - }).addTo(that.map) + // }).addTo(that.map) + }).addTo(layergroup) store.commit('addSewersDatas', geojson) if (Object.prototype.hasOwnProperty.call(res, 'features') && res.features.length > 0 && (res.features[0].geometry.type === 'LineString' || res.features[0].geometry.type === 'MultiLineString')) { geojson.bringToBack() diff --git a/src/main.js b/src/main.js index 28cfbd5..4bade14 100644 --- a/src/main.js +++ b/src/main.js @@ -1,4 +1,4 @@ -// import 'babel-polyfill' +import 'babel-polyfill' import Vue from 'vue' import App from './App.vue' import router from './router' @@ -11,8 +11,9 @@ import 'leaflet/dist/leaflet.css' import L from 'leaflet' import 'leaflet.markercluster' -import 'leaflet-canvas-markers' +// import 'leaflet-canvas-markers' import './components/plugin/Leaflet.GridLayer.FadeOut' +import './components/plugin/leaflet-canvas-markers' Vue.config.productionTip = false Vue.use(ElementUI) diff --git a/src/router/routes.js b/src/router/routes.js index 2bdac51..ed5d92a 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -26,6 +26,13 @@ meta: { title: '鍩虹鏁版嵁缁存姢' } + }, { + path: '/mapTemplate', + name: 'mapTemplate', + component: MapTemplate, + meta: { + title: '鍩虹鍦板浘' + } }] }] export const routes = [...mainRoutes, ...mapRoutes] diff --git a/src/utils/AjaxUtils.js b/src/utils/AjaxUtils.js index 11138b0..0499763 100644 --- a/src/utils/AjaxUtils.js +++ b/src/utils/AjaxUtils.js @@ -1,5 +1,5 @@ import $ from 'jquery' - +import axios from 'axios' /** * 瀵筳query鐨勫皝瑁卆jax鐨勪紶鏁版嵁鏂规硶 * @param pUrl 璇锋眰鐨剈rl @@ -28,36 +28,47 @@ * @param pData 鍙傛暟 * @param pBackFun 鎴愬姛鍥炶皟 */ -function get4JsonDataByUrl (pUrl, pData, pBackFun) { - $.ajax({ - type: 'get', +function get4JsonDataByUrl (oUrl, pData, pBackFun) { + const pUrl = encodeURI(oUrl) + axios({ + method: 'get', url: pUrl, - dataType: 'json', - data: pData, - async: true, - success: function (datas, nnn) { - pBackFun(datas) - }, - error: function (err, nnnn) { - console.error('鏁版嵁鑾峰彇澶辫触', err, pUrl) - } + data: pData + }).then(function (response) { + pBackFun(response) }) + .catch(function (error) { + console.error('鏁版嵁鑾峰彇澶辫触', error) + }) } -function GetDataAsynByUrl (pUrl, pData, pBackFun) { - $.ajax({ - type: 'GET', +const GetDataAsynByUrl = async (oUrl, pData) => { + const pUrl = encodeURI(oUrl) + const res = await axios({ + method: 'get', url: pUrl, - data: pData, - timeout: 600000, - async: true, - success: function (datas, nnn) { - pBackFun(datas) - }, - error: function (e, nnnn) { - console.error('鏁版嵁鑾峰彇澶辫触', pUrl) - } + data: pData + }).then((response) => { + return (response) }) + .catch((error) => { + console.error('鏁版嵁鑾峰彇澶辫触', error) + }) + return res + + // $.ajax({ + // type: 'GET', + // url: pUrl, + // data: pData, + // timeout: 600000, + // async: true, + // success: function (datas, nnn) { + // pBackFun(datas) + // }, + // error: function (e, nnnn) { + // console.error('鏁版嵁鑾峰彇澶辫触', pUrl) + // } + // }) } function postDataAsynByUrl (pUrl, pData, pBackFun) { $.ajax({ -- Gitblit v1.8.0