diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/busAdmin/TimeLimit/listTimeLimit.vue b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
index a85dfa7..d0a57c1 100644
--- a/src/views/busAdmin/TimeLimit/listTimeLimit.vue
+++ b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
@@ -14,8 +14,8 @@
- 查看
- 编辑
+ 查看
+ 编辑
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/busAdmin/TimeLimit/listTimeLimit.vue b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
index a85dfa7..d0a57c1 100644
--- a/src/views/busAdmin/TimeLimit/listTimeLimit.vue
+++ b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
@@ -14,8 +14,8 @@
- 查看
- 编辑
+ 查看
+ 编辑
diff --git a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
index 23a26de..9a78b8b 100644
--- a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
+++ b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
@@ -1,39 +1,20 @@
-
-
-
-
+
+
+
新增
-
-
-
-
-
-
- {{ scope.row[column.value] }}
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
-
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/busAdmin/TimeLimit/listTimeLimit.vue b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
index a85dfa7..d0a57c1 100644
--- a/src/views/busAdmin/TimeLimit/listTimeLimit.vue
+++ b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
@@ -14,8 +14,8 @@
- 查看
- 编辑
+ 查看
+ 编辑
diff --git a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
index 23a26de..9a78b8b 100644
--- a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
+++ b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
@@ -1,39 +1,20 @@
-
-
-
-
+
+
+
新增
-
-
-
-
-
-
- {{ scope.row[column.value] }}
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
-
+
diff --git a/src/views/busAdmin/caseType/listCaseType.vue b/src/views/busAdmin/caseType/listCaseType.vue
index 4dd8fa7..4639c1e 100644
--- a/src/views/busAdmin/caseType/listCaseType.vue
+++ b/src/views/busAdmin/caseType/listCaseType.vue
@@ -2,7 +2,7 @@
-
+
事部件管理
@@ -26,36 +26,23 @@
-
-
-
-
- 删除
- 添加
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 条件过滤
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 添加
+
+
-
+
+
@@ -63,25 +50,15 @@
{{ caseTypeMap[scope.row.typeId] }}
-
+
- 编辑
-
+ 详情
+ 编辑
+
-
-
-
+
+
@@ -169,9 +146,6 @@
// this.fetchCaseTypeTree()
},
methods: {
- indexMethod(index) {
- return this.listQuery.limit * (this.listQuery.offset - 1) + index + 1
- },
initCaseTypeTree() {
this.treeLoading = true
getCaseTypeDict().then(response => {
@@ -242,14 +216,14 @@
search() {
this.fetchData(false)
},
- // 改变页容量
- handleSizeChange(val) {
- this.listQuery.limit = val
- this.fetchData()
- },
- // 改变当前页
- handleCurrentChange(val) {
- this.listQuery.offset = val
+ // 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+ changePage(val) {
+ if (val && val.size) {
+ this.listQuery.limit = val.size
+ }
+ if (val && val.page) {
+ this.listQuery.offset = val.page
+ }
this.fetchData()
},
add() {
@@ -330,43 +304,4 @@
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/busAdmin/TimeLimit/listTimeLimit.vue b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
index a85dfa7..d0a57c1 100644
--- a/src/views/busAdmin/TimeLimit/listTimeLimit.vue
+++ b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
@@ -14,8 +14,8 @@
- 查看
- 编辑
+ 查看
+ 编辑
diff --git a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
index 23a26de..9a78b8b 100644
--- a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
+++ b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
@@ -1,39 +1,20 @@
-
-
-
-
+
+
+
新增
-
-
-
-
-
-
- {{ scope.row[column.value] }}
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
-
+
diff --git a/src/views/busAdmin/caseType/listCaseType.vue b/src/views/busAdmin/caseType/listCaseType.vue
index 4dd8fa7..4639c1e 100644
--- a/src/views/busAdmin/caseType/listCaseType.vue
+++ b/src/views/busAdmin/caseType/listCaseType.vue
@@ -2,7 +2,7 @@
-
+
事部件管理
@@ -26,36 +26,23 @@
-
-
-
-
- 删除
- 添加
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 条件过滤
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 添加
+
+
-
+
+
@@ -63,25 +50,15 @@
{{ caseTypeMap[scope.row.typeId] }}
-
+
- 编辑
-
+ 详情
+ 编辑
+
-
-
-
+
+
@@ -169,9 +146,6 @@
// this.fetchCaseTypeTree()
},
methods: {
- indexMethod(index) {
- return this.listQuery.limit * (this.listQuery.offset - 1) + index + 1
- },
initCaseTypeTree() {
this.treeLoading = true
getCaseTypeDict().then(response => {
@@ -242,14 +216,14 @@
search() {
this.fetchData(false)
},
- // 改变页容量
- handleSizeChange(val) {
- this.listQuery.limit = val
- this.fetchData()
- },
- // 改变当前页
- handleCurrentChange(val) {
- this.listQuery.offset = val
+ // 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+ changePage(val) {
+ if (val && val.size) {
+ this.listQuery.limit = val.size
+ }
+ if (val && val.page) {
+ this.listQuery.offset = val.page
+ }
this.fetchData()
},
add() {
@@ -330,43 +304,4 @@
diff --git a/src/views/busAdmin/userDevice/userDevice.vue b/src/views/busAdmin/userDevice/userDevice.vue
index 3b38a9c..4b68877 100644
--- a/src/views/busAdmin/userDevice/userDevice.vue
+++ b/src/views/busAdmin/userDevice/userDevice.vue
@@ -2,7 +2,7 @@
-
+
@@ -12,8 +12,8 @@
- 编辑
- 删除
+ 编辑
+ 删除
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/busAdmin/TimeLimit/listTimeLimit.vue b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
index a85dfa7..d0a57c1 100644
--- a/src/views/busAdmin/TimeLimit/listTimeLimit.vue
+++ b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
@@ -14,8 +14,8 @@
- 查看
- 编辑
+ 查看
+ 编辑
diff --git a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
index 23a26de..9a78b8b 100644
--- a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
+++ b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
@@ -1,39 +1,20 @@
-
-
-
-
+
+
+
新增
-
-
-
-
-
-
- {{ scope.row[column.value] }}
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
-
+
diff --git a/src/views/busAdmin/caseType/listCaseType.vue b/src/views/busAdmin/caseType/listCaseType.vue
index 4dd8fa7..4639c1e 100644
--- a/src/views/busAdmin/caseType/listCaseType.vue
+++ b/src/views/busAdmin/caseType/listCaseType.vue
@@ -2,7 +2,7 @@
-
+
事部件管理
@@ -26,36 +26,23 @@
-
-
-
-
- 删除
- 添加
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 条件过滤
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 添加
+
+
-
+
+
@@ -63,25 +50,15 @@
{{ caseTypeMap[scope.row.typeId] }}
-
+
- 编辑
-
+ 详情
+ 编辑
+
-
-
-
+
+
@@ -169,9 +146,6 @@
// this.fetchCaseTypeTree()
},
methods: {
- indexMethod(index) {
- return this.listQuery.limit * (this.listQuery.offset - 1) + index + 1
- },
initCaseTypeTree() {
this.treeLoading = true
getCaseTypeDict().then(response => {
@@ -242,14 +216,14 @@
search() {
this.fetchData(false)
},
- // 改变页容量
- handleSizeChange(val) {
- this.listQuery.limit = val
- this.fetchData()
- },
- // 改变当前页
- handleCurrentChange(val) {
- this.listQuery.offset = val
+ // 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+ changePage(val) {
+ if (val && val.size) {
+ this.listQuery.limit = val.size
+ }
+ if (val && val.page) {
+ this.listQuery.offset = val.page
+ }
this.fetchData()
},
add() {
@@ -330,43 +304,4 @@
diff --git a/src/views/busAdmin/userDevice/userDevice.vue b/src/views/busAdmin/userDevice/userDevice.vue
index 3b38a9c..4b68877 100644
--- a/src/views/busAdmin/userDevice/userDevice.vue
+++ b/src/views/busAdmin/userDevice/userDevice.vue
@@ -2,7 +2,7 @@
-
+
@@ -12,8 +12,8 @@
- 编辑
- 删除
+ 编辑
+ 删除
diff --git a/src/views/geoCoding/address.vue b/src/views/geoCoding/address.vue
new file mode 100644
index 0000000..afd8a2e
--- /dev/null
+++ b/src/views/geoCoding/address.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 24656f3..dc69914 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -151,6 +151,60 @@
}
}
},
+ "@terraformer/arcgis": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/arcgis/-/arcgis-2.0.7.tgz",
+ "integrity": "sha512-7jIQcnd8RnKsDt1IxmEjq9t7l5fnf0e5c+c1+1GjG4NR+TY0XkJcWtrBv0DWd65uAlDiQYMlEG8ls5dz1GQiuA==",
+ "requires": {
+ "@terraformer/common": "^2.0.7"
+ }
+ },
+ "@terraformer/common": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@terraformer/common/-/common-2.0.7.tgz",
+ "integrity": "sha512-8bl+/JT0Rw6FYe2H3FfJS8uQwgzGl+UHs+8JX0TQLHgA4sMDEwObbMwo0iP3FVONwPXrPHEpC5YH7Grve0cl9A=="
+ },
+ "@turf/difference": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-6.3.0.tgz",
+ "integrity": "sha512-f4P0ra0jBOFk4HO8n/9FZ3NEmOX7FHCXHy/4Z1RSUUQsUQDCkx6/cyqbi8BCy2ZSDUSCGHV+iPgs4fRphMzCHQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/helpers": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz",
+ "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg=="
+ },
+ "@turf/intersect": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.3.0.tgz",
+ "integrity": "sha512-1YCIkyKjuTlX7HaTjtyE7ZRxLCmcu0BYr6jqoVl7TjyF2NUiNpPm3m4X1ZrSF6MfjIt5NFSGYCdNMEPgREq19w==",
+ "requires": {
+ "@turf/helpers": "^6.3.0",
+ "@turf/invariant": "^6.3.0",
+ "polygon-clipping": "^0.15.2"
+ }
+ },
+ "@turf/invariant": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.3.0.tgz",
+ "integrity": "sha512-2OFOi9p+QOrcIMySEnr+WlOiKaFZ1bY56jA98YyECewJHfhPFWUBZEhc4nWGRT0ahK08Vus9+gcuBX8QIpCIIw==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
+ "@turf/kinks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-6.3.0.tgz",
+ "integrity": "sha512-BLWvbl2/fa4SeJzVMbleT6Vo1cmzwmzRfxL2xxMei2jmf6JSvqDoMJFwIHGXrLZXvhOCb1b2C+MhBfhtc7kYkQ==",
+ "requires": {
+ "@turf/helpers": "^6.3.0"
+ }
+ },
"@types/q": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
@@ -4272,10 +4326,55 @@
"estraverse": "^4.1.0"
}
},
+ "esri": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/esri/-/esri-0.0.1-security.tgz",
+ "integrity": "sha512-v0qH/G4iDFaQ6jf+C3KK4RCRh4j8fyxuXs9vICKDVRQedhp7Ar5Nwx6purTGu3YUycaZqe6HEoISnAmfWaGk8w=="
+ },
+ "esri-leaflet": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-3.0.1.tgz",
+ "integrity": "sha512-pY/zI9VbZUfX5Do3ujD0LDDtWsn8dG2+tWRc9bKTvnou1p5XpHisvwxYM5w1xbKHANGkzYaCSrD1zxcWWocmhQ==",
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ },
+ "esri-leaflet-cluster": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-cluster/-/esri-leaflet-cluster-2.1.0.tgz",
+ "integrity": "sha512-q07BHPXkluyb8STt/2m2spSecBiZj/Eqaiab8J14mlJ9RxAF11HthDb/09UOiJTmbpgvLUV1nPs2l7dKyY7xqg==",
+ "optional": true,
+ "requires": {
+ "esri-leaflet": "^2.0.0",
+ "leaflet": "^1.0.0",
+ "leaflet.markercluster": "^1.0.0"
+ },
+ "dependencies": {
+ "esri-leaflet": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.3.tgz",
+ "integrity": "sha512-zapunrhhhKyiVP5NCSfFjD7YqWYYYD3OONVjBFWZgX2KbD6ssUQ3KnXVo2U0hswWfJDIoHF7g9PLZ4rDNuQnvA==",
+ "optional": true,
+ "requires": {
+ "@terraformer/arcgis": "^2.0.7",
+ "tiny-binary-search": "^1.0.3"
+ }
+ }
+ }
+ },
+ "esri-leaflet-renderers": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/esri-leaflet-renderers/-/esri-leaflet-renderers-2.1.2.tgz",
+ "integrity": "sha512-25IsDPFP92vhrb7CEwg0rGiLc2sbXd2MXqcYyqIifmUgObfiN6awdj6cO35OfCaTXEYrrH9F4TYnW2oyBnmppg==",
+ "requires": {
+ "esri-leaflet-cluster": "^2.1.0"
+ }
+ },
"esri-loader": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-2.11.0.tgz",
- "integrity": "sha512-Du0Fap3mGW9Vj9yRaHP8ETpNnNrTPeSBlIimccLX5Ux5A/Hh94SDuuwBRYYCds+bIE9OBg6eRZPCS5VAWKYcDg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/esri-loader/-/esri-loader-3.0.0.tgz",
+ "integrity": "sha512-JvNL1agqzJz13uMaAfjktO66iIpJLYjmHabS73tEc910ZCAXMl5i7mWXQxbCdYCIWwRtL3SEhXBXRxSFfX6MBQ=="
},
"estraverse": {
"version": "4.2.0",
@@ -6669,6 +6768,28 @@
"resolved": "https://registry.npm.taobao.org/leaflet/download/leaflet-1.7.1.tgz",
"integrity": "sha1-ENaEkW7f4b9B1oijuXEnwDIqKhk="
},
+ "leaflet-draw": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.4.tgz",
+ "integrity": "sha512-rsQ6saQO5ST5Aj6XRFylr5zvarWgzWnrg46zQ1MEOEIHsppdC/8hnN8qMoFvACsPvTioAuysya/TVtog15tyAQ=="
+ },
+ "leaflet.markercluster": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz",
+ "integrity": "sha512-Fvf/cq4o806mJL50n+fZW9+QALDDLPvt7vuAjlD2vfnxx3srMDs2vWINJze4nKYJYRY45OC6tM/669C3pLwMCA==",
+ "optional": true
+ },
+ "leaflet.pm": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/leaflet.pm/-/leaflet.pm-2.2.0.tgz",
+ "integrity": "sha512-y2qFh+1hEoZ2mJvrB6QTyWm+tusRhTCKLyTOoQBWIDXtYJowBm3sxHyt0jqft7vfaRXHtVwq016+FGH34CzKtg==",
+ "requires": {
+ "@turf/difference": "^6.0.2",
+ "@turf/intersect": "^6.1.3",
+ "@turf/kinks": "6.x",
+ "lodash": "^4.17.15"
+ }
+ },
"levn": {
"version": "0.3.0",
"resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
@@ -8153,6 +8274,14 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "polygon-clipping": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.2.tgz",
+ "integrity": "sha512-qsUFQSY4nA++1/b76dy0BJGwL0FZAk05Y4hZprctLIhAddE8KUUr3TxIF4sAxIQtjH9xvaBe3raaRQrcSI4wlA==",
+ "requires": {
+ "splaytree": "^3.1.0"
+ }
+ },
"portfinder": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.16.tgz",
@@ -11401,6 +11530,11 @@
}
}
},
+ "splaytree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.0.tgz",
+ "integrity": "sha512-gvUGR7xnOy0fLKTCxDeUZYgU/I1Tdf8M/lM1Qrf8L2TIOR5ipZjGk02uYcdv0o2x7WjVRgpm3iS2clLyuVAt0Q=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -12005,6 +12139,11 @@
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
"dev": true
},
+ "tiny-binary-search": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-binary-search/-/tiny-binary-search-1.0.3.tgz",
+ "integrity": "sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA=="
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
diff --git a/package.json b/package.json
index 8af29e7..036218e 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,16 @@
"babel-polyfill": "^6.26.0",
"echarts": "^4.2.1",
"element-ui": "2.12.0",
- "esri-loader": "^2.3.0",
+ "esri": "0.0.1-security",
+ "esri-leaflet": "^3.0.1",
+ "esri-leaflet-renderers": "^2.1.2",
+ "esri-loader": "^3.0.0",
+ "leaflet": "^1.7.1",
+ "leaflet-draw": "^1.0.4",
+ "leaflet.pm": "^2.2.0",
"event-source-polyfill": "^1.0.5",
"js-cookie": "2.2.0",
"jsencrypt": "^3.0.0-rc.1",
- "leaflet": "^1.7.1",
"lodash": "^4.17.15",
"mockjs": "1.0.1-beta3",
"moment": "^2.24.0",
diff --git a/src/api/baseSource/server.js b/src/api/baseSource/server.js
new file mode 100644
index 0000000..51c3f45
--- /dev/null
+++ b/src/api/baseSource/server.js
@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+// 获取服务列表
+export function getServerList(params) {
+ return request({
+ url: '/map/server/listPage',
+ method: 'get',
+ params: params
+ })
+}
+// 编辑服务地址
+export function serverEdit(params) {
+ return request({
+ url: '/map/server/edit',
+ method: 'post',
+ params: params
+ })
+}
diff --git a/src/api/geoCoding/geoCoding.js b/src/api/geoCoding/geoCoding.js
new file mode 100644
index 0000000..2fa4f33
--- /dev/null
+++ b/src/api/geoCoding/geoCoding.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+// 获取服务列表? 地理编码列表
+export function merchantListPage(params) {
+ return request({
+ url: '/shop/merchant/listPage',
+ method: 'get',
+ params
+ })
+}
diff --git a/src/assets/global_images/add.png b/src/assets/global_images/add.png
new file mode 100644
index 0000000..60b68c7
--- /dev/null
+++ b/src/assets/global_images/add.png
Binary files differ
diff --git a/src/assets/global_images/delete.png b/src/assets/global_images/delete.png
new file mode 100644
index 0000000..ad92346
--- /dev/null
+++ b/src/assets/global_images/delete.png
Binary files differ
diff --git a/src/assets/global_images/point.png b/src/assets/global_images/point.png
new file mode 100644
index 0000000..a1a44bc
--- /dev/null
+++ b/src/assets/global_images/point.png
Binary files differ
diff --git a/src/assets/global_images/point1.png b/src/assets/global_images/point1.png
new file mode 100644
index 0000000..28a9723
--- /dev/null
+++ b/src/assets/global_images/point1.png
Binary files differ
diff --git a/src/assets/global_images/point2.png b/src/assets/global_images/point2.png
new file mode 100644
index 0000000..f295fd1
--- /dev/null
+++ b/src/assets/global_images/point2.png
Binary files differ
diff --git a/src/assets/global_images/point3.png b/src/assets/global_images/point3.png
new file mode 100644
index 0000000..2815e21
--- /dev/null
+++ b/src/assets/global_images/point3.png
Binary files differ
diff --git a/src/assets/global_images/point4.png b/src/assets/global_images/point4.png
new file mode 100644
index 0000000..ddf5eac
--- /dev/null
+++ b/src/assets/global_images/point4.png
Binary files differ
diff --git a/src/assets/global_images/point5.png b/src/assets/global_images/point5.png
new file mode 100644
index 0000000..5ea0f1a
--- /dev/null
+++ b/src/assets/global_images/point5.png
Binary files differ
diff --git a/src/assets/global_images/polygon.png b/src/assets/global_images/polygon.png
new file mode 100644
index 0000000..eb2791d
--- /dev/null
+++ b/src/assets/global_images/polygon.png
Binary files differ
diff --git a/src/assets/global_images/reset.png b/src/assets/global_images/reset.png
new file mode 100644
index 0000000..f8ef703
--- /dev/null
+++ b/src/assets/global_images/reset.png
Binary files differ
diff --git a/src/assets/global_images/square.png b/src/assets/global_images/square.png
new file mode 100644
index 0000000..999f95d
--- /dev/null
+++ b/src/assets/global_images/square.png
Binary files differ
diff --git a/src/assets/icons/icon-position.png b/src/assets/icons/icon-position.png
new file mode 100644
index 0000000..7444038
--- /dev/null
+++ b/src/assets/icons/icon-position.png
Binary files differ
diff --git a/src/icons/svg/edit-icon.svg b/src/icons/svg/edit-icon.svg
new file mode 100644
index 0000000..74c94c4
--- /dev/null
+++ b/src/icons/svg/edit-icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/icons/svg/locate.svg b/src/icons/svg/locate.svg
new file mode 100644
index 0000000..0e530ac
--- /dev/null
+++ b/src/icons/svg/locate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 5ef8f05..cac8a4c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,9 +40,6 @@
import TableCellRead from './components/TableCell'
Vue.use(TableCellRead)
-// 引入leaflet
-import 'leaflet/dist/leaflet.css'
-
// 引入高德地图
// import VueAMap from 'vue-amap'
// Vue.use(VueAMap)
@@ -67,6 +64,27 @@
Vue.component('search-area', SearchArea)
Vue.component('search-item', SearchItem)
+// leaflet
+
+import 'leaflet/dist/leaflet.css'
+import 'esri-leaflet/dist/esri-leaflet.js'
+import 'esri-leaflet-renderers/dist/esri-leaflet-renderers.js'
+// 引入Leaflet对象 挂载到Vue上,便于全局使用,也可以单独页面中单独引用
+import * as L from 'leaflet'
+import 'leaflet.pm'
+import 'leaflet.pm/dist/leaflet.pm.css'
+
+Vue.config.productionTip = false
+Vue.L = Vue.prototype.$L = L
+
+/* leaflet icon */
+delete L.Icon.Default.prototype._getIconUrl
+L.Icon.Default.mergeOptions({
+ iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),
+ iconUrl: require('leaflet/dist/images/marker-icon.png'),
+ shadowUrl: require('leaflet/dist/images/marker-shadow.png')
+})
+
// 先加载配置文件后,new Vue
/* eslint-disable no-new */
import axios from 'axios'
diff --git a/src/permission.js b/src/permission.js
index 9a9ce2a..d555d70 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -34,9 +34,12 @@
// 远程访问获取权限列表(菜单&按钮)
store.dispatch('GetMenus', currentSys).then(() => {
store.commit('SET_CHANGEFLAG', '0')
- router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
- // 判断路由是否被允许,不允许则重定向
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ // 获取所有地址列表
+ store.dispatch('GetUrls').then(() => {
+ router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
+ // 判断路由是否被允许,不允许则重定向
+ next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
+ })
})
} else { // 没有当前子系统信息,跳转到选择子系统页面
console.log('dontHasCurrentSystem')
diff --git a/src/router/index.js b/src/router/index.js
index 52dc869..e680932 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -14,7 +14,8 @@
import { suphandleRouters } from './modules/suphandle'
import { commonRouters } from './modules/common'
import { controlRouters } from './modules/control'
-import { baseRouters } from './modules/base'
+import { baseRouters } from './modules/baseSource'
+import { geoRouters } from './modules/geoCoding'
/**
* hidden: true if `hidden:true` will not show in the sidebar(default is false)
@@ -98,5 +99,6 @@
...commenetRouters,
...controlRouters,
...baseRouters,
+ ...geoRouters,
{ path: '*', redirect: '/404', hidden: true, meta: {}}
]
diff --git a/src/router/modules/base.js b/src/router/modules/base.js
deleted file mode 100644
index c28e4b1..0000000
--- a/src/router/modules/base.js
+++ /dev/null
@@ -1,35 +0,0 @@
-
-import Layout from '../../layout/Layout'
-export const baseRouters = [
- {
- path: '/base',
- name: 'base',
- redirect: '/baseSource',
- hidden: true,
- meta: {
- title: '基础资源子系统',
- permission: ['/base'],
- isSys: true
- }
- },
- {
- path: '/baseSource',
- component: Layout,
- redirect: '/baseSourceMain',
- name: 'BaseSource',
- alwaysShow: true,
- meta: {
- title: '基础资源',
- permission: ['/baseSource'],
- sys: '/base'
- },
- children: [
- {
- path: '/baseSourceMain',
- component: () => import('@/views/baseSource/baseSource'),
- name: 'BaseSourceMain',
- meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
- }
- ]
- }
-]
diff --git a/src/router/modules/baseSource.js b/src/router/modules/baseSource.js
new file mode 100644
index 0000000..62826d4
--- /dev/null
+++ b/src/router/modules/baseSource.js
@@ -0,0 +1,121 @@
+
+import Layout from '../../layout/Layout'
+export const baseRouters = [
+ {
+ path: '/base',
+ name: 'base',
+ redirect: '/baseSource',
+ hidden: true,
+ meta: {
+ title: '基础资源子系统',
+ permission: ['/base'],
+ isSys: true
+ }
+ },
+ {
+ path: '/map',
+ component: Layout,
+ redirect: '/mapLayer',
+ name: 'Map',
+ alwaysShow: true,
+ meta: {
+ title: '地图服务',
+ icon: 'icon-config', // 图标
+ permission: ['/map'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapLayer',
+ name: 'MapLayer',
+ component: () => import('@/views/baseSource/overview'),
+ meta: { title: '图层浏览', icon: '', permission: ['/mapLayer'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapEdit',
+ component: Layout,
+ redirect: '/partsEdit',
+ name: 'MapEdit',
+ alwaysShow: true,
+ meta: {
+ title: '地图编辑',
+ icon: 'icon-config', // 图标
+ permission: ['/mapEdit'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/partsEdit',
+ name: 'PartsEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '部件编辑', icon: '', permission: ['/partsEdit'], keepAlive: true }
+ }, {
+ path: '/shopEdit',
+ name: 'ShopEdit',
+ component: () => import('@/views/baseSource/compEdit'),
+ meta: { title: '商户编辑', icon: '', permission: ['/shopEdit'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: '/mapStatistics',
+ component: Layout,
+ redirect: '/mapSearch',
+ name: 'MapStatistics',
+ alwaysShow: true,
+ meta: {
+ title: '查询统计',
+ icon: 'icon-config', // 图标
+ permission: ['/mapStatistics'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapSearch',
+ name: 'MapSearch',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/mapSearch'], keepAlive: true }
+ }
+ ]
+ }, {
+ path: 'mapConfig',
+ component: Layout,
+ redirect: '/mapServer',
+ name: 'MapConfig',
+ alwaysShow: true,
+ meta: {
+ title: '地图配置',
+ icon: 'icon-config', // 图标
+ permission: ['/mapConfig'], // 权限名称
+ sys: '/base'
+ },
+ children: [
+ {
+ path: '/mapServer',
+ name: 'MapServer',
+ component: () => import('@/views/baseSource/listServer'),
+ meta: { title: '服务地址', icon: '', permission: ['/mapServer'], keepAlive: true }
+ }
+ ]
+ },
+ // {
+ // path: '/baseSource',
+ // component: Layout,
+ // redirect: '/baseSourceMain',
+ // name: 'BaseSource',
+ // alwaysShow: true,
+ // meta: {
+ // title: '基础资源',
+ // permission: ['/baseSource'],
+ // sys: '/base'
+ // },
+ // children: [
+ // {
+ // path: '/baseSourceMain',
+ // component: () => import('@/views/baseSource/baseSource'),
+ // name: 'BaseSourceMain',
+ // meta: { title: '基础资源', icon: '', belongSys: '', permission: '/baseSourceMain' }
+ // }
+ // ]
+ // }
+]
diff --git a/src/router/modules/geoCoding.js b/src/router/modules/geoCoding.js
new file mode 100644
index 0000000..5a4c219
--- /dev/null
+++ b/src/router/modules/geoCoding.js
@@ -0,0 +1,42 @@
+
+import Layout from '../../layout/Layout'
+export const geoRouters = [
+ {
+ path: '/geo',
+ name: 'geo',
+ redirect: '/addressSearch',
+ hidden: true,
+ meta: {
+ title: '地理编码子系统',
+ permission: ['/geo'],
+ isSys: true
+ }
+ },
+ {
+ path: '/addressSearch',
+ component: Layout,
+ redirect: '/mapAddress',
+ name: 'GeoMap',
+ alwaysShow: true,
+ meta: {
+ title: '地址查询',
+ icon: 'icon-config', // 图标
+ permission: ['/addressSearch'], // 权限名称
+ sys: '/geo'
+ },
+ children: [
+ {
+ path: '/mapAddress',
+ name: 'MapAddress',
+ component: () => import('@/views/baseSource/mapSearch'),
+ meta: { title: '地图查询', icon: '', permission: ['/geoMapOverview'] }
+ },
+ {
+ path: '/listSearch',
+ name: 'ListSearch',
+ component: () => import('@/views/geoCoding/address'),
+ meta: { title: '列表查询', icon: '', permission: ['/geoList'] }
+ }
+ ]
+ }
+]
diff --git a/src/store/getters.js b/src/store/getters.js
index c33a49d..d4657bb 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -23,6 +23,13 @@
wellTypes: state => state.user.wellTypes, // 用户支持的闸井类型
deviceTypes: state => state.user.deviceTypes, // 用户支持的设备类型
communications: state => state.user.communications, // 用户支持的通讯方式
- area: state => state.user.area // 用户所在区域
+ area: state => state.user.area, // 用户所在区域
+ urls: state => state.map.urls, // 地图服务地址列表
+ baseUrl: state => state.map.baseUrl, // 地图服务地址
+ partsUrl: state => state.map.partsUrl, // 部件分层地址
+ partsEditUrl: state => state.map.partsEditUrl, // 部件分层地址
+ partsAllUrl: state => state.map.partsAllUrl, // 部件不分层地址
+ mapUrl: state => state.map.mapUrl, // 底图地址
+ editUrl: state => state.map.editUrl // 编辑地图地址
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 7747f6a..d04323f 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -5,6 +5,7 @@
import permission from './modules/permission'
import tagsView from './modules/tagsView'
import settings from './modules/settings'
+import map from './modules/map'
import getters from './getters'
Vue.use(Vuex)
@@ -15,7 +16,8 @@
user,
permission,
tagsView,
- settings
+ settings,
+ map
},
getters
})
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
new file mode 100644
index 0000000..aa2c6f8
--- /dev/null
+++ b/src/store/modules/map.js
@@ -0,0 +1,77 @@
+import { getServerList } from '@/api/baseSource/server'
+
+const state = {
+ urls: '', // 所有图层信息
+ baseUrl: '', // 服务基础地址
+ partsUrl: '', // 部件分层地址
+ partsAllUrl: '', // 部件不分层地址
+ mapUrl: '', // 二维底图地址
+ editUrl: '' // 编辑地图URL
+}
+const mutations = {
+ SET_URLS: (state, urls) => {
+ state.urls = JSON.stringify(urls)
+ },
+ SET_BASE_URL: (state, url) => {
+ state.baseUrl = url
+ },
+ SET_PARTS_URL: (state, url) => {
+ state.partsUrl = url
+ },
+ SET_PARTS_EDIT_URL: (state, url) => {
+ state.partsEditUrl = url
+ },
+ SET_PARTS_ALL_URL: (state, url) => {
+ state.partsAllUrl = url
+ },
+ SET_MAP_URL: (state, url) => {
+ state.mapUrl = url
+ },
+ SET_EDIT_URL: (state, url) => {
+ state.editUrl = url
+ }
+}
+
+const actions = {
+ // 获取地图图层,并存在cookie中,避免重复取数据耗费时间
+ GetUrls({ commit }) {
+ return new Promise((resolve, reject) => {
+ const listQuery = { offset: 1, limit: 100 }
+ getServerList(listQuery).then(response => {
+ if (response.code === 200) {
+ const data = response.data.rows
+ commit('SET_URLS', data)
+ const urls = data
+ // 遍历所以有地址获取
+ for (const item of urls) {
+ if (item.name === 'GIS地图') {
+ commit('SET_BASE_URL', item.url)
+ } else if (item.name === '部件分层URL') {
+ commit('SET_PARTS_URL', item.url)
+ const editUrl = item.url.replace(/MapServer/, 'FeatureServer')
+ commit('SET_PARTS_EDIT_URL', editUrl)
+ } else if (item.name === '部件地图URL') {
+ commit('SET_PARTS_ALL_URL', item.url)
+ } else if (item.name === '二维地图URL') {
+ commit('SET_MAP_URL', item.url)
+ } else if (item.name === '编辑地图URL') {
+ commit('SET_EDIT_URL', item.url)
+ }
+ }
+ resolve()
+ } else {
+ reject(response)
+ }
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ }
+}
+
+export default {
+ namespace: true,
+ state,
+ mutations,
+ actions
+}
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index a8da6ce..1945f3a 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -50,8 +50,12 @@
tmp.meta.title = menu.name // 给route更新名称
if (tmp.children) {
tmp.children = filterAsyncRouter(tmp.children, menus)
- console.log(tmp.path + '->' + tmp.children[0].path)
- tmp.redirect = tmp.children[0].path
+ if (tmp.path && tmp.children.length > 0) {
+ console.log(tmp.path + '->' + tmp.children[0].path)
+ tmp.redirect = tmp.children[0].path
+ } else {
+ tmp.redirect = '/dashboard'
+ }
}
res.push(tmp)
} else {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 781865d..906f3ee 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -96,10 +96,14 @@
}
}
}
-.navbar,.navbar .hamburger-container, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
+.navbar, .el-breadcrumb, .app-breadcrumb .el-breadcrumb {
height:$breadcrumbHeight !important;
line-height: $breadcrumbHeight !important;
}
+.navbar .hamburger-container{
+ display:flex;
+ align-items: center;
+}
.tags-view-container {
.tags-view-wrapper {
@@ -158,3 +162,60 @@
.el-table td{
padding: 4px 0px !important;
}
+
+.pop-window{
+ font-size: 14px;width:200px;
+ padding-right:5px;
+ .pop-title{
+ font-size: 16px;
+ margin-bottom: 8px;
+ }
+ .pop-line{
+ line-height:20px;
+ }
+ .pop-btns{
+ margin:10px 0px;
+ .mini-btn{
+ display: inline-block;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: pointer;
+ background: #fff;
+ border: 1px solid #dcdfe6;
+ color: #606266;
+ -webkit-appearance: none;
+ text-align: center;
+ box-sizing: border-box;
+ outline: none;
+ margin: 0;
+ transition: .1s;
+ font-weight: 500;
+ padding: 7px 15px;
+ font-size: 12px;
+ border-radius: 3px;
+ }
+ .mini-btn+.mini-btn{
+ margin-left:10px;
+ }
+ #btnEdit{
+ color: #409eff;
+ background: #ecf5ff;
+ border-color: #b3d8ff;
+ }
+ #btnEdit:hover{
+ background: #409eff;
+ border-color: #409eff;
+ color: #fff;
+ }
+ #btnDelete{
+ color: #f56c6c;
+ background: #fef0f0;
+ border-color: #fbc4c4;
+ }
+ #btnDelete:hover{
+ background: #f56c6c;
+ border-color: #f56c6c;
+ color: #fff;
+ }
+ }
+}
diff --git a/src/views/baseSource/compEdit.vue b/src/views/baseSource/compEdit.vue
new file mode 100644
index 0000000..a1b69d6
--- /dev/null
+++ b/src/views/baseSource/compEdit.vue
@@ -0,0 +1,615 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/busAdmin/TimeLimit/listTimeLimit.vue b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
index a85dfa7..d0a57c1 100644
--- a/src/views/busAdmin/TimeLimit/listTimeLimit.vue
+++ b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
@@ -14,8 +14,8 @@
- 查看
- 编辑
+ 查看
+ 编辑
diff --git a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
index 23a26de..9a78b8b 100644
--- a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
+++ b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
@@ -1,39 +1,20 @@
-
-
-
-
+
+
+
新增
-
-
-
-
-
-
- {{ scope.row[column.value] }}
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
-
+
diff --git a/src/views/busAdmin/caseType/listCaseType.vue b/src/views/busAdmin/caseType/listCaseType.vue
index 4dd8fa7..4639c1e 100644
--- a/src/views/busAdmin/caseType/listCaseType.vue
+++ b/src/views/busAdmin/caseType/listCaseType.vue
@@ -2,7 +2,7 @@
-
+
事部件管理
@@ -26,36 +26,23 @@
-
-
-
-
- 删除
- 添加
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 条件过滤
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 添加
+
+
-
+
+
@@ -63,25 +50,15 @@
{{ caseTypeMap[scope.row.typeId] }}
-
+
- 编辑
-
+ 详情
+ 编辑
+
-
-
-
+
+
@@ -169,9 +146,6 @@
// this.fetchCaseTypeTree()
},
methods: {
- indexMethod(index) {
- return this.listQuery.limit * (this.listQuery.offset - 1) + index + 1
- },
initCaseTypeTree() {
this.treeLoading = true
getCaseTypeDict().then(response => {
@@ -242,14 +216,14 @@
search() {
this.fetchData(false)
},
- // 改变页容量
- handleSizeChange(val) {
- this.listQuery.limit = val
- this.fetchData()
- },
- // 改变当前页
- handleCurrentChange(val) {
- this.listQuery.offset = val
+ // 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+ changePage(val) {
+ if (val && val.size) {
+ this.listQuery.limit = val.size
+ }
+ if (val && val.page) {
+ this.listQuery.offset = val.page
+ }
this.fetchData()
},
add() {
@@ -330,43 +304,4 @@
diff --git a/src/views/busAdmin/userDevice/userDevice.vue b/src/views/busAdmin/userDevice/userDevice.vue
index 3b38a9c..4b68877 100644
--- a/src/views/busAdmin/userDevice/userDevice.vue
+++ b/src/views/busAdmin/userDevice/userDevice.vue
@@ -2,7 +2,7 @@
-
+
@@ -12,8 +12,8 @@
- 编辑
- 删除
+ 编辑
+ 删除
diff --git a/src/views/geoCoding/address.vue b/src/views/geoCoding/address.vue
new file mode 100644
index 0000000..afd8a2e
--- /dev/null
+++ b/src/views/geoCoding/address.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/layout/SupLayout.vue b/src/views/layout/SupLayout.vue
index 5ada200..731ac0c 100644
--- a/src/views/layout/SupLayout.vue
+++ b/src/views/layout/SupLayout.vue
@@ -14,7 +14,7 @@
+
+
diff --git a/src/views/baseSource/components/addTool.vue b/src/views/baseSource/components/addTool.vue
new file mode 100644
index 0000000..4bd0865
--- /dev/null
+++ b/src/views/baseSource/components/addTool.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/clearTool.vue b/src/views/baseSource/components/clearTool.vue
new file mode 100644
index 0000000..3a049d0
--- /dev/null
+++ b/src/views/baseSource/components/clearTool.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/deleteTool.vue b/src/views/baseSource/components/deleteTool.vue
new file mode 100644
index 0000000..4b89b55
--- /dev/null
+++ b/src/views/baseSource/components/deleteTool.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/drawTool.vue b/src/views/baseSource/components/drawTool.vue
new file mode 100644
index 0000000..42e3d6b
--- /dev/null
+++ b/src/views/baseSource/components/drawTool.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/editPartsDialog.vue b/src/views/baseSource/components/editPartsDialog.vue
new file mode 100644
index 0000000..4a463d0
--- /dev/null
+++ b/src/views/baseSource/components/editPartsDialog.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/layerChoose.vue b/src/views/baseSource/components/layerChoose.vue
new file mode 100644
index 0000000..c98e787
--- /dev/null
+++ b/src/views/baseSource/components/layerChoose.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchItem.vue b/src/views/baseSource/components/searchItem.vue
new file mode 100644
index 0000000..a0c73f3
--- /dev/null
+++ b/src/views/baseSource/components/searchItem.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
{{ index + 1 }}
+

+
+
+
名称:
{{ data.feature.properties.小类名称 }}
+
编码:
{{ data.feature.properties.编码 }}
+
地址:
{{ data.feature.properties.编码 }}
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/searchList.vue b/src/views/baseSource/components/searchList.vue
new file mode 100644
index 0000000..19345ed
--- /dev/null
+++ b/src/views/baseSource/components/searchList.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+ 共找到 {{ totalData.length }} 条个查询结果
+ 搜索中...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/components/toolsContainer.vue b/src/views/baseSource/components/toolsContainer.vue
new file mode 100644
index 0000000..f1e4478
--- /dev/null
+++ b/src/views/baseSource/components/toolsContainer.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/listServer.vue b/src/views/baseSource/listServer.vue
new file mode 100644
index 0000000..7ddcb99
--- /dev/null
+++ b/src/views/baseSource/listServer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ {{ scope.row['name'] }}
+
+
+
+
+ {{ scope.row['url'] }}
+
+
+
+
+
+ 保存
+ 修改
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/mapSearch.vue b/src/views/baseSource/mapSearch.vue
new file mode 100644
index 0000000..71147d8
--- /dev/null
+++ b/src/views/baseSource/mapSearch.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/baseSource/overview.vue b/src/views/baseSource/overview.vue
new file mode 100644
index 0000000..8a3f857
--- /dev/null
+++ b/src/views/baseSource/overview.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/busAdmin/TimeLimit/listTimeLimit.vue b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
index a85dfa7..d0a57c1 100644
--- a/src/views/busAdmin/TimeLimit/listTimeLimit.vue
+++ b/src/views/busAdmin/TimeLimit/listTimeLimit.vue
@@ -14,8 +14,8 @@
- 查看
- 编辑
+ 查看
+ 编辑
diff --git a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
index 23a26de..9a78b8b 100644
--- a/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
+++ b/src/views/busAdmin/areaPersonliable/areaPersonliable.vue
@@ -1,39 +1,20 @@
-
-
-
-
+
+
+
新增
-
-
-
-
-
-
- {{ scope.row[column.value] }}
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
-
+
diff --git a/src/views/busAdmin/caseType/listCaseType.vue b/src/views/busAdmin/caseType/listCaseType.vue
index 4dd8fa7..4639c1e 100644
--- a/src/views/busAdmin/caseType/listCaseType.vue
+++ b/src/views/busAdmin/caseType/listCaseType.vue
@@ -2,7 +2,7 @@
-
+
事部件管理
@@ -26,36 +26,23 @@
-
-
-
-
- 删除
- 添加
-
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
- 条件过滤
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 添加
+
+
-
+
+
@@ -63,25 +50,15 @@
{{ caseTypeMap[scope.row.typeId] }}
-
+
- 编辑
-
+ 详情
+ 编辑
+
-
-
-
+
+
@@ -169,9 +146,6 @@
// this.fetchCaseTypeTree()
},
methods: {
- indexMethod(index) {
- return this.listQuery.limit * (this.listQuery.offset - 1) + index + 1
- },
initCaseTypeTree() {
this.treeLoading = true
getCaseTypeDict().then(response => {
@@ -242,14 +216,14 @@
search() {
this.fetchData(false)
},
- // 改变页容量
- handleSizeChange(val) {
- this.listQuery.limit = val
- this.fetchData()
- },
- // 改变当前页
- handleCurrentChange(val) {
- this.listQuery.offset = val
+ // 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
+ changePage(val) {
+ if (val && val.size) {
+ this.listQuery.limit = val.size
+ }
+ if (val && val.page) {
+ this.listQuery.offset = val.page
+ }
this.fetchData()
},
add() {
@@ -330,43 +304,4 @@
diff --git a/src/views/busAdmin/userDevice/userDevice.vue b/src/views/busAdmin/userDevice/userDevice.vue
index 3b38a9c..4b68877 100644
--- a/src/views/busAdmin/userDevice/userDevice.vue
+++ b/src/views/busAdmin/userDevice/userDevice.vue
@@ -2,7 +2,7 @@
-
+
@@ -12,8 +12,8 @@
- 编辑
- 删除
+ 编辑
+ 删除
diff --git a/src/views/geoCoding/address.vue b/src/views/geoCoding/address.vue
new file mode 100644
index 0000000..afd8a2e
--- /dev/null
+++ b/src/views/geoCoding/address.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/layout/SupLayout.vue b/src/views/layout/SupLayout.vue
index 5ada200..731ac0c 100644
--- a/src/views/layout/SupLayout.vue
+++ b/src/views/layout/SupLayout.vue
@@ -14,7 +14,7 @@